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