From 4a7367a869ef12375ea6678ca44e102b8919c624 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 12 一月 2022 16:53:42 +0800
Subject: [PATCH] 极光推送完善(推送通知与透传消息)

---
 service-push/src/main/java/com/ks/push/manager/PushManager.java |   33 +++++++++++++++++++++------------
 1 files changed, 21 insertions(+), 12 deletions(-)

diff --git a/service-push/src/main/java/com/ks/push/manager/PushManager.java b/service-push/src/main/java/com/ks/push/manager/PushManager.java
index a830a6d..3d8f061 100644
--- a/service-push/src/main/java/com/ks/push/manager/PushManager.java
+++ b/service-push/src/main/java/com/ks/push/manager/PushManager.java
@@ -36,11 +36,10 @@
     private BPushPlatformAppInfoManager bPushPlatformAppInfoManager;
 
     @Resource
-    private RedisTemplate<String, Object> redisTemplate;
-
-    @Resource
     private PushExcuteResultManager pushExcuteResultManager;
 
+    @Resource
+    private RedisTemplate redisTemplate;
 
 
     /**
@@ -55,6 +54,11 @@
             task.setCreateTime(new Date());
         }
         task.setId(BPushTask.createId());
+
+        if (task.getState() == null) {
+            task.setState(BPushTask.STATE_NOT_START);
+        }
+
         bPushTaskDao.save(task);
         logger.info("鍒涘缓鎺ㄩ�佹垚鍔�#taskId:{}", task.getId());
         return task.getId();
@@ -77,13 +81,19 @@
         }
 
         String key = "task-" + taskId;
-        if (!redisTemplate.opsForValue().setIfAbsent(key, "1", 5 * 60, TimeUnit.SECONDS)) {
+
+        Boolean s = redisTemplate.opsForValue().setIfAbsent(key, "1", 5 * 60, TimeUnit.SECONDS);
+
+        if (s == null || !s) {
             throw new BPushTaskException(BPushTaskException.CODE_BUSY, "鏈嶅姟鍣ㄧ箒蹇欙紝璇风◢鍚庡啀璇�");
         }
-        logger.info("寮�濮嬪惎鍔ㄦ帹閫�#taskId:{}", task.getId());
-        updateState(taskId, BPushTask.STATE_PUSHING, null);
-        boolean hasDevice = false;
+
+
         try {
+            logger.info("寮�濮嬪惎鍔ㄦ帹閫�#taskId:{}", task.getId());
+            updateState(taskId, BPushTask.STATE_PUSHING, null);
+            boolean hasDevice = false;
+
             // 鏌ヨ鍙帹閫佺殑骞冲彴
             List<BPushPlatformAppInfo> list = bPushPlatformAppInfoManager.listByAppCode(task.getAppCode());
 
@@ -132,15 +142,14 @@
                 }
                 logger.info("鍔犲叆鎺ㄩ�侀槦鍒�#浠诲姟Id:{}#骞冲彴:{}#鎺ㄩ�佹暟閲�:{}", task.getId(), result.getPushPlatform().name(), count);
             }
+
+            if (!hasDevice) {
+                updateState(taskId, BPushTask.STATE_FINSIH, "娌℃湁婊¤冻鏉′欢鐨勫彲鎺ㄩ�佽澶�");
+            }
         } finally {
             redisTemplate.delete(key);
         }
-
         //娌℃湁鍙帹閫佺殑璁惧
-        if (!hasDevice) {
-            updateState(taskId, BPushTask.STATE_FINSIH, "娌℃湁婊¤冻鏉′欢鐨勫彲鎺ㄩ�佽澶�");
-        }
-
         logger.info("鍚姩鎺ㄩ�佺粨鏉�#taskId:{}", task.getId());
     }
 

--
Gitblit v1.8.0