From ff663f1b7cbea8bcd550075b8499fdc74d54fe35 Mon Sep 17 00:00:00 2001
From: mg <maokecheng@163.com>
Date: 星期四, 27 十月 2022 18:19:35 +0800
Subject: [PATCH] 添加短信审核功能

---
 ycl-platform/src/main/java/com/ycl/service/message/ISmsAuditService.java             |    3 
 ycl-platform/src/main/java/com/ycl/service/message/impl/SmsAuditServiceImpl.java     |   70 +++++++++++++++++
 ycl-platform/src/main/java/com/ycl/service/message/factory/InnerSender.java          |   26 +-----
 ycl-platform/src/main/java/com/ycl/dto/message/MessageSmsParam.java                  |   49 ++++++++++++
 ycl-platform/src/main/java/com/ycl/service/message/factory/SmsSender.java            |   19 ++++
 ycl-platform/src/main/java/com/ycl/mapper/message/SmsAuditMapper.java                |    2 
 ycl-platform/src/main/java/com/ycl/service/message/factory/MailSender.java           |    9 --
 ycl-platform/src/main/java/com/ycl/controller/message/MessageSmsAuditController.java |   13 +++
 8 files changed, 158 insertions(+), 33 deletions(-)

diff --git a/ycl-platform/src/main/java/com/ycl/controller/message/MessageSmsAuditController.java b/ycl-platform/src/main/java/com/ycl/controller/message/MessageSmsAuditController.java
index 5fc16fb..5e36beb 100644
--- a/ycl-platform/src/main/java/com/ycl/controller/message/MessageSmsAuditController.java
+++ b/ycl-platform/src/main/java/com/ycl/controller/message/MessageSmsAuditController.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.ycl.api.CommonResult;
 import com.ycl.bo.AdminUserDetails;
+import com.ycl.dto.message.MessageSmsParam;
 import com.ycl.entity.message.SmsAudit;
 import com.ycl.service.message.ISmsAuditService;
 import io.swagger.annotations.Api;
@@ -87,4 +88,16 @@
         }
         return CommonResult.failed();
     }
+    @ApiOperation("鐭俊瀹℃牳")
+    @RequestMapping(value = "/checkSms", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult checkSms(@Validated @RequestBody MessageSmsParam messageSmsParam) {
+        AdminUserDetails user = (AdminUserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
+        messageSmsParam.setUpdateUser(user.getUserId());
+        Boolean success = iSmsAuditService.checkSms(messageSmsParam);
+        if (success) {
+            return CommonResult.success(null);
+        }
+        return CommonResult.failed();
+    }
 }
diff --git a/ycl-platform/src/main/java/com/ycl/dto/message/MessageSmsParam.java b/ycl-platform/src/main/java/com/ycl/dto/message/MessageSmsParam.java
new file mode 100644
index 0000000..9473bb3
--- /dev/null
+++ b/ycl-platform/src/main/java/com/ycl/dto/message/MessageSmsParam.java
@@ -0,0 +1,49 @@
+package com.ycl.dto.message;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * <p>
+ * 娑堟伅鍙傛暟浣�
+ * </p>
+ *
+ * @author mg
+ * @since 2022-10-08
+ */
+@Data
+@ApiModel("鐭俊瀹℃牳鍙傛暟浣�")
+public class MessageSmsParam {
+    /**
+     * 涓婚敭Id
+     */
+    @ApiModelProperty(value = "涓婚敭Id", required = true)
+    private Long id;
+    /**
+     * 娑堟伅Id
+     */
+    @ApiModelProperty(value = "娑堟伅Id", required = true)
+    private Long messageId;
+    /**
+     * 鐘舵��0-鏈�氳繃1-閫氳繃
+     */
+    @ApiModelProperty(value = "鐘舵��0-鏈�氳繃1-閫氳繃", required = true)
+    private Integer status;
+    /**
+     * 瀹℃牳鎰忚
+     */
+    @ApiModelProperty(value = "瀹℃牳鎰忚", required = true)
+    private String auditOpinion;
+    /**
+     * 缁撴灉
+     */
+    @ApiModelProperty(value = "缁撴灉", required = true)
+    private String result;
+    /**
+     * 鎿嶄綔浜�
+     */
+    @ApiModelProperty(value = "鎿嶄綔浜�")
+    private Long updateUser;
+
+}
\ No newline at end of file
diff --git a/ycl-platform/src/main/java/com/ycl/mapper/message/SmsAuditMapper.java b/ycl-platform/src/main/java/com/ycl/mapper/message/SmsAuditMapper.java
index dfca7e6..4df47a3 100644
--- a/ycl-platform/src/main/java/com/ycl/mapper/message/SmsAuditMapper.java
+++ b/ycl-platform/src/main/java/com/ycl/mapper/message/SmsAuditMapper.java
@@ -16,5 +16,5 @@
 public interface SmsAuditMapper extends BaseMapper<SmsAudit> {
 
 
-    Page<SmsAudit> selectCondPage(Page<?> page,@Param("smsAudit") SmsAudit smsAudit);
+    Page<SmsAudit> selectCondPage(@Param("page") Page<SmsAudit> page,@Param("smsAudit") SmsAudit smsAudit);
 }
diff --git a/ycl-platform/src/main/java/com/ycl/service/message/ISmsAuditService.java b/ycl-platform/src/main/java/com/ycl/service/message/ISmsAuditService.java
index 12423fb..5cf60da 100644
--- a/ycl-platform/src/main/java/com/ycl/service/message/ISmsAuditService.java
+++ b/ycl-platform/src/main/java/com/ycl/service/message/ISmsAuditService.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ycl.dto.message.MessageSmsParam;
 import com.ycl.entity.message.Message;
 import com.ycl.entity.message.SmsAudit;
 
@@ -17,4 +18,6 @@
     IPage<SmsAudit> list(SmsAudit smsAudit);
 
     void startAuditSms(Message message);
+
+   Boolean checkSms(MessageSmsParam messageSmsParam);
 }
