From 136bc83ac94b1faec8c32d6e968714db576b4c22 Mon Sep 17 00:00:00 2001 From: liuchuang Date: Mon, 11 May 2020 18:22:12 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=BF=97=E6=84=BF=E8=80=85?= =?UTF-8?q?=E8=AE=A4=E8=AF=81bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epdc/controller/ApiAppUserController.java | 14 +++++++ .../esua/epdc/feign/UserFeignClient.java | 11 ++++++ .../fallback/UserFeignClientFallback.java | 5 +++ .../esua/epdc/service/AppUserService.java | 10 +++++ .../epdc/service/impl/AppUserServiceImpl.java | 28 ++++++++++++-- .../controller/EpdcAppUserController.java | 13 +++++++ .../java/com/elink/esua/epdc/dao/UserDao.java | 10 +++++ .../elink/esua/epdc/service/UserService.java | 9 +++++ .../epdc/service/impl/UserServiceImpl.java | 24 ++++++++++++ .../src/main/resources/mapper/UserDao.xml | 38 +++++++++++++++++++ .../src/main/resources/mapper/UserTagDao.xml | 22 +++++++++++ 11 files changed, 180 insertions(+), 4 deletions(-) diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAppUserController.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAppUserController.java index f777083d..6843aeb5 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAppUserController.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAppUserController.java @@ -314,4 +314,18 @@ public class ApiAppUserController { return appUserService.volunteerAuthenticate(tokenDto, formDto); } + + /** + * 获取用户微信手机号 + * + * @param formDto + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author work@yujt.net.cn + * @date 2020/2/20 17:23 + */ + @GetMapping("user/ma/getWxPhone") + public Result getUserWxPhone(EpdcAppUserMaInfoFormDTO formDto) { + ValidatorUtils.validateEntity(formDto); + return appUserService.getUserWxPhone(formDto); + } } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java index 70020fbc..0b49de4d 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java @@ -356,4 +356,15 @@ public interface UserFeignClient { */ @GetMapping(value = "app-user/epdc-app/user/needCachingUserInfoByUserId/{userId}") Result needCachingUserInfoByUserId(@PathVariable("userId") String userId); + + /** + * 需要缓存的用户信息 + * + * @param formDTO + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author rongchao + * @since 2019-12-18 + */ + @PostMapping(value = "app-user/epdc-app/user/needCachingUserInfo", consumes = MediaType.APPLICATION_JSON_VALUE) + Result needCachingUserInfo(EpdcAppQueryUserInfoFormDTO formDTO); } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java index 6c1502c4..cd942c73 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java @@ -175,4 +175,9 @@ public class UserFeignClientFallback implements UserFeignClient { public Result needCachingUserInfoByUserId(String userId) { return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "needCachingUserInfoByUserId", userId); } + + @Override + public Result needCachingUserInfo(EpdcAppQueryUserInfoFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "needCachingUserInfo", formDTO); + } } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AppUserService.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AppUserService.java index a585a8ef..cf7f01c4 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AppUserService.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AppUserService.java @@ -236,4 +236,14 @@ public interface AppUserService { * @Author wanggongfeng */ Result volunteerAuthenticate(TokenDto tokenDto, EpdcCompleteVolunteerInfoFormDTO formDto); + + /** + * 获取用户微信手机号 + * + * @param formDto + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author work@yujt.net.cn + * @date 2020/2/20 17:24 + */ + Result getUserWxPhone(EpdcAppUserMaInfoFormDTO formDto); } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java index e0e6a5e4..073ad804 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java @@ -1,6 +1,8 @@ package com.elink.esua.epdc.service.impl; +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 cn.binarywang.wx.miniapp.util.crypt.WxMaCryptUtils; import com.alibaba.fastjson.JSONObject; @@ -215,7 +217,8 @@ public class AppUserServiceImpl implements AppUserService { EpdcAppQueryUserInfoFormDTO formDTO = new EpdcAppQueryUserInfoFormDTO(); formDTO.setOpenId(wxMaJscode2SessionResult.getOpenid()); formDTO.setUnionId(wxMaJscode2SessionResult.getUnionid()); - Result userInfoResult = userFeignClient.queryUserDto(formDTO); + // Result userInfoResult = userFeignClient.queryUserDto(formDTO); + Result userInfoResult = userFeignClient.needCachingUserInfo(formDTO); if (!userInfoResult.success()) { return new Result().error(userInfoResult.getMsg()); } @@ -230,7 +233,7 @@ public class AppUserServiceImpl implements AppUserService { * @author work@yujt.net.cn * @date 2019/9/19 19:17 */ - private Result getTokenByUserDto(UserDTO userDto) { + private Result getTokenByUserDto(CachingUserInfoDTO userDto) { EpdcAppAuthorizationDTO authorization = new EpdcAppAuthorizationDTO(); // 用户未注册 @@ -239,10 +242,11 @@ public class AppUserServiceImpl implements AppUserService { return new Result().ok(authorization); } TokenDto tokenDto = ConvertUtils.sourceToTarget(userDto, TokenDto.class); - tokenDto.setUserId(userDto.getId()); + // tokenDto.setUserId(userDto.getId()); String state = userDto.getState(); - authorization = this.packageEpdcAppAuthorization(tokenDto, userDto.getGrid(), userDto.getState()); + // authorization = this.packageEpdcAppAuthorization(tokenDto, userDto.getGrid(), userDto.getState()); + authorization = this.packageEpdcAppAuthorization(tokenDto, userDto.getGrid(), state); Result result = new Result().ok(authorization); // 已注册,未完善信息 @@ -1350,4 +1354,20 @@ public class AppUserServiceImpl implements AppUserService { } return completeResult; } + + @Override + public Result getUserWxPhone(EpdcAppUserMaInfoFormDTO formDto) { + try { + WxMaService wxMaService = wxMaServiceUtils.normalWxMaService(); + WxMaJscode2SessionResult wxMaJscode2SessionResult = wxMaService.jsCode2SessionInfo(formDto.getWxCode()); + WxMaPhoneNumberInfo phoneNoInfo = wxMaService.getUserService().getPhoneNoInfo(wxMaJscode2SessionResult.getSessionKey(), formDto.getEncryptedData(), formDto.getIv()); + if (null != phoneNoInfo) { + return new Result().ok(phoneNoInfo.getPurePhoneNumber()); + } + } catch (WxErrorException e) { + e.printStackTrace(); + log.error(e.getError().getErrorMsg()); + } + return new Result().error("解析用户手机号失败"); + } } diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppUserController.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppUserController.java index 30e58977..729747fd 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppUserController.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppUserController.java @@ -400,4 +400,17 @@ public class EpdcAppUserController { public Result needCachingUserInfoByUserId(@PathVariable("userId") String userId) { return userService.cachingUserInfoByUserId(userId); } + + /** + * 获取用户缓存信息 + * + * @param formDTO + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author rongchao + * @since 2019-12-18 + */ + @PostMapping("needCachingUserInfo") + public Result needCachingUserInfo(@RequestBody EpdcAppQueryUserInfoFormDTO formDTO) { + return userService.queryCachingUserInfo(formDTO); + } } diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserDao.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserDao.java index b44466b3..35558f90 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserDao.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserDao.java @@ -186,4 +186,14 @@ public interface UserDao extends BaseDao { * @Date 2020/1/15 17:43 **/ CachingUserInfoDTO selectCachingUserInfoDTOByUserId(String userId); + + /** + * @param openId + * @param unionId + * @return com.elink.esua.epdc.dto.CachingUserInfoDTO + * @Author yinzuomei + * @Description 获取用户缓存信息 + * @Date 2019/12/18 14:12 + **/ + CachingUserInfoDTO selectCachingUserInfoDTO(@Param("openId") String openId, @Param("unionId") String unionId); } diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserService.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserService.java index 72ad4525..54a26440 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserService.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserService.java @@ -297,4 +297,13 @@ public interface UserService extends BaseService { * @Date 2020/1/15 17:40 **/ Result cachingUserInfoByUserId(String userId); + + /** + * @param formDTO + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @Author yinzuomei + * @Description 获取用户缓存信息 + * @Date 2019/12/18 14:01 + **/ + Result queryCachingUserInfo(EpdcAppQueryUserInfoFormDTO formDTO); } diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java index 977b3e01..44cd9963 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java @@ -979,4 +979,28 @@ public class UserServiceImpl extends BaseServiceImpl implem return new Result().ok(cachingUserInfoDTO); } + /** + * @param formDTO + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @Author yinzuomei + * @Description 获取用户缓存信息 + * @Date 2019/12/18 14:01 + **/ + @Override + public Result queryCachingUserInfo(EpdcAppQueryUserInfoFormDTO formDTO) { + if (StringUtils.isBlank(formDTO.getOpenId())) { + throw new RenException("openId不能为空"); + } + CachingUserInfoDTO cachingUserInfoDTO = null; + if (StringUtils.isNotBlank(formDTO.getUnionId())) { + //根据unionId查询 + cachingUserInfoDTO = this.baseDao.selectCachingUserInfoDTO(null, formDTO.getUnionId()); + } + if (null == cachingUserInfoDTO) { + //根据openId查询 + cachingUserInfoDTO = this.baseDao.selectCachingUserInfoDTO(formDTO.getOpenId(), null); + } + return new Result().ok(cachingUserInfoDTO); + } + } diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDao.xml b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDao.xml index afb13798..f696e754 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDao.xml +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDao.xml @@ -451,4 +451,42 @@ and eu.id=#{userId} + + + diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserTagDao.xml b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserTagDao.xml index 22ebfc9b..7b962429 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserTagDao.xml +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserTagDao.xml @@ -15,5 +15,27 @@ + + + + + \ No newline at end of file