Browse Source

消息推送代码优化

黄远 5 years ago
parent
commit
a0f135cebc

+ 58 - 0
lift-common/src/main/java/cn.com.ty.lift.common/model/TimeMessage.java

@@ -0,0 +1,58 @@
+package cn.com.ty.lift.common.model;
+
+import cn.com.ty.lift.common.constants.ApiConstants;
+import cn.com.ty.lift.common.constants.WebSocketConstants;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 实时消息推送记录表
+ */
+@Data
+public class TimeMessage implements Serializable {
+
+    private static final long serialVersionUID = 4125096758372084309L;
+
+    @TableId(value = "id", type = IdType.ID_WORKER)
+    private Long id;
+    @TableField("user_id")
+    private Long userId;
+    @TableField("content")
+    private String content;
+    @TableField("type")
+    private Integer type;
+    @TableField("view_flag")
+    private Integer viewFlag;
+    @TableField("device_model")
+    private Integer deviceModel;
+    @TableField("create_user_id")
+    private Long createUserId;
+    @TableField("create_time")
+    private LocalDateTime createTime;
+
+    /**
+     * @param pushToUserId 要推送的用户id
+     * @param msgType      消息类型
+     * @param content      消息类型
+     * @return 返回推送消息
+     * @description 推送消息创建
+     * @date 2020/4/30 5:13 下午
+     */
+    public static TimeMessage create(long pushToUserId, int msgType, String content) {
+        TimeMessage TimeMessage = new TimeMessage();
+        TimeMessage.setContent(content);
+        TimeMessage.setUserId(pushToUserId);
+        TimeMessage.setType(msgType);
+        TimeMessage.setCreateTime(LocalDateTime.now());
+        TimeMessage.setDeviceModel(ApiConstants.DeviceModel.PC);
+        TimeMessage.setCreateUserId(10000L);
+        TimeMessage.setViewFlag(WebSocketConstants.IS_NOT_VIEW);
+        return TimeMessage;
+    }
+
+}

+ 0 - 73
lift-common/src/main/java/cn.com.ty.lift.common/model/TimeyMessage.java

@@ -1,73 +0,0 @@
-package cn.com.ty.lift.common.model;
-
-import cn.com.ty.lift.common.constants.WebSocketConstants;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.time.LocalDate;
-
-/**
- * @author huangyuan
- * @date 2019-12-22
- * @description 实时推送消息实体类
- */
-@Data
-public class TimeyMessage implements Serializable {
-
-    private static final long serialVersionUID = 4125096758372084309L;
-
-    /**
-     * 消息id
-     */
-    private Long id;
-
-    /**
-     * 用户id,要推送的用户id
-     */
-    private Long userId;
-
-    /**
-     * 推送消息内容
-     */
-    private String content;
-
-    /**
-     * 消息类型 1.团队消息 2.工作消息 3.保养消息 4.急修消息 5.年检消息 6.提醒(经营简报)
-     */
-    private Integer type;
-
-    /**
-     * 查看标识:1:已经查看, 0:未查看
-     */
-    private Integer viewFlag;
-
-    /**
-     * 创建者id
-     */
-    private Long createUserId;
-
-    /**
-     * 创建时间
-     */
-    private LocalDate createTime;
-
-    /**
-     * @param pushToUserId 要推送的用户id
-     * @param msgType      消息类型
-     * @param content      消息类型
-     * @return 返回推送消息
-     * @description 推送消息创建
-     * @date 2020/4/30 5:13 下午
-     */
-    public static TimeyMessage create(long pushToUserId, int msgType, String content) {
-        TimeyMessage timeyMessage = new TimeyMessage();
-        timeyMessage.setContent(content);
-        timeyMessage.setUserId(pushToUserId);
-        timeyMessage.setType(msgType);
-        timeyMessage.setCreateTime(LocalDate.now());
-        timeyMessage.setCreateUserId(10000L);
-        timeyMessage.setViewFlag(WebSocketConstants.IS_NOT_VIEW);
-        return timeyMessage;
-    }
-
-}

+ 8 - 8
lift-common/src/main/java/cn.com.ty.lift.common/utils/SendMessageUtil.java

@@ -1,7 +1,7 @@
 package cn.com.ty.lift.common.utils;
 
 import cn.com.ty.lift.common.constants.WebSocketConstants;
