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