From aeea62d121a1a8fd4475da30f1ef8b44b4776c7b Mon Sep 17 00:00:00 2001
From: wl <173@qq.com>
Date: 星期三, 04 一月 2023 14:02:47 +0800
Subject: [PATCH] fix: 店铺消息发送
---
ycl-platform/src/main/java/com/ycl/service/message/impl/MessageServiceImpl.java | 94 ++++++++++++++++++++++++++++++++++++++--------
1 files changed, 77 insertions(+), 17 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..e0c1a53 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
@@ -82,26 +82,29 @@
@Transactional(rollbackFor = Exception.class)
public String 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::getHead, message.getHead()));
- if (savedMessage != null) {
- messageMapper.deleteById(savedMessage);
+ 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);
+ }
}
-
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());
+ this.save(sendMessage);
+ ids.add(sendMessage.getId());
+ }
}
switch (message.getChannelCode()) {
//閭欢鍙戦��
@@ -176,6 +179,63 @@
}
}
+ @Override
+ @SneakyThrows
+ public String sendMessageByPhone(Message message) {
+ Message sendMessage = new Message();
+ BeanUtils.copyProperties(message, sendMessage);
+ sendMessage.setCreateTime(new Date());
+ sendMessage.setSendTime(new Date());
+ sendMessage.setSendTime(new Date());
+ this.save(sendMessage);
+
+ String context = "銆�" + message.getHead() + "銆�" + message.getBody();
+ String addSerial = "";
+ SendReq sendReq = new SendReq();
+ sendReq.setEcName(ecName);
+ sendReq.setApId(apId);
+ sendReq.setSign(sign);
+ sendReq.setContext(context);
+ sendReq.setMobiles(message.getPhoneNumber());
+ 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")) {
+ sendedMessage.setStatus(2);
+ sendedMessage.setRespondResult("鍙戦�佹垚鍔�");
+ sendedMessage.setId(sendMessage.getId());
+ sendedMessage.setUpdateTime(new Date());
+ sendedMessage.setSendTime(new Date());
+ messageMapper.updateById(sendedMessage);
+ return "send message success!";
+ } 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!";
+ }
+ }
+
//鍙戦�侀偖浠�
@SneakyThrows
private void sendMail(Message message) {
--
Gitblit v1.8.0