diff --git a/web/src/main/java/com/ibeetl/jlw/service/AbstractHandler.java b/web/src/main/java/com/ibeetl/jlw/service/AbstractHandler.java new file mode 100644 index 00000000..e82826ee --- /dev/null +++ b/web/src/main/java/com/ibeetl/jlw/service/AbstractHandler.java @@ -0,0 +1,16 @@ +package com.ibeetl.jlw.service; + +import com.google.gson.Gson; +import me.chanjar.weixin.mp.api.WxMpMessageHandler; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * @author Binary Wang + */ +public abstract class AbstractHandler implements WxMpMessageHandler { + + protected final Gson gson = new Gson(); + protected Logger logger = LoggerFactory.getLogger(getClass()); + +} \ No newline at end of file diff --git a/web/src/main/java/com/ibeetl/jlw/service/MsgHandler.java b/web/src/main/java/com/ibeetl/jlw/service/MsgHandler.java new file mode 100644 index 00000000..85aba681 --- /dev/null +++ b/web/src/main/java/com/ibeetl/jlw/service/MsgHandler.java @@ -0,0 +1,81 @@ +package com.ibeetl.jlw.service; + +import cn.jlw.token.TokenService; +import com.ibeetl.admin.core.entity.CoreUser; +import com.ibeetl.admin.core.service.CoreUserService; +import com.ibeetl.jlw.entity.CoreUserWx; +import com.ibeetl.jlw.web.query.CoreUserWxQuery; +import me.chanjar.weixin.common.api.WxConsts; +import me.chanjar.weixin.common.session.WxSessionManager; +import me.chanjar.weixin.mp.api.WxMpService; +import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage; +import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage; +import me.chanjar.weixin.mp.builder.kefu.TextBuilder; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.Map; + +/** + * @author Binary Wang + */ +@Component +public class MsgHandler extends AbstractHandler { + + @Autowired + private CoreUserService coreUserService; + @Autowired + private CoreUserWxService coreUserWxService; + + @Autowired + private TokenService tokenService; + + @Override + public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage, + Map context, WxMpService wxMpService, + WxSessionManager sessionManager) { + + WeixinService weixinService = (WeixinService) wxMpService; + String fromUser = wxMessage.getFromUser(); + String userId = wxMessage.getEventKey(); + if (StringUtils.isEmpty(userId)) { + return WxMpXmlOutMessage.TEXT().content("欢迎关注").toUser(fromUser) + .fromUser(wxMessage.getToUser()) + .build(); + } + CoreUserWxQuery coreUserWxQuery = new CoreUserWxQuery(); + coreUserWxQuery.setOpenid(fromUser); + coreUserWxQuery.setUserId(Long.parseLong(userId)); + CoreUserWx info = coreUserWxService.getInfo(coreUserWxQuery); + if (info != null) { + CoreUser coreUser = coreUserService.getUserById(Long.parseLong(userId)); + //todo 登录 + //tokenService.getToken() + //indexTokenMap.put(keyId, teacherToken); + //tokenSessionMap.put() + //platformService.setLoginUser() + return WxMpXmlOutMessage.TEXT().content("登录成功").toUser(fromUser) + .fromUser(wxMessage.getToUser()) + .build(); + } + CoreUserWxQuery coreUserWxQuery1 = new CoreUserWxQuery(); + coreUserWxQuery1.setOpenid(fromUser); + CoreUserWx info1 = coreUserWxService.getInfo(coreUserWxQuery1); + CoreUserWxQuery coreUserWxQuery2 = new CoreUserWxQuery(); + coreUserWxQuery2.setUserId(Long.parseLong(userId)); + CoreUserWx info2 = coreUserWxService.getInfo(coreUserWxQuery2); + if (info2 != null || info1 != null) { + return WxMpXmlOutMessage.TEXT().content("绑定失败,已经绑定其他账号").toUser(fromUser) + .fromUser(wxMessage.getToUser()) + .build(); + } + coreUserWxQuery2.setOpenid(fromUser); + coreUserWxService.add(coreUserWxQuery2); + return WxMpXmlOutMessage.TEXT().content("绑定成功").toUser(fromUser) + .fromUser(wxMessage.getToUser()) + .build(); + + } + +} diff --git a/web/src/main/java/com/ibeetl/jlw/service/WeixinService.java b/web/src/main/java/com/ibeetl/jlw/service/WeixinService.java index ff74c2f6..b9d0d8ad 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/WeixinService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/WeixinService.java @@ -31,7 +31,8 @@ public class WeixinService extends WxMpServiceImpl { @Autowired private WxMpConfig wxConfig; - + @Autowired + private MsgHandler msgHandler; private WxMpMessageRouter router; @PostConstruct @@ -90,7 +91,7 @@ public class WeixinService extends WxMpServiceImpl { // newRouter.rule().async(false).msgType(EVENT).event(SCAN).handler(this.nullHandler).end(); // 默认 -// newRouter.rule().async(false).handler(this.msgHandler).end(); + newRouter.rule().async(false).handler(this.msgHandler).end(); this.router = newRouter; } diff --git a/web/src/main/java/com/ibeetl/jlw/web/WeiXinController.java b/web/src/main/java/com/ibeetl/jlw/web/WeiXinController.java index 501ff33c..64ddbd10 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/WeiXinController.java +++ b/web/src/main/java/com/ibeetl/jlw/web/WeiXinController.java @@ -30,7 +30,15 @@ public class WeiXinController { @Autowired private WeixinService weixinService; -// @Autowired private WxMpMessageRouter wxMpMessageRouter; + @GetMapping(produces = "text/plain;charset=utf-8") + public String authGet( + @RequestParam(name = "signature", required = false) String signature, + @RequestParam(name = "timestamp", required = false) String timestamp, + @RequestParam(name = "nonce", required = false) String nonce, + @RequestParam(name = "echostr", required = false) String echostr) { + + return echostr; + } /** * 获取公众号二维码 @@ -45,6 +53,8 @@ public class WeiXinController { return qrcodeService.qrCodePictureUrl(wxMpQrCodeTicket.getTicket()); } + + /** * 接收微信公众号推送 * @param requestBody diff --git a/web/src/main/java/com/ibeetl/jlw/web/query/StudentScoreParam.java b/web/src/main/java/com/ibeetl/jlw/web/query/StudentScoreParam.java index 4b072ddf..c4504e6f 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/query/StudentScoreParam.java +++ b/web/src/main/java/com/ibeetl/jlw/web/query/StudentScoreParam.java @@ -11,7 +11,7 @@ import lombok.Data; * @Date 2022/11/2 20:20 */ @Data -public class StudentScoreParam extends PageParam { +public class StudentScoreParam extends StudentQuery { /** * 实操id @@ -21,11 +21,12 @@ public class StudentScoreParam extends PageParam { /** * 班级id */ - private String classId; + private Long classId; /** * 1:视频 2:ppt 3:理论 4:实操 5:报告 */ private String type; + } \ No newline at end of file