WeixinSuiteMessage rename SuiteMessage

This commit is contained in:
jinyu 2015-12-16 17:56:32 +08:00
parent 3ed53ed366
commit a31b2ff18c
5 changed files with 31 additions and 25 deletions

View File

@ -173,13 +173,15 @@ public class DefaultMessageMatcher implements WeixinMessageMatcher {
private void initQyEventMessageClass() {
String messageType = MessageType.event.name();
// batch_job_result消息不好区分微信号类型
messageClassMap.put(new WeixinMessageKey(messageType,
EventType.batch_job_result.name(), AccountType.MP),
EventType.batch_job_result.name(), AccountType.QY),
BatchjobresultMessage.class);
messageClassMap.put(new WeixinMessageKey(messageType,
EventType.enter_agent.name(), AccountType.QY),
EnterAgentEventMessage.class);
//messageClassMap.put(new WeixinMessageKey(messageType,
// EventType.suite.name(), AccountType.QY),
//SuiteMessage.class);
}
@Override
@ -190,7 +192,7 @@ public class DefaultMessageMatcher implements WeixinMessageMatcher {
@Override
public void regist(WeixinMessageKey messageKey,
Class<? extends WeixinMessage> messageClass) {
Class<?> clazz = messageClassMap.get(messageKey);
Class<?> clazz = match(messageKey);
if (clazz != null) {
throw new IllegalArgumentException("duplicate messagekey '"
+ messageKey + "' define for " + clazz);

View File

@ -30,7 +30,6 @@ import com.foxinmy.weixin4j.request.WeixinRequest;
import com.foxinmy.weixin4j.response.BlankResponse;
import com.foxinmy.weixin4j.response.WeixinResponse;
import com.foxinmy.weixin4j.socket.WeixinMessageTransfer;
import com.foxinmy.weixin4j.type.AccountType;
import com.foxinmy.weixin4j.util.ClassUtil;
import com.foxinmy.weixin4j.util.Consts;
import com.foxinmy.weixin4j.util.HttpUtil;
@ -115,9 +114,7 @@ public class WeixinMessageDispatcher {
public void doDispatch(final ChannelHandlerContext context,
final WeixinRequest request,
final WeixinMessageTransfer messageTransfer) throws WeixinException {
WeixinMessageKey messageKey = defineMessageKey(
messageTransfer.getMsgType(), messageTransfer.getEventType(),
messageTransfer.getAccountType());
WeixinMessageKey messageKey = defineMessageKey(messageTransfer, request);
Class<? extends WeixinMessage> targetClass = messageMatcher
.match(messageKey);
Object message = messageRead(request.getOriginalContent(), targetClass);
@ -149,17 +146,17 @@ public class WeixinMessageDispatcher {
/**
* 声明messagekey
*
* @param messageType
* 消息类型
* @param eventType
* 事件类型
* @param accountType
* 账号类型
* @param messageTransfer
* 基础消息
* @param request
* 请求信息
* @return
*/
protected WeixinMessageKey defineMessageKey(String messageType,
String eventType, AccountType accountType) {
return new WeixinMessageKey(messageType, eventType, accountType);
protected WeixinMessageKey defineMessageKey(
WeixinMessageTransfer messageTransfer, WeixinRequest request) {
return new WeixinMessageKey(messageTransfer.getMsgType(),
messageTransfer.getEventType(),
messageTransfer.getAccountType());
}
/**

View File

@ -12,7 +12,7 @@ import javax.xml.bind.annotation.XmlTransient;
/**
* 套件消息
*
* @className WeixinSuiteMessage
* @className SuiteMessage
* @author jy
* @date 2015年6月23日
* @since JDK 1.6
@ -20,7 +20,7 @@ import javax.xml.bind.annotation.XmlTransient;
*/
@XmlRootElement(name = "xml")
@XmlAccessorType(XmlAccessType.FIELD)
public class WeixinSuiteMessage implements Serializable {
public class SuiteMessage implements Serializable {
private static final long serialVersionUID = 6457919241019021514L;
/**
@ -81,7 +81,7 @@ public class WeixinSuiteMessage implements Serializable {
@Override
public String toString() {
return "WeixinSuiteMessage [suiteId=" + suiteId + ", eventType="
return "SuiteMessage [suiteId=" + suiteId + ", eventType="
+ eventType + ", timeStamp=" + timeStamp + ", SuiteTicket="
+ SuiteTicket + ", authCorpId=" + authCorpId + "]";
}

View File

@ -150,5 +150,10 @@ public enum EventType {
*
* @see com.foxinmy.weixin4j.qy.event.EnterAgentEventMessage
*/
enter_agent;
enter_agent,
/**
* 第三方应用套件消息
* @see com.foxinmy.weixin4j.qy.suite.WeixinSuiteMessage
*/
suite;
}

View File

@ -32,7 +32,7 @@ public class MessageTransferHandler extends DefaultHandler {
private String toUserName;
private String msgType;
private String eventType;
private boolean hasAgent;
private boolean isQY;
private Set<String> nodeNames;
private String content;
@ -43,7 +43,7 @@ public class MessageTransferHandler extends DefaultHandler {
toUserName = null;
msgType = null;
eventType = null;
hasAgent = false;
isQY = false;
nodeNames = new HashSet<String>();
}
@ -59,8 +59,10 @@ public class MessageTransferHandler extends DefaultHandler {
msgType = content.toLowerCase();
} else if (localName.equalsIgnoreCase("event")) {
eventType = content.toLowerCase();
} else if (localName.startsWith("agent")) {
hasAgent = true;
} else if (localName.startsWith("agent") // 应用信息
|| localName.startsWith("suite") // 套件信息
|| localName.equalsIgnoreCase("batchJob")) { // 批量任务
isQY = true;
}
}
@ -71,7 +73,7 @@ public class MessageTransferHandler extends DefaultHandler {
}
private AccountType getAccountType() {
if (hasAgent) {
if (isQY) {
return AccountType.QY;
}
if (StringUtil.isBlank(msgType) && StringUtil.isBlank(eventType)) {