|
@@ -0,0 +1,168 @@
|
|
|
|
|
+package cn.iselab.mooctest.site.service.application.impl;
|
|
|
|
|
+
|
|
|
|
|
+import cn.iselab.mooctest.site.common.constant.MailConstants;
|
|
|
|
|
+import cn.iselab.mooctest.site.dao.*;
|
|
|
|
|
+import cn.iselab.mooctest.site.models.*;
|
|
|
|
|
+import cn.iselab.mooctest.site.service.application.WechatService;
|
|
|
|
|
+import cn.iselab.mooctest.site.util.data.EncryptionUtil;
|
|
|
|
|
+import net.sf.json.JSON;
|
|
|
|
|
+import org.json.JSONArray;
|
|
|
|
|
+import org.json.JSONObject;
|
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
|
|
+
|
|
|
|
|
+import java.sql.Timestamp;
|
|
|
|
|
+import java.util.List;
|
|
|
|
|
+
|
|
|
|
|
+/**
|
|
|
|
|
+ * Created by Liu on 2017/3/31.
|
|
|
|
|
+ */
|
|
|
|
|
+@Service
|
|
|
|
|
+public class WechatServiceImpl implements WechatService {
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private WorkerDao workerDao;
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private AssignedTaskDao assignedTaskDao;
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private TaskDao taskDao;
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private Group2WorkerDao group2WorkerDao;
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private GroupDao groupDao;
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private ManagerDao managerDao;
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public String checkAccount(String account, String password) throws Exception {
|
|
|
|
|
+ JSONObject result = new JSONObject();
|
|
|
|
|
+ String encryptedPassword = EncryptionUtil.encryptDES(password);
|
|
|
|
|
+ Worker worker = workerDao.findByAccount(account);
|
|
|
|
|
+ if (worker == null || (!worker.getPassword().equals(encryptedPassword))){
|
|
|
|
|
+ result.put("success", false);
|
|
|
|
|
+ }
|
|
|
|
|
+ else{
|
|
|
|
|
+ result.put("success", true);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return result.toString();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public String getTaskInfo(String account) {
|
|
|
|
|
+ JSONArray result = new JSONArray();
|
|
|
|
|
+
|
|
|
|
|
+ Worker worker = workerDao.findByAccount(account);
|
|
|
|
|
+ if (worker == null){
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
+ List<AssignedTask> assignedTaskList = assignedTaskDao.findByWorkerId(worker.getId());
|
|
|
|
|
+
|
|
|
|
|
+ for (AssignedTask assignedTask : assignedTaskList){
|
|
|
|
|
+ Task task = taskDao.findOne(assignedTask.getTaskId());
|
|
|
|
|
+
|
|
|
|
|
+ Timestamp currentTimestamp = new Timestamp(System.currentTimeMillis());
|
|
|
|
|
+ if (task.getEndTime().after(currentTimestamp)){
|
|
|
|
|
+ JSONObject taskObj = new JSONObject();
|
|
|
|
|
+ taskObj.put("id", task.getId());
|
|
|
|
|
+ taskObj.put("taskName", task.getName());
|
|
|
|
|
+ taskObj.put("workerId", worker.getId());
|
|
|
|
|
+ taskObj.put("taskId", task.getId());
|
|
|
|
|
+ try {
|
|
|
|
|
+ taskObj.put("password", EncryptionUtil.encryptDES(worker.getId() + "_" + task.getId()));
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+// e.printStackTrace();
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
+ result.put(taskObj);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return result.toString();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public String getFinishedTaskInfo(String account) {
|
|
|
|
|
+ JSONArray result = new JSONArray();
|
|
|
|
|
+
|
|
|
|
|
+ Worker worker = workerDao.findByAccount(account);
|
|
|
|
|
+ if (worker == null){
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
+ List<AssignedTask> assignedTaskList = assignedTaskDao.findByWorkerId(worker.getId());
|
|
|
|
|
+
|
|
|
|
|
+ for (AssignedTask assignedTask : assignedTaskList){
|
|
|
|
|
+ Task task = taskDao.findOne(assignedTask.getTaskId());
|
|
|
|
|
+
|
|
|
|
|
+ Timestamp currentTimestamp = new Timestamp(System.currentTimeMillis());
|
|
|
|
|
+ if (task.getEndTime().before(currentTimestamp)){
|
|
|
|
|
+ JSONObject taskObj = new JSONObject();
|
|
|
|
|
+ taskObj.put("id", task.getId());
|
|
|
|
|
+ taskObj.put("taskName", task.getName());
|
|
|
|
|
+ taskObj.put("score", assignedTask.getScore());
|
|
|
|
|
+
|
|
|
|
|
+ result.put(taskObj);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return result.toString();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public String getGroupList(String account) {
|
|
|
|
|
+ JSONArray result = new JSONArray();
|
|
|
|
|
+
|
|
|
|
|
+ Worker worker = workerDao.findByAccount(account);
|
|
|
|
|
+ if (worker == null){
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
+ List<Group2Worker> group2Workers = group2WorkerDao.findByWorkerId(worker.getId());
|
|
|
|
|
+
|
|
|
|
|
+ for (Group2Worker group2Worker : group2Workers){
|
|
|
|
|
+ Group group = groupDao.findOne(group2Worker.getGroupId());
|
|
|
|
|
+
|
|
|
|
|
+ JSONObject groupObj = new JSONObject();
|
|
|
|
|
+ groupObj.put("id", group.getId());
|
|
|
|
|
+ groupObj.put("groupName", group.getName());
|
|
|
|
|
+ Manager manager = managerDao.findOne(group.getManagerId());
|
|
|
|
|
+ groupObj.put("managerName", manager.getName());
|
|
|
|
|
+
|
|
|
|
|
+ result.put(groupObj);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return result.toString();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public String joinGroup(String account, Long groupId, String managerName) {
|
|
|
|
|
+ JSONObject result = new JSONObject();
|
|
|
|
|
+ Worker worker = workerDao.findByAccount(account);
|
|
|
|
|
+ Group group = groupDao.findOne(groupId);
|
|
|
|
|
+ if (worker == null || group == null){
|
|
|
|
|
+ result.put("success", false);
|
|
|
|
|
+ result.put("message", "group or worker not found");
|
|
|
|
|
+ }
|
|
|
|
|
+ else{
|
|
|
|
|
+ Manager manager = managerDao.findOne(group.getManagerId());
|
|
|
|
|
+ if (!manager.getName().equals(managerName)){
|
|
|
|
|
+ result.put("success", false);
|
|
|
|
|
+ result.put("message", "manager name mismatch");
|
|
|
|
|
+ }
|
|
|
|
|
+ else{
|
|
|
|
|
+ // Join group
|
|
|
|
|
+ Group2Worker group2Worker = new Group2Worker();
|
|
|
|
|
+ group2Worker.setGroupId(group.getId());
|
|
|
|
|
+ group2Worker.setWorkerId(worker.getId());
|
|
|
|
|
+ group2Worker.setRecordCreateTime(new Timestamp(System.currentTimeMillis()));
|
|
|
|
|
+ group2WorkerDao.save(group2Worker);
|
|
|
|
|
+
|
|
|
|
|
+ result.put("success", true);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return result.toString();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+}
|