Browse Source

用户登录逻辑修改

dev
yujintao 6 years ago
parent
commit
f5aa804829
  1. 13
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java
  2. 5
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java
  3. 37
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java
  4. 13
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppUserController.java
  5. 2
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/UserController.java
  6. 12
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserService.java
  7. 12
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java

13
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<com.elink.esua.epdc.dto.UserDTO>
@ -34,6 +34,17 @@ public interface UserFeignClient {
@GetMapping("app-user/epdc-app/user/getByOpenId/{openId}")
Result<UserDTO> getUserInfoByOpenId(@PathVariable("openId") String openId);
/**
* 获取用户信息登录用
*
* @param openId
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.UserDTO>
* @author work@yujt.net.cn
* @date 2019/9/20 18:43
*/
@GetMapping("app-user/epdc-app/user/getForLogin/{openId}")
Result<UserDTO> getUserForLoginByOpenId(@PathVariable("openId") String openId);
/**
* 获取用户信息
*

5
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<UserDTO> getUserForLoginByOpenId(String openId) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "getUserForLoginByOpenId", openId);
}
@Override
public Result<UserDTO> getUserInfoByUnionId(String unionId) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "getUserInfoByUnionId", unionId);

37
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<EpdcAppAuthorizationDTO> getTokenByUnionId(String unionId) {
// 查询当前微信是否已注册用户
Result<UserDTO> userInfoResult = userFeignClient.getUserInfoByUnionId(unionId);
Result<UserDTO> userInfoResult = userFeignClient.getUserForLoginByOpenId(unionId);
if (!userInfoResult.success()) {
return new Result().error(userInfoResult.getMsg());
}
@ -115,7 +115,7 @@ public class AppUserServiceImpl implements AppUserService {
*/
private Result<EpdcAppAuthorizationDTO> getTokenByOpenId(String openId) {
// 查询当前微信是否已注册用户
Result<UserDTO> userInfoResult = userFeignClient.getUserInfoByOpenId(openId);
Result<UserDTO> 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

13
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<com.elink.esua.epdc.dto.UserDTO>
* @author work@yujt.net.cn
* @date 2019/9/24 13:57
*/
@GetMapping("getForLogin/{openId}")
public Result<UserDTO> getUserForLoginByOpenId(@PathVariable("openId") String openId) {
return userService.getUserForLoginByOpenId(openId);
}
/**
* 根据用户unionId获取用户信息(只查询已注册或审核中的用户)
*

2
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;

12
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<UserEntity> {
* @date 2019/9/21 11:04
*/
Result verifyUserRegisterData(EpdcUserRegistFormDTO formDto);
/**
* 登录前获取用户信息
*
* @param openId
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.UserDTO>
* @author work@yujt.net.cn
* @date 2019/9/24 13:57
*/
Result<UserDTO> getUserForLoginByOpenId(String openId);
}

12
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<UserDao, UserEntity> implem
baseDao.deleteByUnionId(wxUnionId);
}
@Override
public Result<UserDTO> getUserForLoginByOpenId(String openId) {
QueryWrapper<UserEntity> 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<UserDTO> getUserInfoByOpenId(String openId) {
QueryWrapper<UserEntity> 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",

Loading…
Cancel
Save