From c4aa721a61edb5ff4502d621897c266b98ef3d1c Mon Sep 17 00:00:00 2001
From: baizonghao <1719256278@qq.com>
Date: 星期五, 24 二月 2023 11:18:58 +0800
Subject: [PATCH] 按报警点位统计,按区域统计

---
 ycl-platform/src/main/java/com/ycl/service/message/impl/MessageServiceImpl.java |  126 +++++++++++++++++------------------------
 1 files changed, 53 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..015b95e 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);
@@ -102,6 +102,10 @@
                 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());
             }
@@ -120,75 +124,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());
+        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();
@@ -216,23 +209,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