WxMpTemplateMessage.java 2.4 KB

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