BaseWxChannelMessageService.java 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541
  1. package me.chanjar.weixin.channel.api;
  2. import java.util.Map;
  3. import me.chanjar.weixin.channel.bean.message.after.AfterSaleMessage;
  4. import me.chanjar.weixin.channel.bean.message.after.ComplaintMessage;
  5. import me.chanjar.weixin.channel.bean.message.coupon.CouponActionMessage;
  6. import me.chanjar.weixin.channel.bean.message.coupon.CouponReceiveMessage;
  7. import me.chanjar.weixin.channel.bean.message.coupon.UserCouponExpireMessage;
  8. import me.chanjar.weixin.channel.bean.message.fund.AccountNotifyMessage;
  9. import me.chanjar.weixin.channel.bean.message.fund.QrNotifyMessage;
  10. import me.chanjar.weixin.channel.bean.message.fund.WithdrawNotifyMessage;
  11. import me.chanjar.weixin.channel.bean.message.order.OrderCancelMessage;
  12. import me.chanjar.weixin.channel.bean.message.order.OrderConfirmMessage;
  13. import me.chanjar.weixin.channel.bean.message.order.OrderDeliveryMessage;
  14. import me.chanjar.weixin.channel.bean.message.order.OrderExtMessage;
  15. import me.chanjar.weixin.channel.bean.message.order.OrderIdMessage;
  16. import me.chanjar.weixin.channel.bean.message.order.OrderPayMessage;
  17. import me.chanjar.weixin.channel.bean.message.order.OrderSettleMessage;
  18. import me.chanjar.weixin.channel.bean.message.order.OrderStatusMessage;
  19. import me.chanjar.weixin.channel.bean.message.product.BrandMessage;
  20. import me.chanjar.weixin.channel.bean.message.product.CategoryAuditMessage;
  21. import me.chanjar.weixin.channel.bean.message.product.SpuAuditMessage;
  22. import me.chanjar.weixin.channel.bean.message.product.SpuStockMessage;
  23. import me.chanjar.weixin.channel.bean.message.store.CloseStoreMessage;
  24. import me.chanjar.weixin.channel.bean.message.store.NicknameUpdateMessage;
  25. import me.chanjar.weixin.channel.bean.message.supplier.SupplierItemMessage;
  26. import me.chanjar.weixin.channel.bean.message.vip.ExchangeInfoMessage;
  27. import me.chanjar.weixin.channel.bean.message.vip.UserInfoMessage;
  28. import me.chanjar.weixin.channel.bean.message.voucher.VoucherMessage;
  29. import me.chanjar.weixin.channel.message.WxChannelMessage;
  30. import me.chanjar.weixin.channel.message.WxChannelMessageRouterRule;
  31. import me.chanjar.weixin.common.session.WxSessionManager;
  32. /**
  33. * @author <a href="https://github.com/lixize">Zeyes</a>
  34. */
  35. public interface BaseWxChannelMessageService {
  36. /**
  37. * 路由微信消息
  38. *
  39. * @param message 消息
  40. * @param content 消息原始内容
  41. * @param appId appId
  42. * @param service 服务实例
  43. * @return Object
  44. */
  45. Object route(final WxChannelMessage message, final String content, final String appId,
  46. final WxChannelService service);
  47. /**
  48. * 添加一条规则进入路由器
  49. *
  50. * @param rule 规则
  51. */
  52. void addRule(WxChannelMessageRouterRule<? extends WxChannelMessage> rule);
  53. /**
  54. * 订单下单
  55. *
  56. * @param message 消息
  57. * @param content 消息原始内容
  58. * @param appId appId
  59. * @param context 上下文
  60. * @param sessionManager session管理器
  61. */
  62. void orderNew(final OrderIdMessage message, final String content, final String appId,
  63. final Map<String, Object> context, final WxSessionManager sessionManager);
  64. /**
  65. * 订单取消
  66. *
  67. * @param message 消息
  68. * @param content 消息原始内容
  69. * @param appId appId
  70. * @param context 上下文
  71. * @param sessionManager session管理器
  72. */
  73. void orderCancel(OrderCancelMessage message, final String content, final String appId,
  74. final Map<String, Object> context, final WxSessionManager sessionManager);
  75. /**
  76. * 订单支付成功
  77. *
  78. * @param message 消息
  79. * @param content 消息原始内容
  80. * @param appId appId
  81. * @param context 上下文
  82. * @param sessionManager session管理器
  83. */
  84. void orderPay(OrderPayMessage message, final String content, final String appId, final Map<String, Object> context,
  85. final WxSessionManager sessionManager);
  86. /**
  87. * 订单待发货
  88. *
  89. * @param message 消息
  90. * @param content 消息原始内容
  91. * @param appId appId
  92. * @param context 上下文
  93. * @param sessionManager session管理器
  94. */
  95. void orderWaitShipping(OrderIdMessage message, final String content, final String appId, final Map<String, Object> context,
  96. final WxSessionManager sessionManager);
  97. /**
  98. * 订单发货
  99. *
  100. * @param message 消息
  101. * @param content 消息原始内容
  102. * @param appId appId
  103. * @param context 上下文
  104. * @param sessionManager session管理器
  105. */
  106. void orderDelivery(OrderDeliveryMessage message, final String content, final String appId,
  107. final Map<String, Object> context, final WxSessionManager sessionManager);
  108. /**
  109. * 订单确认收货
  110. *
  111. * @param message 消息
  112. * @param content 消息原始内容
  113. * @param appId appId
  114. * @param context 上下文
  115. * @param sessionManager session管理器
  116. */
  117. void orderConfirm(OrderConfirmMessage message, final String content, final String appId,
  118. final Map<String, Object> context, final WxSessionManager sessionManager);
  119. /**
  120. * 订单结算成功
  121. *
  122. * @param message 消息
  123. * @param content 消息原始内容
  124. * @param appId appId
  125. * @param context 上下文
  126. * @param sessionManager session管理器
  127. */
  128. void orderSettle(OrderSettleMessage message, final String content, final String appId,
  129. final Map<String, Object> context, final WxSessionManager sessionManager);
  130. /**
  131. * 订单其他信息更新
  132. *
  133. * @param message 消息
  134. * @param content 消息原始内容
  135. * @param appId appId
  136. * @param context 上下文
  137. * @param sessionManager session管理器
  138. */
  139. void orderExtInfoUpdate(OrderExtMessage message, final String content, final String appId,
  140. final Map<String, Object> context, final WxSessionManager sessionManager);
  141. /**
  142. * 订单状态更新
  143. *
  144. * @param message 消息
  145. * @param content 消息原始内容
  146. * @param appId appId
  147. * @param context 上下文
  148. * @param sessionManager session管理器
  149. */
  150. void orderStatusUpdate(OrderStatusMessage message, final String content, final String appId,
  151. final Map<String, Object> context, final WxSessionManager sessionManager);
  152. /**
  153. * 商品审核结果
  154. *
  155. * @param message 消息
  156. * @param content 消息原始内容
  157. * @param appId appId
  158. * @param context 上下文
  159. * @param sessionManager session管理器
  160. */
  161. void spuAudit(SpuAuditMessage message, final String content, final String appId, final Map<String, Object> context,
  162. final WxSessionManager sessionManager);
  163. /**
  164. * 商品系统下架通知
  165. *
  166. * @param message 消息
  167. * @param content 消息原始内容
  168. * @param appId appId
  169. * @param context 上下文
  170. * @param sessionManager session管理器
  171. */
  172. void spuStatusUpdate(SpuAuditMessage message, final String content, final String appId,
  173. final Map<String, Object> context, final WxSessionManager sessionManager);
  174. /**
  175. * 商品更新通知
  176. *
  177. * @param message 消息
  178. * @param content 消息原始内容
  179. * @param appId appId
  180. * @param context 上下文
  181. * @param sessionManager session管理器
  182. */
  183. void spuUpdate(SpuAuditMessage message, final String content, final String appId, final Map<String, Object> context,
  184. final WxSessionManager sessionManager);
  185. /**
  186. * 商品库存不足通知
  187. *
  188. * @param message 消息
  189. * @param content 消息原始内容
  190. * @param appId appId
  191. * @param context 上下文
  192. * @param sessionManager session管理器
  193. */
  194. void stockNoEnough(SpuStockMessage message, final String content, final String appId,
  195. final Map<String, Object> context, final WxSessionManager sessionManager);
  196. /**
  197. * 类目审核结果
  198. *
  199. * @param message 消息
  200. * @param content 消息原始内容
  201. * @param appId appId
  202. * @param context 上下文
  203. * @param sessionManager session管理器
  204. */
  205. void categoryAudit(CategoryAuditMessage message, final String content, final String appId,
  206. final Map<String, Object> context, final WxSessionManager sessionManager);
  207. /**
  208. * 品牌更新
  209. *
  210. * @param message 消息
  211. * @param content 消息原始内容
  212. * @param appId appId
  213. * @param context 上下文
  214. * @param sessionManager session管理器
  215. */
  216. void brandUpdate(BrandMessage message, final String content, final String appId, final Map<String, Object> context,
  217. final WxSessionManager sessionManager);
  218. /**
  219. * 售后单状态更新
  220. *
  221. * @param message 消息
  222. * @param content 消息原始内容
  223. * @param appId appId
  224. * @param context 上下文
  225. * @param sessionManager session管理器
  226. */
  227. void afterSaleStatusUpdate(AfterSaleMessage message, final String content, final String appId,
  228. final Map<String, Object> context, final WxSessionManager sessionManager);
  229. /**
  230. * 纠纷回调
  231. *
  232. * @param message 消息
  233. * @param content 消息原始内容
  234. * @param appId appId
  235. * @param context 上下文
  236. * @param sessionManager session管理器
  237. */
  238. void complaintNotify(ComplaintMessage message, final String content, final String appId,
  239. final Map<String, Object> context, final WxSessionManager sessionManager);
  240. /**
  241. * 用户领券通知
  242. *
  243. * @param message 消息
  244. * @param content 消息原始内容
  245. * @param appId appId
  246. * @param context 上下文
  247. * @param sessionManager session管理器
  248. */
  249. void couponReceive(CouponReceiveMessage message, final String content, final String appId,
  250. final Map<String, Object> context, final WxSessionManager sessionManager);
  251. /**
  252. * 创建优惠券通知
  253. *
  254. * @param message 消息
  255. * @param content 消息原始内容
  256. * @param appId appId
  257. * @param context 上下文
  258. * @param sessionManager session管理器
  259. */
  260. void couponCreate(CouponActionMessage message, final String content, final String appId,
  261. final Map<String, Object> context, final WxSessionManager sessionManager);
  262. /**
  263. * 优惠券删除通知
  264. *
  265. * @param message 消息
  266. * @param content 消息原始内容
  267. * @param appId appId
  268. * @param context 上下文
  269. * @param sessionManager session管理器
  270. */
  271. void couponDelete(CouponActionMessage message, final String content, final String appId,
  272. final Map<String, Object> context, final WxSessionManager sessionManager);
  273. /**
  274. * 优惠券过期通知
  275. *
  276. * @param message 消息
  277. * @param content 消息原始内容
  278. * @param appId appId
  279. * @param context 上下文
  280. * @param sessionManager session管理器
  281. */
  282. void couponExpire(CouponActionMessage message, final String content, final String appId,
  283. final Map<String, Object> context, final WxSessionManager sessionManager);
  284. /**
  285. * 更新优惠券信息通知
  286. *
  287. * @param message 消息
  288. * @param content 消息原始内容
  289. * @param appId appId
  290. * @param context 上下文
  291. * @param sessionManager session管理器
  292. */
  293. void couponUpdate(CouponActionMessage message, final String content, final String appId,
  294. final Map<String, Object> context, final WxSessionManager sessionManager);
  295. /**
  296. * 优惠券作废通知
  297. *
  298. * @param message 消息
  299. * @param content 消息原始内容
  300. * @param appId appId
  301. * @param context 上下文
  302. * @param sessionManager session管理器
  303. */
  304. void couponInvalid(CouponActionMessage message, final String content, final String appId,
  305. final Map<String, Object> context, final WxSessionManager sessionManager);
  306. /**
  307. * 用户优惠券过期通知
  308. *
  309. * @param message 消息
  310. * @param content 消息原始内容
  311. * @param appId appId
  312. * @param context 上下文
  313. * @param sessionManager session管理器
  314. */
  315. void userCouponExpire(UserCouponExpireMessage message, final String content, final String appId,
  316. final Map<String, Object> context, final WxSessionManager sessionManager);
  317. /**
  318. * 用户优惠券使用通知
  319. *
  320. * @param message 消息
  321. * @param content 消息原始内容
  322. * @param appId appId
  323. * @param context 上下文
  324. * @param sessionManager session管理器
  325. */
  326. void userCouponUse(UserCouponExpireMessage message, final String content, final String appId,
  327. final Map<String, Object> context, final WxSessionManager sessionManager);
  328. /**
  329. * 用户优惠券返还通知
  330. *
  331. * @param message 消息
  332. * @param content 消息原始内容
  333. * @param appId appId
  334. * @param context 上下文
  335. * @param sessionManager session管理器
  336. */
  337. void userCouponUnuse(UserCouponExpireMessage message, final String content, final String appId,
  338. final Map<String, Object> context, final WxSessionManager sessionManager);
  339. /**
  340. * 发放团购优惠成功回调
  341. *
  342. * @param message 消息
  343. * @param content 消息原始内容
  344. * @param appId appId
  345. * @param context 上下文
  346. * @param sessionManager session管理器
  347. */
  348. void voucherSendSucc(VoucherMessage message, final String content, final String appId,
  349. final Map<String, Object> context, final WxSessionManager sessionManager);
  350. /**
  351. * 结算账户变更回调
  352. *
  353. * @param message 消息
  354. * @param content 消息原始内容
  355. * @param appId appId
  356. * @param context 上下文
  357. * @param sessionManager session管理器
  358. */
  359. void accountNotify(AccountNotifyMessage message, final String content, final String appId,
  360. final Map<String, Object> context, final WxSessionManager sessionManager);
  361. /**
  362. * 提现回调
  363. *
  364. * @param message 消息
  365. * @param content 消息原始内容
  366. * @param appId appId
  367. * @param context 上下文
  368. * @param sessionManager session管理器
  369. */
  370. void withdrawNotify(WithdrawNotifyMessage message, final String content, final String appId,
  371. final Map<String, Object> context, final WxSessionManager sessionManager);
  372. /**
  373. * 提现二维码回调
  374. *
  375. * @param message 消息
  376. * @param content 消息原始内容
  377. * @param appId appId
  378. * @param context 上下文
  379. * @param sessionManager session管理器
  380. */
  381. void qrNotify(QrNotifyMessage message, final String content, final String appId, final Map<String, Object> context,
  382. final WxSessionManager sessionManager);
  383. /**
  384. * 团长商品变更
  385. *
  386. * @param message 消息
  387. * @param content 消息原始内容
  388. * @param appId appId
  389. * @param context 上下文
  390. * @param sessionManager session管理器
  391. */
  392. void supplierItemUpdate(SupplierItemMessage message, final String content, final String appId,
  393. final Map<String, Object> context, final WxSessionManager sessionManager);
  394. /**
  395. * 用户加入会员.
  396. *
  397. * @param message the message
  398. * @param content the content
  399. * @param appId the app id
  400. * @param context the context
  401. * @param sessionManager the session manager
  402. */
  403. public void vipJoin(UserInfoMessage message, final String content, final String appId,
  404. final Map<String, Object> context, final WxSessionManager sessionManager);
  405. /**
  406. * 用户注销会员.
  407. *
  408. * @param message the message
  409. * @param content the content
  410. * @param appId the app id
  411. * @param context the context
  412. * @param sessionManager the session manager
  413. */
  414. void vipClose(UserInfoMessage message, final String content, final String appId,
  415. final Map<String, Object> context, final WxSessionManager sessionManager);
  416. /**
  417. * 用户等级更新.
  418. *
  419. * @param message the message
  420. * @param content the content
  421. * @param appId the app id
  422. * @param context the context
  423. * @param sessionManager the session manager
  424. */
  425. void vipGradeUpdate(UserInfoMessage message, final String content, final String appId,
  426. final Map<String, Object> context, final WxSessionManager sessionManager);
  427. /**
  428. * 用户积分更新.
  429. *
  430. * @param message the message
  431. * @param content the content
  432. * @param appId the app id
  433. * @param context the context
  434. * @param sessionManager the session manager
  435. */
  436. void vipScoreUpdate(UserInfoMessage message, final String content, final String appId,
  437. final Map<String, Object> context, final WxSessionManager sessionManager);
  438. /**
  439. * 用户积分兑换
  440. *
  441. * @param message the message
  442. * @param content the content
  443. * @param appId the app id
  444. * @param context the context
  445. * @param sessionManager the session manager
  446. */
  447. void vipScoreExchange(ExchangeInfoMessage message, final String content, final String appId,
  448. final Map<String, Object> context, final WxSessionManager sessionManager);
  449. /**
  450. * 小店注销
  451. *
  452. * @param message 消息
  453. * @param content 消息原始内容
  454. * @param appId appId
  455. * @param context 上下文
  456. * @param sessionManager session管理器
  457. */
  458. void closeStore(CloseStoreMessage message, final String content, final String appId,
  459. final Map<String, Object> context, final WxSessionManager sessionManager);
  460. /**
  461. * 小店修改名称
  462. *
  463. * @param message 消息
  464. * @param content 消息原始内容
  465. * @param appId appId
  466. * @param context 上下文
  467. * @param sessionManager session管理器
  468. */
  469. void updateNickname(NicknameUpdateMessage message, final String content, final String appId,
  470. final Map<String, Object> context, final WxSessionManager sessionManager);
  471. /**
  472. * 默认消息处理
  473. *
  474. * @param message 消息
  475. * @param content 消息原始内容
  476. * @param appId appId
  477. * @param context 上下文
  478. * @param sessionManager session管理器
  479. * @return Object
  480. */
  481. Object defaultMessageHandler(WxChannelMessage message, final String content, final String appId,
  482. final Map<String, Object> context, final WxSessionManager sessionManager);
  483. /**
  484. * 分享员变更
  485. *
  486. * @param message the message
  487. * @param content the content
  488. * @param appId the app id
  489. * @param context the context
  490. * @param sessionManager the session manager
  491. */
  492. void sharerChange(WxChannelMessage message, final String content, final String appId,
  493. final Map<String, Object> context, final WxSessionManager sessionManager);
  494. }