-import cn.com.ty.lift.common.model.TimeyMessage;
+import cn.com.ty.lift.common.model.TimeMessage;
 import org.springframework.jms.core.JmsMessagingTemplate;
 import org.springframework.messaging.support.GenericMessage;
 
@@ -28,27 +28,27 @@ public class SendMessageUtil {
                                           String content) {
         if (sendToUserIdList != null && sendToUserIdList.size() > 0) {
             //组合消息
-            List<TimeyMessage> timeyMessageList = new ArrayList<>();
+            List<TimeMessage> TimeMessageList = new ArrayList<>();
             sendToUserIdList.forEach(sendToUserId -> {
-                timeyMessageList.add(TimeyMessage.create(sendToUserId,
+                TimeMessageList.add(TimeMessage.create(sendToUserId,
                         WebSocketConstants.MessageType.TEAM_MSG, content));
             });
             //推送消息
-            return SendMessageUtil.sendMessageToPC(jmsMessagingTemplate, timeyMessageList);
+            return SendMessageUtil.sendMessageToPC(jmsMessagingTemplate, TimeMessageList);
         }
         return false;
     }
 
     /**
      * @param jmsMessagingTemplate 推动模板类
-     * @param timeyMessageList     要推送的消息列表
+     * @param TimeMessageList     要推送的消息列表
      * @return 是否成功 false 失败 true 成功
      * @description 将消息推送到PC端
      * @date 2020/5/2 3:38 下午
      */
-    private static boolean sendMessageToPC(JmsMessagingTemplate jmsMessagingTemplate, List<TimeyMessage> timeyMessageList) {
-        if (timeyMessageList != null && timeyMessageList.size() > 0) {
-            jmsMessagingTemplate.send(WebSocketConstants.PUSH_MESSAGE_TO_PC, new GenericMessage<>(timeyMessageList));
+    private static boolean sendMessageToPC(JmsMessagingTemplate jmsMessagingTemplate, List<TimeMessage> TimeMessageList) {
+        if (TimeMessageList != null && TimeMessageList.size() > 0) {
+            jmsMessagingTemplate.send(WebSocketConstants.PUSH_MESSAGE_TO_PC, new GenericMessage<>(TimeMessageList));
             return true;
         }
         return false;

+ 6 - 8
lift-push/src/main/java/cn/com/ty/lift/push/app/PushConsumer.java

@@ -2,14 +2,12 @@ package cn.com.ty.lift.push.app;
 
 import cn.com.ty.lift.common.constants.WebSocketConstants;
 import cn.com.ty.lift.common.model.PushMessage;
-import cn.com.ty.lift.common.model.TimeyMessage;
+import cn.com.ty.lift.common.model.TimeMessage;
 import cn.com.ty.lift.common.utils.ValuePool;
-import cn.com.ty.lift.push.message.dao.entity.TimeMessage;
 import cn.com.ty.lift.push.message.dao.entity.UserAccount;
 import cn.com.ty.lift.push.message.service.TimeMessageService;
 import cn.com.ty.lift.push.message.service.UserAccountService;
 import cn.com.ty.lift.push.websocket.handler.TimeyMessageHandler;
-import cn.com.ty.lift.push.websocket.service.TimeyMessageService;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -35,7 +33,7 @@ public class PushConsumer {
 
     private XingePush xingePush;
     private JmsMessagingTemplate jmsMessagingTemplate;
-    private TimeyMessageService timeyMessageService;
+    private TimeMessageService TimeMessageService;
     private final UserAccountService userAccountService;
     private final TimeMessageService timeMessageService;
 
@@ -126,10 +124,10 @@ public class PushConsumer {
     }
 
     @JmsListener(destination = WebSocketConstants.PUSH_MESSAGE_TO_PC)
-    public void listenPCAllQueue(List<TimeyMessage> timeyMessageList) {
-        log.info("listen {} receive message: {}", WebSocketConstants.PUSH_MESSAGE_TO_PC, timeyMessageList);
-        TimeyMessageHandler timeyMessageHandler = new TimeyMessageHandler(timeyMessageService);
-        timeyMessageHandler.saveAndPushMessageToUsers(timeyMessageList);
+    public void listenPCAllQueue(List<TimeMessage> timeMessageList) {
+        log.info("listen {} receive message: {}", WebSocketConstants.PUSH_MESSAGE_TO_PC, timeMessageList);
+        TimeyMessageHandler timeMessageHandler = new TimeyMessageHandler(TimeMessageService);
+        timeMessageHandler.saveAndPushMessageToUsers(timeMessageList);
     }
 
     /**

+ 1 - 1
lift-push/src/main/java/cn/com/ty/lift/push/message/controller/TimeMessageController.java

@@ -1,7 +1,7 @@
 package cn.com.ty.lift.push.message.controller;
 
 import cn.com.ty.lift.common.constants.ApiConstants;
-import cn.com.ty.lift.push.message.dao.entity.TimeMessage;
+import cn.com.ty.lift.common.model.TimeMessage;
 import cn.com.ty.lift.push.message.object.MessageBO;
 import cn.com.ty.lift.push.message.object.MessageVo;
 import cn.com.ty.lift.push.message.service.TimeMessageService;

+ 0 - 31
lift-push/src/main/java/cn/com/ty/lift/push/message/dao/entity/TimeMessage.java

@@ -1,31 +0,0 @@
-package cn.com.ty.lift.push.message.dao.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import lombok.Data;
-
-import java.time.LocalDateTime;
-
-/**
- * 实时消息推送记录表
- */
-@Data
-public class TimeMessage {
-    @TableId(value = "id", type = IdType.ID_WORKER)
-    private Long id;
-    @TableField("user_id")
-    private Long userId;
-    @TableField("content")
-    private String content;
-    @TableField("type")
-    private Integer type;
-    @TableField("view_flag")
-    private Integer viewFlag;
-    @TableField("device_model")
-    private Integer deviceModel;
-    @TableField("create_user_id")
-    private Long createUserId;
-    @TableField("create_time")
-    private LocalDateTime createTime;
-}

+ 1 - 1
lift-push/src/main/java/cn/com/ty/lift/push/message/dao/mapper/TimeMessageMapper.java

@@ -1,6 +1,6 @@
 package cn.com.ty.lift.push.message.dao.mapper;
 
-import cn.com.ty.lift.push.message.dao.entity.TimeMessage;
+import cn.com.ty.lift.common.model.TimeMessage;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
 public interface TimeMessageMapper extends BaseMapper<TimeMessage> {

+ 1 - 1
lift-push/src/main/java/cn/com/ty/lift/push/message/object/MessageBO.java

@@ -1,6 +1,6 @@
 package cn.com.ty.lift.push.message.object;
 
-import cn.com.ty.lift.push.message.dao.entity.TimeMessage;
+import cn.com.ty.lift.common.model.TimeMessage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.Data;

+ 1 - 1
lift-push/src/main/java/cn/com/ty/lift/push/message/object/MessageVo.java

@@ -1,6 +1,6 @@
 package cn.com.ty.lift.push.message.object;
 
-import cn.com.ty.lift.push.message.dao.entity.TimeMessage;
+import cn.com.ty.lift.common.model.TimeMessage;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 

+ 1 - 1
lift-push/src/main/java/cn/com/ty/lift/push/message/service/TimeMessageService.java

@@ -1,6 +1,6 @@
 package cn.com.ty.lift.push.message.service;
 
-import cn.com.ty.lift.push.message.dao.entity.TimeMessage;
+import cn.com.ty.lift.common.model.TimeMessage;
 import cn.com.ty.lift.push.message.dao.mapper.TimeMessageMapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;

+ 3 - 3
lift-push/src/main/java/cn/com/ty/lift/push/websocket/config/WebSocketConfig.java

@@ -1,7 +1,7 @@
 package cn.com.ty.lift.push.websocket.config;
 
+import cn.com.ty.lift.push.message.service.TimeMessageService;
 import cn.com.ty.lift.push.websocket.handler.TimeyMessageHandler;
-import cn.com.ty.lift.push.websocket.service.TimeyMessageService;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.scheduling.TaskScheduler;
@@ -24,7 +24,7 @@ import java.util.concurrent.Executors;
 public class WebSocketConfig implements WebSocketConfigurer {
 
     @Resource
-    private TimeyMessageService timeyMessageService;
+    private TimeMessageService  timeMessageService;
 
     @Bean
     public TaskScheduler taskScheduler() {
@@ -33,7 +33,7 @@ public class WebSocketConfig implements WebSocketConfigurer {
 
     @Override
     public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
-        registry.addHandler(new TimeyMessageHandler(timeyMessageService), "/myMessageHandler")
+        registry.addHandler(new TimeyMessageHandler(timeMessageService), "/myMessageHandler")
                 .setAllowedOrigins("*")
                 .addInterceptors(new WebSocketInterceptor());
     }

+ 0 - 12
lift-push/src/main/java/cn/com/ty/lift/push/websocket/dao/mapper/TimeyMessageMapper.java

@@ -1,12 +0,0 @@
-package cn.com.ty.lift.push.websocket.dao.mapper;
-
-import cn.com.ty.lift.common.model.TimeyMessage;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-
-/**
- * @author huangyuan
- * @date 2019-12-22
- * @description
- */
-public interface TimeyMessageMapper extends BaseMapper<TimeyMessage> {
-}

+ 3 - 3
lift-push/src/main/java/cn/com/ty/lift/push/websocket/dao/model/RealTimeMessage.java

@@ -1,6 +1,6 @@
 package cn.com.ty.lift.push.websocket.dao.model;
 
-import cn.com.ty.lift.common.model.TimeyMessage;
+import cn.com.ty.lift.common.model.TimeMessage;
 import lombok.Data;
 
 import java.util.ArrayList;
@@ -15,11 +15,11 @@ import java.util.List;
 public class RealTimeMessage {
 	
 	private Long size;//消息数量
-	private List<TimeyMessage> msgList = new ArrayList<>();//及时消息列表
+	private List<TimeMessage> msgList = new ArrayList<>();//及时消息列表
 	
 	public RealTimeMessage() {}
 	
-	public RealTimeMessage(List<TimeyMessage> msgList) {
+	public RealTimeMessage(List<TimeMessage> msgList) {
 		this.msgList = msgList;
 	}
 	

+ 28 - 27
lift-push/src/main/java/cn/com/ty/lift/push/websocket/handler/TimeyMessageHandler.java

@@ -2,9 +2,9 @@ package cn.com.ty.lift.push.websocket.handler;
 
 import cn.com.ty.lift.common.constants.ApiConstants;
 import cn.com.ty.lift.common.constants.WebSocketConstants;
-import cn.com.ty.lift.common.model.TimeyMessage;
+import cn.com.ty.lift.common.model.TimeMessage;
+import cn.com.ty.lift.push.message.service.TimeMessageService;
 import cn.com.ty.lift.push.websocket.dao.model.RealTimeMessage;
-import cn.com.ty.lift.push.websocket.service.TimeyMessageService;
 import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import org.springframework.web.socket.*;
@@ -16,13 +16,13 @@ import java.util.Map;
 
 public class TimeyMessageHandler implements WebSocketHandler {
 
-    private TimeyMessageService timeyMessageService;
+    private TimeMessageService timeMessageService;
 
     public TimeyMessageHandler() {
     }
 
-    public TimeyMessageHandler(TimeyMessageService timeyMessageService) {
-        this.timeyMessageService = timeyMessageService;
+    public TimeyMessageHandler(TimeMessageService TimeMessageService) {
+        this.timeMessageService = TimeMessageService;
     }
 
     //在线用户列表
@@ -39,12 +39,13 @@ public class TimeyMessageHandler implements WebSocketHandler {
         Long userId = getCurrentUser(session);
         users.put(userId, session);
         //获取用户实时消息
-        List<TimeyMessage> timeyMessageList = timeyMessageService.list(new QueryWrapper<TimeyMessage>()
+        List<TimeMessage> TimeMessageList = timeMessageService.list(new QueryWrapper<TimeMessage>()
                 .eq("view_flag", WebSocketConstants.IS_NOT_VIEW)
                 .eq("user_id", userId)
+                .eq("device_model", ApiConstants.DeviceModel.PC)
         );
         //将消息推送给用户
-        pushMessageToUser(userId, timeyMessageList);
+        pushMessageToUser(userId, TimeMessageList);
     }
 
     //接收socket信息
@@ -54,20 +55,20 @@ public class TimeyMessageHandler implements WebSocketHandler {
     }
 
     /**
-     * @param timeyMessages 推送的消息
+     * @param TimeMessages 推送的消息
      * @return 是否推送成功
      * @description 保存用户信息,并将消息推送给多个用户
      * @date 2020/5/2 4:28 下午
      */
-    public boolean saveAndPushMessageToUsers(List<TimeyMessage> timeyMessages) {
-        if (timeyMessages != null && timeyMessages.size() > 0) {
+    public boolean saveAndPushMessageToUsers(List<TimeMessage> TimeMessages) {
+        if (TimeMessages != null && TimeMessages.size() > 0) {
             //先将即使消息保存到数据库
-            if (timeyMessageService.saveBatch(timeyMessages)) {
+            if (timeMessageService.saveBatch(TimeMessages)) {
                 List<Long> userIds = new ArrayList<>();
-                timeyMessages.forEach(timeyMessage -> {
-                    userIds.add(timeyMessage.getUserId());
+                TimeMessages.forEach(TimeMessage -> {
+                    userIds.add(TimeMessage.getUserId());
                 });
-                return pushMessageToUsers(userIds, timeyMessages);
+                return pushMessageToUsers(userIds, TimeMessages);
             }
         }
         return false;
@@ -78,9 +79,9 @@ public class TimeyMessageHandler implements WebSocketHandler {
      * @Author huangyuan
      * @Description 给多个用户推送消息
      * @Date 21:36 2019-04-19
-     * @Param [userIds, timeyMessages, count]
+     * @Param [userIds, TimeMessages, count]
      **/
-    public static boolean pushMessageToUsers(List<Long> userIds, List<TimeyMessage> timeyMessages) {
+    public static boolean pushMessageToUsers(List<Long> userIds, List<TimeMessage> TimeMessages) {
         try {
             if (userIds != null && userIds.size() > 0) {
                 for (Long userId : userIds) {
@@ -88,9 +89,9 @@ public class TimeyMessageHandler implements WebSocketHandler {
                     if (session != null) {
                         //新建消息体
                         RealTimeMessage realTimeMessage;
-                        if (timeyMessages != null && timeyMessages.size() > 0) {
-                            realTimeMessage = new RealTimeMessage(timeyMessages);
-                            realTimeMessage.setSize((long) timeyMessages.size());
+                        if (TimeMessages != null && TimeMessages.size() > 0) {
+                            realTimeMessage = new RealTimeMessage(TimeMessages);
+                            realTimeMessage.setSize((long) TimeMessages.size());
                         } else {
                             realTimeMessage = new RealTimeMessage();
                             realTimeMessage.setSize(0L);
@@ -112,12 +113,12 @@ public class TimeyMessageHandler implements WebSocketHandler {
      * @Author huangyuan
      * @Description 把消息推给单个用户
      * @Date 21:35 2019-04-19
-     * @Param [userId, timeyMessages]
+     * @Param [userId, TimeMessages]
      **/
-    public static boolean pushMessageToUser(Long userId, List<TimeyMessage> timeyMessages) {
+    public static boolean pushMessageToUser(Long userId, List<TimeMessage> TimeMessages) {
         List<Long> userIds = new ArrayList<>();
         userIds.add(userId);
-        return pushMessageToUsers(userIds, timeyMessages);
+        return pushMessageToUsers(userIds, TimeMessages);
     }
 
     /**
@@ -125,12 +126,12 @@ public class TimeyMessageHandler implements WebSocketHandler {
      * @Author huangyuan
      * @Description 给单独用户推送信息
      * @Date 00:35 2019-04-20
-     * @Param [userId, timeyMessage]
+     * @Param [userId, TimeMessage]
      **/
-    public static boolean pushMessageToUser(Long userId, TimeyMessage timeyMessage) {
-        List<TimeyMessage> timeyMessageList = new ArrayList<>();
-        timeyMessageList.add(timeyMessage);
-        return pushMessageToUser(userId, timeyMessageList);
+    public static boolean pushMessageToUser(Long userId, TimeMessage TimeMessage) {
+        List<TimeMessage> TimeMessageList = new ArrayList<>();
+        TimeMessageList.add(TimeMessage);
+        return pushMessageToUser(userId, TimeMessageList);
     }
 
     @Override

+ 0 - 16
lift-push/src/main/java/cn/com/ty/lift/push/websocket/service/TimeyMessageService.java

@@ -1,16 +0,0 @@
-package cn.com.ty.lift.push.websocket.service;
-
-import cn.com.ty.lift.common.model.TimeyMessage;
-import cn.com.ty.lift.push.websocket.dao.mapper.TimeyMessageMapper;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.stereotype.Service;
-
-/**
- * @author huangyuan
- * @date 2019-12-22
- * @description
- */
-@Service
-public class TimeyMessageService extends ServiceImpl<TimeyMessageMapper, TimeyMessage> implements IService<TimeyMessage> {
-}