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/MessageServiceImpl.java | 125 +++++++++++++++++++++++++++++------------ 1 files changed, 87 insertions(+), 38 deletions(-) diff --git a/ycl-platform/src/main/java/com/ycl/service/message/impl/MessageServiceImpl.java b/ycl-platform/src/main/java/com/ycl/service/message/impl/MessageServiceImpl.java index 015b95e..31c5f28 100644 --- a/ycl-platform/src/main/java/com/ycl/service/message/impl/MessageServiceImpl.java +++ b/ycl-platform/src/main/java/com/ycl/service/message/impl/MessageServiceImpl.java @@ -1,6 +1,8 @@ package com.ycl.service.message.impl; +import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.fasterxml.jackson.databind.ObjectMapper; @@ -23,6 +25,7 @@ import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; import org.springframework.mail.javamail.JavaMailSenderImpl; import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.stereotype.Service; @@ -79,20 +82,39 @@ RestTemplate restTemplate; @Override + @SneakyThrows + @Transactional(rollbackFor = Exception.class) + public void sendSMS(Message message) { + Integer messageStatus = sendMessages(message); + + if (messageStatus == 2) { + message.setStatus(2); + message.setRespondResult("鍙戦�佹垚鍔�"); + } + if (messageStatus == 3) { + message.setStatus(3); + message.setRespondResult("鍙戦�佸け璐�"); + } + message.setUpdateTime(new Date()); + message.setSendTime(new Date()); + messageMapper.updateById(message); + } + + @Override @Transactional(rollbackFor = Exception.class) public void sendMessage(Message message) { - Message savedMessage = messageMapper.selectOne(new LambdaQueryWrapper<Message>() - .eq(Message::getTargetTo, message.getTargetTo()) - .eq(Message::getTargetFrom, message.getTargetFrom()) - .eq(Message::getBody, message.getBody()) - .eq(Message::getStatus, 1) - .eq(Message::getHead, message.getHead())); - if (savedMessage != null) { - messageMapper.deleteById(savedMessage); - } +// Message savedMessage = messageMapper.selectOne(new LambdaQueryWrapper<Message>() +// .eq(Message::getTargetTo, message.getTargetTo()) +// .eq(Message::getTargetFrom, message.getTargetFrom()) +// .eq(Message::getBody, message.getBody()) +// .eq(Message::getStatus, 1) +// .eq(Message::getHead, message.getHead())); +// if (savedMessage != null) { +// messageMapper.deleteById(savedMessage); +// } - ArrayList<Long> ids = new ArrayList<>(); + ArrayList<Message> ids = new ArrayList<>(); message.setTargetFrom(umsAdminMapper.selectById(message.getCreateUser()).getUsername()); if (message.getId() == null) { for (String receive : message.getTargetTo().split(",")) { @@ -102,37 +124,39 @@ sendMessage.setSendTime(new Date()); sendMessage.setTargetTo(receive); sendMessage.setSendTime(new Date()); - sendMessage.setPhoneNumber(umsAdminMapper.selectById(receive).getMobile()); - if (ChannelCode.INNER.equals(message.getChannelCode())){ + sendMessage.setPhoneNumber(message.getTargetTo()); + + if (ChannelCode.INNER.equals(message.getChannelCode())) { sendMessage.setIsView(0); } this.save(sendMessage); - ids.add(sendMessage.getId()); + ids.add(sendMessage); } } - switch (message.getChannelCode()) { - //閭欢鍙戦�� - case ChannelCode.SMS: - sendSMS(message, ids); - break; - //鐭俊鍙戦�� - case ChannelCode.MAIL: - sendMail(message); - break; - case ChannelCode.INNER: - break; - default: - throw new ApiException("鏈尮閰嶅埌璇ョ被鍨�"); - } +// switch (message.getChannelCode()) { +// //鐭俊鍙戦�� +// case ChannelCode.SMS: +// sendSMS(message, ids); +// break; +// //閭欢鍙戦�� +// case ChannelCode.MAIL: +// sendMail(message); +// break; +// case ChannelCode.INNER: +// break; +// default: +// throw new ApiException("鏈尮閰嶅埌璇ョ被鍨�"); +// } } @SneakyThrows @Transactional(rollbackFor = Exception.class) - void sendSMS(Message message, List<Long> mesIds) { - String[] ids = message.getTargetTo().split(","); - String[] mobiles = new String[ids.length]; - for (int i = 0; i < ids.length; i++) { - mobiles[i] = umsAdminMapper.selectById(ids[i]).getMobile(); + public void sendSMS(Message message, List<Message> messageList) { + List<String> mobiles = new ArrayList<>(); + List<Long> mesIds = new ArrayList<>(); + for (Message m : messageList) { + mobiles.add(m.getPhoneNumber()); + mesIds.add(m.getId()); } message.setPhoneNumber(StringUtils.join(mobiles, ",")); Integer messageStatus = sendMessages(message); @@ -207,13 +231,16 @@ ObjectMapper objectMapper = new ObjectMapper(); HttpEntity<String> stringHttpEntity = new HttpEntity<>(Base64Utils.encodeToString(objectMapper.writeValueAsBytes(mac)), httpHeaders); - - SendRes sendRes = objectMapper.readValue(restTemplate.postForEntity(url, stringHttpEntity, String.class).getBody(), SendRes.class); - if (sendRes.getRspcod().equals("success")) { - return 2; - } else { - return 3; + ResponseEntity<String> response = restTemplate.postForEntity(url + "/sms/submit", sendReq, String.class); + if(com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotBlank( response.getBody())) { + SendRes sendRes = objectMapper.readValue(response.getBody(), SendRes.class); + if (sendRes.getRspcod().equals("success")) { + return 2; + } else { + return 3; + } } + return 3; } //鍙戦�侀偖浠� @@ -252,6 +279,28 @@ } @Override + public Page<Message> queryMyMessage(Page<Message> page, Long userId) { + List<Message> list = list(); + ArrayList<Long> ids = new ArrayList<>(); + list.forEach(item -> { + String targetTo = item.getTargetTo(); + if (StringUtils.isNotBlank(targetTo)) { + String[] split = targetTo.split(","); + for (String s : split) { + if (userId.equals(Long.getLong(s))) { + ids.add(item.getId()); + break; + } + } + } + }); + if (CollUtil.isEmpty(ids)) { + return new Page<>(); + } + return baseMapper.selectPage(page, new QueryWrapper<Message>().lambda().in(Message::getId, ids)); + } + + @Override public Boolean deleteMessages(List<Long> ids) { LambdaQueryWrapper<Message> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.in(Message::getId, ids).or().in(Message::getParentId, ids); -- Gitblit v1.8.0