MenuHandler.java 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. package com.book.push.handler;
  2. import com.book.dao.cps.pojo.AdminConfig;
  3. import com.book.dao.cps.pojo.SignRecommand;
  4. import com.book.dao.cps.pojo.User;
  5. import com.book.push.service.dao.AdminConfigService;
  6. import com.book.push.service.dao.PlatformService;
  7. import com.book.push.service.dao.SignRecommendService;
  8. import com.book.push.service.dao.UserService;
  9. import com.book.push.service.push.PushService;
  10. import com.book.push.service.wx.WxThirdPartService;
  11. import me.chanjar.weixin.common.session.WxSessionManager;
  12. import me.chanjar.weixin.mp.api.WxMpService;
  13. import me.chanjar.weixin.mp.bean.kefu.WxMpKefuMessage;
  14. import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
  15. import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;
  16. import me.chanjar.weixin.mp.builder.kefu.NewsBuilder;
  17. import me.chanjar.weixin.open.api.WxOpenMpService;
  18. import me.chanjar.weixin.open.api.WxOpenService;
  19. import org.checkerframework.checker.units.qual.A;
  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import org.springframework.stereotype.Component;
  22. import java.util.Map;
  23. import static me.chanjar.weixin.common.api.WxConsts.EventType;
  24. /**
  25. * @author 点击菜单事件
  26. */
  27. @Component
  28. public class MenuHandler extends AbstractHandler {
  29. @Autowired
  30. private PushService pushService;
  31. @Autowired
  32. private UserService userService;
  33. @Autowired
  34. private AdminConfigService adminConfigService;
  35. @Autowired
  36. private PlatformService platformService;
  37. @Autowired
  38. private WxThirdPartService wxThirdPartService;
  39. @Autowired
  40. private SignRecommendService signRecommendService;
  41. @Override
  42. public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage,
  43. Map<String, Object> context, WxMpService weixinService,
  44. WxSessionManager sessionManager) {
  45. String msg = String.format("type:%s, event:%s, key:%s",
  46. wxMessage.getMsgType(), wxMessage.getEvent(),
  47. wxMessage.getEventKey());
  48. if (EventType.VIEW.equals(wxMessage.getEvent())) {
  49. return null;
  50. }
  51. String openid = wxMessage.getFromUser();
  52. AdminConfig adminConfig = userService.selectAdminConfigByOpenid(openid);
  53. Integer platformId = adminConfig.getPlatformId();
  54. WxOpenService wxOpenService = wxThirdPartService.getWxOpenServiceByPlatFormId(platformId);
  55. WxOpenMpService wxMpService = wxOpenService.getWxOpenComponentService().getWxMpServiceByAppid(wxMessage.getToUser());
  56. SignRecommand signRecommand = signRecommendService.selectRandom();
  57. WxMpKefuMessage.WxArticle wxArticle = new WxMpKefuMessage.WxArticle();
  58. wxArticle.setTitle();
  59. new NewsBuilder().toUser(openid).addArticle()
  60. wxMpService.getKefuService().sendKefuMessage()
  61. pushService.addBookPushTask();
  62. return WxMpXmlOutMessage.TEXT().content(msg)
  63. .fromUser(wxMessage.getToUser()).toUser(wxMessage.getFromUser())
  64. .build();
  65. }
  66. }