From 6d17fb69b25cd74c4598784a6cf6fe7a9b651e34 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 31 十二月 2019 12:01:34 +0800 Subject: [PATCH] 小程序接口相关修改 --- fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/UserAccountController.java | 82 ++++++++++++++++++++++++++++++++++++++++ 1 files changed, 81 insertions(+), 1 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/UserAccountController.java b/fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/UserAccountController.java index 1868641..e250344 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/UserAccountController.java +++ b/fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/UserAccountController.java @@ -6,7 +6,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; -import org.aspectj.weaver.JoinPointSignature; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.yeshi.utils.IPUtil; @@ -19,9 +18,13 @@ import com.yeshi.fanli.dto.WXMPAcceptData; import com.yeshi.fanli.dto.user.wx.WXMPLoginData; import com.yeshi.fanli.dto.user.wx.WXMPLoginResult; +import com.yeshi.fanli.entity.bus.user.ForbiddenUserIdentifyCode; +import com.yeshi.fanli.entity.bus.user.ForbiddenUserIdentifyCode.ForbiddenUserIdentifyCodeTypeEnum; import com.yeshi.fanli.entity.bus.user.UserInfo; +import com.yeshi.fanli.entity.bus.user.WeiXinUser; import com.yeshi.fanli.exception.user.UserAccountException; import com.yeshi.fanli.exception.user.UserInfoExtraException; +import com.yeshi.fanli.service.inter.user.ForbiddenUserIdentifyCodeService; import com.yeshi.fanli.service.inter.user.UserAccountService; import com.yeshi.fanli.service.inter.user.UserInfoExtraService; import com.yeshi.fanli.service.inter.user.UserInfoService; @@ -52,6 +55,9 @@ @Resource private RedisManager redisManager; + + @Resource + private ForbiddenUserIdentifyCodeService forbiddenUserIdentifyCodeService; /** * 閫氳繃閭�璇风爜鑾峰彇鐢ㄦ埛淇℃伅 @@ -270,4 +276,78 @@ out.print(JsonUtil.loadTrueResult(data)); } + @RequestMapping("bindWX") + public void bindWX(WXMPAcceptData acceptData, Long uid, String wxEncryptedData, String wxIv, + HttpServletRequest request, HttpSession session, PrintWriter out) { + if (StringUtil.isNullOrEmpty(acceptData.getOpenId())) { + out.print(JsonUtil.loadFalseResult("openId涓虹┖")); + return; + } + + if(uid==null){ + out.print(JsonUtil.loadFalseResult("uid涓虹┖")); + return; + } + + if (StringUtil.isNullOrEmpty(wxEncryptedData) || StringUtil.isNullOrEmpty(wxIv)) { + out.print(JsonUtil.loadFalseResult("寰俊淇℃伅涓虹┖")); + return; + } + + WXMPSessionInfo sessionInfo = (WXMPSessionInfo) session.getAttribute(UserController.WXMP_SESSION_INFO_KEY); + if (sessionInfo == null) { + out.print(JsonUtil.loadFalseResult(90000, "璇烽噸鏂扮櫥褰�")); + return; + } + + String sessionKey = sessionInfo.getSessionKey(); + if (StringUtil.isNullOrEmpty(sessionKey)) { + out.print(JsonUtil.loadFalseResult("code鏃犳晥")); + return; + } + + WXMPUserInfo userInfo = WXXCXUtil.getUserInfo(sessionKey, wxEncryptedData, wxIv); + if (userInfo == null || StringUtil.isNullOrEmpty(userInfo.getUnionId())) { + out.print(JsonUtil.loadFalseResult("鑾峰彇寰俊淇℃伅澶辫触")); + return; + } + + // 缁戝畾寰俊 + + WeiXinUser wxUser = new WeiXinUser(); + wxUser.setHeadimgurl(userInfo.getAvatarUrl()); + wxUser.setCity(userInfo.getCity()); + wxUser.setCountry(userInfo.getCountry()); + wxUser.setNickname(userInfo.getNickName()); + wxUser.setOpenid(""); + wxUser.setProvince(userInfo.getProvince()); + wxUser.setSex(userInfo.getGender()); + wxUser.setUnionid(userInfo.getUnionId()); + + try { + UserInfo user = userInfoService.getUserByIdWithMybatis(uid); + // 鍒ゆ柇taoBaoUid鏄惁宸茬粡灏佺 + ForbiddenUserIdentifyCode ic = forbiddenUserIdentifyCodeService + .listByTypeAndIdentifyCode(ForbiddenUserIdentifyCodeTypeEnum.wxUnionId, user.getWxUnionId()); + if (ic != null && ic.getEffective() != null && ic.getEffective()) { + out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC)); + // 灏佺鐢ㄦ埛 + // 灏佺缁戝畾鐨勬甯哥敤鎴� + if (user != null && user.getState() != null && user.getState() == UserInfo.STATE_NORMAL) { + userAccountService.forbiddenUser(uid, "灏佺锛氱粦瀹氳灏佺鐨勫井淇″彿"); + } + return; + } + + userAccountService.bindWeiXin(uid, wxUser); + user = userInfoService.getUserByIdWithMybatis(uid); + JSONObject data = new JSONObject(); + data.put("user", UserUtil.filterForClientUser(user)); + out.print(JsonUtil.loadTrueResult(data)); + } catch (UserAccountException e) { + out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg())); + } + + } + } -- Gitblit v1.8.0