mg
2022-10-27 ff663f1b7cbea8bcd550075b8499fdc74d54fe35
添加短信审核功能
7个文件已修改
1个文件已添加
191 ■■■■ 已修改文件
ycl-platform/src/main/java/com/ycl/controller/message/MessageSmsAuditController.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/dto/message/MessageSmsParam.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/mapper/message/SmsAuditMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/service/message/ISmsAuditService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/service/message/factory/InnerSender.java 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/service/message/factory/MailSender.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/service/message/factory/SmsSender.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/service/message/impl/SmsAuditServiceImpl.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
    }
}