diff --git a/ycl-platform/src/main/java/com/ycl/service/message/factory/InnerSender.java b/ycl-platform/src/main/java/com/ycl/service/message/factory/InnerSender.java
index 011851c..8dc65ed 100644
--- a/ycl-platform/src/main/java/com/ycl/service/message/factory/InnerSender.java
+++ b/ycl-platform/src/main/java/com/ycl/service/message/factory/InnerSender.java
@@ -56,9 +56,13 @@
             if (message.getSendTime() == null) {
                 message.setSendTime(new Date());
             }
+            if (ChannelCode.SMS.equals(messageParam.getChannelCode())) {
+                message.setIsScan(1);
+            } else {
+                message.setIsScan(0);
+            }
             message.setIsView(0);
             message.setVersion(0);
-            message.setIsScan(1);
             message.setCreateTime(new Date());
             message.setUpdateTime(new Date());
             message.setCreateUser(messageParam.getCreateUser());
@@ -76,29 +80,11 @@
             String[] ids = messageParam.getTargetTo().split(",");
             for (String id : ids) {
                 Message messageAdd = new Message();
-                BeanUtils.copyProperties(messageParam, messageAdd);
+                BeanUtils.copyProperties(message, messageAdd);
                 //璁剧疆鐖剁被Id
                 messageAdd.setParentId(message.getId());
                 //璁剧疆鎺ユ敹鑰�
                 messageAdd.setTargetTo(id);
-                //鐢熸垚8浣嶉殢鏈烘暟娑堟伅缂栫爜
-                messageAdd.setMessageNumber(message.getMessageNumber());
-                //鍙戦�佹椂闂�
-                if (messageAdd.getSendTime() == null) {
-                    messageAdd.setSendTime(new Date());
-                }
-                if (ChannelCode.MAIL.equals(messageParam.getChannelCode())) {
-                    messageAdd.setIsScan(1);
-                } else {
-                    messageAdd.setIsScan(0);
-                }
-                //鐢熸垚榛樿鍙傛暟
-                messageAdd.setCreateTime(new Date());
-                messageAdd.setUpdateTime(new Date());
-                messageAdd.setCreateUser(messageParam.getCreateUser());
-                messageAdd.setUpdateUser(messageParam.getCreateUser());
-                messageAdd.setIsView(0);
-                messageAdd.setVersion(0);
                 messages.add(messageAdd);
             }
             //鎵归噺鏂板
