1
1
package me .chanjar .weixin .channel .api .impl ;
2
2
3
- import static me .chanjar .weixin .channel .constant .MessageEventConstants .ACCOUNT_NOTIFY ;
4
- import static me .chanjar .weixin .channel .constant .MessageEventConstants .AFTER_SALE_UPDATE ;
5
- import static me .chanjar .weixin .channel .constant .MessageEventConstants .BRAND ;
6
- import static me .chanjar .weixin .channel .constant .MessageEventConstants .COMPLAINT_NOTIFY ;
7
- import static me .chanjar .weixin .channel .constant .MessageEventConstants .CREATE_COUPON ;
8
- import static me .chanjar .weixin .channel .constant .MessageEventConstants .DELETE_COUPON ;
9
- import static me .chanjar .weixin .channel .constant .MessageEventConstants .EXPIRE_COUPON ;
10
- import static me .chanjar .weixin .channel .constant .MessageEventConstants .INVALID_COUPON ;
11
- import static me .chanjar .weixin .channel .constant .MessageEventConstants .ORDER_CANCEL ;
12
- import static me .chanjar .weixin .channel .constant .MessageEventConstants .ORDER_CONFIRM ;
13
- import static me .chanjar .weixin .channel .constant .MessageEventConstants .ORDER_DELIVER ;
14
- import static me .chanjar .weixin .channel .constant .MessageEventConstants .ORDER_EXT_INFO_UPDATE ;
15
- import static me .chanjar .weixin .channel .constant .MessageEventConstants .ORDER_NEW ;
16
- import static me .chanjar .weixin .channel .constant .MessageEventConstants .ORDER_PAY ;
17
- import static me .chanjar .weixin .channel .constant .MessageEventConstants .ORDER_SETTLE ;
18
- import static me .chanjar .weixin .channel .constant .MessageEventConstants .ORDER_STATUS_UPDATE ;
19
- import static me .chanjar .weixin .channel .constant .MessageEventConstants .PRODUCT_CATEGORY_AUDIT ;
20
- import static me .chanjar .weixin .channel .constant .MessageEventConstants .PRODUCT_SPU_AUDIT ;
21
- import static me .chanjar .weixin .channel .constant .MessageEventConstants .PRODUCT_SPU_STATUS_UPDATE ;
22
- import static me .chanjar .weixin .channel .constant .MessageEventConstants .PRODUCT_SPU_UPDATE ;
23
- import static me .chanjar .weixin .channel .constant .MessageEventConstants .QRCODE_STATUS ;
24
- import static me .chanjar .weixin .channel .constant .MessageEventConstants .RECEIVE_COUPON ;
25
- import static me .chanjar .weixin .channel .constant .MessageEventConstants .SUPPLIER_ITEM_UPDATE ;
26
- import static me .chanjar .weixin .channel .constant .MessageEventConstants .UPDATE_COUPON_INFO ;
27
- import static me .chanjar .weixin .channel .constant .MessageEventConstants .USER_COUPON_EXPIRE ;
28
- import static me .chanjar .weixin .channel .constant .MessageEventConstants .USER_COUPON_UNUSE ;
29
- import static me .chanjar .weixin .channel .constant .MessageEventConstants .USER_COUPON_USE ;
30
- import static me .chanjar .weixin .channel .constant .MessageEventConstants .WITHDRAW_NOTIFY ;
31
-
32
3
import java .util .Map ;
33
4
import lombok .extern .slf4j .Slf4j ;
34
5
import me .chanjar .weixin .channel .api .BaseWxChannelMessageService ;
53
24
import me .chanjar .weixin .channel .bean .message .product .CategoryAuditMessage ;
54
25
import me .chanjar .weixin .channel .bean .message .product .SpuAuditMessage ;
55
26
import me .chanjar .weixin .channel .bean .message .supplier .SupplierItemMessage ;
27
+ import me .chanjar .weixin .channel .bean .message .vip .ExchangeInfoMessage ;
28
+ import me .chanjar .weixin .channel .bean .message .vip .UserInfoMessage ;
56
29
import me .chanjar .weixin .channel .message .WxChannelMessage ;
57
30
import me .chanjar .weixin .channel .message .WxChannelMessageRouter ;
58
31
import me .chanjar .weixin .channel .message .WxChannelMessageRouterRule ;
59
32
import me .chanjar .weixin .channel .message .rule .HandlerConsumer ;
60
33
import me .chanjar .weixin .channel .util .JsonUtils ;
61
34
import me .chanjar .weixin .common .session .WxSessionManager ;
62
35
36
+ import static me .chanjar .weixin .channel .constant .MessageEventConstants .*;
37
+
63
38
/**
64
39
* @author <a href="https://github.com/lixize">Zeyes</a>
65
40
*/
66
41
@ Slf4j
67
- public class BaseWxChannelMessageServiceImpl implements BaseWxChannelMessageService {
42
+ public abstract class BaseWxChannelMessageServiceImpl implements BaseWxChannelMessageService {
68
43
69
44
/** 消息路由器 */
70
45
protected WxChannelMessageRouter router ;
@@ -134,6 +109,18 @@ protected void addDefaultRule() {
134
109
this .addRule (QrNotifyMessage .class , QRCODE_STATUS , this ::qrNotify );
135
110
/* 团长 */
136
111
this .addRule (SupplierItemMessage .class , SUPPLIER_ITEM_UPDATE , this ::supplierItemUpdate );
112
+
113
+
114
+ /* 用户加入会员 */
115
+ this .addRule (UserInfoMessage .class , USER_VIP_JOIN , false , this ::vipJoin );
116
+ /* 用户注销会员 */
117
+ this .addRule (UserInfoMessage .class , USER_VIP_CLOSE ,false , this ::vipClose );
118
+ /* 用户等级信息更新 */
119
+ this .addRule (UserInfoMessage .class , USER_VIP_GRADE_INFO_UPDATE , false , this ::vipGradeUpdate );
120
+ /* 用户积分更新 */
121
+ this .addRule (UserInfoMessage .class , USER_VIP_SCORE_UPDATE , false , this ::vipScoreUpdate );
122
+ /* 用户积分兑换 */
123
+ this .addRule (ExchangeInfoMessage .class , USER_VIP_SCORE_EXCHANGE , false , this ::vipScoreExchange );
137
124
}
138
125
139
126
/**
@@ -144,17 +131,22 @@ protected void addDefaultRule() {
144
131
* @param consumer 处理器
145
132
* @param <T> 消息类型
146
133
*/
147
- protected <T extends WxChannelMessage > void addRule (Class <T > clazz , String event ,
148
- HandlerConsumer <T , String , String , Map <String , Object >, WxSessionManager > consumer ) {
134
+ protected <T extends WxChannelMessage > void addRule (Class <T > clazz , String event , Boolean async ,
135
+ HandlerConsumer <T , String , String , Map <String , Object >, WxSessionManager > consumer ) {
149
136
WxChannelMessageRouterRule <T > rule = new WxChannelMessageRouterRule <>();
150
- rule .setMessageClass (clazz ).setEvent (event ).setAsync (true );
137
+ rule .setMessageClass (clazz ).setEvent (event ).setAsync (async );
151
138
rule .getHandlers ().add ((message , content , appId , context , sessionManager ) -> {
152
139
consumer .accept (message , content , appId , context , sessionManager );
153
140
return "success" ;
154
141
});
155
142
this .addRule (rule );
156
143
}
157
144
145
+ protected <T extends WxChannelMessage > void addRule (Class <T > clazz , String event ,
146
+ HandlerConsumer <T , String , String , Map <String , Object >, WxSessionManager > consumer ) {
147
+ this .addRule (clazz , event , true , consumer );
148
+ }
149
+
158
150
@ Override
159
151
public void addRule (WxChannelMessageRouterRule <? extends WxChannelMessage > rule ) {
160
152
router .getRules ().add (rule );
@@ -340,4 +332,25 @@ public Object defaultMessageHandler(WxChannelMessage message, String content, St
340
332
log .info ("默认消息处理:{}" , JsonUtils .encode (message ));
341
333
return null ;
342
334
}
335
+
336
+
337
+ @ Override
338
+ public abstract void vipJoin (UserInfoMessage message , String content , String appId ,
339
+ Map <String , Object > context , WxSessionManager sessionManager );
340
+
341
+ @ Override
342
+ public abstract void vipClose (UserInfoMessage message , String content , String appId ,
343
+ Map <String , Object > context , WxSessionManager sessionManager );
344
+
345
+ @ Override
346
+ public abstract void vipGradeUpdate (UserInfoMessage message , String content , String appId ,
347
+ Map <String , Object > context , WxSessionManager sessionManager );
348
+
349
+ @ Override
350
+ public abstract void vipScoreUpdate (UserInfoMessage message , String content , String appId ,
351
+ Map <String , Object > context , WxSessionManager sessionManager );
352
+
353
+ @ Override
354
+ public abstract void vipScoreExchange (ExchangeInfoMessage message , String content , String appId ,
355
+ Map <String , Object > context , WxSessionManager sessionManager );
343
356
}
0 commit comments