Prechádzať zdrojové kódy

fix 一键疼痛呼叫会生成多个聊天室
update 修改聊天室自动结束cron频率

18339543638 3 rokov pred
rodič
commit
3f6d5dc93c

+ 2 - 0
nb-im/src/main/java/com/nb/im/controller/vo/RemarkReadVo.java

@@ -3,6 +3,7 @@ package com.nb.im.controller.vo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import lombok.NoArgsConstructor;
 
 import javax.validation.constraints.NotNull;
 import java.util.*;
@@ -15,6 +16,7 @@ import java.util.*;
  */
 @Data
 @ApiModel("标记已读信息")
+@NoArgsConstructor
 public class RemarkReadVo {
     @ApiModelProperty("聊天室id")
     @NotNull(message = "聊天室id不能为空")

+ 1 - 1
nb-im/src/main/java/com/nb/im/job/ImRoomJob.java

@@ -41,7 +41,7 @@ public class ImRoomJob {
      * @param
      * @return void
      */
-    @Scheduled(cron = "0 0 2 * * ?")
+    @Scheduled(cron = "* * 0/2 * * ?")
     public void autoFinish(){
         try {
             log.info("执行24小时自动结束聊天室任务");

+ 10 - 2
nb-im/src/main/java/com/nb/im/listener/ConsultMsgListener.java

@@ -1,5 +1,7 @@
 package com.nb.im.listener;
 
+import cn.hutool.core.date.DateUnit;
+import cn.hutool.core.date.DateUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.nb.app.msg.bean.MsgBean;
 import com.nb.app.msg.enums.MsgEnum;
@@ -20,6 +22,8 @@ import org.springframework.context.event.EventListener;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Date;
+
 /**
  * @author lifang
  * @version 1.0.0
@@ -54,14 +58,18 @@ public class ConsultMsgListener {
                 .eq(ImRoomEntity::getPatientId,room.getPatientId())
                 .eq(ImRoomEntity::getAssistId, room.getAssistId())
                 .eq(ImRoomEntity::getDoctorId, room.getDoctorId())
-                .eq(ImRoomEntity::getStatus, ImStatusEnum.SUCCESS)
+                .in(ImRoomEntity::getStatus, ImStatusEnum.SUCCESS,ImStatusEnum.WAITING)
+                .orderByDesc(ImRoomEntity::getCreateTime)
                 .last("limit 1"));
         if(existRoom==null){
             if (chatRoomService.save(room)) {
                 createRoomUser(payload, room);
             }
         }else {
-            room=existRoom;
+            Date createTime = existRoom.getCreateTime();
+            if(DateUtil.between(new Date(),createTime, DateUnit.HOUR)<24){
+                room=existRoom;
+            }
         }
 
         ImMsgEntity roomMsg = ImMsgEntity.createRoomMsg(payload, room);