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(); } } ycl-platform/src/main/java/com/ycl/dto/message/MessageSmsParam.java
New file @@ -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; } 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); } 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); } 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); } //批量新增 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); 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); 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; } }