diff --git a/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/remote/user/IUserRemoteService.java b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/remote/user/IUserRemoteService.java index 78b64fdb..f4be7908 100644 --- a/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/remote/user/IUserRemoteService.java +++ b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/remote/user/IUserRemoteService.java @@ -67,4 +67,6 @@ public interface IUserRemoteService { @RemotePutMethod("/update-password/{userId}") SuccessResult updatePassword(@RemoteServerParams String userCenter, @RemotePathParams("userId") String userId, @RemoteQueryParams("access_token") String accessToken, @RemoteJsonBodyParams UpdatePasswordVO updatePasswordVO); + @RemotePostMethod("/list/phones/{phones}") + List listByUserPhones(@RemoteServerParams String userCenter, @RemotePathParams("userId") String userId, @RemoteQueryParams("access_token") String accessToken, @RemoteJsonBodyParams IdsVO idsVO); } diff --git a/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/service/user/impl/UserServiceImpl.java b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/service/user/impl/UserServiceImpl.java index 87e49c3f..e157cbdf 100644 --- a/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/service/user/impl/UserServiceImpl.java +++ b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/service/user/impl/UserServiceImpl.java @@ -188,6 +188,16 @@ public class UserServiceImpl extends DefaultBaseService implements IUserService return new ArrayList<>(userIdSet); } + @Override + public List listByUserPhones(List phones) { + if (phones.isEmpty()) { + return new ArrayList<>(); + } + IdsVO idsVO = new IdsVO(); + idsVO.setIds(phones); + return userRemoteService.listByUserPhones(apiPathProperties.getUserCenter(), securityComponent.getCurrentUser().getUserId(), OAuth2ClientTokenManager.getInstance().getToken().getAccessToken(), idsVO); + } + @Override public void updatePassword(UpdatePasswordVO updatePasswordVO) { userRemoteService.updatePassword(apiPathProperties.getUserCenter(), securityComponent.getCurrentUser().getUserId(), OAuth2ClientTokenManager.getInstance().getToken().getAccessToken(), updatePasswordVO); diff --git a/service-user/src/main/java/ink/wgink/service/user/controller/resources/UserResourceController.java b/service-user/src/main/java/ink/wgink/service/user/controller/resources/UserResourceController.java index 023e08cd..62eccd4a 100644 --- a/service-user/src/main/java/ink/wgink/service/user/controller/resources/UserResourceController.java +++ b/service-user/src/main/java/ink/wgink/service/user/controller/resources/UserResourceController.java @@ -140,6 +140,16 @@ public class UserResourceController extends DefaultBaseController { return userService.listByUsernames(idsVO.getIds()); } + @ApiOperation(value = "通过手机号列表获取用户列表", notes = "通过手机号列表获取用户列表接口") + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @PostMapping("list/phones") + public List listByPhones(@RequestBody IdsVO idsVO) { + if (idsVO.getIds().isEmpty()) { + throw new ParamsException("手机号列表不能为空"); + } + return userService.listByUserPhones(idsVO.getIds()); + } + @ApiOperation(value = "获取密码状态", notes = "获取密码状态接口") @ApiImplicitParams({@ApiImplicitParam(name = "userId", value = "用户ID", paramType = "path"),}) @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) diff --git a/service-user/src/main/java/ink/wgink/service/user/service/IUserService.java b/service-user/src/main/java/ink/wgink/service/user/service/IUserService.java index b733cf98..cc0fd4f2 100644 --- a/service-user/src/main/java/ink/wgink/service/user/service/IUserService.java +++ b/service-user/src/main/java/ink/wgink/service/user/service/IUserService.java @@ -241,6 +241,14 @@ public interface IUserService extends IUserBaseService, IUserCheckService { */ UserPO getPOByUsername(String username); + /** + * 用户详情 + * + * @param phone 用户手机号 + * @return + */ + UserPO getPOByPhone(String phone); + /** * 更新登陆信息 * diff --git a/service-user/src/main/java/ink/wgink/service/user/service/impl/UserServiceImpl.java b/service-user/src/main/java/ink/wgink/service/user/service/impl/UserServiceImpl.java index 0ccfd47e..c9c63412 100644 --- a/service-user/src/main/java/ink/wgink/service/user/service/impl/UserServiceImpl.java +++ b/service-user/src/main/java/ink/wgink/service/user/service/impl/UserServiceImpl.java @@ -115,6 +115,12 @@ public class UserServiceImpl extends DefaultBaseService implements IUserService if (userDTO != null) { throw new SearchException("用户已经存在"); } + if (StringUtils.isBlank(userVO.getUserPhone())) { + UserPO userPO = getPOByPhone(userVO.getUserPhone()); + if (userPO != null) { + throw new SearchException("手机号已经存在"); + } + } userVO.setUserPassword(passwordEncoder.encode(DigestUtils.md5Hex(DigestUtils.md5Hex(DigestUtils.md5Hex(userVO.getUserPassword()))))); String userId = UUIDUtil.getUUID(); Map params = HashMapUtil.beanToMap(userVO); @@ -146,6 +152,12 @@ public class UserServiceImpl extends DefaultBaseService implements IUserService if (!StringUtils.isBlank(userVO.getUserPassword())) { userVO.setUserPassword(passwordEncoder.encode(DigestUtils.md5Hex(DigestUtils.md5Hex(DigestUtils.md5Hex(userVO.getUserPassword()))))); } + if (StringUtils.isBlank(userVO.getUserPhone())) { + UserPO userPO = getPOByPhone(userVO.getUserPhone()); + if (userPO != null) { + throw new SearchException("手机号已经存在"); + } + } Map params = HashMapUtil.beanToMap(userVO); setUpdateInfo(params); params.put("userId", userId); @@ -408,6 +420,13 @@ public class UserServiceImpl extends DefaultBaseService implements IUserService return userDao.getPO(params); } + @Override + public UserPO getPOByPhone(String phone) { + Map params = getHashMap(2); + params.put("userPhone", phone); + return userDao.getPO(params); + } + @Override public void updateLoginInfo(Map params) throws UpdateException { userDao.updateLoginInfo(params); @@ -687,6 +706,16 @@ public class UserServiceImpl extends DefaultBaseService implements IUserService return new ArrayList<>(userIdSet); } + @Override + public List listByUserPhones(List userPhones) { + if (userPhones.isEmpty()) { + return new ArrayList<>(); + } + Map params = getHashMap(2); + params.put("userPhones", userPhones); + return userDao.list(params); + } + /** * Excel导入错误对象 * diff --git a/service-user/src/main/resources/mybatis/mapper/user-mapper.xml b/service-user/src/main/resources/mybatis/mapper/user-mapper.xml index 190a7f9a..2be5d493 100644 --- a/service-user/src/main/resources/mybatis/mapper/user-mapper.xml +++ b/service-user/src/main/resources/mybatis/mapper/user-mapper.xml @@ -307,6 +307,10 @@ AND user_username = #{userUsername} + + AND + user_phone = #{userPhone} + AND user_ukey = #{userUKey} @@ -428,6 +432,13 @@ AND user_type != #{excludeUserType} + + AND + user_phone IN + + #{userPhones[${index}]} + + ORDER BY