From 71c9980740cabdf03e842588bf1f6c851c35da6b Mon Sep 17 00:00:00 2001 From: zhanghua <314079846@qq.com> Date: 星期三, 14 六月 2023 21:11:08 +0800 Subject: [PATCH] bug修改 --- ycl-platform/src/main/java/com/ycl/service/message/impl/MessageServiceImpl.java | 116 +++++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 79 insertions(+), 37 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 04e0ea9..6c5e7e1 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 @@ -23,6 +23,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; @@ -32,6 +33,7 @@ import javax.annotation.Resource; import javax.mail.internet.MimeMessage; +import javax.xml.ws.Response; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -80,12 +82,13 @@ @Override @Transactional(rollbackFor = Exception.class) - public String sendMessage(Message message) { + 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); @@ -93,15 +96,21 @@ ArrayList<Long> ids = new ArrayList<>(); message.setTargetFrom(umsAdminMapper.selectById(message.getCreateUser()).getUsername()); - for (String receive : message.getTargetTo().split(",")) { - Message sendMessage = new Message(); - BeanUtils.copyProperties(message, sendMessage); - sendMessage.setCreateTime(new Date()); - sendMessage.setSendTime(new Date()); - sendMessage.setTargetTo(receive); - sendMessage.setSendTime(new Date()); - this.save(sendMessage); - ids.add(sendMessage.getId()); + if (message.getId() == null) { + for (String receive : message.getTargetTo().split(",")) { + Message sendMessage = new Message(); + BeanUtils.copyProperties(message, sendMessage); + sendMessage.setCreateTime(new Date()); + sendMessage.setSendTime(new Date()); + sendMessage.setTargetTo(receive); + sendMessage.setSendTime(new Date()); + sendMessage.setPhoneNumber(umsAdminMapper.selectById(receive).getMobile()); + if (ChannelCode.INNER.equals(message.getChannelCode())) { + sendMessage.setIsView(0); + } + this.save(sendMessage); + ids.add(sendMessage.getId()); + } } switch (message.getChannelCode()) { //閭欢鍙戦�� @@ -117,11 +126,64 @@ default: throw new ApiException("鏈尮閰嶅埌璇ョ被鍨�"); } - return "send message success!"; } @SneakyThrows - private void sendSMS(Message message, List<Long> mesIds) { + @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(); + } + message.setPhoneNumber(StringUtils.join(mobiles, ",")); + Integer messageStatus = sendMessages(message); + Message messaged = new Message(); + for (Long id : mesIds) { + if (messageStatus == 2) { + messaged.setStatus(2); + messaged.setRespondResult("鍙戦�佹垚鍔�"); + } + if (messageStatus == 3) { + messaged.setStatus(3); + messaged.setRespondResult("鍙戦�佸け璐�"); + } + messaged.setId(id); + messaged.setUpdateTime(new Date()); + messaged.setSendTime(new Date()); + messageMapper.updateById(messaged); + } + } + + @Override + @SneakyThrows + @Transactional(rollbackFor = Exception.class) + public void sendMessageByPhone(Message message) { + Message sendMessage = new Message(); + BeanUtils.copyProperties(message, sendMessage); + sendMessage.setCreateTime(new Date()); + sendMessage.setSendTime(new Date()); + sendMessage.setSendTime(new Date()); + sendMessage.setTargetFrom(umsAdminMapper.selectById(message.getCreateUser()).getUsername()); + this.save(sendMessage); + Integer messageStatus = sendMessages(message); + Message messaged = new Message(); + if (messageStatus == 2) { + messaged.setStatus(2); + messaged.setRespondResult("鍙戦�佹垚鍔�"); + } + if (messageStatus == 3) { + messaged.setStatus(3); + messaged.setRespondResult("鍙戦�佸け璐�"); + } + messaged.setId(sendMessage.getId()); + messaged.setUpdateTime(new Date()); + messaged.setSendTime(new Date()); + messageMapper.updateById(messaged); + } + + @SneakyThrows + private Integer sendMessages(Message message) { String context = "銆�" + message.getHead() + "銆�" + message.getBody(); String addSerial = ""; SendReq sendReq = new SendReq(); @@ -129,12 +191,7 @@ sendReq.setApId(apId); sendReq.setSign(sign); sendReq.setContext(context); - 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(); - } - sendReq.setMobiles(StringUtils.join(mobiles, ",")); + sendReq.setMobiles(message.getPhoneNumber()); sendReq.setAddSerial(addSerial); StringBuffer mac = new StringBuffer(); @@ -152,27 +209,12 @@ 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); - Message sendedMessage = new Message(); + ResponseEntity<String> response = restTemplate.postForEntity(url + "/sms/submit", sendReq, String.class); + SendRes sendRes = objectMapper.readValue(response.getBody(), SendRes.class); if (sendRes.getRspcod().equals("success")) { - for (Long id : mesIds) { - sendedMessage.setStatus(2); - sendedMessage.setRespondResult("鍙戦�佹垚鍔�"); - sendedMessage.setId(id); - sendedMessage.setUpdateTime(new Date()); - sendedMessage.setSendTime(new Date()); - messageMapper.updateById(sendedMessage); - } + return 2; } else { - for (Long id : mesIds) { - sendedMessage.setStatus(3); - sendedMessage.setRespondResult("鍙戦�佸け璐�"); - sendedMessage.setSendTime(new Date()); - sendedMessage.setId(id); - sendedMessage.setUpdateTime(new Date()); - messageMapper.updateById(sendedMessage); - } + return 3; } } -- Gitblit v1.8.0