孙永军 1 rok pred
rodič
commit
582f3fac9a

+ 3 - 3
src/main/java/com/sxtvs/open/api/review/controller/SseController.java

@@ -20,10 +20,10 @@ public class SseController {
 
     @GetMapping(path = "/sse", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
     @LoginRequired
-    public SseEmitter handleSse() throws InterruptedException {
+    public SseEmitter handleSse(@RequestParam("token") String token) throws InterruptedException {
         SseEmitter sseEmitter = new SseEmitter(0L); // 设置超时时间
-        sseService.monitor(sseEmitter);
-        Thread.sleep(500);
+        sseService.monitor(token, sseEmitter);
+        Thread.sleep(100);
         return sseEmitter;
     }
 }

+ 1 - 1
src/main/java/com/sxtvs/open/api/review/service/impl/ReviewVideosRecordServiceImpl.java

@@ -107,7 +107,7 @@ public class ReviewVideosRecordServiceImpl extends ServiceImpl<ReviewVideosRecor
     }
 
     public void push(){
-        lambdaQuery().eq(ReviewVideosRecord::getStatus, "SUCCESS").list().forEach(x -> {
+        lambdaQuery().eq(ReviewVideosRecord::getStatus, "SUCCESS").eq(ReviewVideosRecord::getPushStatus, 0).list().forEach(x -> {
             if(sseService.sendMsg(x.getUid(), "视频" + x.getTitle() + "审核完成")){
                 x.setPushStatus(1);
                 updateById(x);

+ 5 - 6
src/main/java/com/sxtvs/open/api/review/service/impl/SSEService.java

@@ -22,13 +22,12 @@ public class SSEService {
 
     private Map<Long, SseEmitter>  sseMap = new HashMap<>();
 
-    public void monitor(SseEmitter sseEmitter) {
-        Optional<String> token = HttpContextUtil.getToken();
+    public void monitor(String token, SseEmitter sseEmitter) {
+
+        String uid = AESUtil.decryptStr(token);
+
+        sseMap.put(Long.valueOf(uid), sseEmitter);
 
-        if (token.isPresent()){
-            String uid = AESUtil.decryptStr(token.get());
-            sseMap.put(Long.valueOf(uid), sseEmitter);
-        }
     }
 
     public Boolean sendMsg(Long uid, String msg) {