User角色管理
package com.hdward.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hdward.domain.ResponseResult;
import com.hdward.domain.dto.UserQueryDTO;
import com.hdward.domain.vo.UserVo;
import com.hdward.emums.AppHttpCodeEnum;
import com.hdward.entity.User;
import com.hdward.mapper.UserMapper;
import com.hdward.service.UserService;
import com.hdward.utils.BeanCopyUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
//添加角色
@PostMapping("/addUser")
public ResponseResult addUser(@RequestBody User user) {
if (userService.addUser(user)) {
return ResponseResult.okResult();
} else {
return ResponseResult.errorResult(AppHttpCodeEnum.USERNAME_EXIST);
}
}
//删除角色:批量删除
@PostMapping("/deleteUser")
public ResponseResult deleteUser(@RequestBody List<Long> ids) {
if (userService.deleteUser(ids)){
return ResponseResult.okResult();
}else {
return ResponseResult.errorResult(AppHttpCodeEnum.SYSTEM_ERROR);
}
}
//编辑角色
@PostMapping("/updateUser")
public ResponseResult updateUser(@RequestBody User user) {
if (userService.updateUser(user)) {
return ResponseResult.okResult();
} else {
return ResponseResult.errorResult(AppHttpCodeEnum.SYSTEM_ERROR);
}
}
//分页查询:根据用户名查询角色如果不输入用户名则查询所有角色
@GetMapping("/getUserList")
public Page<User> getUserList(@RequestBody UserQueryDTO queryDTO){
return userService.getUserList(queryDTO);
}
}
package com.hdward.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hdward.domain.dto.UserQueryDTO;
import com.hdward.entity.User;
import java.util.List;
public interface UserService extends IService<User> {
boolean addUser(User user);
boolean deleteUser(List<Long> ids);
boolean updateUser(User user);
Page<User> getUserList(UserQueryDTO queryDTO);
}
package com.hdward.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hdward.domain.dto.UserQueryDTO;
import com.hdward.entity.User;
import com.hdward.mapper.UserMapper;
import com.hdward.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.Date;
import java.util.List;
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public boolean addUser(User user) {
// 校验用户姓名是否为空
if (user.getUserName() == null || user.getUserName().trim().isEmpty()) {
return false; // 用户名不能为空
}
// 校验角色(admin)是否为空
if (user.getAdmin() == null) {
return false; // 角色不能为空
}
// 校验角色值是否有效(True 表示管理员,False 表示普通成员)
if (!user.getAdmin().equals(Boolean.TRUE) && !user.getAdmin().equals(Boolean.FALSE)) {
return false; // 角色无效
}
// 检查用户名是否已存在
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("user_name", user.getUserName());
User existingUser = userMapper.selectOne(queryWrapper);
// 如果用户名已存在,返回false
if (existingUser != null) {
return false; // 用户已存在
}
// 设置创建时间和修改时间
//user.setCreateAt(new Date());
//user.setModifiedAt(new Date());
// 执行插入操作
int rowsAffected = userMapper.insert(user);
// 返回插入结果
return rowsAffected > 0;
}
@Override
public boolean deleteUser(List<Long> ids) {
// 使用CollectionUtils.isEmpty()判断ids是否为空
if (CollectionUtils.isEmpty(ids)) {
return false; // 如果ids为空或空列表,直接返回false
}
// 使用MyBatis-Plus提供的removeByIds方法批量删除
int rowsAffected = userMapper.deleteBatchIds(ids);
// 返回操作结果,判断受影响的行数是否大于0
return rowsAffected > 0;
}
@Override
public boolean updateUser(User user) {
// 校验用户ID是否存在
if (user.getId() == null) {
return false; // 用户ID不能为空
}
// 校验角色(admin)是否为空
if (user.getAdmin() == null) {
return false; // 角色不能为空
}
// 校验角色值是否有效(True 表示管理员,False 表示普通成员)
if (!user.getAdmin().equals(Boolean.TRUE) && !user.getAdmin().equals(Boolean.FALSE)) {
return false; // 角色无效
}
// 校验用户是否存在
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("id", user.getId());
User existingUser = userMapper.selectOne(queryWrapper);
// 如果用户不存在,返回false
if (existingUser == null) {
return false; // 用户不存在
}
// 设置修改时间
//user.setModifiedAt(new Date());
// 执行更新操作
int rowsAffected = userMapper.updateById(user);
// 返回操作结果
return rowsAffected > 0;
}
@Override
public Page<User> getUserList(UserQueryDTO queryDTO) {
// 创建分页对象
Page<User> page = new Page<>(queryDTO.getPageNum(), queryDTO.getPageSize());
// 创建查询条件
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
// 根据userName查询
if (queryDTO.getUserName() != null && !queryDTO.getUserName().trim().isEmpty()) {
queryWrapper.like("user_name", queryDTO.getUserName());
}
// 根据admin查询(0: 普通成员, 1: 管理员)
if (queryDTO.getAdmin() != null) {
queryWrapper.eq("admin", queryDTO.getAdmin());
}
// 根据department查询
if (queryDTO.getDepartment() != null && !queryDTO.getDepartment().trim().isEmpty()) {
queryWrapper.like("department", queryDTO.getDepartment());
}
// 执行分页查询
return userMapper.selectPage(page, queryWrapper);
}
}
package com.hdward.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hdward.entity.User;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface UserMapper extends BaseMapper<User> {
}
dto
package com.hdward.domain.dto;
import lombok.Data;
@Data
public class UserQueryDTO {
private String userName; // 用户名查询条件
private Integer admin; // 角色类型查询条件,0代表普通成员,1代表管理员
private String department; // 部门查询条件
private Integer pageNum = 1; // 当前页,默认第一页
private Integer pageSize = 10; // 每页显示条数,默认10条
// 其他需要的查询条件可以继续扩展
}
user
package com.hdward.entity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.util.Date;
@Data
@TableName("users")
public class User {
@TableId(value = "id", type = IdType.AUTO)// 主键
private Long id;
@TableField("user_name")
private String userName;
@TableField("admin")
private Boolean admin;
@TableField("name")
private String name;
@TableField(value = "create_at", fill = FieldFill.INSERT)
private Date createAt;
@TableField(value = "modified_at", fill = FieldFill.INSERT_UPDATE)
private Date modifiedAt;
@TableField("uuid")
private String uuid;
@TableField("mobile")
private String mobile;
@TableField("email")
private String email;
@TableField("department")
private String department;
@TableField("name_zh")
private String nameZh;
@TableField("name_en")
private String nameEn;
}