From 1fa316212257ce68dc5b4085b0a5690685b857af Mon Sep 17 00:00:00 2001
From: wl <173@qq.com>
Date: 星期四, 05 一月 2023 10:24:06 +0800
Subject: [PATCH] fix: 发送消息
---
ycl-platform/src/main/java/com/ycl/service/message/impl/MessageServiceImpl.java | 122 ++++++++++++++++------------------------
1 files changed, 49 insertions(+), 73 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 e0c1a53..bcf472d 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
@@ -80,21 +80,21 @@
@Override
@Transactional(rollbackFor = Exception.class)
- public String sendMessage(Message message) {
+ public void sendMessage(Message message) {
- if (!StringUtils.equals(message.getChannelCode(),ChannelCode.SMS)){
- Message savedMessage = messageMapper.selectOne(new LambdaQueryWrapper<Message>()
- .eq(Message::getTargetTo, message.getTargetTo())
- .eq(Message::getTargetFrom, message.getTargetFrom())
- .eq(Message::getBody, message.getBody())
- .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<>();
message.setTargetFrom(umsAdminMapper.selectById(message.getCreateUser()).getUsername());
- if (message.getId()==null) {
+ if (message.getId() == null) {
for (String receive : message.getTargetTo().split(",")) {
Message sendMessage = new Message();
BeanUtils.copyProperties(message, sendMessage);
@@ -120,75 +120,64 @@
default:
throw new ApiException("鏈尮閰嶅埌璇ョ被鍨�");
}
- return "send message success!";
}
@SneakyThrows
- private void sendSMS(Message message, List<Long> mesIds) {
- String context = "銆�" + message.getHead() + "銆�" + message.getBody();
- String addSerial = "";
- SendReq sendReq = new SendReq();
- sendReq.setEcName(ecName);
- sendReq.setApId(apId);
- sendReq.setSign(sign);
- sendReq.setContext(context);
+ @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();
}
- sendReq.setMobiles(StringUtils.join(mobiles, ","));
- sendReq.setAddSerial(addSerial);
-
- StringBuffer mac = new StringBuffer();
- mac.append(ecName);
- mac.append(apId);
- mac.append(sendReq.getMobiles());
- mac.append(context);
- mac.append(sign);
- mac.append(addSerial);
- sendReq.setMac(MD5Util.md5Encrypt32Lower(mac.toString()));
-
- HttpHeaders httpHeaders = new HttpHeaders();
- httpHeaders.setContentType(MediaType.APPLICATION_JSON);
-
- 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();
- 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);
+ 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("鍙戦�佹垚鍔�");
}
- } else {
- for (Long id : mesIds) {
- sendedMessage.setStatus(3);
- sendedMessage.setRespondResult("鍙戦�佸け璐�");
- sendedMessage.setSendTime(new Date());
- sendedMessage.setId(id);
- sendedMessage.setUpdateTime(new Date());
- messageMapper.updateById(sendedMessage);
+ if (messageStatus == 3) {
+ messaged.setStatus(3);
+ messaged.setRespondResult("鍙戦�佸け璐�");
}
+ messaged.setId(id);
+ messaged.setUpdateTime(new Date());
+ messaged.setSendTime(new Date());
+ messageMapper.updateById(messaged);
}
}
@Override
@SneakyThrows
- public String sendMessageByPhone(Message message) {
+ @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());
+ message.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();
@@ -216,23 +205,10 @@
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();
if (sendRes.getRspcod().equals("success")) {
- sendedMessage.setStatus(2);
- sendedMessage.setRespondResult("鍙戦�佹垚鍔�");
- sendedMessage.setId(sendMessage.getId());
- sendedMessage.setUpdateTime(new Date());
- sendedMessage.setSendTime(new Date());
- messageMapper.updateById(sendedMessage);
- return "send message success!";
+ return 2;
} else {
- sendedMessage.setStatus(3);
- sendedMessage.setRespondResult("鍙戦�佸け璐�");
- sendedMessage.setSendTime(new Date());
- sendedMessage.setId(sendedMessage.getId());
- sendedMessage.setUpdateTime(new Date());
- messageMapper.updateById(sendedMessage);
- return "send message fail!";
+ return 3;
}
}
--
Gitblit v1.8.0