From 1042347b372227bdb36da958fda8974d51c79e15 Mon Sep 17 00:00:00 2001 From: Oliver <1070107765@qq.com> Date: 星期二, 08 十一月 2022 11:13:12 +0800 Subject: [PATCH] commit --- ycl-platform/src/main/java/com/ycl/service/message/impl/SmsAuditServiceImpl.java | 89 +++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 86 insertions(+), 3 deletions(-) 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 916540e..ceedd48 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,11 +36,18 @@ @Resource private UmsDepartManageMapper umsDepartManageMapper; + @Resource + private MessageMapper messageMapper; + + @Resource + private UmsAdminService adminService; + @Resource + private SmsSender smsSender; @Override public IPage<SmsAudit> list(SmsAudit smsAudit) { Page<SmsAudit> page = new Page<>(smsAudit.getCurrent(), smsAudit.getPageSize()); - LambdaQueryWrapper<SmsAudit> queryWrapper = new LambdaQueryWrapper<>(); + /*LambdaQueryWrapper<SmsAudit> queryWrapper = new LambdaQueryWrapper<>(); if (smsAudit.getAuditId() != null) { queryWrapper.eq(SmsAudit::getAuditId, smsAudit.getAuditId()); } @@ -41,7 +55,8 @@ queryWrapper.eq(SmsAudit::getAuditStatus, smsAudit.getAuditStatus()); } queryWrapper.orderByDesc(SmsAudit::getCreateTime); - Page<SmsAudit> result = baseMapper.selectPage(page, queryWrapper); + Page<SmsAudit> result = baseMapper.selectPage(page, queryWrapper);*/ + Page<SmsAudit> result = baseMapper.selectCondPage(page, smsAudit); return result; } @@ -64,9 +79,14 @@ LambdaQueryWrapper<UmsDepartManage> queryDeptLeadWrapper = new LambdaQueryWrapper<>(); queryDeptLeadWrapper.in(UmsDepartManage::getDepartId, deptLeadIds).eq(UmsDepartManage::getIsLeader,1); List<UmsDepartManage> deptLeads = umsDepartManageMapper.selectList(queryDeptLeadWrapper); + + //瀹℃牳鍘婚噸 + List<UmsDepartManage> uniqueLeads = deptLeads.stream().collect( + Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o->o.getUserId()))), + ArrayList::new)); //娣诲姞鐭俊瀹℃牳 List<SmsAudit> audits = new ArrayList<>(); - for (UmsDepartManage depart : deptLeads) { + for (UmsDepartManage depart : uniqueLeads) { SmsAudit audit = new SmsAudit(); audit.setMessageId(message.getId()); audit.setAuditId(depart.getUserId()); @@ -80,6 +100,69 @@ 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); + //瀹℃牳鐭俊鏇存柊 + updateSmsAudit(messageSmsParam); + } + @Transactional + public void noPassMethod(MessageSmsParam messageSmsParam) { + //瀹℃牳鐭俊鏇存柊 + updateSmsAudit(messageSmsParam); + } + public void updateSmsAudit(MessageSmsParam messageSmsParam) { + SmsAudit smsAudit = packageData(messageSmsParam); + LambdaQueryWrapper<SmsAudit> smsAuditUpdate = new LambdaQueryWrapper<>(); + smsAuditUpdate.eq(SmsAudit::getMessageId, messageSmsParam.getMessageId()); + baseMapper.update(smsAudit,smsAuditUpdate); + } + public SmsAudit packageData(MessageSmsParam messageSmsParam) { + SmsAudit smsAudit = new SmsAudit(); + smsAudit.setMessageId(messageSmsParam.getMessageId()); + smsAudit.setAuditStatus(messageSmsParam.getStatus()); + smsAudit.setAuditOpinion(messageSmsParam.getAuditOpinion()); + smsAudit.setAuditResult(messageSmsParam.getResult()); + smsAudit.setRealAuditId(messageSmsParam.getUpdateUser()); + smsAudit.setUpdateTime(new Date()); + smsAudit.setUpdateUser(messageSmsParam.getUpdateUser()); + return smsAudit; } } -- Gitblit v1.8.0