From f5aa804829700428a15eed51f99a95f9e6355508 Mon Sep 17 00:00:00 2001 From: yujintao Date: Tue, 24 Sep 2019 14:19:04 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=99=BB=E5=BD=95=E9=80=BB?= =?UTF-8?q?=E8=BE=91=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 | 13 ++++++- .../fallback/UserFeignClientFallback.java | 5 +++ .../epdc/service/impl/AppUserServiceImpl.java | 37 ++++++++++--------- .../controller/EpdcAppUserController.java | 13 +++++++ .../esua/epdc/controller/UserController.java | 2 - .../elink/esua/epdc/service/UserService.java | 12 +++++- .../epdc/service/impl/UserServiceImpl.java | 12 ++++++ 7 files changed, 72 insertions(+), 22 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 b5aeff34d..a74ad2f0a 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 @@ -24,7 +24,7 @@ import org.springframework.web.bind.annotation.RequestBody; public interface UserFeignClient { /** - * 获取用户信息 + * 获取用户信息(注册用) * * @param openId * @return com.elink.esua.epdc.commons.tools.utils.Result @@ -34,6 +34,17 @@ public interface UserFeignClient { @GetMapping("app-user/epdc-app/user/getByOpenId/{openId}") Result getUserInfoByOpenId(@PathVariable("openId") String openId); + /** + * 获取用户信息(登录用) + * + * @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/getForLogin/{openId}") + Result getUserForLoginByOpenId(@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 05a91417e..5d21d3dea 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 @@ -22,6 +22,11 @@ public class UserFeignClientFallback implements UserFeignClient { return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "getUserInfoByOpenId", openId); } + @Override + public Result getUserForLoginByOpenId(String openId) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "getUserForLoginByOpenId", 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 8e61a8133..41efc2793 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 @@ -98,7 +98,7 @@ public class AppUserServiceImpl implements AppUserService { */ private Result getTokenByUnionId(String unionId) { // 查询当前微信是否已注册用户 - Result userInfoResult = userFeignClient.getUserInfoByUnionId(unionId); + Result userInfoResult = userFeignClient.getUserForLoginByOpenId(unionId); if (!userInfoResult.success()) { return new Result().error(userInfoResult.getMsg()); } @@ -115,7 +115,7 @@ public class AppUserServiceImpl implements AppUserService { */ private Result getTokenByOpenId(String openId) { // 查询当前微信是否已注册用户 - Result userInfoResult = userFeignClient.getUserInfoByOpenId(openId); + Result userInfoResult = userFeignClient.getUserForLoginByOpenId(openId); if (!userInfoResult.success()) { return new Result().error(userInfoResult.getMsg()); } @@ -139,11 +139,22 @@ public class AppUserServiceImpl implements AppUserService { return new Result().ok(authorization); } String state = userDto.getState(); - String userId = userDto.getId(); - TokenDto tokenInfo = tokenUtil.getTokenInfo(userId); - - // 用户已注册且审核通过,可以正常登录系统 - if (AppUserAuditStateEnum.AUDIT_SUCCESS.value().equals(state)) { + // 用户注册审核失败 + if (AppUserAuditStateEnum.AUDIT_FAILURE.value().equals(state)) { + authorization.setUserState(AppUserStateEnum.AUDIT_FAILURE.value()); + Result result = new Result().ok(authorization); + result.setMsg(userDto.getRemark()); + return result; + } + // 用户提交注册、正在等待审核 + else if (AppUserAuditStateEnum.UNDER_AUDIT.value().equals(state)) { + authorization.setUserState(AppUserStateEnum.UNDER_AUDIT.value()); + return new Result().ok(authorization); + } + // 用户已注册且审核通过,正常登录系统 + else if (AppUserAuditStateEnum.AUDIT_SUCCESS.value().equals(state)) { + String userId = userDto.getId(); + TokenDto tokenInfo = tokenUtil.getTokenInfo(userId); // 生成token String token = jwtTokenUtils.generateToken(userId); Long expire; @@ -154,7 +165,6 @@ public class AppUserServiceImpl implements AppUserService { } else { expire = (long) jwtTokenProperties.getExpire(); } - TokenDto tokenDto = ConvertUtils.sourceToTarget(userDto, TokenDto.class); tokenDto.setUserId(userId); cpUserDetailRedis.set(tokenDto, expire); @@ -164,16 +174,9 @@ public class AppUserServiceImpl implements AppUserService { authorization.setUserId(userId); authorization.setExpire(expire); return new Result().ok(authorization); + } else { + return new Result().error("Login failed"); } - - // 用户提交注册、正在等待审核或审核失败 - if (AppUserAuditStateEnum.UNDER_AUDIT.value().equals(state)) { - authorization.setUserState(AppUserStateEnum.UNDER_AUDIT.value()); - } else if (AppUserAuditStateEnum.AUDIT_FAILURE.value().equals(state)) { - authorization.setUserState(AppUserStateEnum.AUDIT_FAILURE.value()); - } - return new Result().ok(authorization); - } @Override 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 67d3e7316..13f10c623 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 @@ -36,6 +36,19 @@ public class EpdcAppUserController { return userService.getUserInfoByOpenId(openId); } + /** + * 登录前,获取用户信息 + * + * @param openId + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author work@yujt.net.cn + * @date 2019/9/24 13:57 + */ + @GetMapping("getForLogin/{openId}") + public Result getUserForLoginByOpenId(@PathVariable("openId") String openId) { + return userService.getUserForLoginByOpenId(openId); + } + /** * 根据用户unionId获取用户信息(只查询已注册或审核中的用户) * diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/UserController.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/UserController.java index b79fd03d5..64fe569f1 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/UserController.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/UserController.java @@ -17,7 +17,6 @@ package com.elink.esua.epdc.controller; -import com.elink.esua.epdc.commons.mybatis.annotation.DataFilter; import com.elink.esua.epdc.commons.tools.page.PageData; import com.elink.esua.epdc.commons.tools.utils.ExcelUtils; import com.elink.esua.epdc.commons.tools.utils.Result; @@ -29,7 +28,6 @@ import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup; import com.elink.esua.epdc.dto.UserDTO; import com.elink.esua.epdc.excel.UserExcel; import com.elink.esua.epdc.service.UserService; -import io.seata.spring.annotation.GlobalTransactional; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; 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 a73760b89..5893553c2 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 @@ -22,8 +22,6 @@ import com.elink.esua.epdc.commons.tools.page.PageData; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.dto.UserDTO; import com.elink.esua.epdc.dto.epdc.form.EpdcUserRegistFormDTO; -import com.elink.esua.epdc.dto.epdc.form.EpdcUserUpdateAvatarFromDTO; -import com.elink.esua.epdc.dto.epdc.form.EpdcUserUpdateMobileFromDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcUserInfoResultDTO; import com.elink.esua.epdc.entity.UserEntity; @@ -114,4 +112,14 @@ public interface UserService extends BaseService { * @date 2019/9/21 11:04 */ Result verifyUserRegisterData(EpdcUserRegistFormDTO formDto); + + /** + * 登录前,获取用户信息 + * + * @param openId + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author work@yujt.net.cn + * @date 2019/9/24 13:57 + */ + Result getUserForLoginByOpenId(String openId); } \ No newline at end of file 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 26c25a2a5..f1a86c52c 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 @@ -170,9 +170,21 @@ public class UserServiceImpl extends BaseServiceImpl implem baseDao.deleteByUnionId(wxUnionId); } + @Override + public Result getUserForLoginByOpenId(String openId) { + QueryWrapper wrapper = new QueryWrapper<>(); + // 根据openId获取已提交注册的用户信息 + wrapper.eq("WX_OPEN_ID", openId) + .select(FieldConstant.ID, "NICKNAME", "FACE_IMG", FieldConstant.MOBILE, "REAL_NAME", + FieldConstant.STATE, FieldConstant.GRID_ID, "PARTY_FLAG", "REMARK"); + UserEntity userEntity = this.baseDao.selectOne(wrapper); + return new Result().ok(ConvertUtils.sourceToTarget(userEntity, UserDTO.class)); + } + @Override public Result getUserInfoByOpenId(String openId) { QueryWrapper wrapper = new QueryWrapper<>(); + // 根据openId查询审核中或审核通过的用户信息 wrapper.eq("WX_OPEN_ID", openId) .ne(FieldConstant.STATE, AppUserAuditStateEnum.AUDIT_FAILURE.value()) .select(FieldConstant.ID, "NICKNAME", "FACE_IMG", FieldConstant.MOBILE, "REAL_NAME",