ImRoomEntity.java 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. package com.nb.im.entity;
  2. import cn.hutool.core.collection.CollectionUtil;
  3. import com.baomidou.mybatisplus.annotation.TableName;
  4. import com.nb.app.msg.bean.MsgBean;
  5. import com.nb.core.entity.GenericEntity;
  6. import com.nb.core.enums.SexEnum;
  7. import com.nb.im.enums.ImStatusEnum;
  8. import com.nb.im.enums.SponsorEnum;
  9. import com.nb.web.api.enums.ClinicManageEnum;
  10. import io.swagger.annotations.ApiModel;
  11. import io.swagger.annotations.ApiModelProperty;
  12. import lombok.Data;
  13. import lombok.EqualsAndHashCode;
  14. import lombok.NoArgsConstructor;
  15. import lombok.ToString;
  16. import javax.validation.constraints.NotNull;
  17. import java.util.Date;
  18. import java.util.Map;
  19. /**
  20. * @author lifang
  21. * @version 1.0.0
  22. * @ClassName ImRoomEntity.java
  23. * @Description TODO
  24. * @createTime 2022年08月16日 09:22:00
  25. */
  26. @EqualsAndHashCode(callSuper = true)
  27. @Data
  28. @TableName(value = "im_room",autoResultMap = true)
  29. @ApiModel(value="聊天室")
  30. @ToString
  31. @NoArgsConstructor
  32. public class ImRoomEntity extends GenericEntity<String> {
  33. @ApiModelProperty(value = "病人id",required = true)
  34. @NotNull(message = "病人id不能为空",groups = Insert.class)
  35. private String patientId;
  36. @ApiModelProperty(value = "住院号",required = true)
  37. private String patientCode;
  38. @ApiModelProperty("看护人备注病人名称")
  39. private String patientNamePs;
  40. @ApiModelProperty("病人名称")
  41. private String patientName;
  42. @ApiModelProperty("病人年龄")
  43. private String patientAge;
  44. @ApiModelProperty("病人性别")
  45. private SexEnum patientSex;
  46. @ApiModelProperty(value = "看护位置",allowableValues = "0(院内管理) 1(居家管理)")
  47. private ClinicManageEnum manageType;
  48. @ApiModelProperty(value = "看护人id",required = true)
  49. @NotNull(message = "看护人id不能为空",groups = Insert.class)
  50. private String assistId;
  51. @ApiModelProperty(value = "看护人头像")
  52. private String assistAvatar;
  53. @ApiModelProperty(value = "医生头像")
  54. private String doctorAvatar;
  55. @ApiModelProperty(value = "医生id",required = true)
  56. @NotNull(message = "医生id不能为空",groups = Insert.class)
  57. private String doctorId;
  58. @ApiModelProperty("聊天室所对应的绑定id")
  59. private String bindId;
  60. @ApiModelProperty(value = "发起人类型",required = true,allowableValues = "0(看护人发起) 1(医生发起)")
  61. @NotNull(message = "发起类型不能为空",groups = Insert.class)
  62. private SponsorEnum sponsorType;
  63. @ApiModelProperty(value = "聊天室总消息数",readOnly = true)
  64. private Integer totalCount;
  65. @ApiModelProperty("成功建立聊天室时间")
  66. private Date successTime;
  67. @ApiModelProperty("聊天室状态")
  68. private ImStatusEnum status;
  69. @ApiModelProperty("聊天室最后一条消息id")
  70. private String lastMsgId;
  71. @ApiModelProperty("聊天室最后一条消息时间")
  72. private Date lastMsgTime;
  73. @ApiModelProperty("聊天室最后一条消息发送人")
  74. private String lastSenderId;
  75. @ApiModelProperty("监控是否结束")
  76. private Boolean monitorFinished;
  77. @ApiModelProperty("监控结束时间")
  78. private Date monitorFinishedTime;
  79. @ApiModelProperty("医生置顶状态")
  80. private Boolean doctorTop;
  81. /**
  82. * 描述: 由看护人发起的咨询或一件疼痛呼叫
  83. * @author lifang
  84. * @date 2022/8/16 10:38
  85. * @param source
  86. * @return ImRoomEntity
  87. */
  88. public static ImRoomEntity createRoom(MsgBean source){
  89. ImRoomEntity result = new ImRoomEntity();
  90. result.setAssistId(source.getSenderId());
  91. result.setAssistAvatar(source.getSenderAvatar());
  92. result.setPatientId(source.getPatientId());
  93. result.setPatientCode(source.getPatientCode());
  94. result.setPatientName(source.getPatientName());
  95. result.setPatientSex(source.getPatientSex());
  96. result.setPatientAge(source.getPatientAge());
  97. result.setDoctorId(source.getReceiverId());
  98. result.setSponsorType(SponsorEnum.assist);
  99. result.setTotalCount(1);
  100. //等待医生确认
  101. result.setStatus(ImStatusEnum.WAITING);
  102. result.setDoctorTop(false);
  103. //默认院内管理
  104. Map<String, Object> properties = source.getProperties();
  105. ClinicManageEnum manageType=ClinicManageEnum.hospital;
  106. if(CollectionUtil.isNotEmpty(properties)){
  107. manageType = (ClinicManageEnum) properties.getOrDefault("manageType", ClinicManageEnum.hospital);
  108. }
  109. result.setManageType(manageType);
  110. return result;
  111. }
  112. }