Explorar o código

:new:【企业微信】添加对新的模板卡片更新消息“更新点击用户的按钮点击文案消息”的支持

nickname263 %!s(int64=3) %!d(string=hai) anos
pai
achega
56d2b5f57a

+ 1 - 0
weixin-java-common/src/main/java/me/chanjar/weixin/common/api/WxConsts.java

@@ -45,6 +45,7 @@ public class WxConsts {
     public static final String HARDWARE = "hardware";
     public static final String TRANSFER_CUSTOMER_SERVICE = "transfer_customer_service";
     public static final String UPDATE_TASKCARD = "update_taskcard";
+    public static final String UPDATE_BUTTON = "update_button";
   }
 
   /**

+ 8 - 0
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/message/WxCpXmlOutMessage.java

@@ -78,6 +78,14 @@ public abstract class WxCpXmlOutMessage implements Serializable {
   public static TaskCardBuilder TASK_CARD() {
     return new TaskCardBuilder();
   }
+
+  /**
+   * 获得任务卡片消息builder.
+   */
+  public static UpdateButtonBuilder UPDATE_BUTTON() {
+    return new UpdateButtonBuilder();
+  }
+
   protected String toXml() {
     return XStreamTransformer.toXml((Class) this.getClass(), this);
   }

+ 33 - 0
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/message/WxCpXmlOutUpdateBtnMessage.java

@@ -0,0 +1,33 @@
+package me.chanjar.weixin.cp.bean.message;
+
+import com.thoughtworks.xstream.annotations.XStreamAlias;
+import com.thoughtworks.xstream.annotations.XStreamConverter;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import me.chanjar.weixin.common.api.WxConsts;
+import me.chanjar.weixin.common.util.xml.XStreamCDataConverter;
+import me.chanjar.weixin.common.util.xml.XStreamMediaIdConverter;
+import me.chanjar.weixin.common.util.xml.XStreamReplaceNameConverter;
+
+import java.io.Serializable;
+
+/**
+ * @author nickname263
+ * @date 2021-09-23
+ */
+@XStreamAlias("xml")
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class WxCpXmlOutUpdateBtnMessage  extends WxCpXmlOutMessage {
+  private static final long serialVersionUID = 976182367423048138L;
+  @XStreamAlias("Button")
+  @XStreamConverter(value = XStreamReplaceNameConverter.class)
+  private String replaceName;
+
+  public WxCpXmlOutUpdateBtnMessage() {
+    this.msgType = WxConsts.XmlMsgType.UPDATE_BUTTON;
+  }
+
+
+
+}

+ 29 - 0
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/outxmlbuilder/UpdateButtonBuilder.java

@@ -0,0 +1,29 @@
+package me.chanjar.weixin.cp.bean.outxmlbuilder;
+
+import me.chanjar.weixin.cp.bean.message.WxCpXmlOutTaskCardMessage;
+import me.chanjar.weixin.cp.bean.message.WxCpXmlOutUpdateBtnMessage;
+
+/**
+ * 模板卡片更新点击用户的按钮点击文案消息builder
+ *
+ * @author nickname263
+ */
+public class UpdateButtonBuilder extends BaseBuilder<UpdateButtonBuilder, WxCpXmlOutUpdateBtnMessage> {
+
+
+  private String replaceName;
+
+  public UpdateButtonBuilder replaceName(String replaceName) {
+    this.replaceName = replaceName;
+    return this;
+  }
+
+  @Override
+  public WxCpXmlOutUpdateBtnMessage build() {
+    WxCpXmlOutUpdateBtnMessage m = new WxCpXmlOutUpdateBtnMessage();
+    setCommon(m);
+    m.setReplaceName(this.replaceName);
+    return m;
+  }
+
+}

+ 7 - 0
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/util/xml/XStreamTransformer.java

@@ -54,6 +54,7 @@ public class XStreamTransformer {
     map.put(WxCpXmlOutVideoMessage.class, configWxCpXmlOutVideoMessage());
     map.put(WxCpXmlOutVoiceMessage.class, configWxCpXmlOutVoiceMessage());
     map.put(WxCpXmlOutTaskCardMessage.class, configWxCpXmlOutTaskCardMessage());
+    map.put(WxCpXmlOutUpdateBtnMessage.class, configWxCpXmlOutUpdateBtnMessage());
     map.put(WxCpTpXmlPackage.class, configWxCpTpXmlPackage());
     map.put(WxCpTpXmlMessage.class, configWxCpTpXmlMessage());
     return map;
@@ -119,6 +120,12 @@ public class XStreamTransformer {
     xstream.processAnnotations(WxCpXmlOutTaskCardMessage.class);
     return xstream;
   }
+  private static XStream configWxCpXmlOutUpdateBtnMessage() {
+    XStream xstream = XStreamInitializer.getInstance();
+    xstream.processAnnotations(WxCpXmlOutMessage.class);
+    xstream.processAnnotations(WxCpXmlOutUpdateBtnMessage.class);
+    return xstream;
+  }
 
   private static XStream configWxCpTpXmlPackage() {
     XStream xstream = XStreamInitializer.getInstance();