| @@ -52,7 +52,7 @@ public class WxCpMessageRouter { | |||||
| private static final int DEFAULT_THREAD_POOL_SIZE = 100; | private static final int DEFAULT_THREAD_POOL_SIZE = 100; | ||||
| protected final Logger log = LoggerFactory.getLogger(WxCpMessageRouter.class); | protected final Logger log = LoggerFactory.getLogger(WxCpMessageRouter.class); | ||||
| private final List<WxCpMessageRouterRule> rules = new ArrayList<WxCpMessageRouterRule>(); | |||||
| private final List<WxCpMessageRouterRule> rules = new ArrayList<>(); | |||||
| private final WxCpService wxCpService; | private final WxCpService wxCpService; | ||||
| @@ -142,7 +142,7 @@ public class WxCpMessageRouter { | |||||
| return null; | return null; | ||||
| } | } | ||||
| final List<WxCpMessageRouterRule> matchRules = new ArrayList<WxCpMessageRouterRule>(); | |||||
| final List<WxCpMessageRouterRule> matchRules = new ArrayList<>(); | |||||
| // 收集匹配的规则 | // 收集匹配的规则 | ||||
| for (final WxCpMessageRouterRule rule : this.rules) { | for (final WxCpMessageRouterRule rule : this.rules) { | ||||
| if (rule.test(wxMessage)) { | if (rule.test(wxMessage)) { | ||||
| @@ -158,12 +158,13 @@ public class WxCpMessageRouter { | |||||
| } | } | ||||
| WxCpXmlOutMessage res = null; | WxCpXmlOutMessage res = null; | ||||
| final List<Future> futures = new ArrayList<Future>(); | |||||
| final List<Future> futures = new ArrayList<>(); | |||||
| for (final WxCpMessageRouterRule rule : matchRules) { | for (final WxCpMessageRouterRule rule : matchRules) { | ||||
| // 返回最后一个非异步的rule的执行结果 | // 返回最后一个非异步的rule的执行结果 | ||||
| if (rule.isAsync()) { | if (rule.isAsync()) { | ||||
| futures.add( | futures.add( | ||||
| this.executorService.submit(new Runnable() { | this.executorService.submit(new Runnable() { | ||||
| @Override | |||||
| public void run() { | public void run() { | ||||
| rule.service(wxMessage, WxCpMessageRouter.this.wxCpService, WxCpMessageRouter.this.sessionManager, WxCpMessageRouter.this.exceptionHandler); | rule.service(wxMessage, WxCpMessageRouter.this.wxCpService, WxCpMessageRouter.this.sessionManager, WxCpMessageRouter.this.exceptionHandler); | ||||
| } | } | ||||
| @@ -36,9 +36,9 @@ public class WxCpMessageRouterRule { | |||||
| private Integer agentId; | private Integer agentId; | ||||
| private List<WxCpMessageHandler> handlers = new ArrayList<WxCpMessageHandler>(); | |||||
| private List<WxCpMessageHandler> handlers = new ArrayList<>(); | |||||
| private List<WxCpMessageInterceptor> interceptors = new ArrayList<WxCpMessageInterceptor>(); | |||||
| private List<WxCpMessageInterceptor> interceptors = new ArrayList<>(); | |||||
| protected WxCpMessageRouterRule(WxCpMessageRouter routerBuilder) { | protected WxCpMessageRouterRule(WxCpMessageRouter routerBuilder) { | ||||
| this.routerBuilder = routerBuilder; | this.routerBuilder = routerBuilder; | ||||
| @@ -235,7 +235,7 @@ public class WxCpMessageRouterRule { | |||||
| try { | try { | ||||
| Map<String, Object> context = new HashMap<String, Object>(); | |||||
| Map<String, Object> context = new HashMap<>(); | |||||
| // 如果拦截器不通过 | // 如果拦截器不通过 | ||||
| for (WxCpMessageInterceptor interceptor : this.interceptors) { | for (WxCpMessageInterceptor interceptor : this.interceptors) { | ||||
| if (!interceptor.intercept(wxMessage, context, wxCpService, sessionManager)) { | if (!interceptor.intercept(wxMessage, context, wxCpService, sessionManager)) { | ||||
| @@ -11,6 +11,10 @@ import java.io.Serializable; | |||||
| */ | */ | ||||
| public class WxCpDepart implements Serializable { | public class WxCpDepart implements Serializable { | ||||
| /** | |||||
| * | |||||
| */ | |||||
| private static final long serialVersionUID = -5028321625140879571L; | |||||
| private Integer id; | private Integer id; | ||||
| private String name; | private String name; | ||||
| private Integer parentId; | private Integer parentId; | ||||
| @@ -14,6 +14,10 @@ import java.util.List; | |||||
| */ | */ | ||||
| public class WxCpMessage implements Serializable { | public class WxCpMessage implements Serializable { | ||||
| /** | |||||
| * | |||||
| */ | |||||
| private static final long serialVersionUID = -2082278303476631708L; | |||||
| private String toUser; | private String toUser; | ||||
| private String toParty; | private String toParty; | ||||
| private String toTag; | private String toTag; | ||||
| @@ -27,7 +31,7 @@ public class WxCpMessage implements Serializable { | |||||
| private String musicUrl; | private String musicUrl; | ||||
| private String hqMusicUrl; | private String hqMusicUrl; | ||||
| private String safe; | private String safe; | ||||
| private List<WxArticle> articles = new ArrayList<WxArticle>(); | |||||
| private List<WxArticle> articles = new ArrayList<>(); | |||||
| /** | /** | ||||
| * 获得文本消息builder | * 获得文本消息builder | ||||
| @@ -9,6 +9,11 @@ import java.io.Serializable; | |||||
| */ | */ | ||||
| public class WxCpTag implements Serializable { | public class WxCpTag implements Serializable { | ||||
| /** | |||||
| * | |||||
| */ | |||||
| private static final long serialVersionUID = -7243320279646928402L; | |||||
| private String id; | private String id; | ||||
| private String name; | private String name; | ||||
| @@ -13,7 +13,11 @@ import java.util.List; | |||||
| */ | */ | ||||
| public class WxCpUser implements Serializable { | public class WxCpUser implements Serializable { | ||||
| private final List<Attr> extAttrs = new ArrayList<Attr>(); | |||||
| /** | |||||
| * | |||||
| */ | |||||
| private static final long serialVersionUID = -5696099236344075582L; | |||||
| private final List<Attr> extAttrs = new ArrayList<>(); | |||||
| private String userId; | private String userId; | ||||
| private String name; | private String name; | ||||
| private Integer[] departIds; | private Integer[] departIds; | ||||
| @@ -32,6 +32,11 @@ public class WxCpXmlMessage implements Serializable { | |||||
| // 以下都是微信推送过来的消息的xml的element所对应的属性 | // 以下都是微信推送过来的消息的xml的element所对应的属性 | ||||
| /////////////////////// | /////////////////////// | ||||
| /** | |||||
| * | |||||
| */ | |||||
| private static final long serialVersionUID = -1042994982179476410L; | |||||
| @XStreamAlias("AgentID") | @XStreamAlias("AgentID") | ||||
| private Integer agentId; | private Integer agentId; | ||||
| @@ -566,7 +571,7 @@ public class WxCpXmlMessage implements Serializable { | |||||
| public static class SendPicsInfo { | public static class SendPicsInfo { | ||||
| @XStreamAlias("PicList") | @XStreamAlias("PicList") | ||||
| protected final List<Item> picList = new ArrayList<Item>(); | |||||
| protected final List<Item> picList = new ArrayList<>(); | |||||
| @XStreamAlias("Count") | @XStreamAlias("Count") | ||||
| private Long count; | private Long count; | ||||
| @@ -12,7 +12,7 @@ import java.util.List; | |||||
| public class WxCpXmlOutNewsMessage extends WxCpXmlOutMessage { | public class WxCpXmlOutNewsMessage extends WxCpXmlOutMessage { | ||||
| @XStreamAlias("Articles") | @XStreamAlias("Articles") | ||||
| protected final List<Item> articles = new ArrayList<Item>(); | |||||
| protected final List<Item> articles = new ArrayList<>(); | |||||
| @XStreamAlias("ArticleCount") | @XStreamAlias("ArticleCount") | ||||
| protected int articleCount; | protected int articleCount; | ||||
| @@ -23,6 +23,7 @@ public final class FileBuilder extends BaseBuilder<FileBuilder> { | |||||
| return this; | return this; | ||||
| } | } | ||||
| @Override | |||||
| public WxCpMessage build() { | public WxCpMessage build() { | ||||
| WxCpMessage m = super.build(); | WxCpMessage m = super.build(); | ||||
| m.setMediaId(this.mediaId); | m.setMediaId(this.mediaId); | ||||
| @@ -23,6 +23,7 @@ public final class ImageBuilder extends BaseBuilder<ImageBuilder> { | |||||
| return this; | return this; | ||||
| } | } | ||||
| @Override | |||||
| public WxCpMessage build() { | public WxCpMessage build() { | ||||
| WxCpMessage m = super.build(); | WxCpMessage m = super.build(); | ||||
| m.setMediaId(this.mediaId); | m.setMediaId(this.mediaId); | ||||
| @@ -17,7 +17,7 @@ import java.util.List; | |||||
| */ | */ | ||||
| public final class NewsBuilder extends BaseBuilder<NewsBuilder> { | public final class NewsBuilder extends BaseBuilder<NewsBuilder> { | ||||
| private List<WxCpMessage.WxArticle> articles = new ArrayList<WxCpMessage.WxArticle>(); | |||||
| private List<WxCpMessage.WxArticle> articles = new ArrayList<>(); | |||||
| public NewsBuilder() { | public NewsBuilder() { | ||||
| this.msgType = WxConsts.CUSTOM_MSG_NEWS; | this.msgType = WxConsts.CUSTOM_MSG_NEWS; | ||||
| @@ -28,6 +28,7 @@ public final class NewsBuilder extends BaseBuilder<NewsBuilder> { | |||||
| return this; | return this; | ||||
| } | } | ||||
| @Override | |||||
| public WxCpMessage build() { | public WxCpMessage build() { | ||||
| WxCpMessage m = super.build(); | WxCpMessage m = super.build(); | ||||
| m.setArticles(this.articles); | m.setArticles(this.articles); | ||||
| @@ -23,6 +23,7 @@ public final class TextBuilder extends BaseBuilder<TextBuilder> { | |||||
| return this; | return this; | ||||
| } | } | ||||
| @Override | |||||
| public WxCpMessage build() { | public WxCpMessage build() { | ||||
| WxCpMessage m = super.build(); | WxCpMessage m = super.build(); | ||||
| m.setContent(this.content); | m.setContent(this.content); | ||||
| @@ -47,6 +47,7 @@ public final class VideoBuilder extends BaseBuilder<VideoBuilder> { | |||||
| return this; | return this; | ||||
| } | } | ||||
| @Override | |||||
| public WxCpMessage build() { | public WxCpMessage build() { | ||||
| WxCpMessage m = super.build(); | WxCpMessage m = super.build(); | ||||
| m.setMediaId(this.mediaId); | m.setMediaId(this.mediaId); | ||||
| @@ -23,6 +23,7 @@ public final class VoiceBuilder extends BaseBuilder<VoiceBuilder> { | |||||
| return this; | return this; | ||||
| } | } | ||||
| @Override | |||||
| public WxCpMessage build() { | public WxCpMessage build() { | ||||
| WxCpMessage m = super.build(); | WxCpMessage m = super.build(); | ||||
| m.setMediaId(this.mediaId); | m.setMediaId(this.mediaId); | ||||
| @@ -16,6 +16,7 @@ public final class ImageBuilder extends BaseBuilder<ImageBuilder, WxCpXmlOutImag | |||||
| return this; | return this; | ||||
| } | } | ||||
| @Override | |||||
| public WxCpXmlOutImageMessage build() { | public WxCpXmlOutImageMessage build() { | ||||
| WxCpXmlOutImageMessage m = new WxCpXmlOutImageMessage(); | WxCpXmlOutImageMessage m = new WxCpXmlOutImageMessage(); | ||||
| setCommon(m); | setCommon(m); | ||||
| @@ -13,13 +13,14 @@ import java.util.List; | |||||
| */ | */ | ||||
| public final class NewsBuilder extends BaseBuilder<NewsBuilder, WxCpXmlOutNewsMessage> { | public final class NewsBuilder extends BaseBuilder<NewsBuilder, WxCpXmlOutNewsMessage> { | ||||
| protected final List<Item> articles = new ArrayList<Item>(); | |||||
| protected final List<Item> articles = new ArrayList<>(); | |||||
| public NewsBuilder addArticle(Item item) { | public NewsBuilder addArticle(Item item) { | ||||
| this.articles.add(item); | this.articles.add(item); | ||||
| return this; | return this; | ||||
| } | } | ||||
| @Override | |||||
| public WxCpXmlOutNewsMessage build() { | public WxCpXmlOutNewsMessage build() { | ||||
| WxCpXmlOutNewsMessage m = new WxCpXmlOutNewsMessage(); | WxCpXmlOutNewsMessage m = new WxCpXmlOutNewsMessage(); | ||||
| for (Item item : this.articles) { | for (Item item : this.articles) { | ||||
| @@ -15,6 +15,7 @@ public final class TextBuilder extends BaseBuilder<TextBuilder, WxCpXmlOutTextMe | |||||
| return this; | return this; | ||||
| } | } | ||||
| @Override | |||||
| public WxCpXmlOutTextMessage build() { | public WxCpXmlOutTextMessage build() { | ||||
| WxCpXmlOutTextMessage m = new WxCpXmlOutTextMessage(); | WxCpXmlOutTextMessage m = new WxCpXmlOutTextMessage(); | ||||
| setCommon(m); | setCommon(m); | ||||
| @@ -28,6 +28,7 @@ public final class VideoBuilder extends BaseBuilder<VideoBuilder, WxCpXmlOutVide | |||||
| return this; | return this; | ||||
| } | } | ||||
| @Override | |||||
| public WxCpXmlOutVideoMessage build() { | public WxCpXmlOutVideoMessage build() { | ||||
| WxCpXmlOutVideoMessage m = new WxCpXmlOutVideoMessage(); | WxCpXmlOutVideoMessage m = new WxCpXmlOutVideoMessage(); | ||||
| setCommon(m); | setCommon(m); | ||||
| @@ -16,6 +16,7 @@ public final class VoiceBuilder extends BaseBuilder<VoiceBuilder, WxCpXmlOutVoic | |||||
| return this; | return this; | ||||
| } | } | ||||
| @Override | |||||
| public WxCpXmlOutVoiceMessage build() { | public WxCpXmlOutVoiceMessage build() { | ||||
| WxCpXmlOutVoiceMessage m = new WxCpXmlOutVoiceMessage(); | WxCpXmlOutVoiceMessage m = new WxCpXmlOutVoiceMessage(); | ||||
| setCommon(m); | setCommon(m); | ||||
| @@ -19,6 +19,7 @@ import java.lang.reflect.Type; | |||||
| */ | */ | ||||
| public class WxCpDepartGsonAdapter implements JsonSerializer<WxCpDepart>, JsonDeserializer<WxCpDepart> { | public class WxCpDepartGsonAdapter implements JsonSerializer<WxCpDepart>, JsonDeserializer<WxCpDepart> { | ||||
| @Override | |||||
| public JsonElement serialize(WxCpDepart group, Type typeOfSrc, JsonSerializationContext context) { | public JsonElement serialize(WxCpDepart group, Type typeOfSrc, JsonSerializationContext context) { | ||||
| JsonObject json = new JsonObject(); | JsonObject json = new JsonObject(); | ||||
| if (group.getId() != null) { | if (group.getId() != null) { | ||||
| @@ -36,6 +37,7 @@ public class WxCpDepartGsonAdapter implements JsonSerializer<WxCpDepart>, JsonDe | |||||
| return json; | return json; | ||||
| } | } | ||||
| @Override | |||||
| public WxCpDepart deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) | public WxCpDepart deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) | ||||
| throws JsonParseException { | throws JsonParseException { | ||||
| WxCpDepart depart = new WxCpDepart(); | WxCpDepart depart = new WxCpDepart(); | ||||
| @@ -20,6 +20,7 @@ import java.lang.reflect.Type; | |||||
| */ | */ | ||||
| public class WxCpMessageGsonAdapter implements JsonSerializer<WxCpMessage> { | public class WxCpMessageGsonAdapter implements JsonSerializer<WxCpMessage> { | ||||
| @Override | |||||
| public JsonElement serialize(WxCpMessage message, Type typeOfSrc, JsonSerializationContext context) { | public JsonElement serialize(WxCpMessage message, Type typeOfSrc, JsonSerializationContext context) { | ||||
| JsonObject messageJson = new JsonObject(); | JsonObject messageJson = new JsonObject(); | ||||
| messageJson.addProperty("agentid", message.getAgentId()); | messageJson.addProperty("agentid", message.getAgentId()); | ||||
| @@ -19,6 +19,7 @@ import java.lang.reflect.Type; | |||||
| */ | */ | ||||
| public class WxCpTagGsonAdapter implements JsonSerializer<WxCpTag>, JsonDeserializer<WxCpTag> { | public class WxCpTagGsonAdapter implements JsonSerializer<WxCpTag>, JsonDeserializer<WxCpTag> { | ||||
| @Override | |||||
| public JsonElement serialize(WxCpTag tag, Type typeOfSrc, JsonSerializationContext context) { | public JsonElement serialize(WxCpTag tag, Type typeOfSrc, JsonSerializationContext context) { | ||||
| JsonObject o = new JsonObject(); | JsonObject o = new JsonObject(); | ||||
| o.addProperty("tagid", tag.getId()); | o.addProperty("tagid", tag.getId()); | ||||
| @@ -26,6 +27,7 @@ public class WxCpTagGsonAdapter implements JsonSerializer<WxCpTag>, JsonDeserial | |||||
| return o; | return o; | ||||
| } | } | ||||
| @Override | |||||
| public WxCpTag deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) | public WxCpTag deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) | ||||
| throws JsonParseException { | throws JsonParseException { | ||||
| JsonObject jsonObject = json.getAsJsonObject(); | JsonObject jsonObject = json.getAsJsonObject(); | ||||
| @@ -19,6 +19,7 @@ import java.lang.reflect.Type; | |||||
| */ | */ | ||||
| public class WxCpUserGsonAdapter implements JsonDeserializer<WxCpUser>, JsonSerializer<WxCpUser> { | public class WxCpUserGsonAdapter implements JsonDeserializer<WxCpUser>, JsonSerializer<WxCpUser> { | ||||
| @Override | |||||
| public WxCpUser deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) | public WxCpUser deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) | ||||
| throws JsonParseException { | throws JsonParseException { | ||||
| JsonObject o = json.getAsJsonObject(); | JsonObject o = json.getAsJsonObject(); | ||||
| @@ -45,7 +45,7 @@ public class XStreamTransformer { | |||||
| } | } | ||||
| private static Map<Class, XStream> configXStreamInstance() { | private static Map<Class, XStream> configXStreamInstance() { | ||||
| Map<Class, XStream> map = new HashMap<Class, XStream>(); | |||||
| Map<Class, XStream> map = new HashMap<>(); | |||||
| map.put(WxCpXmlMessage.class, config_WxCpXmlMessage()); | map.put(WxCpXmlMessage.class, config_WxCpXmlMessage()); | ||||
| map.put(WxCpXmlOutNewsMessage.class, config_WxCpXmlOutNewsMessage()); | map.put(WxCpXmlOutNewsMessage.class, config_WxCpXmlOutNewsMessage()); | ||||
| map.put(WxCpXmlOutTextMessage.class, config_WxCpXmlOutTextMessage()); | map.put(WxCpXmlOutTextMessage.class, config_WxCpXmlOutTextMessage()); | ||||
| @@ -1,10 +1,12 @@ | |||||
| package me.chanjar.weixin.mp.bean.tag; | package me.chanjar.weixin.mp.bean.tag; | ||||
| import com.google.gson.JsonParser; | |||||
| import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; | |||||
| import org.apache.commons.lang3.builder.ToStringBuilder; | import org.apache.commons.lang3.builder.ToStringBuilder; | ||||
| import org.apache.commons.lang3.builder.ToStringStyle; | import org.apache.commons.lang3.builder.ToStringStyle; | ||||
| import com.google.gson.JsonParser; | |||||
| import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; | |||||
| /** | /** | ||||
| * 用户标签对象 | * 用户标签对象 | ||||
| * @author binarywang(https://github.com/binarywang) | * @author binarywang(https://github.com/binarywang) | ||||
| @@ -27,7 +29,7 @@ public class WxUserTag { | |||||
| private Integer count; | private Integer count; | ||||
| public String getName() { | public String getName() { | ||||
| return name; | |||||
| return this.name; | |||||
| } | } | ||||
| public void setName(String name) { | public void setName(String name) { | ||||
| @@ -35,7 +37,7 @@ public class WxUserTag { | |||||
| } | } | ||||
| public Integer getCount() { | public Integer getCount() { | ||||
| return count; | |||||
| return this.count; | |||||
| } | } | ||||
| public void setCount(Integer count) { | public void setCount(Integer count) { | ||||
| @@ -43,7 +45,7 @@ public class WxUserTag { | |||||
| } | } | ||||
| public Integer getId() { | public Integer getId() { | ||||
| return id; | |||||
| return this.id; | |||||
| } | } | ||||
| public void setId(Integer id) { | public void setId(Integer id) { | ||||