| | |
| | | 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.*; |
| | |
| | | |
| | | /** |
| | | * <p> |
| | | * 短信审核 服务实现类 |
| | | * 短信审核 服务实现类 |
| | | * </p> |
| | | * |
| | | * @author mg |
| | |
| | | |
| | | @Resource |
| | | private UmsDepartManageMapper umsDepartManageMapper; |
| | | @Resource |
| | | private MessageMapper messageMapper; |
| | | |
| | | @Resource |
| | | private UmsAdminService adminService; |
| | | |
| | | @Override |
| | | public IPage<SmsAudit> list(SmsAudit smsAudit) { |
| | |
| | | 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<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); |
| | | 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()); |
| | |
| | | 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; |
| | | } |
| | | } |