浏览代码

命题任务审核短信发送

caozixuan 4 年之前
父节点
当前提交
413d48363f

+ 11 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/BasicMessageService.java

@@ -2,8 +2,11 @@ package com.qmth.distributed.print.business.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.distributed.print.business.entity.BasicMessage;
+import com.qmth.distributed.print.business.entity.SysUser;
 import com.qmth.distributed.print.business.enums.MessageEnum;
 
+import java.util.List;
+
 /**
  * @Description: 短信消息发送
  * @Author: CaoZixuan
@@ -21,4 +24,12 @@ public interface BasicMessageService extends IService<BasicMessage> {
      * @param messageType 消息类型
      */
     void saveMessageSendLog(Long userId, String mobileNumber, Long businessId, String variableParams, Long createId, MessageEnum messageType);
+
+    /**
+     * 命题任务审核消息处理
+     * @param examTaskIdList 命题任务主键集合
+     * @param messageType 消息类型枚举
+     * @param sysUser 发送信息的用户
+     */
+    void noticeOfExamTaskAudit(List<Long> examTaskIdList, MessageEnum messageType, SysUser sysUser);
 }

+ 38 - 3
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicMessageServiceImpl.java

@@ -1,5 +1,6 @@
 package com.qmth.distributed.print.business.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.aliyuncs.DefaultAcsClient;
 import com.aliyuncs.IAcsClient;
 import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
@@ -8,25 +9,29 @@ import com.aliyuncs.exceptions.ClientException;
 import com.aliyuncs.http.MethodType;
 import com.aliyuncs.profile.DefaultProfile;
 import com.aliyuncs.profile.IClientProfile;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.distributed.print.business.config.DictionaryConfig;
 import com.qmth.distributed.print.business.entity.BasicMessage;
-import com.qmth.distributed.print.business.entity.BasicVerifyCode;
+import com.qmth.distributed.print.business.entity.ExamTask;
 import com.qmth.distributed.print.business.entity.SysConfig;
+import com.qmth.distributed.print.business.entity.SysUser;
 import com.qmth.distributed.print.business.enums.MessageEnum;
 import com.qmth.distributed.print.business.mapper.BasicMessageMapper;
 import com.qmth.distributed.print.business.service.BasicMessageService;
+import com.qmth.distributed.print.business.service.CacheService;
+import com.qmth.distributed.print.business.service.ExamTaskService;
 import com.qmth.distributed.print.business.service.SysConfigService;
+import com.qmth.distributed.print.common.contant.SpringContextHolder;
 import com.qmth.distributed.print.common.contant.SystemConstant;
 import com.qmth.distributed.print.common.enums.ExceptionResultEnum;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
