From 1cad14bca191807e18705c3a5526eda8151be439 Mon Sep 17 00:00:00 2001 From: zhanghua <314079846@qq.com> Date: 星期一, 14 四月 2025 23:10:22 +0800 Subject: [PATCH] 批量审核和图片保存bug --- ycl-platform/src/main/java/com/ycl/service/message/impl/SmsAuditServiceImpl.java | 136 ++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 133 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 b0bb2c3..2df405f 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,14 +4,27 @@ 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.user.UmsAdminService; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.*; +import java.util.stream.Collectors; /** * <p> - * 鐭俊瀹℃牳 鏈嶅姟瀹炵幇绫� + * 鐭俊瀹℃牳 鏈嶅姟瀹炵幇绫� * </p> * * @author mg @@ -19,14 +32,131 @@ */ @Service public class SmsAuditServiceImpl extends ServiceImpl<SmsAuditMapper, SmsAudit> implements ISmsAuditService { + + @Resource + private UmsDepartManageMapper umsDepartManageMapper; + @Resource + private MessageMapper messageMapper; + + @Resource + private UmsAdminService adminService; + @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()); + } if (smsAudit.getAuditStatus() != null) { queryWrapper.eq(SmsAudit::getAuditStatus, smsAudit.getAuditStatus()); } - Page<SmsAudit> result = baseMapper.selectPage(page, queryWrapper); + queryWrapper.orderByDesc(SmsAudit::getCreateTime); + Page<SmsAudit> result = baseMapper.selectPage(page, queryWrapper);*/ + Page<SmsAudit> result = baseMapper.selectCondPage(page, smsAudit); return result; } + + @Override + public void startAuditSms(Message message) { + String[] arr = message.getTargetTo().split(","); + List<Long> ids = new ArrayList<>(); + for (int i = 0; i < arr.length; i++) { + ids.add(Long.parseLong(arr[i])); + } + //鏌ヨ閮ㄩ棬 + LambdaQueryWrapper<UmsDepartManage> queryDeptWrapper = new LambdaQueryWrapper<>(); + queryDeptWrapper.in(UmsDepartManage::getUserId, ids); + List<UmsDepartManage> depts = umsDepartManageMapper.selectList(queryDeptWrapper); + //閮ㄩ棬鍘婚噸 + List<UmsDepartManage> uniques = depts.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getDepartId()))), ArrayList::new)); + List<Long> deptLeadIds = uniques.stream().map(UmsDepartManage::getDepartId).collect(Collectors.toList()); + 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 : uniqueLeads) { + SmsAudit audit = new SmsAudit(); + audit.setMessageId(message.getId()); + audit.setAuditId(depart.getUserId()); + //寰呭鏍哥姸鎬� + audit.setAuditStatus(0); + Long userId = Long.parseLong(message.getTargetFrom()); + audit.setCreateUser(userId); + audit.setCreateTime(new Date()); + audit.setUpdateUser(userId); + audit.setUpdateTime(new Date()); + 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); + + 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