Browse Source

推送返回唯一标识

sunhh 1 year ago
parent
commit
19ce449363

+ 5 - 0
business-service/src/main/java/com/ozs/service/entity/MsgAppPush.java

@@ -31,6 +31,11 @@ public class MsgAppPush extends BaseEntity implements Serializable {
     @TableId(value = "id", type = IdType.AUTO)
     private Long id;
 
+    /**
+     * 唯一标识- uuid
+     */
+    private String pushId;
+
     /**
      * 报警唯一标识
      */

+ 5 - 0
business-service/src/main/java/com/ozs/service/entity/MsgWebPush.java

@@ -28,6 +28,11 @@ public class MsgWebPush extends BaseEntity {
     @TableId(value = "id", type = IdType.AUTO)
     private Long id;
 
+    /**
+     * 唯一标识- uuid
+     */
+    private String pushId;
+
     /**
      * 报警唯一标识
      */

+ 5 - 0
business-service/src/main/java/com/ozs/service/entity/vo/MsgAlarmResp.java

@@ -30,6 +30,11 @@ public class MsgAlarmResp implements Serializable {
 
     private long id;
 
+    /**
+     * web,app 唯一标识-uuid
+     */
+    private String pushId;
+
     /**
      * 线路名称
      */

+ 3 - 3
hazard-admin/src/main/java/com/ozs/web/controller/websocket/JPushUtil.java

@@ -69,11 +69,11 @@ public class JPushUtil {
      * @param extrasparam 扩展字段(通常传跳转的链接)
      * @return 0推送失败,1推送成功
      */
-    public int sendToRegistrationId(String alias, String notification_title, String msg_title, String msg_content, String extrasparam) {
+    public static int sendToRegistrationId(String alias, String notification_title, String msg_title, String msg_content, String extrasparam) {
         JPushClient jPushClient = new JPushClient(MASTERSECRET, APPKER);
         int result = 0;
         try {
-            PushPayload pushPayload= this.buildPushObject_all_alias_alertWithTitle(alias, notification_title, msg_title, msg_content, extrasparam);
+            PushPayload pushPayload= JPushUtil.buildPushObject_all_alias_alertWithTitle(alias, notification_title, msg_title, msg_content, extrasparam);
             PushResult pushResult = jPushClient.sendPush(pushPayload);
             if(pushResult.getResponseCode() == 200){
                 result=1;
@@ -219,7 +219,7 @@ public class JPushUtil {
      * @param extrasparam
      * @return
      */
-    private PushPayload buildPushObject_all_alias_alertWithTitle(String alias, String notification_title, String msg_title, String msg_content, String extrasparam) {
+    private static PushPayload buildPushObject_all_alias_alertWithTitle(String alias, String notification_title, String msg_title, String msg_content, String extrasparam) {
         //创建一个IosAlert对象,可指定APNs的alert、title等字段
         //IosAlert iosAlert =  IosAlert.newBuilder().setTitleAndBody("title", "alert body").build();
         return PushPayload.newBuilder()

+ 95 - 41
hazard-admin/src/main/java/com/ozs/web/controller/websocket/WebSocketConteoller.java

@@ -60,11 +60,11 @@ public class WebSocketConteoller extends BaseController {
             wrapper.eq(BaseCameraManagement::getCameraCode, msgAlarm.getCameraCode());
         }
         BaseCameraManagement baseCameraManagement = baseCameraManagementService.getOne(wrapper);
-        log.info("baseCameraManagement-----"+baseCameraManagement);
+        log.info("baseCameraManagement-----" + baseCameraManagement);
         // 获取推送人ID列表
-        log.info("publish-----"+baseCameraManagement.getCreateBy()+"-------------"+baseCameraManagement.getDeptId());
+        log.info("publish-----" + baseCameraManagement.getCreateBy() + "-------------" + baseCameraManagement.getDeptId());
         Set<String> set = baseUserService.getUserIdList(baseCameraManagement.getCreateBy(), baseCameraManagement.getDeptId());
-        log.info("set-----"+set);
+        log.info("set-----" + set);
         String[] list = set.toArray(new String[set.size()]);
         List<String> userIdList = new ArrayList<>(set);
         MsgAlarmResp msgAlarmResp = new MsgAlarmResp();
@@ -84,15 +84,41 @@ public class WebSocketConteoller extends BaseController {
         if (!StringUtils.isEmpty(msgAlarm.getImageUrl())) {
             String[] split = msgAlarm.getImageUrl().split(";");
             ArrayList<String> objects = new ArrayList<>(Arrays.asList(split));
-            log.info("publish--------"+objects);
+            log.info("publish--------" + objects);
             msgAlarmResp.setImageUrls(objects);
         }
         if (!StringUtils.isEmpty(msgAlarm.getId())) {
             msgAlarmResp.setId(msgAlarm.getId());
         }
-        String content = objStr(msgAlarmResp);
-        // 推送消息reqMsgAlarmVo
-        webSocketServer.sendMoreMessage(list, content);
+        String userIdLogin = "admin编码";
+        SysUser user = userService.selectUserById(1L);
+        if (!ObjectUtils.isEmpty(user)) {
+            userIdLogin = user.getUserId();
+        }
+        String alarmId = msgAlarm.getAlarmId();
+        for (String userid : list) {
+            String pushId = UUID.randomUUID().toString();
+            msgAlarmResp.setPushId(pushId);
+            String content = objStr(msgAlarmResp);
+            // 推送消息reqMsgAlarmVo
+            webSocketServer.sendOneMessage(userid, content);
+
+            // 存入数据
+            MsgWebPush msgWebPush = new MsgWebPush();
+            // 状态:1未读;2已读
+            msgWebPush.setStatus(1);
+            msgWebPush.setPushId(pushId);
+            msgWebPush.setAlarmId(alarmId);
+            msgWebPush.setReceiveBy(userid);
+            msgWebPush.setCreateBy(userIdLogin);
+            msgWebPush.setCreateTime(new Date());
+            msgWebPush.setUpdateBy(userIdLogin);
+            msgWebPush.setUpdateTime(new Date());
+            msgWebPushService.save(msgWebPush);
+        }
+//        String content = objStr(msgAlarmResp);
+//        // 推送消息reqMsgAlarmVo
+//        webSocketServer.sendMoreMessage(list, content);
         // app 消息推送
         List<String> alias = new ArrayList<>();
         if (!StringUtils.isEmpty(userIdList) || userIdList.size() > 0) {
@@ -103,42 +129,69 @@ public class WebSocketConteoller extends BaseController {
         // list去重
         List<String> listString = distinct(alias);
         if (!StringUtils.isEmpty(listString) || listString.size() > 0) {
-            Date alarmTime = msgAlarm.getAlarmTime();
-            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-            String formatDate = sdf.format(alarmTime != null ? alarmTime : new Date());
-            JPushUtil.sendToRegistrationId(
-                    listString,
-                    "报警通知!", cameraName != null ? cameraName : "",
-                    // content,
-                    formatDate + "     " + (msgAlarmResp.getAlarmType() == 1 ? "泥石流" : msgAlarmResp.getAlarmType()) + "     " + (baseCameraManagement.getLineDir() == 1 ? "上行" : "下行") + "     " + mile + "     " + endMile,
-                    content);
-        }
-        // 存入数据
-        if (!StringUtils.isEmpty(msgAlarm.getAlarmId()) || !StringUtils.isEmpty(userIdList)) {
-            String userIdLogin = "admin编码";
-            SysUser user = userService.selectUserById(1L);
-            if (!ObjectUtils.isEmpty(user)) {
-                userIdLogin = user.getUserId();
-            }
-            String alarmId = msgAlarm.getAlarmId();
-            for (String userId : userIdList) {
-                MsgWebPush msgWebPush = new MsgWebPush();
+            for (String userid : listString) {
+                String pushId = UUID.randomUUID().toString();
+                msgAlarmResp.setPushId(UUID.randomUUID().toString());
+                String content = objStr(msgAlarmResp);
+                Date alarmTime = msgAlarm.getAlarmTime();
+                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                String formatDate = sdf.format(alarmTime != null ? alarmTime : new Date());
+                JPushUtil.sendToRegistrationId(
+                        userid,
+                        "报警通知!", cameraName != null ? cameraName : "",
+                        // content,
+                        formatDate + "     " + (msgAlarmResp.getAlarmType() == 1 ? "泥石流" : msgAlarmResp.getAlarmType()) + "     " + (baseCameraManagement.getLineDir() == 1 ? "上行" : "下行") + "     " + mile + "     " + endMile,
+                        content);
+
+                // 存入数据
+                MsgAppPush msgAppPush = new MsgAppPush();
                 // 状态:1未读;2已读
-                msgWebPush.setStatus(1);
-                msgWebPush.setAlarmId(alarmId);
-                msgWebPush.setReceiveBy(userId);
-                msgWebPush.setCreateBy(userIdLogin);
-                msgWebPush.setCreateTime(new Date());
-                msgWebPush.setUpdateBy(userIdLogin);
-                msgWebPush.setUpdateTime(new Date());
-                msgWebPushService.save(msgWebPush);
-                if (!StringUtils.isEmpty(alias) || alias.size() > 0) {
-                    MsgAppPush msgAppPush = new MsgAppPush();
-                    BeanUtils.copyProperties(msgWebPush, msgAppPush);
-                    msgAppPushService.save(msgAppPush);
-                }
+                msgAppPush.setStatus(1);
+                msgAppPush.setPushId(pushId);
+                msgAppPush.setAlarmId(alarmId);
+                msgAppPush.setReceiveBy(userid);
+                msgAppPush.setCreateBy(userIdLogin);
+                msgAppPush.setCreateTime(new Date());
+                msgAppPush.setUpdateBy(userIdLogin);
+                msgAppPush.setUpdateTime(new Date());
+                msgAppPushService.save(msgAppPush);
             }
+//            Date alarmTime = msgAlarm.getAlarmTime();
+//            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+//            String formatDate = sdf.format(alarmTime != null ? alarmTime : new Date());
+//            JPushUtil.sendToRegistrationId(
+//                    listString,
+//                    "报警通知!", cameraName != null ? cameraName : "",
+//                    // content,
+//                    formatDate + "     " + (msgAlarmResp.getAlarmType() == 1 ? "泥石流" : msgAlarmResp.getAlarmType()) + "     " + (baseCameraManagement.getLineDir() == 1 ? "上行" : "下行") + "     " + mile + "     " + endMile,
+//                    content);
         }
+//        // 存入数据
+//        if (!StringUtils.isEmpty(msgAlarm.getAlarmId()) || !StringUtils.isEmpty(userIdList)) {
+//            String userIdLogin = "admin编码";
+//            SysUser user = userService.selectUserById(1L);
+//            if (!ObjectUtils.isEmpty(user)) {
+//                userIdLogin = user.getUserId();
+//            }
+//            String alarmId = msgAlarm.getAlarmId();
+//            for (String userId : userIdList) {
+//                MsgWebPush msgWebPush = new MsgWebPush();
+//                // 状态:1未读;2已读
+//                msgWebPush.setStatus(1);
+//                msgWebPush.setAlarmId(alarmId);
+//                msgWebPush.setReceiveBy(userId);
+//                msgWebPush.setCreateBy(userIdLogin);
+//                msgWebPush.setCreateTime(new Date());
+//                msgWebPush.setUpdateBy(userIdLogin);
+//                msgWebPush.setUpdateTime(new Date());
+//                msgWebPushService.save(msgWebPush);
+//                if (!StringUtils.isEmpty(alias) || alias.size() > 0) {
+//                    MsgAppPush msgAppPush = new MsgAppPush();
+//                    BeanUtils.copyProperties(msgWebPush, msgAppPush);
+//                    msgAppPushService.save(msgAppPush);
+//                }
+//            }
+//        }
         HashMap<String, Object> map = new HashMap<>();
         map.put("code", 200);
         return map;
@@ -147,11 +200,12 @@ public class WebSocketConteoller extends BaseController {
     /**
      * 去除重复数据
      * 由于Set的无序性,不会保持原来顺序
+     *
      * @param list
      */
     public static List<String> distinct(List<String> list) {
         final boolean sta = null != list && list.size() > 0;
-        List doubleList= new ArrayList();
+        List doubleList = new ArrayList();
         if (sta) {
             Set set = new HashSet();
             set.addAll(list);