From b3c6911c1e78563dc04998dd7bfb510130a9fcec Mon Sep 17 00:00:00 2001 From: huanghongfa <18228131219@163.com> Date: 星期一, 01 二月 2021 16:37:52 +0800 Subject: [PATCH] auth --- springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/LoginApi.java | 65 ++++++++++++++++++++++---------- 1 files changed, 44 insertions(+), 21 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/LoginApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/LoginApi.java index 1ec981a..8f0c931 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/LoginApi.java +++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/LoginApi.java @@ -4,10 +4,13 @@ import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo; import cn.binarywang.wx.miniapp.bean.WxMaUserInfo; +import com.alibaba.fastjson.JSONObject; import com.panzhihua.applets.config.WxMaConfiguration; import com.panzhihua.applets.model.vos.LoginRequest; import com.panzhihua.common.model.vos.LoginReturnVO; import com.panzhihua.common.model.vos.community.ComActVO; +import com.panzhihua.common.model.vos.community.ComMngStructAreaVO; +import com.panzhihua.common.model.vos.user.SysUserAgreementVO; import com.panzhihua.common.service.auth.TokenService; import com.panzhihua.common.service.community.CommunityService; import com.panzhihua.common.service.user.UserService; @@ -16,9 +19,12 @@ import com.panzhihua.common.exceptions.WeiXinException; import com.panzhihua.common.model.vos.LoginUserInfoVO; import com.panzhihua.common.model.vos.R; +import com.panzhihua.common.validated.AddGroup; +import com.panzhihua.common.validated.PutGroup; import io.swagger.annotations.*; import lombok.extern.slf4j.Slf4j; import org.springframework.util.ObjectUtils; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -55,14 +61,21 @@ sessionInfo = maService.getUserService().getSessionInfo(code); } catch (Exception e) { log.error("微信登录失败【{}】", e.getMessage()); - sessionInfo=new WxMaJscode2SessionResult(); - sessionInfo.setOpenid("88888888"); - sessionInfo.setSessionKey("9999999"); - sessionInfo.setUnionid("44444444"); + if (code.equals("22")) { + sessionInfo=new WxMaJscode2SessionResult(); + sessionInfo.setOpenid("88888888"); + sessionInfo.setSessionKey("9999999"); + }else{ + return R.fail("微信登录失败"); + } } + log.info("微信登录成功【{}】", JSONObject.toJSONString(sessionInfo)); String openid = sessionInfo.getOpenid(); String sessionKey = sessionInfo.getSessionKey(); String unionid = sessionInfo.getUnionid(); + if (ObjectUtils.isEmpty(unionid)) { + unionid="无"; + } userService.addOrUpdate(openid,sessionKey,unionid); return tokenService.loginApplets(openid); } @@ -85,8 +98,16 @@ } R<LoginUserInfoVO> r = userService.getUserInfoByUserId(userId + ""); LoginUserInfoVO loginUserInfoVO =r.getData(); - WxMaUserInfo wxUserInfo = maService.getUserService().getUserInfo(loginUserInfoVO.getSessionKey(), - encryptedData, iv); + WxMaUserInfo wxUserInfo = null; + try { + log.info(encryptedData); + log.info(iv); + wxUserInfo = maService.getUserService().getUserInfo(loginUserInfoVO.getSessionKey(), + encryptedData, iv); + } catch (Exception e) { + log.error(e.getMessage()); + return R.fail("微信解析基本信息失败"); + } if (null == wxUserInfo) { return R.fail("微信解析基本信息失败"); } @@ -108,16 +129,12 @@ } WxMaService maService = wxMaConfiguration.getMaService(); Long userId = this.getUserId(); - boolean empty2 = ObjectUtils.isEmpty(userId); - if (empty2) { - throw new UnAuthenticationException(); - } R<LoginUserInfoVO> r = userService.getUserInfoByUserId(userId + ""); LoginUserInfoVO loginUserInfoVO = r.getData(); WxMaPhoneNumberInfo wxMaPhoneNumberInfo = maService.getUserService().getPhoneNoInfo(loginUserInfoVO.getSessionKey(), encryptedData, iv); if (ObjectUtils.isEmpty(wxMaPhoneNumberInfo) || ObjectUtils.isEmpty(wxMaPhoneNumberInfo.getPhoneNumber())) { - throw new WeiXinException("微信解析手机号失败"); + return R.fail("微信解析手机号失败"); } String purePhoneNumber = wxMaPhoneNumberInfo.getPurePhoneNumber(); return userService.updateUserWeiXinPhone(userId,purePhoneNumber); @@ -142,24 +159,30 @@ } @ApiOperation(value = "查询社区") - @GetMapping("listcommunity") + @PostMapping("listcommunity") public R listCommunity(@RequestBody ComActVO comActVO){ return communityService.listCommunity(comActVO); } + @ApiOperation(value = "查询小区",response = ComMngStructAreaVO.class) + @GetMapping("listarea") + @ApiImplicitParam(name ="communityId",value = "社区id",required = true) + public R listArea(@RequestParam("communityId") Long communityId){ + return communityService.listArea(communityId); + } + @ApiOperation(value = "用户绑定社区、小区") @PutMapping("putusercommunityarea") - public R putUserCommunityArea(@RequestBody LoginUserInfoVO loginUserInfoVO){ + public R putUserCommunityArea(@RequestBody @Validated(PutGroup.class) LoginUserInfoVO loginUserInfoVO){ Long userId = this.getUserId(); - Long communityId = loginUserInfoVO.getCommunityId(); - Long areaId = loginUserInfoVO.getAreaId(); - if (null==communityId||0==communityId) { - return R.fail("社区未选择"); - } - if (null==areaId||0==areaId) { - return R.fail("小区未选择"); - } loginUserInfoVO.setUserId(userId); return userService.putUserCommunityArea(loginUserInfoVO); } + + @ApiOperation(value = "用户协议和隐私政策",response = SysUserAgreementVO.class) + @GetMapping("useragreement") + public R userAgreement(){ + int type=1; + return userService.userAgreement(type); + } } -- Gitblit v1.7.1