diff --git a/service-user/src/main/java/ink/wgink/service/user/controller/api/UserController.java b/service-user/src/main/java/ink/wgink/service/user/controller/api/UserController.java index 9c974fdd..006fdc10 100644 --- a/service-user/src/main/java/ink/wgink/service/user/controller/api/UserController.java +++ b/service-user/src/main/java/ink/wgink/service/user/controller/api/UserController.java @@ -7,12 +7,15 @@ import ink.wgink.exceptions.ParamsException; import ink.wgink.interfaces.consts.IFileConstant; import ink.wgink.interfaces.consts.ISystemConstant; import ink.wgink.interfaces.manager.ISystemConfigManager; +import ink.wgink.pojo.ListPage; +import ink.wgink.pojo.dtos.user.UserDTO; import ink.wgink.pojo.result.*; import ink.wgink.pojo.vos.IdsVO; import ink.wgink.pojo.vos.UpdatePasswordVO; -import ink.wgink.service.user.pojo.vos.*; -import ink.wgink.pojo.ListPage; -import ink.wgink.pojo.dtos.user.UserDTO; +import ink.wgink.service.user.pojo.vos.RestPasswordVO; +import ink.wgink.service.user.pojo.vos.UpdateExpiredDateVO; +import ink.wgink.service.user.pojo.vos.UpdateUsernameVO; +import ink.wgink.service.user.pojo.vos.UserVO; import ink.wgink.service.user.service.IUserService; import ink.wgink.util.ReflectUtil; import ink.wgink.util.RegexUtil; @@ -68,6 +71,17 @@ public class UserController extends DefaultBaseController { return new SuccessResult(); } + @ApiOperation(value = "删除用户", notes = "删除用户接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "ids", value = "用户ID列表,用下划线分隔", paramType = "path") + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @DeleteMapping("delete/user-id/{userId}") + public SuccessResult deleteByUserId(@PathVariable("userId") String userId) { + userService.delete(Arrays.asList(userId)); + return new SuccessResult(); + } + @ApiOperation(value = "修改用户", notes = "修改用户接口") @ApiImplicitParams({ @ApiImplicitParam(name = "userId", value = "用户ID", paramType = "path"), diff --git a/service-user/src/main/java/ink/wgink/service/user/controller/app/api/UserAppController.java b/service-user/src/main/java/ink/wgink/service/user/controller/app/api/UserAppController.java index fea21bb1..0419386d 100644 --- a/service-user/src/main/java/ink/wgink/service/user/controller/app/api/UserAppController.java +++ b/service-user/src/main/java/ink/wgink/service/user/controller/app/api/UserAppController.java @@ -49,6 +49,17 @@ public class UserAppController extends DefaultBaseController { @Autowired(required = false) private ISmsBaseService smsBaseService; + @ApiOperation(value = "注销用户", notes = "注销用户接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "token", value = "token", paramType = "header"), + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @DeleteMapping("log-off") + public SuccessResult deleteByUserId(@RequestHeader("token") String token) { + userService.deleteByToken(token); + return new SuccessResult(); + } + @ApiOperation(value = "修改用户信息", notes = "修改用户信息接口") @ApiImplicitParams({ @ApiImplicitParam(name = "token", value = "token", paramType = "header"), diff --git a/service-user/src/main/java/ink/wgink/service/user/dao/IUserDao.java b/service-user/src/main/java/ink/wgink/service/user/dao/IUserDao.java index e31edb52..e5d90d35 100644 --- a/service-user/src/main/java/ink/wgink/service/user/dao/IUserDao.java +++ b/service-user/src/main/java/ink/wgink/service/user/dao/IUserDao.java @@ -41,6 +41,15 @@ public interface IUserDao extends IInitBaseTable { */ void remove(Map params) throws RemoveException; + /** + * 删除 + * + * @param params + * @throws RemoveException + */ + void delete(Map params) throws RemoveException; + + /** * 修改 * @@ -100,6 +109,7 @@ public interface IUserDao extends IInitBaseTable { /** * 详情 + * * @param params * @return * @throws SearchException 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 a0e65f3f..c7999873 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 @@ -94,6 +94,21 @@ public interface IUserService extends IUserBaseService, IUserCheckService { */ void remove(List ids); + /** + * 删除用户 + * + * @param ids + */ + void delete(List ids); + + /** + * 注销用户 + * + * @param token + */ + void deleteByToken(String token); + + /** * 修改用户 * @@ -332,4 +347,5 @@ public interface IUserService extends IUserBaseService, IUserCheckService { * @param token */ void isExpiredByToken(String token); + } 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 eddeb490..662a25ef 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 @@ -149,6 +149,22 @@ public class UserServiceImpl extends DefaultBaseService implements IUserService updateMongoLoginUser(ids); } + @Override + public void delete(List ids) { + Map params = getHashMap(2); + params.put("userIds", ids); + userDao.delete(params); + // 删除关联用户 + deleteRelationUser(ids); + updateMongoLoginUser(ids); + } + + @Override + public void deleteByToken(String token) { + String userId = getAppTokenUser(token).getId(); + delete(Arrays.asList(userId)); + } + @Override public void update(String userId, UserVO userVO) { if (!StringUtils.isBlank(userVO.getUserPassword())) { 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 1f8b10f2..d6b3406c 100644 --- a/service-user/src/main/resources/mybatis/mapper/user-mapper.xml +++ b/service-user/src/main/resources/mybatis/mapper/user-mapper.xml @@ -140,6 +140,17 @@ + + + DELETE FROM + sys_user + WHERE + user_id IN + + #{userIds[${index}]} + + + UPDATE