From ccd28a0c35e8fff74da6ef63042fb8a896d78f7f Mon Sep 17 00:00:00 2001 From: huanghongfa <huanghongfa123456> Date: 星期三, 29 六月 2022 09:45:52 +0800 Subject: [PATCH] 单位服务统计 --- springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/LoginApi.java | 205 +++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 148 insertions(+), 57 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 516e634..0ec228b 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 @@ -1,33 +1,42 @@ package com.panzhihua.applets.api; -import cn.binarywang.wx.miniapp.api.WxMaService; -import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; -import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo; -import cn.binarywang.wx.miniapp.bean.WxMaUserInfo; +import javax.annotation.Resource; + +import com.panzhihua.common.model.vos.user.UuLoginVO; +import org.apache.commons.lang3.StringUtils; +import org.springframework.util.ObjectUtils; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + import com.alibaba.fastjson.JSONObject; import com.panzhihua.applets.config.WxMaConfiguration; import com.panzhihua.applets.model.vos.LoginRequest; +import com.panzhihua.common.controller.BaseController; +import com.panzhihua.common.exceptions.UnAuthenticationException; import com.panzhihua.common.model.vos.LoginReturnVO; +import com.panzhihua.common.model.vos.LoginUserInfoVO; +import com.panzhihua.common.model.vos.R; 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; -import com.panzhihua.common.controller.BaseController; -import com.panzhihua.common.exceptions.UnAuthenticationException; -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; +import cn.binarywang.wx.miniapp.api.WxMaService; +import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; +import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo; +import cn.binarywang.wx.miniapp.bean.WxMaUserInfo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; /** * @program: springcloud_k8s_panzhihuazhihuishequ @@ -48,7 +57,7 @@ @Resource private CommunityService communityService; - @ApiOperation(value = "登录" ,response =LoginReturnVO.class ) + @ApiOperation(value = "登录", response = LoginReturnVO.class) @PostMapping("login") public R login(@RequestBody LoginRequest loginRequest) { String code = loginRequest.getCode(); @@ -56,37 +65,114 @@ return R.fail("缺少登录参数"); } log.info(code); - WxMaService maService = wxMaConfiguration.getMaService(); - WxMaJscode2SessionResult sessionInfo=null; + WxMaService maService = wxMaConfiguration.getMaService(loginRequest.getAppid()); + WxMaJscode2SessionResult sessionInfo = null; try { sessionInfo = maService.getUserService().getSessionInfo(code); } catch (Exception e) { log.error("微信登录失败【{}】", e.getMessage()); if (code.equals("22")) { - sessionInfo=new WxMaJscode2SessionResult(); + sessionInfo = new WxMaJscode2SessionResult(); sessionInfo.setOpenid("88888888"); sessionInfo.setSessionKey("9999999"); - }else{ + } else { return R.fail("微信登录失败"); } } log.info("微信登录成功【{}】", JSONObject.toJSONString(sessionInfo)); + log.info("loginRequest参数【{}】", JSONObject.toJSONString(loginRequest)); String openid = sessionInfo.getOpenid(); String sessionKey = sessionInfo.getSessionKey(); String unionid = sessionInfo.getUnionid(); if (ObjectUtils.isEmpty(unionid)) { - unionid="无"; + unionid = "无"; } - userService.addOrUpdate(openid,sessionKey,unionid); + userService.addOrUpdate(openid, sessionKey, unionid); + return tokenService.loginApplets(openid); + } + + @ApiOperation(value = "H5登录", response = LoginReturnVO.class) + @PostMapping("loginH5") + public R loginH5(@RequestBody LoginRequest loginRequest) { + String code = loginRequest.getCode(); + if (ObjectUtils.isEmpty(code)) { + return R.fail("缺少登录参数"); + } + log.info(code); + WxMaService maService = wxMaConfiguration.getMaH5Service(); + WxMaJscode2SessionResult sessionInfo = null; + try { + sessionInfo = maService.getUserService().getSessionInfo(code); + } catch (Exception e) { + log.error("微信登录失败【{}】", e.getMessage()); + if (code.equals("22")) { + sessionInfo = new WxMaJscode2SessionResult(); + sessionInfo.setOpenid("88888888"); + sessionInfo.setSessionKey("9999999"); + } else { + return R.fail("微信登录失败"); + } + } + log.info("微信登录成功【{}】", JSONObject.toJSONString(sessionInfo)); + log.info("loginRequest参数【{}】", JSONObject.toJSONString(loginRequest)); + // 解密用户信息 +// WxMaUserInfo wxUserInfo = maService.getUserService().getUserInfo(sessionInfo.getSessionKey(), +// loginRequest.getEncryptedData(), loginRequest.getIv()); +// log.info("wxUserInfo信息【{}】", JSONObject.toJSONString(wxUserInfo)); +// if (null == wxUserInfo) { +// return R.fail("获取用户信息失败"); +// } +// String unionId = wxUserInfo.getUnionId(); + String unionId = sessionInfo.getUnionid(); + //通过unionId去匹配user + R r1 = userService.getUserInfoByUnionId(unionId); + if (R.isOk(r1)) { + LoginUserInfoVO loginUserInfoVO = JSONObject.parseObject(JSONObject.toJSONString(r1.getData()), LoginUserInfoVO.class); + return tokenService.loginApplets(loginUserInfoVO.getOpenid()); + } + return r1; + } + + @ApiOperation(value = "仁和区登录", response = LoginReturnVO.class) + @PostMapping("/renHe/login") + public R renHeLogin(@RequestBody LoginRequest loginRequest) { + String code = loginRequest.getCode(); + if (ObjectUtils.isEmpty(code)) { + return R.fail("缺少登录参数"); + } + log.info(code); + WxMaService maService = wxMaConfiguration.getMaRhService(); + WxMaJscode2SessionResult sessionInfo = null; + try { + sessionInfo = maService.getUserService().getSessionInfo(code); + } catch (Exception e) { + log.error("微信登录失败【{}】", e.getMessage()); + if (code.equals("22")) { + sessionInfo = new WxMaJscode2SessionResult(); + sessionInfo.setOpenid("88888888"); + sessionInfo.setSessionKey("9999999"); + } else { + return R.fail("微信登录失败"); + } + } + log.info("微信登录成功【{}】", JSONObject.toJSONString(sessionInfo)); + log.info("loginRequest参数【{}】", JSONObject.toJSONString(loginRequest)); + 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); } @ApiOperation(value = "维护用户基本信息(昵称、性别、头像)") @PostMapping("updateUserWeiXinInfo") - public R updateUserWeiXinInfo(@RequestBody LoginRequest loginRequest){ + public R updateUserWeiXinInfo(@RequestBody LoginRequest loginRequest) { Long userId = this.getUserId(); - if(userId == null){ - return R.fail(401,"请先登录"); + if (userId == null) { + return R.fail(401, "请先登录"); } boolean empty2 = ObjectUtils.isEmpty(userId); if (empty2) { @@ -99,51 +185,51 @@ String avatarUrl = wxUserInfo.getAvatarUrl(); String gender = wxUserInfo.getGender(); String nickName = wxUserInfo.getNickName(); - return userService.updateUserWeiXinInfo(userId,nickName,Integer.parseInt(gender),avatarUrl); + return userService.updateUserWeiXinInfo(userId, nickName, Integer.parseInt(gender), avatarUrl); } @ApiOperation(value = "维护微信用户手机号") @PostMapping("updateUserWeiXinPhone") - public R updateUserWeiXinPhone(@RequestBody LoginRequest loginRequest){ + public R updateUserWeiXinPhone(@RequestBody LoginRequest loginRequest) { String encryptedData = loginRequest.getEncryptedData(); String iv = loginRequest.getIv(); boolean empty = ObjectUtils.isEmpty(iv); boolean empty1 = ObjectUtils.isEmpty(encryptedData); - if (empty||empty1) { + if (empty || empty1) { return R.fail("微信用户参数不全"); } - WxMaService maService = wxMaConfiguration.getMaService(); + WxMaService maService = wxMaConfiguration.getMaService(this.getAppId()); Long userId = this.getUserId(); R<LoginUserInfoVO> r = userService.getUserInfoByUserId(userId + ""); LoginUserInfoVO loginUserInfoVO = r.getData(); - WxMaPhoneNumberInfo wxMaPhoneNumberInfo = maService.getUserService().getPhoneNoInfo(loginUserInfoVO.getSessionKey(), - encryptedData, iv); + WxMaPhoneNumberInfo wxMaPhoneNumberInfo = + maService.getUserService().getPhoneNoInfo(loginUserInfoVO.getSessionKey(), encryptedData, iv); if (ObjectUtils.isEmpty(wxMaPhoneNumberInfo) || ObjectUtils.isEmpty(wxMaPhoneNumberInfo.getPhoneNumber())) { return R.fail("微信解析手机号失败"); } String purePhoneNumber = wxMaPhoneNumberInfo.getPurePhoneNumber(); - return userService.updateUserWeiXinPhone(userId,purePhoneNumber); + return userService.updateUserWeiXinPhone(userId, purePhoneNumber); } @ApiOperation(value = "维护微信用户手机号") @PostMapping("updateUserWeiXinPhone2") - public R updateUserWeiXinPhone2(@RequestBody LoginRequest loginRequest){ + public R updateUserWeiXinPhone2(@RequestBody LoginRequest loginRequest) { String code = loginRequest.getCode(); if (ObjectUtils.isEmpty(code)) { return R.fail("缺少登录参数"); } log.info(code); - WxMaService maService = wxMaConfiguration.getMaService(); - WxMaJscode2SessionResult sessionInfo=null; + WxMaService maService = wxMaConfiguration.getMaService(this.getAppId()); + WxMaJscode2SessionResult sessionInfo = null; try { sessionInfo = maService.getUserService().getSessionInfo(code); } catch (Exception e) { log.error("微信登录失败【{}】", e.getMessage()); if (code.equals("22")) { - sessionInfo=new WxMaJscode2SessionResult(); + sessionInfo = new WxMaJscode2SessionResult(); sessionInfo.setOpenid("88888888"); sessionInfo.setSessionKey("9999999"); - }else{ + } else { return R.fail("微信登录失败"); } } @@ -153,25 +239,25 @@ String iv = loginRequest.getIv(); boolean empty = ObjectUtils.isEmpty(iv); boolean empty1 = ObjectUtils.isEmpty(encryptedData); - if (empty||empty1) { + if (empty || empty1) { return R.fail("微信用户参数不全"); } -// WxMaService maService = wxMaConfiguration.getMaService(); + // WxMaService maService = wxMaConfiguration.getMaService(); Long userId = this.getUserId(); -// R<LoginUserInfoVO> r = userService.getUserInfoByUserId(userId + ""); -// LoginUserInfoVO loginUserInfoVO = r.getData(); - WxMaPhoneNumberInfo wxMaPhoneNumberInfo = maService.getUserService().getPhoneNoInfo(sessionInfo.getSessionKey(), - encryptedData, iv); + // R<LoginUserInfoVO> r = userService.getUserInfoByUserId(userId + ""); + // LoginUserInfoVO loginUserInfoVO = r.getData(); + WxMaPhoneNumberInfo wxMaPhoneNumberInfo = + maService.getUserService().getPhoneNoInfo(sessionInfo.getSessionKey(), encryptedData, iv); if (ObjectUtils.isEmpty(wxMaPhoneNumberInfo) || ObjectUtils.isEmpty(wxMaPhoneNumberInfo.getPhoneNumber())) { return R.fail("微信解析手机号失败"); } String purePhoneNumber = wxMaPhoneNumberInfo.getPurePhoneNumber(); - return userService.updateUserWeiXinPhone(userId,purePhoneNumber); + return userService.updateUserWeiXinPhone(userId, purePhoneNumber); } @ApiOperation(value = "用户登出") @PostMapping("logout") - public R updateUserWeiXinPhone(){ + public R updateUserWeiXinPhone() { String token = this.getToken(); boolean empty2 = ObjectUtils.isEmpty(token); if (empty2) { @@ -180,38 +266,43 @@ return tokenService.logout(token); } - @ApiOperation(value = "刷新token",response = LoginReturnVO.class) + @ApiOperation(value = "刷新token", response = LoginReturnVO.class) @GetMapping("refreshToken") - @ApiImplicitParam(name ="refreshToken",value = "登录返回的刷新token") - public R refreshToken(@RequestParam("refreshToken")String refreshToken){ + @ApiImplicitParam(name = "refreshToken", value = "登录返回的刷新token") + public R refreshToken(@RequestParam("refreshToken") String refreshToken) { return tokenService.refreshToken(refreshToken); } @ApiOperation(value = "查询社区") @PostMapping("listcommunity") - public R listCommunity(@RequestBody ComActVO comActVO){ + public R listCommunity(@RequestBody ComActVO comActVO) { return communityService.listCommunity(comActVO); } - @ApiOperation(value = "查询小区",response = ComMngStructAreaVO.class) + @ApiOperation(value = "查询小区", response = ComMngStructAreaVO.class) @GetMapping("listarea") - @ApiImplicitParam(name ="communityId",value = "社区id",required = true) - public R listArea(@RequestParam("communityId") Long communityId){ + @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 @Validated(PutGroup.class) LoginUserInfoVO loginUserInfoVO){ + public R putUserCommunityArea(@RequestBody @Validated(PutGroup.class) LoginUserInfoVO loginUserInfoVO) { Long userId = this.getUserId(); loginUserInfoVO.setUserId(userId); return userService.putUserCommunityArea(loginUserInfoVO); } - @ApiOperation(value = "用户协议和隐私政策",response = SysUserAgreementVO.class) + @ApiOperation(value = "用户协议和隐私政策", response = SysUserAgreementVO.class) @GetMapping("useragreement") - public R userAgreement(){ - int type=1; + public R userAgreement() { + int type = 1; return userService.userAgreement(type); } + @ApiOperation("uu洗车登录") + @PostMapping("uuLogin") + public R uuLogin(@RequestBody UuLoginVO uuLoginVO){ + return userService.uuLogin(uuLoginVO); + } } -- Gitblit v1.7.1