Prechádzať zdrojové kódy

add 即时消息扩展字段

18339543638 3 rokov pred
rodič
commit
c0ff022db1

+ 14 - 0
nb-im/src/main/java/com/nb/im/controller/ImRoomController.java

@@ -1,6 +1,7 @@
 package com.nb.im.controller;
 
 import cn.dev33.satoken.stp.StpLogic;
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -20,6 +21,7 @@ import com.nb.im.entity.ImRoomEntity;
 import com.nb.im.room.ImRoomOperator;
 import com.nb.im.room.ImRoomOperatorManager;
 import com.nb.im.service.LocalImMsgService;
+import com.nb.im.service.dto.ImRoomDetailDto;
 import com.nb.im.service.dto.ImRoomDto;
 import com.nb.im.enums.ImStatusEnum;
 import com.nb.im.enums.SponsorEnum;
@@ -29,6 +31,7 @@ import com.nb.im.service.dto.ImRoomResult;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
+import org.springframework.context.annotation.Bean;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
@@ -97,6 +100,17 @@ public class ImRoomController implements BaseSaveController<ImRoomEntity,String>
         return R.success(result);
     }
 
+    @PostMapping("/view/{id}")
+    @ApiOperation(value = "根据id查询聊天室")
+    public R<ImRoomDetailDto> getById(@PathVariable("id") String id){
+        ImRoomDetailDto result= BeanUtil.toBean(imRoomService.getById(id),ImRoomDetailDto.class);
+        if(result!=null){
+            result.setUnreadCount( roomOperatorManager.getRoomOperator(result.getId())
+                    .unReadCount( String.valueOf(SecurityUtil.getId())));
+        }
+        return R.success(result);
+    }
+
 
     @PostMapping("/no_page/unread/{roomId}")
     @ApiOperation(value = "获取所有未读消息(需手动调用接口设置为已读)")

+ 83 - 0
nb-im/src/main/java/com/nb/im/service/dto/ImRoomDetailDto.java

@@ -0,0 +1,83 @@
+package com.nb.im.service.dto;
+
+import com.nb.core.entity.GenericEntity;
+import com.nb.core.enums.SexEnum;
+import com.nb.im.enums.ImStatusEnum;
+import com.nb.im.enums.SponsorEnum;
+import com.nb.web.api.enums.ClinicManageEnum;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+
+/**
+ * @author lifang
+ * @version 1.0.0
+ * @ClassName ImRoomDetailDto.java
+ * @Description TODO
+ * @createTime 2022年09月06日 10:11:00
+ */
+@Data
+public class ImRoomDetailDto {
+
+    private String id;
+
+    @ApiModelProperty(value = "病人id",readOnly = true)
+    private String patientId;
+
+    @ApiModelProperty(value = "住院号",readOnly = true)
+    private String patientCode;
+
+    @ApiModelProperty(value = "病人名称",readOnly = true)
+    private String patientName;
+
+    @ApiModelProperty(value = "病人年龄",readOnly = true)
+    private Integer patientAge;
+
+    @ApiModelProperty(value = "病人性别",readOnly = true)
+    private SexEnum patientSex;
+
+    @ApiModelProperty(value = "看护位置",allowableValues = "0(院内管理) 1(居家管理)",required = true)
+    private ClinicManageEnum manageType;
+
+    @ApiModelProperty(value = "看护人id",readOnly = true)
+    @NotNull(message = "看护人id不能为空",groups = GenericEntity.Insert.class)
+    private String assistId;
+
+    @ApiModelProperty(value = "医生id",readOnly = true)
+    @NotNull(message = "医生id不能为空",groups = GenericEntity.Insert.class)
+    private String doctorId;
+
+    @ApiModelProperty(value = "发起人类型",readOnly = true,allowableValues = "0(看护人发起) 1(医生发起)")
+    @NotNull(message = "发起类型不能为空",groups = GenericEntity.Insert.class)
+    private SponsorEnum sponsorType;
+
+    @ApiModelProperty(value = "聊天室总消息数",readOnly = true)
+    private Integer totalCount;
+
+    @ApiModelProperty(value = "成功建立聊天室时间",readOnly = true)
+    private Date successTime;
+
+    @ApiModelProperty(value = "聊天室状态",readOnly = true)
+    private ImStatusEnum status;
+
+    @ApiModelProperty(value = "聊天室最后一条消息id",readOnly = true)
+    private String lastMsgId;
+
+    @ApiModelProperty(value = "聊天室最后一条消息时间",readOnly = true)
+    private Date lastMsgTime;
+
+    @ApiModelProperty(value = "聊天室最后一条消息发送人",readOnly = true)
+    private String lastSenderId;
+
+    @ApiModelProperty(value = "监控是否结束",readOnly = true)
+    private Boolean monitorFinished;
+
+    @ApiModelProperty(value = "监控结束时间",readOnly = true)
+    private Date monitorFinishedTime;
+
+
+    @ApiModelProperty(value = "消息未读数量",readOnly = true)
+    private Integer unreadCount;
+}

+ 2 - 2
nb-im/src/main/java/com/nb/im/service/dto/ImRoomQuery.java

@@ -17,8 +17,8 @@ import javax.validation.constraints.NotNull;
 @Data
 @ApiModel("聊天室查询参数")
 public class ImRoomQuery {
-    @ApiModelProperty(value = "医生id",required = true)
-    @NotNull(message = "医生id不能为空")
+    @ApiModelProperty(value = "医生id")
+//    @NotNull(message = "医生id不能为空")
     private String doctorId;
 
     @ApiModelProperty(value = "病人id")

+ 0 - 1
nb-im/src/main/java/com/nb/im/service/dto/ImRoomResult.java

@@ -1,6 +1,5 @@
 package com.nb.im.service.dto;
 
-import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.nb.app.msg.enums.MsgEnum;
 import com.nb.core.enums.SexEnum;
 import com.nb.im.enums.ImMsgType;