feat:用户管理

This commit is contained in:
xiang
2026-03-20 21:45:34 +08:00
parent e7f90b8d97
commit 4ea369b33d
6 changed files with 62 additions and 4 deletions

View File

@@ -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<Long> ids;
}

View File

@@ -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;
}

View File

@@ -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<Boolean> updateStatus(@RequestBody @Valid @NotNull(message = "请求参数不能为空") UserUpdateStatusRequest request) {
return Result.data(userService.updateStatus(request.getId(), request.getStatus()));
}
@PostMapping("/private/user/update")
public Result<Boolean> updateUser(@RequestBody @Valid @NotNull(message = "请求参数不能为空") UserUpdateRequest request) {
@@ -69,7 +73,7 @@ public class UserController {
}
@PostMapping("/private/user/del")
public Result<Boolean> delUser(@RequestParam @Valid @NotEmpty(message = "请求参数不能为空") List<Long> ids) {
public Result<Boolean> delUser(@RequestBody @Valid @NotEmpty(message = "请求参数不能为空") List<Long> ids) {
try {
return Result.data(userService.delUser(ids));
} catch (BusinessException e) {

View File

@@ -41,4 +41,6 @@ public interface XUserService {
UserDTO getUserDetail(String username);
LoginResp refresh(RefreshRequest request);
Boolean updateStatus(Long id, Integer status);
}

View File

@@ -239,6 +239,23 @@ public class XUserServiceImpl implements XUserService {
public Page<UserResp> getUserList(UserQueryRequest request) {
Page<XUser> page = new Page<>(request.getCurrent(), request.getPageSize());
LambdaQueryWrapper<XUser> 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;
}
}

View File

@@ -73,12 +73,13 @@
<if test="null != updateTime ">update_time = #{updateTime},</if>
<if test="null != tenantId ">tenant_id = #{tenantId},</if>
<if test="null != token and '' != token ">token = #{token},</if>
<if test="null != refreshToken and '' != refreshToken ">refresh_token = #{refreshToken}</if>
<if test="null != refreshToken and '' != refreshToken ">refresh_token = #{refreshToken},</if>
<if test="status != null">status = #{status}</if>
</set>
WHERE id = #{id}
</update>
<update id="deleteBatch">
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
<foreach collection="ids" item="id" open="(" close=")" separator=",">
#{id}
</foreach>