package com.nb.im.ws; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.nb.app.msg.enums.MsgEnum; import com.nb.im.enums.ImMsgType; import com.nb.im.enums.SponsorEnum; import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import org.springframework.validation.annotation.Validated; import java.io.Serializable; /** * @author lifang * @version 1.0.0 * @ClassName PubMsgInfo.java * @Description 即时通信消息 * @createTime 2022年08月16日 14:37:00 */ @Data @Validated @NoArgsConstructor @Builder @AllArgsConstructor public class PubMsgInfo implements Serializable { @ApiModelProperty("客户端生产的唯一消息key") private String key; @ApiModelProperty("聊天室id") private String roomId; @ApiModelProperty("消息载荷") private String payload; @ApiModelProperty("发送人类型") private SponsorEnum senderType; @ApiModelProperty("发送人id") private String senderId; @ApiModelProperty("发送人昵称") private String senderNickname; @ApiModelProperty("发送人头像") private String senderAvatar; @ApiModelProperty("消息类型") private ImMsgType msgType; @ApiModelProperty("扩展字段") private String extend; @ApiModelProperty("操作类型") private MsgEnum operationType; @JsonIgnoreProperties(allowGetters = true) private Long sort; public void validate(){ if(key==null){ throw new RuntimeException("消息key不能为空"); } if(StrUtil.isEmpty(payload)){ throw new RuntimeException("消息载荷不能为空"); } if(StrUtil.isEmpty(senderId)){ throw new RuntimeException("发送人id不能为空"); } if(StrUtil.isEmpty(senderNickname)){ throw new RuntimeException("发送人昵称不能为空"); } if(ObjectUtil.isNull(msgType)){ throw new RuntimeException("信息类型不能为空"); } if(StrUtil.isEmpty(roomId)){ throw new RuntimeException("聊天室id不能为空"); } if(ObjectUtil.isNull(senderType)){ throw new RuntimeException("发送人类型不能为空"); } } }