diff --git a/ycl-platform/src/main/java/com/ycl/service/message/factory/MailSender.java b/ycl-platform/src/main/java/com/ycl/service/message/factory/MailSender.java
index 395ad74..62a6c88 100644
--- a/ycl-platform/src/main/java/com/ycl/service/message/factory/MailSender.java
+++ b/ycl-platform/src/main/java/com/ycl/service/message/factory/MailSender.java
@@ -4,7 +4,6 @@
 import com.ycl.dto.message.MessageParam;
 import com.ycl.entity.message.Message;
 import com.ycl.exception.ApiException;
-import com.ycl.service.message.ISmsAuditService;
 import com.ycl.service.message.Sender;
 import com.ycl.service.user.UmsAdminService;
 import org.slf4j.Logger;
@@ -37,12 +36,6 @@
     public void setPropertyValueUtil(PropertyValueUtil propertyValueUtil) {
         MailSender.propertyValueUtil = propertyValueUtil;
     }
-    private static ISmsAuditService iSmsAuditService;
-    @Autowired
-    public void setISmsAuditService(ISmsAuditService iSmsAuditService) {
-        MailSender.iSmsAuditService = iSmsAuditService;
-    }
-
     private static UmsAdminService adminService;
     @Autowired
     public void setUmsAdminService(UmsAdminService adminService) {
@@ -54,8 +47,6 @@
         //鍏ュ簱淇濆瓨
         Message message = innerSender.sendMessage(messageParam);
         if (messageParam.getStatus() == 1) {
-            //鍙戣捣瀹℃牳
-            iSmsAuditService.startAuditSms(message);
             //id鎹㈡垚閭鍙�
             String targetToMail = adminService.getTargetTo(messageParam.getTargetTo(), messageParam.getChannelCode());
             message.setTargetTo(targetToMail);
diff --git a/ycl-platform/src/main/java/com/ycl/service/message/factory/SmsSender.java b/ycl-platform/src/main/java/com/ycl/service/message/factory/SmsSender.java
index 6676ba9..8b3fcc7 100644
--- a/ycl-platform/src/main/java/com/ycl/service/message/factory/SmsSender.java
+++ b/ycl-platform/src/main/java/com/ycl/service/message/factory/SmsSender.java
@@ -4,6 +4,7 @@
 import com.ycl.dto.message.MessageParam;
 import com.ycl.entity.message.Message;
 import com.ycl.exception.ApiException;
+import com.ycl.service.message.ISmsAuditService;
 import com.ycl.service.message.Sender;
 import com.ycl.service.user.UmsAdminService;
 import org.slf4j.Logger;
@@ -35,6 +36,11 @@
     public void setPropertyValueUtil(PropertyValueUtil propertyValueUtil) {
         SmsSender.propertyValueUtil = propertyValueUtil;
     }
+    private static ISmsAuditService iSmsAuditService;
+    @Autowired
+    public void setISmsAuditService(ISmsAuditService iSmsAuditService) {
+        SmsSender.iSmsAuditService = iSmsAuditService;
+    }
     private static UmsAdminService adminService;
     @Autowired
     public void setUmsAdminService(UmsAdminService adminService) {
@@ -45,8 +51,15 @@
     public Message sendMessage(MessageParam messageParam) {
         //鍏ュ簱淇濆瓨
         Message message = innerSender.sendMessage(messageParam);
-        //鍙戦�佺煭淇″彂閫�
-        sendSms(message);
+        if (messageParam.getStatus() == 1) {
+            //鍙戣捣瀹℃牳
+            iSmsAuditService.startAuditSms(message);
+            //id鎹㈡垚閭鍙�
+            String targetToPhone = adminService.getTargetTo(messageParam.getTargetTo(), messageParam.getChannelCode());
+            message.setTargetTo(targetToPhone);
+            //鍙戦�佺煭淇″彂閫�
+            sendSms(message);
+        }
         return message;
     }
 
@@ -55,7 +68,7 @@
 
         try {
             logger.info("缁勮鐭俊鍙戦��");
-
+            System.out.println("----------------鍙戦�佺煭淇�----------------------");
         }catch (Exception e){
             e.printStackTrace();
             logger.error("鍙戦�佺粍瑁呯煭淇″紓甯革紒", e);
diff --git a/ycl-platform/src/main/java/com/ycl/service/message/impl/SmsAuditServiceImpl.java b/ycl-platform/src/main/java/com/ycl/service/message/impl/SmsAuditServiceImpl.java
index d307642..6712c0c 100644
--- a/ycl-platform/src/main/java/com/ycl/service/message/impl/SmsAuditServiceImpl.java
+++ b/ycl-platform/src/main/java/com/ycl/service/message/impl/SmsAuditServiceImpl.java
@@ -4,13 +4,20 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ycl.common.util.CommonUtils;
+import com.ycl.dto.message.MessageSmsParam;
 import com.ycl.entity.message.Message;
 import com.ycl.entity.message.SmsAudit;
 import com.ycl.entity.user.UmsDepartManage;
+import com.ycl.exception.ApiException;
+import com.ycl.mapper.message.MessageMapper;
 import com.ycl.mapper.message.SmsAuditMapper;
 import com.ycl.mapper.user.UmsDepartManageMapper;
 import com.ycl.service.message.ISmsAuditService;
+import com.ycl.service.message.factory.SmsSender;
+import com.ycl.service.user.UmsAdminService;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.util.*;
@@ -29,6 +36,13 @@
 
     @Resource
     private UmsDepartManageMapper umsDepartManageMapper;
+    @Resource
+    private MessageMapper messageMapper;
+
+    @Resource
+    private UmsAdminService adminService;
+    @Resource
+    private SmsSender smsSender;
 
     @Override
     public IPage<SmsAudit> list(SmsAudit smsAudit) {
@@ -81,6 +95,62 @@
             audits.add(audit);
         }
         saveBatch(audits);
+    }
 
+    @Override
+    public Boolean checkSms(MessageSmsParam messageSmsParam) {
+        switch (messageSmsParam.getStatus())
+        {
+            //鏈�氳繃
+            case 0:
+                noPassMethod(messageSmsParam);
+                break;
+            //閫氳繃
+            case 1:
+                passMethod(messageSmsParam);
+                break;
+            default:
+                throw new ApiException("鏈尮閰嶅埌璇ョ被鍨�");
+        }
+        return true;
+    }
+    @Transactional
+    public void passMethod(MessageSmsParam messageSmsParam) {
+        Message message = messageMapper.selectById(messageSmsParam.getMessageId());
+        if (CommonUtils.isEmpty(message)) {
+            throw new ApiException("鏈壘鍒拌瀹℃牳鐭俊娑堟伅");
+        }
+        //id鎹㈡垚鎵嬫満鍙�
+        String targetToPhone = adminService.getTargetTo(message.getTargetTo(), message.getChannelCode());
+        message.setTargetTo(targetToPhone);
+        //鍙戦�佺煭淇�
+        smsSender.sendSms(message);
+
+        Message updateMessage = new Message();
+        updateMessage.setSendTime(new Date());
+        updateMessage.setIsScan(1);
+        updateMessage.setUpdateTime(new Date());
+        updateMessage.setUpdateUser(messageSmsParam.getUpdateUser());
+
+        LambdaQueryWrapper<Message> updateWrapper = new LambdaQueryWrapper<>();
+        updateWrapper.eq(Message::getMessageNumber, message.getMessageNumber());
+        messageMapper.update(updateMessage, updateWrapper);
+
+        baseMapper.updateById(packageData(messageSmsParam));
+    }
+    @Transactional
+    public void noPassMethod(MessageSmsParam messageSmsParam) {
+        baseMapper.updateById(packageData(messageSmsParam));
+    }
+    public SmsAudit packageData(MessageSmsParam messageSmsParam) {
+        SmsAudit smsAudit = new SmsAudit();
+        smsAudit.setId(messageSmsParam.getId());
+        smsAudit.setAuditStatus(messageSmsParam.getStatus());
+        smsAudit.setAuditOpinion(messageSmsParam.getAuditOpinion());
+        smsAudit.setAuditResult(messageSmsParam.getResult());
+        smsAudit.setAuditId(messageSmsParam.getUpdateUser());
+        smsAudit.setUpdateTime(new Date());
+        smsAudit.setUpdateUser(messageSmsParam.getUpdateUser());
+        return smsAudit;
     }
 }

--
Gitblit v1.8.0