package com.cyksj.model.dto; import com.cyksj.common.util.Jsons; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.*; import lombok.experimental.Accessors; import java.io.Serializable; /** * @author chan * @date 2022-10-09 10:31 AM */ @Getter @Setter @JsonInclude(JsonInclude.Include.NON_NULL) @Accessors(chain = true) public class WxMpTemplateMessage implements Serializable { private static final long serialVersionUID = 5063374783759519418L; public WxMpTemplateMessage() { this.data = new TemplateData(); } /** * 接收者openid. */ @JsonProperty("touser") private String toUser; /** * 模板ID. */ @JsonProperty("template_id") private String templateId; /** * 模板跳转链接. *
* url和miniprogram都是非必填字段,若都不传则模板无跳转;若都传,会优先跳转至小程序。 * 开发者可根据实际需要选择其中一种跳转方式即可。当用户的微信客户端版本不支持跳小程序时,将会跳转至url。 **/ private String url; /** * 跳小程序所需数据,不需跳小程序可不用传该数据. * * @see #url */ @JsonProperty("miniprogram") private MiniProgram miniProgram; /** * 模板数据. */ private TemplateData data; @Getter @Setter public static class TemplateData { /** * 标题 */ private WxMpTemplateData first; /** * 关键词1 */ private WxMpTemplateData keyword1; /** * 2 */ private WxMpTemplateData keyword2; /** * 关键词3 */ private WxMpTemplateData keyword3; /** * 关键词4 */ private WxMpTemplateData keyword4; /** * 关键词WxMpTemplateData */ private WxMpTemplateData keyword5; /** * remark */ private WxMpTemplateData remark; } public String toJson() throws Exception { return Jsons.toJson(this); } @Data @NoArgsConstructor @AllArgsConstructor @JsonInclude(JsonInclude.Include.NON_NULL) public static class MiniProgram implements Serializable { private static final long serialVersionUID = -7945254706501974849L; private String appid; @JsonProperty("pagepath") private String pagePath; /** * 是否使用path,否则使用pagepath. * 加入此字段是基于微信官方接口变化多端的考虑 */ private boolean usePath = false; } }