Pārlūkot izejas kodu

ADD: new Wechat interfaces - get passwords/scores/tasks

Zicong Liu 8 gadi atpakaļ
vecāks
revīzija
f78b096056

+ 6 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/application/WechatService.java

@@ -23,4 +23,10 @@ public interface WechatService {
     String checkManager(String account, String password);
 
     String checkWorker(String account, String password);
+
+    String getManagerTask(long userId);
+
+    String getWorkersPassword(long taskId);
+
+    String getWorkersGrade(long taskId);
 }

+ 94 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/application/impl/WechatServiceImpl.java

@@ -296,5 +296,99 @@ public class WechatServiceImpl implements WechatService {
         return resultObj.toString();
     }
 
+    @Override
+    public String getManagerTask(long userId) {
+        JSONObject resultObj = new JSONObject();
+        Manager manager = managerDao.findOne(userId);
+        if (manager == null){
+            resultObj.put("message", "manager not found");
+        }
+        else {
+            JSONArray taskArr = new JSONArray();
+            List<Task> tasks = taskDao.findByManagerId(userId);
+            for (Task task : tasks){
+                JSONObject taskObj = new JSONObject();
+                taskObj.put("id", task.getId());
+                taskObj.put("taskName", task.getName());
+
+                // check task status - UPCOMING/ONGOING/FINISHED
+                Timestamp currentTimestamp = new Timestamp(System.currentTimeMillis());
+                if (task.getBeginTime().after(currentTimestamp)){
+                    // UPCOMING
+                    taskObj.put("status", 0);
+                }
+                else if (task.getEndTime().before(currentTimestamp)){
+                    // FINISHED
+                    taskObj.put("status", 2);
+                }
+                else{
+                    taskObj.put("status", 1);
+                }
+
+                taskArr.put(taskObj);
+            }
+            resultObj.put("tasks", taskArr);
+        }
+
+        return resultObj.toString();
+    }
+
+    @Override
+    public String getWorkersPassword(long taskId) {
+        JSONObject resultObj = new JSONObject();
+        Task task = taskDao.findOne(taskId);
+        if (task == null){
+            resultObj.put("message", "task not found");
+        }
+        else {
+            JSONArray passwordArr = new JSONArray();
+            List<AssignedTask> assignedTasks = assignedTaskDao.findByTaskId(taskId);
+            for (AssignedTask assignedTask : assignedTasks){
+                JSONObject passwordObj = new JSONObject();
+
+                Worker worker = workerDao.findOne(assignedTask.getWorkerId());
+                passwordObj.put("workerId", worker.getId());
+                passwordObj.put("workerName", worker.getName());
+                try {
+                    String password = EncryptionUtil.encryptDES(taskId + "_" + assignedTask.getWorkerId());
+                    passwordObj.put("password", password);
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+
+                passwordArr.put(passwordObj);
+            }
+            resultObj.put("passwords", passwordArr);
+        }
+
+        return resultObj.toString();
+    }
+
+    @Override
+    public String getWorkersGrade(long taskId) {
+        JSONObject resultObj = new JSONObject();
+        Task task = taskDao.findOne(taskId);
+        if (task == null){
+            resultObj.put("message", "task not found");
+        }
+        else {
+            JSONArray gradeArr = new JSONArray();
+            List<AssignedTask> assignedTasks = assignedTaskDao.findByTaskId(taskId);
+            for (AssignedTask assignedTask : assignedTasks){
+                JSONObject gradeObj = new JSONObject();
+
+                Worker worker = workerDao.findOne(assignedTask.getWorkerId());
+                gradeObj.put("workerId", worker.getId());
+                gradeObj.put("workerName", worker.getName());
+                gradeObj.put("grade", assignedTask.getScore());
+
+                gradeArr.put(gradeObj);
+            }
+            resultObj.put("grades", gradeArr);
+        }
+
+        return resultObj.toString();
+    }
+
 
 }

+ 14 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/ctrl/WechatController.java

@@ -75,6 +75,20 @@ public class WechatController extends BaseController {
         return wechatLogic.getUserInfoWechat(request);
     }
 
+    @RequestMapping(value = UrlConstants.API_WECHAT + "getManagerTask", method = RequestMethod.GET)
+    public String getManagerTask(HttpServletRequest request) {
+        return wechatLogic.getManagerTask(request);
+    }
+
+    @RequestMapping(value = UrlConstants.API_WECHAT + "getWorkersPassword", method = RequestMethod.GET)
+    public String getWorkersPassword(HttpServletRequest request) {
+        return wechatLogic.getWorkersPassword(request);
+    }
+
+    @RequestMapping(value = UrlConstants.API_WECHAT + "getWorkersGrade", method = RequestMethod.GET)
+    public String getWorkersGrade(HttpServletRequest request) {
+        return wechatLogic.getWorkersGrade(request);
+    }
     /**
      *
      * POST methods

+ 6 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/logic/WechatLogic.java

@@ -28,4 +28,10 @@ public interface WechatLogic {
     String getWorkersByGroup(HttpServletRequest request);
 
     String getUserInfoWechat(HttpServletRequest request);
+
+    String getManagerTask(HttpServletRequest request);
+
+    String getWorkersPassword(HttpServletRequest request);
+
+    String getWorkersGrade(HttpServletRequest request);
 }

+ 48 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/logic/impl/WechatLogicImpl.java

@@ -206,6 +206,54 @@ public class WechatLogicImpl implements WechatLogic {
         return result;
     }
 
+    @Override
+    public String getManagerTask(HttpServletRequest request) {
+        if (request.getParameter("userId") == null){
+            return missingParameterResponse;
+        }
+
+        long userId = Long.parseLong(request.getParameter("userId"));
+
+        // login the system
+        String result = wechatService.getManagerTask(userId);
+
+        result = generateResponse(HTTP_OK, "", result);
+
+        return result;
+    }
+
+    @Override
+    public String getWorkersPassword(HttpServletRequest request) {
+        if (request.getParameter("taskId") == null){
+            return missingParameterResponse;
+        }
+
+        long taskId = Long.parseLong(request.getParameter("taskId"));
+
+        // login the system
+        String result = wechatService.getWorkersPassword(taskId);
+
+        result = generateResponse(HTTP_OK, "", result);
+
+        return result;
+    }
+
+    @Override
+    public String getWorkersGrade(HttpServletRequest request) {
+        if (request.getParameter("taskId") == null){
+            return missingParameterResponse;
+        }
+
+        long taskId = Long.parseLong(request.getParameter("taskId"));
+
+        // login the system
+        String result = wechatService.getWorkersGrade(taskId);
+
+        result = generateResponse(HTTP_OK, "", result);
+
+        return result;
+    }
+
     /**
      * POST
      */