PubMsgInfo.java 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. package com.nb.im.ws;
  2. import cn.hutool.core.util.ObjectUtil;
  3. import cn.hutool.core.util.StrUtil;
  4. import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
  5. import com.nb.app.msg.enums.MsgEnum;
  6. import com.nb.im.enums.ImMsgType;
  7. import com.nb.im.enums.SponsorEnum;
  8. import io.swagger.annotations.ApiModelProperty;
  9. import lombok.AllArgsConstructor;
  10. import lombok.Builder;
  11. import lombok.Data;
  12. import lombok.NoArgsConstructor;
  13. import org.springframework.validation.annotation.Validated;
  14. import java.io.Serializable;
  15. /**
  16. * @author lifang
  17. * @version 1.0.0
  18. * @ClassName PubMsgInfo.java
  19. * @Description 即时通信消息
  20. * @createTime 2022年08月16日 14:37:00
  21. */
  22. @Data
  23. @Validated
  24. @NoArgsConstructor
  25. @Builder
  26. @AllArgsConstructor
  27. public class PubMsgInfo implements Serializable {
  28. @ApiModelProperty("客户端生产的唯一消息key")
  29. private String key;
  30. @ApiModelProperty("聊天室id")
  31. private String roomId;
  32. @ApiModelProperty("消息载荷")
  33. private String payload;
  34. @ApiModelProperty("发送人类型")
  35. private SponsorEnum senderType;
  36. @ApiModelProperty("发送人id")
  37. private String senderId;
  38. @ApiModelProperty("发送人昵称")
  39. private String senderNickname;
  40. @ApiModelProperty("发送人头像")
  41. private String senderAvatar;
  42. @ApiModelProperty("消息类型")
  43. private ImMsgType msgType;
  44. @ApiModelProperty("扩展字段")
  45. private String extend;
  46. @ApiModelProperty("操作类型")
  47. private MsgEnum operationType;
  48. @JsonIgnoreProperties(allowGetters = true)
  49. private Long sort;
  50. public void validate(){
  51. if(key==null){
  52. throw new RuntimeException("消息key不能为空");
  53. }
  54. if(StrUtil.isEmpty(payload)){
  55. throw new RuntimeException("消息载荷不能为空");
  56. }
  57. if(StrUtil.isEmpty(senderId)){
  58. throw new RuntimeException("发送人id不能为空");
  59. }
  60. if(StrUtil.isEmpty(senderNickname)){
  61. throw new RuntimeException("发送人昵称不能为空");
  62. }
  63. if(ObjectUtil.isNull(msgType)){
  64. throw new RuntimeException("信息类型不能为空");
  65. }
  66. if(StrUtil.isEmpty(roomId)){
  67. throw new RuntimeException("聊天室id不能为空");
  68. }
  69. if(ObjectUtil.isNull(senderType)){
  70. throw new RuntimeException("发送人类型不能为空");
  71. }
  72. }
  73. }