-import java.util.Date;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 
 /**
  * @Description: 短信消息发送
@@ -39,6 +44,8 @@ public class BasicMessageServiceImpl extends ServiceImpl<BasicMessageMapper, Bas
     private SysConfigService sysConfigService;
     @Resource
     private DictionaryConfig dictionaryConfig;
+    @Resource
+    private CacheService cacheService;
 
     @Transactional(rollbackFor = Exception.class)
     @Override
@@ -122,6 +129,34 @@ public class BasicMessageServiceImpl extends ServiceImpl<BasicMessageMapper, Bas
         }
     }
 
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void noticeOfExamTaskAudit(List<Long> examTaskIdList, MessageEnum messageType, SysUser sysUser) {
+        ExamTaskService examTaskService = SpringContextHolder.getBean(ExamTaskService.class);
+        Long createId = sysUser.getId();
+        for (Long examTaskId : examTaskIdList) {
+            ExamTask examTask = examTaskService.getById(examTaskId);
+            if (Objects.nonNull(examTask)){
+                String courseName = examTask.getCourseName();
+                String paperNumber = examTask.getPaperNumber();
+                Long userId = examTask.getCreateId();
+                SysUser user = cacheService.userCache(userId);
+                if (Objects.nonNull(user)){
+                    String userName = user.getRealName();
+                    String mobileNumber = user.getMobileNumber();
+
+                    Map<String, String> jsonMap = new HashMap<>();
+                    jsonMap.put("userName", userName);
+                    jsonMap.put("courseName", courseName);
+                    jsonMap.put("paperNumber", paperNumber);
+                    String variableParams = JSON.toJSONString(jsonMap);
+                    this.saveMessageSendLog(userId,mobileNumber, examTaskId,variableParams,createId,messageType);
+                }
+            }
+        }
+
+    }
+
     private void checkData(Object ... objects){
         for (Object object : objects) {
             if (object instanceof String){

+ 20 - 10
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamTaskController.java

@@ -11,10 +11,7 @@ import com.qmth.distributed.print.business.bean.params.ArraysParams;
 import com.qmth.distributed.print.business.bean.params.PrintPlanParams;
 import com.qmth.distributed.print.business.bean.result.EditResult;
 import com.qmth.distributed.print.business.entity.*;
-import com.qmth.distributed.print.business.enums.ExamStatusEnum;
-import com.qmth.distributed.print.business.enums.ReviewStatusEnum;
-import com.qmth.distributed.print.business.enums.TaskTypeEnum;
-import com.qmth.distributed.print.business.enums.UploadFileEnum;
+import com.qmth.distributed.print.business.enums.*;
 import com.qmth.distributed.print.business.service.*;
 import com.qmth.distributed.print.business.templete.execute.AsyncTaskReviewSampleExportService;
 import com.qmth.distributed.print.business.util.ServletUtil;
@@ -35,10 +32,7 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import java.io.IOException;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
 
 /**
  * <p>
@@ -73,6 +67,9 @@ public class ExamTaskController {
 
     @Autowired
     private CommonService commonService;
+
+    @Resource
+    private BasicMessageService basicMessageService;
     /**
      * 查询
      *
@@ -367,12 +364,19 @@ public class ExamTaskController {
     @ApiOperation(value = "审核")
     @RequestMapping(value = "/review_save", method = RequestMethod.POST)
     public Result taskReviewSave(@RequestBody ExamTaskReviewLog taskReviewLog) throws IOException {
+        List<Long> examTaskIdList = new ArrayList<>();
+        examTaskIdList.add(taskReviewLog.getExamTaskId());
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         boolean isSuccess = examTaskService.taskReviewSave(taskReviewLog);
         if (isSuccess && taskReviewLog.getReviewStatus().name().equals(ReviewStatusEnum.PASS.name())) {
-            SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+            // 发送审核通过短信通知
+            basicMessageService.noticeOfExamTaskAudit(examTaskIdList, MessageEnum.NOTICE_OF_AUDIT_PASS,sysUser);
             ExamTask examTask = examTaskService.getById(taskReviewLog.getExamTaskId());
             // 校验是否可以提交打印状态
             commonService.checkData(examTask.getSchoolId(), examTask.getCourseCode(), examTask.getPaperNumber(), sysUser);
+        }else if (isSuccess && taskReviewLog.getReviewStatus().name().equals(ReviewStatusEnum.NOT_PASS.name())){
+            // 发送审核不通过短信通知
+            basicMessageService.noticeOfExamTaskAudit(examTaskIdList, MessageEnum.NOTICE_OF_AUDIT_NOT_PASS,sysUser);
         }
         return ResultUtil.ok(isSuccess);
     }
@@ -386,14 +390,20 @@ public class ExamTaskController {
     @ApiOperation(value = "批量审核")
     @RequestMapping(value = "/review_save_batch", method = RequestMethod.POST)
     public Result taskReviewSaveBatch(@RequestBody ExamTaskReviewLog taskReviewLog) throws IOException {
+        List<Long> examTaskIdList = Arrays.asList(taskReviewLog.getExamTaskIds());
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         boolean isSuccess = examTaskService.taskReviewSaveBatch(taskReviewLog);
         if (isSuccess && taskReviewLog.getReviewStatus().name().equals(ReviewStatusEnum.PASS.name())) {
-            SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+            // 发送审核通过短信通知
+            basicMessageService.noticeOfExamTaskAudit(examTaskIdList, MessageEnum.NOTICE_OF_AUDIT_PASS,sysUser);
             // 校验是否可以提交打印状态
             for (Long examTaskId : taskReviewLog.getExamTaskIds()) {
                 ExamTask examTask = examTaskService.getById(examTaskId);
                 commonService.checkData(examTask.getSchoolId(), examTask.getCourseCode(), examTask.getPaperNumber(), sysUser);
             }
+        }else if (isSuccess && taskReviewLog.getReviewStatus().name().equals(ReviewStatusEnum.NOT_PASS.name())){
+            // 发送审核不通过短信通知
+            basicMessageService.noticeOfExamTaskAudit(examTaskIdList, MessageEnum.NOTICE_OF_AUDIT_NOT_PASS,sysUser);
         }
         return ResultUtil.ok(isSuccess);
     }

+ 2 - 2
distributed-print/src/test/java/com/qmth/distributed/print/ServiceTest.java

@@ -80,13 +80,13 @@ public class ServiceTest {
         String mobileNumber = "18903719928";
         Long businessId = 1L;
         Map<String, String> jsonMap = new HashMap<>();
-        jsonMap.put("userName", "张三");
+        jsonMap.put("userName", "李四");
         jsonMap.put("courseName", "数学");
         jsonMap.put("paperNumber", "SX001");
         String variableParams = JSON.toJSONString(jsonMap);
 //        String variableParams = "{\"code\":\"" + "123456" + "\"}";
         Long createId = 1L;
-        MessageEnum messageType = MessageEnum.NOTICE_OF_AUDIT_NOT_PASS;
+        MessageEnum messageType = MessageEnum.NOTICE_OF_AUDIT_PASS;
 
         basicMessageService.saveMessageSendLog(userId, mobileNumber, businessId, variableParams, createId, messageType);
     }