From 4a700a75221b9a232e10c089d5567a7b9d04dfe2 Mon Sep 17 00:00:00 2001 From: yujintao Date: Sat, 21 Sep 2019 10:17:52 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=99=BB=E5=BD=95=E6=9C=BA?= =?UTF-8?q?=E5=88=B6=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../esua/epdc/feign/UserFeignClient.java | 11 +++++++ .../fallback/UserFeignClientFallback.java | 5 ++++ .../epdc/service/impl/AppUserServiceImpl.java | 29 +++++++++++++++---- .../controller/EpdcAppUserController.java | 13 +++++++++ .../elink/esua/epdc/service/UserService.java | 11 +++++++ .../epdc/service/impl/UserServiceImpl.java | 24 +++++++++++++++ 6 files changed, 87 insertions(+), 6 deletions(-) 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 f7bb64a41..fab609dca 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 @@ -22,6 +22,17 @@ import org.springframework.web.bind.annotation.RequestBody; @FeignClient(name = ServiceConstant.EPDC_USER_SERVER, fallback = UserFeignClientFallback.class) public interface UserFeignClient { + /** + * 获取用户信息 + * + * @param openId + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author work@yujt.net.cn + * @date 2019/9/20 18:43 + */ + @GetMapping("app-user/epdc-app/user/getByOpenId/{openId}") + Result getUserInfoByOpenId(@PathVariable("openId") String openId); + /** * 获取用户信息 * 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 d8a64232a..1baa3e19a 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 @@ -16,6 +16,11 @@ import org.springframework.stereotype.Component; @Component public class UserFeignClientFallback implements UserFeignClient { + @Override + public Result getUserInfoByOpenId(String openId) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "getUserInfoByOpenId", openId); + } + @Override public Result getUserInfoByUnionId(String unionId) { return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "getUserInfoByUnionId", unionId); 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 d57420bdf..5f202ec78 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 @@ -80,12 +80,12 @@ public class AppUserServiceImpl implements AppUserService { @Override public Result getMpToken(EpdcAppUserTokenFormDTO formDto) { - return this.getTokenByUnionId(this.getWxMpUser(formDto.getWxCode()).getUnionId()); + return this.getTokenByOpenId(this.getWxMpUser(formDto.getWxCode()).getOpenId()); } @Override public Result getMaToken(EpdcAppUserMaTokenFormDTO formDto) { - return this.getTokenByUnionId(this.getWxMaUser(formDto.getWxCode()).getUnionid()); + return this.getTokenByOpenId(this.getWxMaUser(formDto.getWxCode()).getOpenid()); } /** @@ -105,6 +105,23 @@ public class AppUserServiceImpl implements AppUserService { return this.getTokenByUserDto(userInfoResult.getData()); } + /** + * 根据openId登录 + * + * @param openId + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author work@yujt.net.cn + * @date 2019/9/20 18:46 + */ + private Result getTokenByOpenId(String openId) { + // 查询当前微信是否已注册用户 + Result userInfoResult = userFeignClient.getUserInfoByOpenId(openId); + if (!userInfoResult.success()) { + return new Result().error("查询用户信息失败"); + } + return this.getTokenByUserDto(userInfoResult.getData()); + } + /** * 用户登录 * @@ -243,9 +260,9 @@ public class AppUserServiceImpl implements AppUserService { openId = wxMaUser.getOpenid(); } // 查询当前微信是否已注册用户 - Result userInfoResult = userFeignClient.getUserInfoByUnionId(unionId); + Result userInfoResult = userFeignClient.getUserInfoByOpenId(openId); if (!userInfoResult.success()) { - throw new RenException("查询用户信息失败"); + throw new RenException(userInfoResult.getMsg()); } UserDTO userDto = userInfoResult.getData(); if (null != userDto) { @@ -359,8 +376,8 @@ public class AppUserServiceImpl implements AppUserService { } if (null == wxMaJscode2SessionResult) { throw new RenException("解析微信用户信息失败"); - } else if (StringUtils.isBlank(wxMaJscode2SessionResult.getUnionid())) { - throw new RenException("获取微信unionId失败"); + } else if (StringUtils.isBlank(wxMaJscode2SessionResult.getOpenid())) { + throw new RenException("获取微信openid失败"); } return wxMaJscode2SessionResult; } 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 62f522862..f7a1892af 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 @@ -22,6 +22,19 @@ public class EpdcAppUserController { @Autowired private UserService userService; + /** + * 根据用户openId获取用户信息(只查询已注册或审核中的用户) + * + * @param openId + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author work@yujt.net.cn + * @date 2019/9/19 19:03 + */ + @GetMapping("getByOpenId/{openId}") + public Result getUserInfoByOpenId(@PathVariable("openId") String openId) { + return userService.getUserInfoByOpenId(openId); + } + /** * 根据用户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 3004f13f5..a813e6bc3 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 @@ -51,6 +51,16 @@ public interface UserService extends BaseService { void audit(UserDTO dto); + /** + * 根据用户微信openId获取用户信息 + * + * @param openId + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author work@yujt.net.cn + * @date 2019/9/19 19:01 + */ + Result getUserInfoByOpenId(String openId); + /** * 根据用户微信unionID获取用户信息 * @@ -59,6 +69,7 @@ public interface UserService extends BaseService { * @author work@yujt.net.cn * @date 2019/9/19 19:01 */ + @Deprecated Result getUserInfoByUnionId(String unionId); /** 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 991cb03ed..2659eae2c 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 @@ -171,6 +171,21 @@ public class UserServiceImpl extends BaseServiceImpl implem baseDao.deleteByUnionId(wxUnionId); } + @Override + public Result getUserInfoByOpenId(String openId) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("WX_OPEN_ID", openId) + .ne(FieldConstant.STATE, AppUserAuditStateEnum.AUDIT_FAILURE.value()) + .select(FieldConstant.ID, "NICKNAME", "FACE_IMG", FieldConstant.MOBILE, "REAL_NAME", + FieldConstant.STATE, FieldConstant.GRID_ID, "PARTY_FLAG"); + UserEntity userEntity = this.baseDao.selectOne(wrapper); + if (null != userEntity) { + UserDTO dto = ConvertUtils.sourceToTarget(userEntity, UserDTO.class); + return new Result().ok(dto); + } + return new Result(); + } + @Override public Result getUserInfoByUnionId(String unionId) { QueryWrapper wrapper = new QueryWrapper<>(); @@ -196,6 +211,15 @@ public class UserServiceImpl extends BaseServiceImpl implem if (count > NumConstant.ZERO) { return new Result().error("注册失败,手机号已被注册"); } + // 身份证号查重 + wrapper = new QueryWrapper<>(); + wrapper.eq("IDENTITY_NO", userDto.getIdentityNo()) + .ne(FieldConstant.STATE, AppUserAuditStateEnum.AUDIT_FAILURE.value()); + count = this.baseDao.selectCount(wrapper); + if (count > NumConstant.ZERO) { + return new Result().error("注册失败,身份证号已被注册"); + } + this.save(userDto); return new Result().ok("注册成功"); }