MqttMsgDto.java 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package com.zy.bms.model;
  2. import com.alibaba.fastjson.JSON;
  3. import com.zy.bms.common.Constant;
  4. import lombok.Data;
  5. import lombok.NoArgsConstructor;
  6. import java.util.HashMap;
  7. import java.util.Map;
  8. /**
  9. * MQTT 消息模板类
  10. *
  11. * @author yang xiao kun
  12. * create on 2021/1/21
  13. */
  14. @Data
  15. @NoArgsConstructor
  16. public class MqttMsgDto {
  17. private String m;
  18. private String t;
  19. private String r;
  20. /**
  21. * 数据项
  22. */
  23. private Map<String, Object> data;
  24. /**
  25. * 通用构造器
  26. *
  27. * @param m MQTT协议设置代码
  28. * @param deviceId 设备ID
  29. */
  30. public MqttMsgDto(String m, String deviceId) {
  31. this.m = m;
  32. this.t = Constant.TOPIC_DEVICE_CLIENT + deviceId;
  33. this.r = Constant.TOPIC_DEVICE_SERVER + deviceId;
  34. this.data = new HashMap<>();
  35. }
  36. /**
  37. * 往data中添加数据 支持链式
  38. *
  39. * @param key 键
  40. * @param value 值
  41. */
  42. public MqttMsgDto set(String key, Object value) {
  43. data.put(key, value);
  44. return this;
  45. }
  46. /**
  47. * 获取json 对象
  48. */
  49. public String toJson() {
  50. return JSON.toJSONString(this);
  51. }
  52. }