| @@ -299,6 +299,7 @@ public class WxInfoController extends BaseController { | |||||
| * @param map | * @param map | ||||
| * @return | * @return | ||||
| */ | */ | ||||
| @AuthIgnore | |||||
| @PostMapping("/getUserPhone") | @PostMapping("/getUserPhone") | ||||
| @ApiOperation(value = "授权后获取用户的手机号", notes="{\"appId\":\"string\",\"encryptedData\":\"string\",\"iv\":\"string\",\"openId\":\"string\",\"session_key\":\"string\"}") | @ApiOperation(value = "授权后获取用户的手机号", notes="{\"appId\":\"string\",\"encryptedData\":\"string\",\"iv\":\"string\",\"openId\":\"string\",\"session_key\":\"string\"}") | ||||
| public ResultData getUserPhone(@RequestBody Map<String, String> map) { | public ResultData getUserPhone(@RequestBody Map<String, String> map) { | ||||
| @@ -321,6 +322,69 @@ public class WxInfoController extends BaseController { | |||||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "openId 不能为空"); | return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "openId 不能为空"); | ||||
| } | } | ||||
| WxMaService wxMaService = getWeappService(appId); | |||||
| WxAppinfo wxAppinfo = getAppInfo(appId); | |||||
| try { | |||||
| // 解密 | |||||
| WxMaPhoneNumberInfo phoneNoInfo = wxMaService.getUserService().getPhoneNoInfo(session_key, encryptedData, iv); | |||||
| if (null != phoneNoInfo) { | |||||
| logger.info(phoneNoInfo.toString()); | |||||
| String phone = phoneNoInfo.getPhoneNumber(); | |||||
| resultMap.put("phone", phone); | |||||
| MallUserInfo user = mallUserInfoService.getByPhone(phone, wxAppinfo.getTenantId()); | |||||
| if(user == null) { | |||||
| return new ResultData(ErrorCode.USER_NO_PERMISSION, resultMap); | |||||
| } | |||||
| if (mallUserRoleService.checkIsMobileAdmin(user)) { | |||||
| resultMap.put("phone", user.getPhone()); | |||||
| resultMap.put("admin", "1"); | |||||
| user.setBopenId(openId); | |||||
| mallUserInfoService.saveOrUpdate(user); | |||||
| return new ResultData(resultMap); | |||||
| } else { | |||||
| return new ResultData(ErrorCode.USER_NO_PERMISSION, resultMap); | |||||
| } | |||||
| } else { | |||||
| return new ResultData(ErrorCode.PHONE_DECODE_ERR, resultMap); | |||||
| } | |||||
| } catch (Exception e) { | |||||
| this.logger.error(e.getMessage(), e); | |||||
| return new ResultData(ErrorCode.DB_FAIL.getCode(), "解密并保存出错", resultMap); | |||||
| } | |||||
| } | |||||
| /** | |||||
| * 授权后获取用户的手机号等信息 | |||||
| * @param map | |||||
| * @return | |||||
| */ | |||||
| @PostMapping("/getUserPhoneForBuser") | |||||
| @ApiOperation(value = "登录后授权获取用户的手机号", notes="{\"appId\":\"string\",\"encryptedData\":\"string\",\"iv\":\"string\",\"openId\":\"string\",\"session_key\":\"string\"}") | |||||
| public ResultData getUserPhoneForBuser(@RequestBody Map<String, String> map) { | |||||
| logger.debug(map.toString()); | |||||
| Map resultMap = new HashMap(); | |||||
| String appId = map.get("appId"); | |||||
| String encryptedData = map.get("encryptedData"); | |||||
| String iv = map.get("iv"); | |||||
| String openId = map.get("openId"); | |||||
| String session_key = map.get("session_key"); | |||||
| //登录凭证不能为空 | |||||
| if (StringUtils.isBlank(encryptedData)) { | |||||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "encryptedData 不能为空"); | |||||
| } | |||||
| if (StringUtils.isBlank(iv)) { | |||||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "iv 不能为空"); | |||||
| } | |||||
| if (StringUtils.isBlank(openId)) { | |||||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "openId 不能为空"); | |||||
| } | |||||
| WxMaService wxMaService = getWeappService(appId); | WxMaService wxMaService = getWeappService(appId); | ||||
| WxBuser buser = getBuser(); | WxBuser buser = getBuser(); | ||||
| try { | try { | ||||