|
|
|
@ -8,6 +8,7 @@
|
|
|
|
|
* 版权所有,侵权必究!
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
// 该类所属的包名,表明此控制器类位于管理端相关的包下,用于处理用户相关的后台管理操作
|
|
|
|
|
package com.yami.shop.admin.controller;
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
@ -24,57 +25,88 @@ import org.springframework.web.bind.annotation.*;
|
|
|
|
|
import java.util.Arrays;
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* UserController类是一个Spring RESTful风格的控制器,用于处理与用户(User)相关的后台管理接口操作。
|
|
|
|
|
* 包含了用户信息的分页查询、获取单个用户详细信息、修改用户信息以及批量删除用户信息等功能。
|
|
|
|
|
* @author lgh on 2018/10/16.
|
|
|
|
|
*/
|
|
|
|
|
@RestController
|
|
|
|
|
// 定义该控制器类的基础请求路径,所有该类中的接口请求路径都将以此为前缀,表明是针对用户的管理操作接口
|
|
|
|
|
@RequestMapping("/admin/user")
|
|
|
|
|
public class UserController {
|
|
|
|
|
|
|
|
|
|
// 通过Spring的依赖注入机制,自动注入UserService的实例,以便调用其提供的与用户相关的业务逻辑方法
|
|
|
|
|
@Autowired
|
|
|
|
|
private UserService userService;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 分页获取
|
|
|
|
|
* 分页获取用户信息的接口方法。
|
|
|
|
|
* 根据传入的User对象(可能包含昵称、状态等查询条件)以及PageParam对象(用于分页参数设置),
|
|
|
|
|
* 使用UserService的page方法结合LambdaQueryWrapper进行分页查询。
|
|
|
|
|
* 如果用户昵称不为空,则按照昵称进行模糊查询;如果用户状态不为空,则精确匹配状态进行查询。
|
|
|
|
|
* 另外,对查询结果中的每个用户的昵称进行处理,若昵称为空则设置为空字符串,
|
|
|
|
|
* 最后将处理后的分页用户信息封装在ServerResponseEntity中返回,用于统一的接口响应格式处理。
|
|
|
|
|
*
|
|
|
|
|
* @param user 可能包含查询条件的用户对象,比如按昵称模糊查询、按状态精确查询等。
|
|
|
|
|
* @param page 分页参数对象,包含页码、每页数量等信息。
|
|
|
|
|
* @return 返回包含分页用户信息的ServerResponseEntity,成功时其数据部分为IPage<User>类型。
|
|
|
|
|
*/
|
|
|
|
|
@GetMapping("/page")
|
|
|
|
|
@PreAuthorize("@pms.hasPermission('admin:user:page')")
|
|
|
|
|
public ServerResponseEntity<IPage<User>> page(User user,PageParam<User> page) {
|
|
|
|
|
public ServerResponseEntity<IPage<User>> page(User user, PageParam<User> page) {
|
|
|
|
|
IPage<User> userPage = userService.page(page, new LambdaQueryWrapper<User>()
|
|
|
|
|
.like(StrUtil.isNotBlank(user.getNickName()), User::getNickName, user.getNickName())
|
|
|
|
|
.eq(user.getStatus() != null, User::getStatus, user.getStatus()));
|
|
|
|
|
.like(StrUtil.isNotBlank(user.getNickName()), User::getNickName, user.getNickName())
|
|
|
|
|
.eq(user.getStatus()!= null, User::getStatus, user.getStatus()));
|
|
|
|
|
for (User userResult : userPage.getRecords()) {
|
|
|
|
|
userResult.setNickName(StrUtil.isBlank(userResult.getNickName()) ? "" : userResult.getNickName());
|
|
|
|
|
userResult.setNickName(StrUtil.isBlank(userResult.getNickName())? "" : userResult.getNickName());
|
|
|
|
|
}
|
|
|
|
|
return ServerResponseEntity.success(userPage);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取信息
|
|
|
|
|
* 获取指定用户详细信息的接口方法。
|
|
|
|
|
* 通过路径变量获取要查询的用户的ID(这里是字符串类型,可能根据业务实际情况而定),
|
|
|
|
|
* 调用UserService的getById方法获取对应的用户对象,对用户的昵称进行处理(若为空则设置为空字符串),
|
|
|
|
|
* 再将处理后的用户对象封装在ServerResponseEntity中返回,用于统一的接口响应格式处理。
|
|
|
|
|
*
|
|
|
|
|
* @param userId 要获取信息的用户的唯一标识符(ID,此处为字符串类型)。
|
|
|
|
|
* @return 返回包含指定用户详细信息的ServerResponseEntity,成功时其数据部分为User类型。
|
|
|
|
|
*/
|
|
|
|
|
@GetMapping("/info/{userId}")
|
|
|
|
|
@PreAuthorize("@pms.hasPermission('admin:user:info')")
|
|
|
|
|
public ServerResponseEntity<User> info(@PathVariable("userId") String userId) {
|
|
|
|
|
User user = userService.getById(userId);
|
|
|
|
|
user.setNickName(StrUtil.isBlank(user.getNickName()) ? "" : user.getNickName());
|
|
|
|
|
user.setNickName(StrUtil.isBlank(user.getNickName())? "" : user.getNickName());
|
|
|
|
|
return ServerResponseEntity.success(user);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 修改
|
|
|
|
|
* 修改用户信息的接口方法。
|
|
|
|
|
* 接收通过请求体传入的用户对象(包含要修改的用户相关信息),
|
|
|
|
|
* 先设置修改时间为当前时间(通过new Date()获取),对用户昵称进行处理(若为空则设置为空字符串),
|
|
|
|
|
* 然后调用UserService的updateById方法根据用户的ID更新数据库中的对应用户记录,
|
|
|
|
|
* 最后返回表示修改成功的ServerResponseEntity对象,用于统一的接口响应格式处理,其无具体数据内容(Void类型)。
|
|
|
|
|
*
|
|
|
|
|
* @param user 要修改的用户对象,通过请求体传入,包含用户的各项属性信息,如昵称、其他个人信息等可能需要修改的属性。
|
|
|
|
|
* @return 返回表示修改成功的ServerResponseEntity,无数据内容(Void类型)。
|
|
|
|
|
*/
|
|
|
|
|
@PutMapping
|
|
|
|
|
@PreAuthorize("@pms.hasPermission('admin:user:update')")
|
|
|
|
|
public ServerResponseEntity<Void> update(@RequestBody User user) {
|
|
|
|
|
user.setModifyTime(new Date());
|
|
|
|
|
user.setNickName(StrUtil.isBlank(user.getNickName()) ? "" : user.getNickName());
|
|
|
|
|
user.setNickName(StrUtil.isBlank(user.getNickName())? "" : user.getNickName());
|
|
|
|
|
userService.updateById(user);
|
|
|
|
|
return ServerResponseEntity.success();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 删除
|
|
|
|
|
* 批量删除用户信息的接口方法。
|
|
|
|
|
* 接收通过请求体传入的用户ID数组(字符串类型数组),将其转换为List集合后,
|
|
|
|
|
* 调用UserService的removeByIds方法根据传入的用户ID集合批量删除数据库中的对应用户记录,
|
|
|
|
|
* 最后返回表示删除成功的ServerResponseEntity对象,用于统一的接口响应格式处理,其无具体数据内容(Void类型)。
|
|
|
|
|
*
|
|
|
|
|
* @param userIds 要删除的用户的ID数组(字符串类型),通过请求体传入。
|
|
|
|
|
* @return 返回表示删除成功的ServerResponseEntity,无数据内容(Void类型)。
|
|
|
|
|
*/
|
|
|
|
|
@DeleteMapping
|
|
|
|
|
@PreAuthorize("@pms.hasPermission('admin:user:delete')")
|
|
|
|
@ -82,4 +114,4 @@ public class UserController {
|
|
|
|
|
userService.removeByIds(Arrays.asList(userIds));
|
|
|
|
|
return ServerResponseEntity.success();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|