From 39f08dd934cde1a02f1c243faa43174fa474c87f Mon Sep 17 00:00:00 2001
From: wl <173@qq.com>
Date: 星期二, 08 十一月 2022 11:11:35 +0800
Subject: [PATCH] 消息中心展示
---
ycl-platform/src/main/java/com/ycl/service/message/impl/SmsAuditServiceImpl.java | 140 ++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 138 insertions(+), 2 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..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,10 +4,24 @@
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.*;
+import java.util.stream.Collectors;
/**
* <p>
@@ -19,14 +33,136 @@
*/
@Service
public class SmsAuditServiceImpl extends ServiceImpl<SmsAuditMapper, SmsAudit> implements ISmsAuditService {
+
+ @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());
+ }
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);
+ //鍙戦�佺煭淇�
+ 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