From b73a823a3a73addec48affd517aa2e83b2c7156c Mon Sep 17 00:00:00 2001
From: wl <173@qq.com>
Date: 星期三, 04 一月 2023 15:52:19 +0800
Subject: [PATCH] fix: 暂存保存发送人

---
 ycl-platform/src/main/java/com/ycl/service/message/impl/MessageServiceImpl.java |   98 +++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 79 insertions(+), 19 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 f57fa44..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
@@ -4,8 +4,8 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fasterxml.jackson.databind.ObjectMapper;
-import com.ycl.controller.video.common.constant.ChannelCode;
-import com.ycl.controller.video.common.util.CommonUtils;
+import com.ycl.common.constant.ChannelCode;
+import com.ycl.common.util.CommonUtils;
 import com.ycl.dto.message.MessageParam;
 import com.ycl.entity.message.Message;
 import com.ycl.entity.message.SendReq;
@@ -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