WxMpTemplateMessage.java 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. package com.cyksj.model.dto;
  2. import com.cyksj.common.util.Jsons;
  3. import com.fasterxml.jackson.annotation.JsonInclude;
  4. import com.fasterxml.jackson.annotation.JsonProperty;
  5. import lombok.*;
  6. import lombok.experimental.Accessors;
  7. import java.io.Serializable;
  8. /**
  9. * @author chan
  10. * @date 2022-10-09 10:31 AM
  11. */
  12. @Getter
  13. @Setter
  14. @JsonInclude(JsonInclude.Include.NON_NULL)
  15. @Accessors(chain = true)
  16. public class WxMpTemplateMessage implements Serializable {
  17. private static final long serialVersionUID = 5063374783759519418L;
  18. public WxMpTemplateMessage() {
  19. this.data = new TemplateData();
  20. }
  21. /**
  22. * 接收者openid.
  23. */
  24. @JsonProperty("touser")
  25. private String toUser;
  26. /**
  27. * 模板ID.
  28. */
  29. @JsonProperty("template_id")
  30. private String templateId;
  31. /**
  32. * 模板跳转链接.
  33. * <pre>
  34. * url和miniprogram都是非必填字段,若都不传则模板无跳转;若都传,会优先跳转至小程序。
  35. * 开发者可根据实际需要选择其中一种跳转方式即可。当用户的微信客户端版本不支持跳小程序时,将会跳转至url。
  36. * </pre>
  37. */
  38. private String url;
  39. /**
  40. * 跳小程序所需数据,不需跳小程序可不用传该数据.
  41. *
  42. * @see #url
  43. */
  44. @JsonProperty("miniprogram")
  45. private MiniProgram miniProgram;
  46. /**
  47. * 模板数据.
  48. */
  49. private TemplateData data;
  50. @Getter
  51. @Setter
  52. public static class TemplateData {
  53. /**
  54. * 标题
  55. */
  56. private WxMpTemplateData first;
  57. /**
  58. * 关键词1
  59. */
  60. private WxMpTemplateData keyword1;
  61. /**
  62. * 2
  63. */
  64. private WxMpTemplateData keyword2;
  65. /**
  66. * 关键词3
  67. */
  68. private WxMpTemplateData keyword3;
  69. /**
  70. * 关键词4
  71. */
  72. private WxMpTemplateData keyword4;
  73. /**
  74. * 关键词WxMpTemplateData
  75. */
  76. private WxMpTemplateData keyword5;
  77. /**
  78. * remark
  79. */
  80. private WxMpTemplateData remark;
  81. }
  82. public String toJson() throws Exception {
  83. return Jsons.toJson(this);
  84. }
  85. @Data
  86. @NoArgsConstructor
  87. @AllArgsConstructor
  88. @JsonInclude(JsonInclude.Include.NON_NULL)
  89. public static class MiniProgram implements Serializable {
  90. private static final long serialVersionUID = -7945254706501974849L;
  91. private String appid;
  92. @JsonProperty("pagepath")
  93. private String pagePath;
  94. /**
  95. * 是否使用path,否则使用pagepath.
  96. * 加入此字段是基于微信官方接口变化多端的考虑
  97. */
  98. private boolean usePath = false;
  99. }
  100. }