diff --git a/xs-api/src/main/java/com/xiang/xservice/auth/api/dto/req/IdsRequest.java b/xs-api/src/main/java/com/xiang/xservice/auth/api/dto/req/IdsRequest.java new file mode 100644 index 0000000..450d934 --- /dev/null +++ b/xs-api/src/main/java/com/xiang/xservice/auth/api/dto/req/IdsRequest.java @@ -0,0 +1,11 @@ +package com.xiang.xservice.auth.api.dto.req; + +import lombok.Data; + +import java.util.List; + +@Data +public class IdsRequest { + + private List ids; +} diff --git a/xs-api/src/main/java/com/xiang/xservice/auth/api/dto/req/user/UserUpdateStatusRequest.java b/xs-api/src/main/java/com/xiang/xservice/auth/api/dto/req/user/UserUpdateStatusRequest.java new file mode 100644 index 0000000..0981787 --- /dev/null +++ b/xs-api/src/main/java/com/xiang/xservice/auth/api/dto/req/user/UserUpdateStatusRequest.java @@ -0,0 +1,13 @@ +package com.xiang.xservice.auth.api.dto.req.user; + +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Data +public class UserUpdateStatusRequest { + @NotNull(message = "id不能为空") + private Long id; + @NotNull(message = "状态不能为空") + private Integer status; +} diff --git a/xs-server/src/main/java/com/xiang/xservice/auth/server/controller/UserController.java b/xs-server/src/main/java/com/xiang/xservice/auth/server/controller/UserController.java index f1e575f..e8111a3 100644 --- a/xs-server/src/main/java/com/xiang/xservice/auth/server/controller/UserController.java +++ b/xs-server/src/main/java/com/xiang/xservice/auth/server/controller/UserController.java @@ -7,6 +7,7 @@ import com.xiang.xservice.auth.api.dto.req.user.UserDeptUpdateRequest; import com.xiang.xservice.auth.api.dto.req.user.UserQueryRequest; import com.xiang.xservice.auth.api.dto.req.user.UserRoleUpdateRequest; import com.xiang.xservice.auth.api.dto.req.user.UserUpdateRequest; +import com.xiang.xservice.auth.api.dto.req.user.UserUpdateStatusRequest; import com.xiang.xservice.auth.api.dto.resp.UserResp; import com.xiang.xservice.auth.service.service.XUserService; import com.xiang.xservice.basic.common.resp.Result; @@ -17,7 +18,6 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.validation.Valid; @@ -54,6 +54,10 @@ public class UserController { } return Result.error(); } + @PostMapping("/private/user/updateStatus") + public Result updateStatus(@RequestBody @Valid @NotNull(message = "请求参数不能为空") UserUpdateStatusRequest request) { + return Result.data(userService.updateStatus(request.getId(), request.getStatus())); + } @PostMapping("/private/user/update") public Result updateUser(@RequestBody @Valid @NotNull(message = "请求参数不能为空") UserUpdateRequest request) { @@ -69,7 +73,7 @@ public class UserController { } @PostMapping("/private/user/del") - public Result delUser(@RequestParam @Valid @NotEmpty(message = "请求参数不能为空") List ids) { + public Result delUser(@RequestBody @Valid @NotEmpty(message = "请求参数不能为空") List ids) { try { return Result.data(userService.delUser(ids)); } catch (BusinessException e) { diff --git a/xs-service/src/main/java/com/xiang/xservice/auth/service/service/XUserService.java b/xs-service/src/main/java/com/xiang/xservice/auth/service/service/XUserService.java index d254e65..b3264e2 100644 --- a/xs-service/src/main/java/com/xiang/xservice/auth/service/service/XUserService.java +++ b/xs-service/src/main/java/com/xiang/xservice/auth/service/service/XUserService.java @@ -41,4 +41,6 @@ public interface XUserService { UserDTO getUserDetail(String username); LoginResp refresh(RefreshRequest request); + + Boolean updateStatus(Long id, Integer status); } diff --git a/xs-service/src/main/java/com/xiang/xservice/auth/service/service/impl/XUserServiceImpl.java b/xs-service/src/main/java/com/xiang/xservice/auth/service/service/impl/XUserServiceImpl.java index 08d118d..23e2d62 100644 --- a/xs-service/src/main/java/com/xiang/xservice/auth/service/service/impl/XUserServiceImpl.java +++ b/xs-service/src/main/java/com/xiang/xservice/auth/service/service/impl/XUserServiceImpl.java @@ -239,6 +239,23 @@ public class XUserServiceImpl implements XUserService { public Page getUserList(UserQueryRequest request) { Page page = new Page<>(request.getCurrent(), request.getPageSize()); LambdaQueryWrapper lambdaQueryWrapper = Wrappers.lambdaQuery(); + lambdaQueryWrapper.eq(XUser::getDelFlag, DelStatusEnum.NOT_DELETED.getCode()); + if (StringUtils.isNotBlank(request.getName())) { + lambdaQueryWrapper.like(XUser::getName, request.getName()); + } + if (StringUtils.isNotBlank(request.getUsername())) { + lambdaQueryWrapper.eq(XUser::getUsername, request.getUsername()); + } + if (StringUtils.isNotBlank(request.getEmail())) { + lambdaQueryWrapper.like(XUser::getEmail, request.getEmail()); + } + if (StringUtils.isNotBlank(request.getPhone())) { + lambdaQueryWrapper.like(XUser::getPhone, request.getPhone()); + } + if (Objects.nonNull(request.getStatus())) { + lambdaQueryWrapper.eq(XUser::getStatus, request.getStatus()); + } + lambdaQueryWrapper.orderByDesc(XUser::getCreateTime); return userConvert.toPage(userMapper.selectPage(page, lambdaQueryWrapper)); } @@ -386,4 +403,14 @@ public class XUserServiceImpl implements XUserService { loginResp.setRefreshToken(request.getRefreshToken()); return loginResp; } + + @Override + public Boolean updateStatus(Long id, Integer status) { + XUser user = userMapper.getUserById(id); + if (Objects.isNull(user)) { + throw new BusinessException(Code01UserErrorCode.USER_NOT_EXISTS); + } + user.setStatus(status); + return userMapper.update(user) > 0; + } } diff --git a/xs-service/src/main/resources/mapper/user/XUserMapper.xml b/xs-service/src/main/resources/mapper/user/XUserMapper.xml index 0b0ce2f..949f3ea 100644 --- a/xs-service/src/main/resources/mapper/user/XUserMapper.xml +++ b/xs-service/src/main/resources/mapper/user/XUserMapper.xml @@ -73,12 +73,13 @@ update_time = #{updateTime}, tenant_id = #{tenantId}, token = #{token}, - refresh_token = #{refreshToken} + refresh_token = #{refreshToken}, + status = #{status} WHERE id = #{id} - update x_user set del_flag = 0, update_time = #{time}, update_by = #{operator} where id in + update x_user set del_flag = 1, update_time = #{time}, update_by = #{operator} where id in #{id}