Răsfoiți Sursa

消息推送

24282 1 an în urmă
părinte
comite
37da8d7ed4

+ 10 - 4
hx-socket/src/main/java/com/fjhx/socket/controller/push/PushAnnouncementController.java

@@ -1,13 +1,18 @@
 package com.fjhx.socket.controller.push;
 
-import org.springframework.web.bind.annotation.*;
+import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.fjhx.socket.entity.push.vo.PushAnnouncementVo;
-import com.fjhx.socket.entity.push.dto.PushAnnouncementSelectDto;
 import com.fjhx.socket.entity.push.dto.PushAnnouncementDto;
-import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.socket.entity.push.dto.PushAnnouncementSelectDto;
+import com.fjhx.socket.entity.push.vo.PushAnnouncementVo;
 import com.fjhx.socket.service.push.PushAnnouncementService;
+import com.ruoyi.common.constant.BaseSourceConstant;
+import com.ruoyi.common.core.domain.BaseSelectDto;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
 
 /**
@@ -18,6 +23,7 @@ import org.springframework.beans.factory.annotation.Autowired;
  * @author
  * @since 2023-07-13
  */
+@DS(BaseSourceConstant.BASE)
 @RestController
 @RequestMapping("/pushAnnouncement")
 public class PushAnnouncementController {

+ 3 - 0
hx-socket/src/main/java/com/fjhx/socket/controller/push/PushInfoController.java

@@ -1,9 +1,11 @@
 package com.fjhx.socket.controller.push;
 
+import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.socket.entity.push.dto.PushInfoSelectDto;
 import com.fjhx.socket.entity.push.vo.PushInfoVo;
 import com.fjhx.socket.service.push.PushInfoService;
+import com.ruoyi.common.constant.BaseSourceConstant;
 import com.ruoyi.common.core.domain.BaseSelectDto;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -20,6 +22,7 @@ import org.springframework.web.bind.annotation.RestController;
  * @author
  * @since 2023-07-13
  */
+@DS(BaseSourceConstant.BASE)
 @RestController
 @RequestMapping("/pushInfo")
 public class PushInfoController {

+ 1 - 1
hx-socket/src/main/java/com/fjhx/socket/core/WebSocketListener.java

@@ -78,7 +78,7 @@ public class WebSocketListener {
             Date sendTime = pushAnnouncementDto.getSendTime();
             Date endTime = pushAnnouncementDto.getEndTime();
 
-            if (sendTime != null && sendTime.after(new Date())) {
+            if (sendTime != null && sendTime.before(new Date())) {
                 continue;
             }
 

+ 9 - 0
hx-socket/src/main/java/com/fjhx/socket/core/WebSocketServer.java

@@ -3,6 +3,7 @@ package com.fjhx.socket.core;
 import cn.hutool.extra.spring.SpringUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.fjhx.socket.core.event.WebSocketOnMessageEvent;
 import com.fjhx.socket.core.event.WebSocketOnOpenEvent;
@@ -10,6 +11,7 @@ import com.fjhx.socket.core.event.WebSocketSendFailEvent;
 import com.fjhx.socket.core.event.WebSocketSendSuccessEvent;
 import com.fjhx.socket.entity.push.po.PushInfo;
 import com.fjhx.socket.service.push.PushInfoService;
+import com.ruoyi.common.constant.BaseSourceConstant;
 import com.ruoyi.common.constant.StatusConstant;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.core.domain.model.LoginUser;
@@ -71,6 +73,8 @@ public class WebSocketServer {
     @OnOpen
     public void onOpen(@RequestBody Session session, @PathParam("token") String token) {
 
+        DynamicDataSourceContextHolder.push(BaseSourceConstant.BASE);
+
         // 解析token
         LoginUser loginUser = tokenService.getLoginUser(token);
 
@@ -101,6 +105,8 @@ public class WebSocketServer {
 
         // 发布建立连接连接事件
         applicationContext.publishEvent(new WebSocketOnOpenEvent(this));
+
+        DynamicDataSourceContextHolder.poll();
     }
 
     /**
@@ -142,6 +148,8 @@ public class WebSocketServer {
      */
     protected void sendMessage(PushTypeEnum pushTypeEnum, PushParam pushParam) {
 
+        DynamicDataSourceContextHolder.push(BaseSourceConstant.BASE);
+
         JSONObject msg = new JSONObject();
         msg.put("type", pushTypeEnum.getType());
 
@@ -181,6 +189,7 @@ public class WebSocketServer {
             applicationContext.publishEvent(new WebSocketSendFailEvent(pushTypeEnum, pushParam));
         }
 
+        DynamicDataSourceContextHolder.poll();
     }
 
 }

+ 2 - 0
hx-socket/src/main/java/com/fjhx/socket/service/push/impl/PushAnnouncementServiceImpl.java

@@ -10,6 +10,7 @@ import com.fjhx.socket.entity.push.po.PushAnnouncement;
 import com.fjhx.socket.entity.push.vo.PushAnnouncementVo;
 import com.fjhx.socket.mapper.push.PushAnnouncementMapper;
 import com.fjhx.socket.service.push.PushAnnouncementService;
+import com.ruoyi.common.constant.StatusConstant;
 import com.ruoyi.common.core.domain.BasePo;
 import com.ruoyi.common.core.redis.RedisCache;
 import com.ruoyi.common.utils.wrapper.IWrapper;
@@ -61,6 +62,7 @@ public class PushAnnouncementServiceImpl extends ServiceImpl<PushAnnouncementMap
     @Override
     public void add(PushAnnouncementDto pushAnnouncementDto) {
         pushAnnouncementDto.setId(IdWorker.getId());
+        pushAnnouncementDto.setStatus(StatusConstant.NO);
         redisCache.setCacheObject(PUSH_ANNOUNCEMENT_REDIS_KEY + pushAnnouncementDto.getId(), pushAnnouncementDto);
         this.save(pushAnnouncementDto);
     }