| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- package com.nb.im.entity;
- import cn.hutool.core.collection.CollectionUtil;
- import com.baomidou.mybatisplus.annotation.TableName;
- import com.nb.app.msg.bean.MsgBean;
- 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.ApiModel;
- import io.swagger.annotations.ApiModelProperty;
- import lombok.Data;
- import lombok.EqualsAndHashCode;
- import lombok.NoArgsConstructor;
- import lombok.ToString;
- import javax.validation.constraints.NotNull;
- import java.util.Date;
- import java.util.Map;
- /**
- * @author lifang
- * @version 1.0.0
- * @ClassName ImRoomEntity.java
- * @Description TODO
- * @createTime 2022年08月16日 09:22:00
- */
- @EqualsAndHashCode(callSuper = true)
- @Data
- @TableName(value = "im_room",autoResultMap = true)
- @ApiModel(value="聊天室")
- @ToString
- @NoArgsConstructor
- public class ImRoomEntity extends GenericEntity<String> {
- @ApiModelProperty(value = "病人id",required = true)
- @NotNull(message = "病人id不能为空",groups = Insert.class)
- private String patientId;
- @ApiModelProperty(value = "住院号",required = true)
- private String patientCode;
- @ApiModelProperty("看护人备注病人名称")
- private String patientNamePs;
- @ApiModelProperty("病人名称")
- private String patientName;
- @ApiModelProperty("病人年龄")
- private String patientAge;
- @ApiModelProperty("病人性别")
- private SexEnum patientSex;
- @ApiModelProperty(value = "看护位置",allowableValues = "0(院内管理) 1(居家管理)")
- private ClinicManageEnum manageType;
- @ApiModelProperty(value = "看护人id",required = true)
- @NotNull(message = "看护人id不能为空",groups = Insert.class)
- private String assistId;
- @ApiModelProperty(value = "看护人头像")
- private String assistAvatar;
- @ApiModelProperty(value = "医生头像")
- private String doctorAvatar;
- @ApiModelProperty(value = "医生id",required = true)
- @NotNull(message = "医生id不能为空",groups = Insert.class)
- private String doctorId;
- @ApiModelProperty("聊天室所对应的绑定id")
- private String bindId;
- @ApiModelProperty(value = "发起人类型",required = true,allowableValues = "0(看护人发起) 1(医生发起)")
- @NotNull(message = "发起类型不能为空",groups = Insert.class)
- private SponsorEnum sponsorType;
- @ApiModelProperty(value = "聊天室总消息数",readOnly = true)
- private Integer totalCount;
- @ApiModelProperty("成功建立聊天室时间")
- private Date successTime;
- @ApiModelProperty("聊天室状态")
- private ImStatusEnum status;
- @ApiModelProperty("聊天室最后一条消息id")
- private String lastMsgId;
- @ApiModelProperty("聊天室最后一条消息时间")
- private Date lastMsgTime;
- @ApiModelProperty("聊天室最后一条消息发送人")
- private String lastSenderId;
- @ApiModelProperty("监控是否结束")
- private Boolean monitorFinished;
- @ApiModelProperty("监控结束时间")
- private Date monitorFinishedTime;
- @ApiModelProperty("医生置顶状态")
- private Boolean doctorTop;
- /**
- * 描述: 由看护人发起的咨询或一件疼痛呼叫
- * @author lifang
- * @date 2022/8/16 10:38
- * @param source
- * @return ImRoomEntity
- */
- public static ImRoomEntity createRoom(MsgBean source){
- ImRoomEntity result = new ImRoomEntity();
- result.setAssistId(source.getSenderId());
- result.setAssistAvatar(source.getSenderAvatar());
- result.setPatientId(source.getPatientId());
- result.setPatientCode(source.getPatientCode());
- result.setPatientName(source.getPatientName());
- result.setPatientSex(source.getPatientSex());
- result.setPatientAge(source.getPatientAge());
- result.setDoctorId(source.getReceiverId());
- result.setSponsorType(SponsorEnum.assist);
- result.setTotalCount(1);
- //等待医生确认
- result.setStatus(ImStatusEnum.WAITING);
- result.setDoctorTop(false);
- //默认院内管理
- Map<String, Object> properties = source.getProperties();
- ClinicManageEnum manageType=ClinicManageEnum.hospital;
- if(CollectionUtil.isNotEmpty(properties)){
- manageType = (ClinicManageEnum) properties.getOrDefault("manageType", ClinicManageEnum.hospital);
- }
- result.setManageType(manageType);
- return result;
- }
- }
|