@@ -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) { | ||||