用户管理等
This commit is contained in:
@@ -0,0 +1,151 @@
|
||||
package org.xyzh.system.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.PutMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.xyzh.api.system.dept.DepartmentService;
|
||||
import org.xyzh.common.core.domain.ResultDomain;
|
||||
import org.xyzh.common.dto.dept.TbSysDept;
|
||||
import org.xyzh.common.dto.dept.TbSysDeptRole;
|
||||
import org.xyzh.common.dto.role.TbSysRole;
|
||||
import org.xyzh.common.vo.DeptRoleVO;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/depts")
|
||||
public class DeptController {
|
||||
private static final Logger logger = LoggerFactory.getLogger(DeptController.class);
|
||||
@Autowired
|
||||
private DepartmentService deptService;
|
||||
|
||||
/**
|
||||
* @description 查询所有部门
|
||||
* @return ResultDomain<TbSysDept> 部门列表
|
||||
* @author yslg
|
||||
* @since 2025-10-06
|
||||
*/
|
||||
@PostMapping("/all")
|
||||
public ResultDomain<TbSysDept> getAllDepts() {
|
||||
return deptService.getAllDepartments();
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 查询部门列表
|
||||
* @param filter 过滤条件
|
||||
* @return ResultDomain<TbSysDept> 部门列表
|
||||
* @author yslg
|
||||
* @since 2025-10-06
|
||||
*/
|
||||
@PostMapping("/list")
|
||||
public ResultDomain<TbSysDept> getDeptList(@RequestBody TbSysDept filter) {
|
||||
return deptService.getDeptList(filter);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 查询部门
|
||||
* @param deptId 部门ID
|
||||
* @return ResultDomain<TbSysDept> 部门信息
|
||||
* @author yslg
|
||||
* @since 2025-10-06
|
||||
*/
|
||||
@PostMapping("/id")
|
||||
public ResultDomain<TbSysDept> getDeptById(@RequestBody TbSysDept dept) {
|
||||
return deptService.getDepartmentById(dept.getDeptID());
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 创建部门
|
||||
* @param dept 部门信息
|
||||
* @return ResultDomain<TbSysDept> 部门信息
|
||||
* @author yslg
|
||||
* @since 2025-10-06
|
||||
*/
|
||||
@PostMapping("/dept")
|
||||
public ResultDomain<TbSysDept> createDept(@RequestBody TbSysDept dept) {
|
||||
return deptService.createDepartment(dept);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 更新部门
|
||||
* @param dept 部门信息
|
||||
* @return ResultDomain<TbSysDept> 部门信息
|
||||
* @author yslg
|
||||
* @since 2025-10-06
|
||||
*/
|
||||
@PutMapping("/dept")
|
||||
public ResultDomain<TbSysDept> updateDept(@RequestBody TbSysDept dept) {
|
||||
return deptService.updateDepartment(dept);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 删除部门
|
||||
* @param dept 部门信息
|
||||
* @return ResultDomain<TbSysDept> 部门信息
|
||||
* @author yslg
|
||||
* @since 2025-10-06
|
||||
*/
|
||||
@DeleteMapping("/dept")
|
||||
public ResultDomain<TbSysDept> deleteDept(@RequestBody TbSysDept dept) {
|
||||
return deptService.deleteDepartment(dept.getDeptID());
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 查询部门绑定角色
|
||||
* @param dept 部门信息
|
||||
* @return ResultDomain<TbSysRole> 角色信息
|
||||
* @author yslg
|
||||
* @since 2025-10-06
|
||||
*/
|
||||
@PostMapping("/role")
|
||||
public ResultDomain<TbSysRole> getDeptByRole(@RequestBody TbSysDept dept) {
|
||||
return deptService.getDeptByRole(dept.getDeptID());
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 查询部门绑定角色
|
||||
* @param dept 部门信息
|
||||
* @return ResultDomain<TbSysRole> 角色信息
|
||||
* @author yslg
|
||||
* @since 2025-10-06
|
||||
*/
|
||||
@PostMapping("/role/list")
|
||||
public ResultDomain<TbSysDeptRole> getDeptByRoleList() {
|
||||
return deptService.getDeptByRoleList();
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 绑定部门角色
|
||||
* @param dept 部门信息
|
||||
* @return ResultDomain<TbSysDeptRole> 部门角色信息
|
||||
* @author yslg
|
||||
* @since 2025-10-06
|
||||
*/
|
||||
@PostMapping("/bind/role")
|
||||
public ResultDomain<TbSysDeptRole> bindDeptRole(@RequestBody DeptRoleVO deptRole) {
|
||||
List<String> deptIDs = deptRole.getDepts().stream().map(TbSysDept::getDeptID).collect(Collectors.toList());
|
||||
List<String> roleIDs = deptRole.getRoles().stream().map(TbSysRole::getRoleID).collect(Collectors.toList());
|
||||
return deptService.bindDeptRole(deptIDs, roleIDs);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 解绑部门角色
|
||||
* @param dept 部门信息
|
||||
* @return ResultDomain<TbSysDeptRole> 部门角色信息
|
||||
* @author yslg
|
||||
* @since 2025-10-06
|
||||
*/
|
||||
@PostMapping("/unbind/role")
|
||||
public ResultDomain<TbSysDeptRole> unbindDeptRole(@RequestBody DeptRoleVO deptRole) {
|
||||
List<String> deptIDs = deptRole.getDepts().stream().map(TbSysDept::getDeptID).collect(Collectors.toList());
|
||||
List<String> roleIDs = deptRole.getRoles().stream().map(TbSysRole::getRoleID).collect(Collectors.toList());
|
||||
return deptService.unbindDeptRole(deptIDs, roleIDs);
|
||||
}
|
||||
}
|
||||
@@ -3,12 +3,18 @@ package org.xyzh.system.controller;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.PutMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.xyzh.api.system.role.RoleService;
|
||||
import org.xyzh.common.core.domain.ResultDomain;
|
||||
import org.xyzh.common.dto.permission.TbSysPermission;
|
||||
import org.xyzh.common.dto.role.TbSysRole;
|
||||
import org.xyzh.common.dto.role.TbSysRolePermission;
|
||||
import org.xyzh.common.vo.DeptRoleVO;
|
||||
|
||||
/**
|
||||
* @description RoleController.java文件描述 角色控制器
|
||||
@@ -35,4 +41,78 @@ public class RoleController {
|
||||
public ResultDomain<TbSysRole> all() {
|
||||
return roleService.getAllRoles();
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 根据角色ID获取角色
|
||||
* @param role 角色信息
|
||||
* @return ResultDomain<TbSysRole> 角色信息
|
||||
* @author yslg
|
||||
* @since 2025-10-09
|
||||
*/
|
||||
@PostMapping("/id")
|
||||
public ResultDomain<TbSysRole> getRoleById(@RequestBody TbSysRole role) {
|
||||
return roleService.getRoleById(role.getRoleID());
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 根据过滤条件获取角色列表
|
||||
* @param filter 过滤条件
|
||||
* @return ResultDomain<TbSysRole> 角色列表
|
||||
* @author yslg
|
||||
* @since 2025-10-09
|
||||
*/
|
||||
@PostMapping("/list")
|
||||
public ResultDomain<TbSysRole> getRoleList(@RequestBody TbSysRole filter) {
|
||||
return roleService.getRoleList(filter);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 创建角色
|
||||
* @param role 角色信息
|
||||
* @return ResultDomain<TbSysRole> 角色信息
|
||||
* @author yslg
|
||||
* @since 2025-10-09
|
||||
*/
|
||||
@PostMapping("/role")
|
||||
public ResultDomain<TbSysRole> createRole(@RequestBody TbSysRole role) {
|
||||
return roleService.createRole(role);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 更新角色
|
||||
* @param role 角色信息
|
||||
* @return ResultDomain<TbSysRole> 角色信息
|
||||
* @author yslg
|
||||
* @since 2025-10-09
|
||||
*/
|
||||
@PutMapping("/role")
|
||||
public ResultDomain<TbSysRole> updateRole(@RequestBody TbSysRole role) {
|
||||
return roleService.updateRole(role);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 删除角色
|
||||
* @param role 角色信息
|
||||
* @return ResultDomain<TbSysRole> 角色信息
|
||||
* @author yslg
|
||||
* @since 2025-10-09
|
||||
*/
|
||||
@DeleteMapping("/role")
|
||||
public ResultDomain<TbSysRole> deleteRole(@RequestBody TbSysRole role) {
|
||||
return roleService.deleteRole(role);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 获取角色权限
|
||||
* @param role 角色信息
|
||||
* @return ResultDomain<TbSysRolePermission> 角色权限信息
|
||||
* @author yslg
|
||||
* @since 2025-10-09
|
||||
*/
|
||||
@PostMapping("/permission")
|
||||
public ResultDomain<TbSysPermission> getRolePermission(@RequestBody TbSysRole role) {
|
||||
return roleService.getRolePermission(role.getRoleID());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -13,7 +13,10 @@ import org.xyzh.common.annotation.HttpLogin;
|
||||
import org.xyzh.common.core.domain.LoginDomain;
|
||||
import org.xyzh.common.core.domain.ResultDomain;
|
||||
import org.xyzh.common.dto.user.TbSysUser;
|
||||
import org.xyzh.common.dto.user.TbSysUserDeptRole;
|
||||
import org.xyzh.common.dto.user.TbSysUserInfo;
|
||||
import org.xyzh.common.vo.UserDeptRoleVO;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
|
||||
|
||||
@@ -25,7 +28,7 @@ import org.springframework.web.bind.annotation.GetMapping;
|
||||
* @ since 2025-10-06
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/user")
|
||||
@RequestMapping("/users")
|
||||
public class UserController {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(UserController.class);
|
||||
@@ -35,14 +38,93 @@ public class UserController {
|
||||
|
||||
|
||||
// ---------------- 用户 ----------------
|
||||
|
||||
/**
|
||||
* @description 注册用户
|
||||
* @param
|
||||
* @author yslg
|
||||
* @since 2025-10-09
|
||||
*/
|
||||
@PostMapping("/register")
|
||||
public ResultDomain<TbSysUser> registerUser(@RequestBody TbSysUser user){
|
||||
return userService.registerUser(user);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 创建用户
|
||||
* @param user
|
||||
* @author yslg
|
||||
* @since 2025-10-09
|
||||
*/
|
||||
@PostMapping("/user")
|
||||
public ResultDomain<TbSysUser> createUser(@RequestBody TbSysUser user) {
|
||||
return userService.createUser(user);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 更新用户
|
||||
* @param user
|
||||
* @author yslg
|
||||
* @since 2025-10-09
|
||||
*/
|
||||
@PutMapping("/user")
|
||||
public ResultDomain<TbSysUser> updateUser(@RequestBody TbSysUser user) {
|
||||
return userService.updateUser(user);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 删除用户
|
||||
* @param user
|
||||
* @author yslg
|
||||
* @since 2025-10-09
|
||||
*/
|
||||
@DeleteMapping("/user")
|
||||
public ResultDomain<TbSysUser> deleteUser(@RequestBody TbSysUser user) {
|
||||
return userService.deleteUser(user.getID());
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 获取用户
|
||||
* @param filter
|
||||
* @author yslg
|
||||
* @since 2025-10-09
|
||||
*/
|
||||
@PostMapping("/list")
|
||||
public ResultDomain<TbSysUser> getUserList(@RequestBody TbSysUser filter) {
|
||||
return userService.getUserByFilter(filter);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 绑定用户部门角色
|
||||
* @param filter
|
||||
* @author yslg
|
||||
* @since 2025-10-09
|
||||
*/
|
||||
@PostMapping("/bind/deptrole/list")
|
||||
public ResultDomain<TbSysUserDeptRole> getBindUserDeptRoleList(@RequestBody TbSysUserDeptRole filter) {
|
||||
return userService.getBindUserDeptRoleList(filter);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 绑定用户部门角色
|
||||
* @param filter
|
||||
* @author yslg
|
||||
* @since 2025-10-09
|
||||
*/
|
||||
@PostMapping("/bind/deptrole")
|
||||
public ResultDomain<UserDeptRoleVO> bindUserDeptRole(@RequestBody UserDeptRoleVO userDeptRoleVO) {
|
||||
return userService.bindUserDeptRole(userDeptRoleVO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 解绑用户部门角色
|
||||
* @param filter
|
||||
* @author yslg
|
||||
* @since 2025-10-09
|
||||
*/
|
||||
@PostMapping("/unbind/deptrole")
|
||||
public ResultDomain<UserDeptRoleVO> unbindUserDeptRole(@RequestBody UserDeptRoleVO userDeptRoleVO) {
|
||||
return userService.unbindUserDeptRole(userDeptRoleVO);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package org.xyzh.system.department.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -8,11 +7,17 @@ import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.xyzh.common.core.domain.ResultDomain;
|
||||
import org.xyzh.common.dto.dept.TbSysDept;
|
||||
import org.xyzh.common.dto.dept.TbSysDeptRole;
|
||||
import org.xyzh.common.dto.role.TbSysRole;
|
||||
import org.xyzh.common.dto.user.TbSysUser;
|
||||
import org.xyzh.common.utils.IDUtils;
|
||||
import org.xyzh.system.department.service.SysDepartmentService;
|
||||
import org.xyzh.system.mapper.DepartmentMapper;
|
||||
import org.xyzh.system.mapper.DeptRoleMapper;
|
||||
import org.xyzh.system.utils.LoginUtil;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
@@ -30,18 +35,18 @@ public class SysDepartmentServiceImpl implements SysDepartmentService {
|
||||
@Autowired
|
||||
private DepartmentMapper departmentMapper;
|
||||
|
||||
@Autowired
|
||||
private DeptRoleMapper deptRoleMapper;
|
||||
|
||||
@Override
|
||||
public ResultDomain<TbSysDept> getAllDepartments() {
|
||||
ResultDomain<TbSysDept> resultDomain = new ResultDomain<>();
|
||||
|
||||
try {
|
||||
logger.info("开始查询所有部门");
|
||||
|
||||
LambdaQueryWrapper<TbSysDept> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(TbSysDept::getDeleted, false)
|
||||
.orderByAsc(TbSysDept::getCreateTime);
|
||||
|
||||
List<TbSysDept> departments = departmentMapper.selectList(queryWrapper);
|
||||
TbSysDept filter = new TbSysDept();
|
||||
filter.setDeleted(false);
|
||||
List<TbSysDept> departments = departmentMapper.selectDepts(filter);
|
||||
|
||||
logger.info("查询所有部门完成,共找到{}个部门", departments.size());
|
||||
resultDomain.success("查询成功", departments);
|
||||
@@ -54,6 +59,34 @@ public class SysDepartmentServiceImpl implements SysDepartmentService {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public ResultDomain<TbSysDept> getDeptList(TbSysDept filter) {
|
||||
ResultDomain<TbSysDept> resultDomain = new ResultDomain<>();
|
||||
try {
|
||||
logger.info("开始查询部门列表");
|
||||
List<TbSysDept> departments = departmentMapper.selectDepts(filter);
|
||||
if (departments.isEmpty()) {
|
||||
resultDomain.fail("未找到部门");
|
||||
return resultDomain;
|
||||
}
|
||||
resultDomain.success("查询成功", departments);
|
||||
return resultDomain;
|
||||
} catch (Exception e) {
|
||||
logger.error("查询部门列表失败", e);
|
||||
resultDomain.fail("查询部门列表失败:" + e.getMessage());
|
||||
return resultDomain;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResultDomain<TbSysDeptRole> getDeptByRoleList() {
|
||||
ResultDomain<TbSysDeptRole> resultDomain = new ResultDomain<>();
|
||||
List<TbSysDeptRole> deptRoles = deptRoleMapper.selectDeptRoleList();
|
||||
resultDomain.success("查询成功", deptRoles);
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResultDomain<TbSysDept> getDepartmentById(String deptId) {
|
||||
ResultDomain<TbSysDept> resultDomain = new ResultDomain<>();
|
||||
@@ -65,11 +98,10 @@ public class SysDepartmentServiceImpl implements SysDepartmentService {
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
LambdaQueryWrapper<TbSysDept> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(TbSysDept::getDeptID, deptId)
|
||||
.eq(TbSysDept::getDeleted, false);
|
||||
|
||||
TbSysDept department = departmentMapper.selectOne(queryWrapper);
|
||||
TbSysDept filter = new TbSysDept();
|
||||
filter.setDeptID(deptId);
|
||||
List<TbSysDept> departments = departmentMapper.selectDepts(filter);
|
||||
TbSysDept department = departments.isEmpty() ? null : departments.get(0);
|
||||
|
||||
if (department == null) {
|
||||
logger.warn("未找到部门:{}", deptId);
|
||||
@@ -137,7 +169,7 @@ public class SysDepartmentServiceImpl implements SysDepartmentService {
|
||||
department.setDeleted(false);
|
||||
|
||||
// 插入数据库
|
||||
int result = departmentMapper.insert(department);
|
||||
int result = departmentMapper.insertDept(department);
|
||||
|
||||
if (result > 0) {
|
||||
logger.info("创建部门成功:{}", department.getName());
|
||||
@@ -194,7 +226,7 @@ public class SysDepartmentServiceImpl implements SysDepartmentService {
|
||||
department.setUpdateTime(new Date());
|
||||
|
||||
// 更新数据库
|
||||
int result = departmentMapper.updateById(department);
|
||||
int result = departmentMapper.updateDept(department);
|
||||
|
||||
if (result > 0) {
|
||||
logger.info("更新部门成功:{}", department.getDeptID());
|
||||
@@ -243,7 +275,7 @@ public class SysDepartmentServiceImpl implements SysDepartmentService {
|
||||
department.setDeleted(true);
|
||||
department.setDeleteTime(new Date());
|
||||
|
||||
int result = departmentMapper.updateById(department);
|
||||
int result = departmentMapper.deleteDept(department);
|
||||
|
||||
if (result > 0) {
|
||||
logger.info("删除部门成功:{}", deptId);
|
||||
@@ -286,4 +318,91 @@ public class SysDepartmentServiceImpl implements SysDepartmentService {
|
||||
return resultDomain;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResultDomain<TbSysRole> getDeptByRole(String deptId) {
|
||||
ResultDomain<TbSysRole> resultDomain = new ResultDomain<>();
|
||||
try {
|
||||
logger.info("开始查询部门绑定角色:{}", deptId);
|
||||
List<TbSysRole> roles = deptRoleMapper.selectDeptRole(deptId);
|
||||
resultDomain.success("查询成功", roles);
|
||||
return resultDomain;
|
||||
} catch (Exception e) {
|
||||
logger.error("查询部门绑定角色失败", e);
|
||||
resultDomain.fail("查询部门绑定角色失败:" + e.getMessage());
|
||||
return resultDomain;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResultDomain<TbSysDeptRole> bindDeptRole(List<String> deptIDs, List<String> roleIDs) {
|
||||
ResultDomain<TbSysDeptRole> resultDomain = new ResultDomain<>();
|
||||
TbSysUser user = LoginUtil.getCurrentUser();
|
||||
if (user == null) {
|
||||
resultDomain.fail("当前用户未登录");
|
||||
return resultDomain;
|
||||
}
|
||||
try {
|
||||
logger.info("开始绑定部门角色:{}", deptIDs);
|
||||
List<TbSysDeptRole> deptRoles = new ArrayList<>();
|
||||
Date now = new Date();
|
||||
for (String deptID : deptIDs) {
|
||||
for (String roleID : roleIDs) {
|
||||
TbSysDeptRole deptRole = new TbSysDeptRole();
|
||||
deptRole.setID(IDUtils.generateID());
|
||||
deptRole.setDeptID(deptID);
|
||||
deptRole.setRoleID(roleID);
|
||||
deptRole.setCreateTime(now);
|
||||
deptRole.setDeleted(false);
|
||||
deptRole.setCreator(user.getID());
|
||||
deptRoles.add(deptRole);
|
||||
}
|
||||
}
|
||||
int result = deptRoleMapper.batchBindDeptRole(deptRoles);
|
||||
if (result > 0) {
|
||||
logger.info("绑定部门角色成功:{}", deptIDs);
|
||||
resultDomain.success("绑定部门角色成功", deptRoles);
|
||||
return resultDomain;
|
||||
} else {
|
||||
logger.warn("绑定部门角色失败:{}", deptIDs);
|
||||
resultDomain.fail("绑定部门角色失败");
|
||||
return resultDomain;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.error("绑定部门角色失败", e);
|
||||
resultDomain.fail("绑定部门角色失败:" + e.getMessage());
|
||||
return resultDomain;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResultDomain<TbSysDeptRole> unbindDeptRole(List<String> deptIDs, List<String> roleIDs) {
|
||||
ResultDomain<TbSysDeptRole> resultDomain = new ResultDomain<>();
|
||||
try {
|
||||
logger.info("开始解绑部门角色:{}", deptIDs);
|
||||
List<TbSysDeptRole> deptRoles = new ArrayList<>();
|
||||
for (String deptID : deptIDs) {
|
||||
for (String roleID : roleIDs) {
|
||||
TbSysDeptRole deptRole = new TbSysDeptRole();
|
||||
deptRole.setDeptID(deptID);
|
||||
deptRole.setRoleID(roleID);
|
||||
deptRoles.add(deptRole);
|
||||
}
|
||||
}
|
||||
int result = deptRoleMapper.batchUnbindDeptRole(deptRoles);
|
||||
if (result > 0) {
|
||||
logger.info("解绑部门角色成功:{}", deptIDs);
|
||||
resultDomain.success("解绑部门角色成功", deptRoles);
|
||||
return resultDomain;
|
||||
} else {
|
||||
logger.warn("解绑部门角色失败:{}", deptIDs);
|
||||
resultDomain.fail("解绑部门角色失败");
|
||||
return resultDomain;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.error("解绑部门角色失败", e);
|
||||
resultDomain.fail("解绑部门角色失败:" + e.getMessage());
|
||||
return resultDomain;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,6 +17,15 @@ import java.util.List;
|
||||
@Mapper
|
||||
public interface DepartmentMapper extends BaseMapper<TbSysDept> {
|
||||
|
||||
/**
|
||||
* @description 查询部门列表
|
||||
* @param filter 过滤条件
|
||||
* @return List<TbSysDept> 部门列表
|
||||
* @author yslg
|
||||
* @since 2025-10-06
|
||||
*/
|
||||
List<TbSysDept> selectDepts(TbSysDept filter);
|
||||
|
||||
/**
|
||||
* @description 根据父部门ID查询子部门列表
|
||||
* @param parentId 父部门ID
|
||||
@@ -54,12 +63,29 @@ public interface DepartmentMapper extends BaseMapper<TbSysDept> {
|
||||
List<TbSysDept> selectDeptTree();
|
||||
|
||||
/**
|
||||
* @description 批量删除部门(逻辑删除)
|
||||
* @param deptIds 部门ID列表
|
||||
* @param updater 更新人
|
||||
* @description 插入部门
|
||||
* @param department 部门
|
||||
* @return int 影响行数
|
||||
* @author yslg
|
||||
* @since 2025-09-28
|
||||
*/
|
||||
int batchDeleteByIds(@Param("deptIds") List<String> deptIds, @Param("updater") String updater);
|
||||
int insertDept(TbSysDept department);
|
||||
|
||||
/**
|
||||
* @description 更新部门
|
||||
* @param department 部门
|
||||
* @return int 影响行数
|
||||
* @author yslg
|
||||
* @since 2025-09-28
|
||||
*/
|
||||
int updateDept(TbSysDept department);
|
||||
|
||||
/**
|
||||
* @description 删除部门
|
||||
* @param department 部门
|
||||
* @return int 影响行数
|
||||
* @author yslg
|
||||
* @since 2025-09-28
|
||||
*/
|
||||
int deleteDept(TbSysDept department);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
package org.xyzh.system.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.xyzh.common.dto.dept.TbSysDeptRole;
|
||||
import org.xyzh.common.dto.role.TbSysRole;
|
||||
|
||||
@Mapper
|
||||
public interface DeptRoleMapper extends BaseMapper<TbSysDeptRole> {
|
||||
|
||||
/**
|
||||
* @description 查询部门绑定角色
|
||||
* @param deptId 部门ID
|
||||
* @return List<TbSysRole> 角色列表
|
||||
* @author yslg
|
||||
* @since 2025-09-28
|
||||
*/
|
||||
List<TbSysRole> selectDeptRole(String deptId);
|
||||
|
||||
/**
|
||||
* @description 查询部门绑定角色
|
||||
* @return List<TbSysDeptRole> 部门角色列表
|
||||
* @author yslg
|
||||
* @since 2025-10-06
|
||||
*/
|
||||
List<TbSysDeptRole> selectDeptRoleList();
|
||||
|
||||
/**
|
||||
* @description 批量绑定部门角色
|
||||
* @param deptRoles 部门角色列表
|
||||
* @return int 影响行数
|
||||
* @author yslg
|
||||
* @since 2025-09-28
|
||||
*/
|
||||
int batchBindDeptRole(@Param("deptRoles") List<TbSysDeptRole> deptRoles);
|
||||
|
||||
int batchUnbindDeptRole(@Param("deptRoles") List<TbSysDeptRole> deptRoles);
|
||||
}
|
||||
@@ -26,6 +26,42 @@ public interface RoleMapper extends BaseMapper<TbSysRole> {
|
||||
*/
|
||||
List<TbSysRole> selectAllRoles();
|
||||
|
||||
/**
|
||||
* @description 根据过滤条件查询角色列表
|
||||
* @param filter 过滤条件
|
||||
* @return List<TbSysRole> 角色列表
|
||||
* @author yslg
|
||||
* @since 2025-10-09
|
||||
*/
|
||||
List<TbSysRole> selectRole(TbSysRole filter);
|
||||
|
||||
/**
|
||||
* @description 插入角色
|
||||
* @param role 角色
|
||||
* @return int 影响行数
|
||||
* @author yslg
|
||||
* @since 2025-10-09
|
||||
*/
|
||||
int insertRole(TbSysRole role);
|
||||
|
||||
/**
|
||||
* @description 更新角色
|
||||
* @param role 角色
|
||||
* @return int 影响行数
|
||||
* @author yslg
|
||||
* @since 2025-10-09
|
||||
*/
|
||||
int updateRole(TbSysRole role);
|
||||
|
||||
/**
|
||||
* @description 删除角色
|
||||
* @param role 角色
|
||||
* @return int 影响行数
|
||||
* @author yslg
|
||||
* @since 2025-10-09
|
||||
*/
|
||||
int deleteRole(TbSysRole role);
|
||||
|
||||
/**
|
||||
* @description 根据用户ID查询角色列表
|
||||
* @param userId 用户ID
|
||||
|
||||
@@ -3,6 +3,7 @@ package org.xyzh.system.mapper;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.xyzh.common.dto.permission.TbSysPermission;
|
||||
import org.xyzh.common.dto.role.TbSysRolePermission;
|
||||
|
||||
import java.util.List;
|
||||
@@ -53,7 +54,7 @@ public interface RolePermissionMapper extends BaseMapper<TbSysRolePermission> {
|
||||
* @author yslg
|
||||
* @since 2025-10-07
|
||||
*/
|
||||
List<TbSysRolePermission> selectByRoleId(@Param("roleId") String roleId);
|
||||
List<TbSysPermission> selectByRoleId(@Param("roleId") String roleId);
|
||||
|
||||
/**
|
||||
* @description 根据权限ID查询角色关联列表
|
||||
|
||||
@@ -1,10 +1,39 @@
|
||||
package org.xyzh.system.mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.xyzh.common.dto.user.TbSysUserDeptRole;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
@Mapper
|
||||
public interface UserDeptRoleMapper extends BaseMapper<TbSysUserDeptRole> {
|
||||
|
||||
/**
|
||||
* @description 查询用户部门角色
|
||||
* @param userId 用户ID
|
||||
* @return List<TbSysUserDeptRole> 用户部门角色列表
|
||||
* @author yslg
|
||||
* @since 2025-10-09
|
||||
*/
|
||||
List<TbSysUserDeptRole> selectByFilter(TbSysUserDeptRole filter);
|
||||
|
||||
/**
|
||||
* @description 绑定用户
|
||||
* @param userDeptRoles 用户角色列表
|
||||
* @return int 影响行数
|
||||
* @author yslg
|
||||
* @since 2025-10-09
|
||||
*/
|
||||
int bindUser(@Param("userDeptRoles") List<TbSysUserDeptRole> userDeptRoles);
|
||||
|
||||
/**
|
||||
* @description 解绑用户
|
||||
* @param userDeptRoles 用户角色列表
|
||||
* @return int 影响行数
|
||||
* @author yslg
|
||||
* @since 2025-10-09
|
||||
*/
|
||||
int unbindUser(@Param("userDeptRoles") List<TbSysUserDeptRole> userDeptRoles);
|
||||
}
|
||||
|
||||
@@ -1,10 +1,37 @@
|
||||
package org.xyzh.system.mapper;
|
||||
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.xyzh.common.dto.user.TbSysUserInfo;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
@Mapper
|
||||
public interface UserInfoMapper extends BaseMapper<TbSysUserInfo> {
|
||||
|
||||
/**
|
||||
* @description 插入用户信息
|
||||
* @param userInfo 用户信息
|
||||
* @return int 影响行数
|
||||
* @author yslg
|
||||
* @since 2025-10-06
|
||||
*/
|
||||
int insertUserInfo(@Param("userInfo") TbSysUserInfo userInfo);
|
||||
|
||||
/**
|
||||
* @description 更新用户信息
|
||||
* @param userInfo 用户信息
|
||||
* @return int 影响行数
|
||||
* @author yslg
|
||||
* @since 2025-10-06
|
||||
*/
|
||||
int updateUserInfo(@Param("userInfo") TbSysUserInfo userInfo);
|
||||
|
||||
/**
|
||||
* @description 删除用户信息
|
||||
* @param userId 用户ID
|
||||
* @return int 影响行数
|
||||
* @author yslg
|
||||
* @since 2025-10-06
|
||||
*/
|
||||
int deleteUserInfo(@Param("userID") String userId);
|
||||
}
|
||||
|
||||
@@ -18,6 +18,33 @@ import java.util.List;
|
||||
@Mapper
|
||||
public interface UserMapper extends BaseMapper<TbSysUser> {
|
||||
|
||||
/**
|
||||
* @description 插入用户
|
||||
* @param user 用户信息
|
||||
* @return int 影响行数
|
||||
* @author yslg
|
||||
* @since 2025-10-06
|
||||
*/
|
||||
int insertUser(@Param("user") TbSysUser user);
|
||||
|
||||
/**
|
||||
* @description 更新用户
|
||||
* @param user 用户信息
|
||||
* @return int 影响行数
|
||||
* @author yslg
|
||||
* @since 2025-10-06
|
||||
*/
|
||||
int updateUser(@Param("user") TbSysUser user);
|
||||
|
||||
/**
|
||||
* @description 删除用户
|
||||
* @param userID 用户ID
|
||||
* @return int 影响行数
|
||||
* @author yslg
|
||||
* @since 2025-10-06
|
||||
*/
|
||||
int deleteUser(@Param("userID") String userID);
|
||||
|
||||
/**
|
||||
* @description 根据用户名查询用户
|
||||
* @param username 用户名
|
||||
@@ -52,7 +79,7 @@ public interface UserMapper extends BaseMapper<TbSysUser> {
|
||||
* @author yslg
|
||||
* @since 2025-09-28
|
||||
*/
|
||||
TbSysUser selectByFilter(@Param("filter") TbSysUser filter);
|
||||
List<TbSysUser> selectByFilter(@Param("filter") TbSysUser filter);
|
||||
|
||||
/**
|
||||
* @description 查询用户列表(分页)
|
||||
|
||||
@@ -1,17 +1,18 @@
|
||||
package org.xyzh.system.role.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.xyzh.common.core.domain.ResultDomain;
|
||||
import org.xyzh.common.dto.dept.TbSysDeptRole;
|
||||
import org.xyzh.common.dto.permission.TbSysPermission;
|
||||
import org.xyzh.common.dto.role.TbSysRole;
|
||||
import org.xyzh.common.utils.IDUtils;
|
||||
import org.xyzh.common.vo.DeptRoleVO;
|
||||
import org.xyzh.system.mapper.RolePermissionMapper;
|
||||
import org.xyzh.system.mapper.RoleMapper;
|
||||
import org.xyzh.system.mapper.UserDeptRoleMapper;
|
||||
import org.xyzh.system.role.service.SysRoleService;
|
||||
|
||||
import java.util.Date;
|
||||
@@ -32,6 +33,12 @@ public class SysRoleServiceImpl implements SysRoleService {
|
||||
@Autowired
|
||||
private RoleMapper roleMapper;
|
||||
|
||||
@Autowired
|
||||
private RolePermissionMapper rolePermissionMapper;
|
||||
|
||||
@Autowired
|
||||
private UserDeptRoleMapper userDeptRoleMapper;
|
||||
|
||||
@Override
|
||||
public ResultDomain<TbSysRole> getAllRoles() {
|
||||
ResultDomain<TbSysRole> resultDomain = new ResultDomain<>();
|
||||
@@ -53,58 +60,19 @@ public class SysRoleServiceImpl implements SysRoleService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResultDomain<TbSysRole> getRoleById(String roleId) {
|
||||
public ResultDomain<TbSysRole> getRoleList(TbSysRole filter) {
|
||||
ResultDomain<TbSysRole> resultDomain = new ResultDomain<>();
|
||||
try {
|
||||
logger.info("开始根据ID查询角色:{}", roleId);
|
||||
logger.info("开始根据过滤条件查询角色列表:{}", filter);
|
||||
|
||||
if (!StringUtils.hasText(roleId)) {
|
||||
resultDomain.fail("角色ID不能为空");
|
||||
return resultDomain;
|
||||
}
|
||||
List<TbSysRole> roles = roleMapper.selectRole(filter);
|
||||
|
||||
LambdaQueryWrapper<TbSysRole> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(TbSysRole::getRoleID, roleId)
|
||||
.eq(TbSysRole::getDeleted, false);
|
||||
|
||||
TbSysRole role = roleMapper.selectOne(queryWrapper);
|
||||
|
||||
if (role == null) {
|
||||
logger.warn("未找到角色:{}", roleId);
|
||||
resultDomain.fail("未找到指定角色");
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
logger.info("根据ID查询角色完成:{}", roleId);
|
||||
resultDomain.success("查询成功", role);
|
||||
return resultDomain;
|
||||
|
||||
} catch (Exception e) {
|
||||
logger.error("根据ID查询角色失败:{}", roleId, e);
|
||||
resultDomain.fail("查询角色失败:" + e.getMessage());
|
||||
return resultDomain;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResultDomain<DeptRoleVO> getDeptRolesByUserId(String userId) {
|
||||
ResultDomain<DeptRoleVO> resultDomain = new ResultDomain<>();
|
||||
try {
|
||||
logger.info("开始根据用户ID查询部门角色列表:{}", userId);
|
||||
|
||||
if (!StringUtils.hasText(userId)) {
|
||||
resultDomain.fail("用户ID不能为空");
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
List<DeptRoleVO> roles = roleMapper.selectDeptRolesByUserId(userId);
|
||||
|
||||
logger.info("根据用户ID查询部门角色列表完成,共找到{}个部门角色", roles.size());
|
||||
logger.info("查询角色列表完成,共找到{}个角色", roles.size());
|
||||
resultDomain.success("查询成功", roles);
|
||||
return resultDomain;
|
||||
|
||||
} catch (Exception e) {
|
||||
logger.error("根据用户ID查询部门角色列表失败:{}", userId, e);
|
||||
logger.error("根据过滤条件查询角色列表失败:{}", filter, e);
|
||||
resultDomain.fail("查询角色失败:" + e.getMessage());
|
||||
return resultDomain;
|
||||
}
|
||||
@@ -141,7 +109,7 @@ public class SysRoleServiceImpl implements SysRoleService {
|
||||
role.setDeleted(false);
|
||||
|
||||
// 插入数据库
|
||||
int result = roleMapper.insert(role);
|
||||
int result = roleMapper.insertRole(role);
|
||||
|
||||
if (result > 0) {
|
||||
logger.info("创建角色成功:{}", role.getName());
|
||||
@@ -198,7 +166,7 @@ public class SysRoleServiceImpl implements SysRoleService {
|
||||
role.setUpdateTime(new Date());
|
||||
|
||||
// 更新数据库
|
||||
int result = roleMapper.updateById(role);
|
||||
int result = roleMapper.updateRole(role);
|
||||
|
||||
if (result > 0) {
|
||||
logger.info("更新角色成功:{}", role.getRoleID());
|
||||
@@ -218,49 +186,100 @@ public class SysRoleServiceImpl implements SysRoleService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResultDomain<TbSysRole> deleteRole(String roleId) {
|
||||
public ResultDomain<TbSysRole> deleteRole(TbSysRole role) {
|
||||
ResultDomain<TbSysRole> resultDomain = new ResultDomain<>();
|
||||
try {
|
||||
logger.info("开始删除角色:{}", roleId);
|
||||
logger.info("开始删除角色:{}", role.getRoleID());
|
||||
|
||||
if (!StringUtils.hasText(roleId)) {
|
||||
if (!StringUtils.hasText(role.getRoleID())) {
|
||||
resultDomain.fail("角色ID不能为空");
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
// 检查角色是否存在
|
||||
ResultDomain<TbSysRole> existResult = getRoleById(roleId);
|
||||
ResultDomain<TbSysRole> existResult = getRoleById(role.getRoleID());
|
||||
if (!existResult.isSuccess()) {
|
||||
resultDomain.fail(existResult.getMessage());
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
// TODO: 检查角色是否被用户使用,如果被使用则不能删除
|
||||
|
||||
// 逻辑删除
|
||||
TbSysRole role = existResult.getData();
|
||||
role.setDeleted(true);
|
||||
role.setDeleteTime(new Date());
|
||||
|
||||
int result = roleMapper.updateById(role);
|
||||
int result = roleMapper.deleteRole(role);
|
||||
|
||||
if (result > 0) {
|
||||
logger.info("删除角色成功:{}", roleId);
|
||||
logger.info("删除角色成功:{}", role.getRoleID());
|
||||
resultDomain.success("删除角色成功", role);
|
||||
return resultDomain;
|
||||
} else {
|
||||
logger.warn("删除角色失败:{}", roleId);
|
||||
logger.warn("删除角色失败:{}", role.getRoleID());
|
||||
resultDomain.fail("删除角色失败");
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
logger.error("删除角色异常:{}", roleId, e);
|
||||
logger.error("删除角色异常:{}", role.getRoleID(), e);
|
||||
resultDomain.fail("删除角色失败:" + e.getMessage());
|
||||
return resultDomain;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public ResultDomain<TbSysRole> getRoleById(String roleId) {
|
||||
ResultDomain<TbSysRole> resultDomain = new ResultDomain<>();
|
||||
try {
|
||||
logger.info("开始根据ID查询角色:{}", roleId);
|
||||
|
||||
if (!StringUtils.hasText(roleId)) {
|
||||
resultDomain.fail("角色ID不能为空");
|
||||
return resultDomain;
|
||||
}
|
||||
TbSysRole filter = new TbSysRole();
|
||||
filter.setRoleID(roleId);
|
||||
filter.setDeleted(false);
|
||||
List<TbSysRole> roles = roleMapper.selectRole(filter);
|
||||
TbSysRole role = roles.isEmpty() ? null : roles.get(0);
|
||||
|
||||
if (role == null) {
|
||||
logger.warn("未找到角色:{}", roleId);
|
||||
resultDomain.fail("未找到指定角色");
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
logger.info("根据ID查询角色完成:{}", roleId);
|
||||
resultDomain.success("查询成功", role);
|
||||
return resultDomain;
|
||||
|
||||
} catch (Exception e) {
|
||||
logger.error("根据ID查询角色失败:{}", roleId, e);
|
||||
resultDomain.fail("查询角色失败:" + e.getMessage());
|
||||
return resultDomain;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResultDomain<DeptRoleVO> getDeptRolesByUserId(String userId) {
|
||||
ResultDomain<DeptRoleVO> resultDomain = new ResultDomain<>();
|
||||
try {
|
||||
logger.info("开始根据用户ID查询部门角色列表:{}", userId);
|
||||
|
||||
if (!StringUtils.hasText(userId)) {
|
||||
resultDomain.fail("用户ID不能为空");
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
List<DeptRoleVO> roles = roleMapper.selectDeptRolesByUserId(userId);
|
||||
|
||||
logger.info("根据用户ID查询部门角色列表完成,共找到{}个部门角色", roles.size());
|
||||
resultDomain.success("查询成功", roles);
|
||||
return resultDomain;
|
||||
|
||||
} catch (Exception e) {
|
||||
logger.error("根据用户ID查询部门角色列表失败:{}", userId, e);
|
||||
resultDomain.fail("查询角色失败:" + e.getMessage());
|
||||
return resultDomain;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResultDomain<Boolean> checkRoleNameExists(String roleName, String excludeId) {
|
||||
ResultDomain<Boolean> resultDomain = new ResultDomain<>();
|
||||
@@ -312,7 +331,7 @@ public class SysRoleServiceImpl implements SysRoleService {
|
||||
TbSysRole role = existResult.getData();
|
||||
role.setUpdateTime(new Date());
|
||||
|
||||
int result = roleMapper.updateById(role);
|
||||
int result = roleMapper.updateRole(role);
|
||||
|
||||
if (result > 0) {
|
||||
logger.info("修改角色状态成功:{}", roleId);
|
||||
@@ -330,4 +349,28 @@ public class SysRoleServiceImpl implements SysRoleService {
|
||||
return resultDomain;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResultDomain<TbSysPermission> getRolePermission(String roleId) {
|
||||
ResultDomain<TbSysPermission> resultDomain = new ResultDomain<>();
|
||||
try {
|
||||
logger.info("开始获取角色权限:{}", roleId);
|
||||
|
||||
if (!StringUtils.hasText(roleId)) {
|
||||
resultDomain.fail("角色ID不能为空");
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
List<TbSysPermission> rolePermissions = rolePermissionMapper.selectByRoleId(roleId);
|
||||
|
||||
logger.info("获取角色权限完成:{}", roleId);
|
||||
resultDomain.success("获取角色权限成功", rolePermissions);
|
||||
return resultDomain;
|
||||
|
||||
} catch (Exception e) {
|
||||
logger.error("获取角色权限异常:{}", roleId, e);
|
||||
resultDomain.fail("获取角色权限失败:" + e.getMessage());
|
||||
return resultDomain;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package org.xyzh.system.user.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -12,13 +11,17 @@ import org.xyzh.common.dto.user.TbSysUser;
|
||||
import org.xyzh.common.dto.user.TbSysUserDeptRole;
|
||||
import org.xyzh.common.dto.user.TbSysUserInfo;
|
||||
import org.xyzh.common.utils.IDUtils;
|
||||
import org.xyzh.common.vo.UserDeptRoleVO;
|
||||
import org.xyzh.system.mapper.UserMapper;
|
||||
import org.xyzh.system.mapper.UserInfoMapper;
|
||||
import org.xyzh.system.mapper.UserDeptRoleMapper;
|
||||
import org.xyzh.system.user.service.SysUserService;
|
||||
import org.xyzh.system.utils.LoginUtil;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* @description SysUserServiceImpl.java文件描述 系统用户服务实现类
|
||||
@@ -54,22 +57,26 @@ public class SysUserServiceImpl implements SysUserService {
|
||||
resultDomain.fail("用户已存在");
|
||||
return resultDomain;
|
||||
}
|
||||
Date now = new Date();
|
||||
user.setID(IDUtils.generateID());
|
||||
user.setCreateTime(now);
|
||||
user.setDeleted(false);
|
||||
// 创建用户信息
|
||||
TbSysUserInfo userInfo = new TbSysUserInfo();
|
||||
userInfo.setUserID(user.getID());
|
||||
userInfo.setCreateTime(new Date());
|
||||
userInfo.setCreateTime(now);
|
||||
userInfo.setAvatar("default");
|
||||
|
||||
TbSysUserDeptRole userDeptRole = new TbSysUserDeptRole();
|
||||
userDeptRole.setUserID(user.getID());
|
||||
userDeptRole.setDeptID("-1");
|
||||
userDeptRole.setRoleID("freedom");
|
||||
userDeptRole.setCreateTime(new Date());
|
||||
userDeptRole.setCreateTime(now);
|
||||
|
||||
userMapper.insert(user);
|
||||
userInfoMapper.insert(userInfo);
|
||||
userDeptRoleMapper.insert(userDeptRole);
|
||||
|
||||
userMapper.insertUser(user);
|
||||
userInfoMapper.insertUserInfo(userInfo);
|
||||
userDeptRoleMapper.bindUser(Arrays.asList(userDeptRole));
|
||||
resultDomain.success("注册用户成功", user);
|
||||
return resultDomain;
|
||||
} catch (Exception e) {
|
||||
logger.error("注册用户失败:{}", user.getUsername(), e);
|
||||
@@ -100,11 +107,8 @@ public class SysUserServiceImpl implements SysUserService {
|
||||
try {
|
||||
logger.info("开始查询所有用户");
|
||||
|
||||
LambdaQueryWrapper<TbSysUser> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(TbSysUser::getDeleted, false)
|
||||
.orderByAsc(TbSysUser::getCreateTime);
|
||||
|
||||
List<TbSysUser> users = userMapper.selectList(queryWrapper);
|
||||
TbSysUser filter = new TbSysUser();
|
||||
List<TbSysUser> users = userMapper.selectByFilter(filter);
|
||||
|
||||
logger.info("查询所有用户完成,共找到{}个用户", users.size());
|
||||
resultDomain.success("查询成功", users);
|
||||
@@ -128,20 +132,20 @@ public class SysUserServiceImpl implements SysUserService {
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
LambdaQueryWrapper<TbSysUser> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(TbSysUser::getID, userId)
|
||||
.eq(TbSysUser::getDeleted, false);
|
||||
TbSysUser filter = new TbSysUser();
|
||||
filter.setID(userId);
|
||||
filter.setDeleted(false);
|
||||
|
||||
TbSysUser user = userMapper.selectOne(queryWrapper);
|
||||
List<TbSysUser> users = userMapper.selectByFilter(filter);
|
||||
|
||||
if (user == null) {
|
||||
if (users.isEmpty()) {
|
||||
logger.warn("未找到用户:{}", userId);
|
||||
resultDomain.fail("未找到指定用户");
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
logger.info("根据ID查询用户完成:{}", userId);
|
||||
resultDomain.success("查询成功", user);
|
||||
resultDomain.success("查询成功", users.get(0));
|
||||
return resultDomain;
|
||||
|
||||
} catch (Exception e) {
|
||||
@@ -193,26 +197,26 @@ public class SysUserServiceImpl implements SysUserService {
|
||||
}
|
||||
|
||||
// 检查至少有一个查询条件
|
||||
boolean hasFilter = StringUtils.hasText(filter.getID()) ||
|
||||
StringUtils.hasText(filter.getUsername()) ||
|
||||
StringUtils.hasText(filter.getEmail()) ||
|
||||
StringUtils.hasText(filter.getPhone());
|
||||
// boolean hasFilter = StringUtils.hasText(filter.getID()) ||
|
||||
// StringUtils.hasText(filter.getUsername()) ||
|
||||
// StringUtils.hasText(filter.getEmail()) ||
|
||||
// StringUtils.hasText(filter.getPhone());
|
||||
|
||||
if (!hasFilter) {
|
||||
resultDomain.fail("至少需要提供一个查询条件");
|
||||
return resultDomain;
|
||||
}
|
||||
// if (!hasFilter) {
|
||||
// resultDomain.fail("至少需要提供一个查询条件");
|
||||
// return resultDomain;
|
||||
// }
|
||||
|
||||
TbSysUser user = userMapper.selectByFilter(filter);
|
||||
List<TbSysUser> users = userMapper.selectByFilter(filter);
|
||||
|
||||
if (user == null) {
|
||||
if (users.isEmpty()) {
|
||||
logger.warn("未找到符合条件的用户:{}", filter);
|
||||
resultDomain.fail("未找到指定用户");
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
logger.info("根据过滤条件查询用户完成:{}", filter);
|
||||
resultDomain.success("查询成功", user);
|
||||
resultDomain.success("查询成功", users);
|
||||
return resultDomain;
|
||||
|
||||
} catch (Exception e) {
|
||||
@@ -222,6 +226,7 @@ public class SysUserServiceImpl implements SysUserService {
|
||||
}
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@Override
|
||||
public ResultDomain<TbSysUser> createUser(TbSysUser user) {
|
||||
ResultDomain<TbSysUser> resultDomain = new ResultDomain<>();
|
||||
@@ -267,15 +272,15 @@ public class SysUserServiceImpl implements SysUserService {
|
||||
}
|
||||
|
||||
// 插入数据库
|
||||
int result = userMapper.insert(user);
|
||||
ResultDomain<TbSysUser> result = registerUser(user);
|
||||
|
||||
if (result > 0) {
|
||||
if (result.isSuccess()) {
|
||||
logger.info("创建用户成功:{}", user.getUsername());
|
||||
resultDomain.success("创建用户成功", user);
|
||||
resultDomain.success("创建用户成功", result.getData());
|
||||
return resultDomain;
|
||||
} else {
|
||||
logger.warn("创建用户失败:{}", user.getUsername());
|
||||
resultDomain.fail("创建用户失败");
|
||||
resultDomain.fail("创建用户失败:" + result.getMessage());
|
||||
}
|
||||
|
||||
return resultDomain;
|
||||
@@ -337,7 +342,7 @@ public class SysUserServiceImpl implements SysUserService {
|
||||
user.setUpdateTime(new Date());
|
||||
|
||||
// 更新数据库
|
||||
int result = userMapper.updateById(user);
|
||||
int result = userMapper.updateUser(user);
|
||||
|
||||
if (result > 0) {
|
||||
logger.info("更新用户成功:{}", user.getID());
|
||||
@@ -379,7 +384,7 @@ public class SysUserServiceImpl implements SysUserService {
|
||||
user.setDeleted(true);
|
||||
user.setDeleteTime(new Date());
|
||||
|
||||
int result = userMapper.updateById(user);
|
||||
int result = userMapper.updateUser(user);
|
||||
|
||||
if (result > 0) {
|
||||
logger.info("删除用户成功:{}", userId);
|
||||
@@ -398,6 +403,74 @@ public class SysUserServiceImpl implements SysUserService {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResultDomain<TbSysUserDeptRole> getBindUserDeptRoleList(TbSysUserDeptRole filter) {
|
||||
ResultDomain<TbSysUserDeptRole> resultDomain = new ResultDomain<>();
|
||||
List<TbSysUserDeptRole> userDeptRoles = userDeptRoleMapper.selectByFilter(filter);
|
||||
resultDomain.success("查询成功", userDeptRoles);
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@Override
|
||||
public ResultDomain<UserDeptRoleVO> bindUserDeptRole(UserDeptRoleVO userDeptRoleVO) {
|
||||
ResultDomain<UserDeptRoleVO> resultDomain = new ResultDomain<>();
|
||||
TbSysUser currentUser = LoginUtil.getCurrentUser();
|
||||
try {
|
||||
List<TbSysUserDeptRole> userDeptRoles = new ArrayList<>();
|
||||
logger.info("开始绑定用户部门角色:{}", userDeptRoleVO.getID());
|
||||
Date now = new Date();
|
||||
for (TbSysUser user : userDeptRoleVO.getUsers()) {
|
||||
for(TbSysUserDeptRole userDeptRole : userDeptRoleVO.getUserDeptRoles()) {
|
||||
userDeptRole.setID(IDUtils.generateID());
|
||||
userDeptRole.setUserID(user.getID());
|
||||
userDeptRole.setCreateTime(now);
|
||||
userDeptRole.setCreator(currentUser.getID());
|
||||
userDeptRoles.add(userDeptRole);
|
||||
}
|
||||
}
|
||||
|
||||
userDeptRoleMapper.bindUser(userDeptRoles);
|
||||
|
||||
} catch (Exception e) {
|
||||
logger.error("绑定用户部门角色异常:{}", userDeptRoleVO.getID(), e);
|
||||
resultDomain.fail("绑定用户部门角色失败:" + e.getMessage());
|
||||
return resultDomain;
|
||||
}
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@Override
|
||||
public ResultDomain<UserDeptRoleVO> unbindUserDeptRole(UserDeptRoleVO userDeptRoleVO) {
|
||||
ResultDomain<UserDeptRoleVO> resultDomain = new ResultDomain<>();
|
||||
TbSysUser currentUser = LoginUtil.getCurrentUser();
|
||||
try {
|
||||
List<TbSysUserDeptRole> userDeptRoles = new ArrayList<>();
|
||||
logger.info("开始解绑用户部门角色:{}", userDeptRoleVO.getID());
|
||||
Date now = new Date();
|
||||
for(TbSysUser user:userDeptRoleVO.getUsers()) {
|
||||
for(TbSysUserDeptRole userDeptRole : userDeptRoleVO.getUserDeptRoles()) {
|
||||
userDeptRole.setUserID(user.getID());
|
||||
userDeptRoles.add(userDeptRole);
|
||||
}
|
||||
}
|
||||
int result = userDeptRoleMapper.unbindUser(userDeptRoles);
|
||||
if(result > 0) {
|
||||
logger.info("解绑用户部门角色成功:{}", userDeptRoleVO.getID());
|
||||
resultDomain.success("解绑用户部门角色成功", userDeptRoleVO);
|
||||
} else {
|
||||
logger.warn("解绑用户部门角色失败:{}", userDeptRoleVO.getID());
|
||||
resultDomain.fail("解绑用户部门角色失败");
|
||||
}
|
||||
return resultDomain;
|
||||
} catch (Exception e) {
|
||||
logger.error("解绑用户部门角色异常:{}", userDeptRoleVO.getID(), e);
|
||||
resultDomain.fail("解绑用户部门角色失败:" + e.getMessage());
|
||||
}
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResultDomain<Boolean> checkUsernameExists(String username, String excludeId) {
|
||||
ResultDomain<Boolean> resultDomain = new ResultDomain<>();
|
||||
@@ -408,16 +481,15 @@ public class SysUserServiceImpl implements SysUserService {
|
||||
resultDomain.fail("用户名不能为空");
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
LambdaQueryWrapper<TbSysUser> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(TbSysUser::getUsername, username)
|
||||
.eq(TbSysUser::getDeleted, false);
|
||||
|
||||
|
||||
TbSysUser filter = new TbSysUser();
|
||||
if (StringUtils.hasText(excludeId)) {
|
||||
queryWrapper.ne(TbSysUser::getID, excludeId);
|
||||
filter.setID(excludeId);
|
||||
}
|
||||
filter.setUsername(username);
|
||||
filter.setDeleted(false);
|
||||
|
||||
long count = userMapper.selectCount(queryWrapper);
|
||||
long count = userMapper.selectByFilter(filter).size();
|
||||
boolean exists = count > 0;
|
||||
|
||||
logger.info("用户名存在性检查完成:{},存在:{}", username, exists);
|
||||
@@ -442,15 +514,15 @@ public class SysUserServiceImpl implements SysUserService {
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
LambdaQueryWrapper<TbSysUser> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(TbSysUser::getEmail, email)
|
||||
.eq(TbSysUser::getDeleted, false);
|
||||
TbSysUser filter = new TbSysUser();
|
||||
filter.setEmail(email);
|
||||
filter.setDeleted(false);
|
||||
|
||||
if (StringUtils.hasText(excludeId)) {
|
||||
queryWrapper.ne(TbSysUser::getID, excludeId);
|
||||
filter.setID(excludeId);
|
||||
}
|
||||
|
||||
long count = userMapper.selectCount(queryWrapper);
|
||||
long count = userMapper.selectByFilter(filter).size();
|
||||
boolean exists = count > 0;
|
||||
|
||||
logger.info("邮箱存在性检查完成:{},存在:{}", email, exists);
|
||||
@@ -510,7 +582,7 @@ public class SysUserServiceImpl implements SysUserService {
|
||||
user.setStatus(status);
|
||||
user.setUpdateTime(new Date());
|
||||
|
||||
int result = userMapper.updateById(user);
|
||||
int result = userMapper.updateUser(user);
|
||||
|
||||
if (result > 0) {
|
||||
logger.info("修改用户状态成功:{}", userId);
|
||||
@@ -557,7 +629,7 @@ public class SysUserServiceImpl implements SysUserService {
|
||||
user.setPassword(newPassword);
|
||||
user.setUpdateTime(new Date());
|
||||
|
||||
int result = userMapper.updateById(user);
|
||||
int result = userMapper.updateUser(user);
|
||||
|
||||
if (result > 0) {
|
||||
logger.info("重置用户密码成功:{}", userId);
|
||||
|
||||
@@ -39,6 +39,16 @@
|
||||
</where>
|
||||
</sql>
|
||||
|
||||
<!-- selectDepts -->
|
||||
|
||||
<select id="selectDepts">
|
||||
SELECT
|
||||
<include refid="Base_Column_List"/>
|
||||
FROM tb_sys_dept
|
||||
<include refid="Where_Clause"/>
|
||||
ORDER BY dept_id,create_time DESC
|
||||
</select>
|
||||
|
||||
<!-- 根据父部门ID查询子部门列表 -->
|
||||
<select id="selectByParentId" resultMap="BaseResultMap">
|
||||
SELECT
|
||||
@@ -46,7 +56,7 @@
|
||||
FROM tb_sys_dept
|
||||
WHERE deleted = 0
|
||||
AND parent_id = #{parentId}
|
||||
ORDER BY create_time DESC
|
||||
ORDER BY dept_id,create_time DESC
|
||||
</select>
|
||||
|
||||
<!-- 检查部门名称是否存在 -->
|
||||
@@ -92,7 +102,7 @@
|
||||
delete_time = NOW(),
|
||||
updater = #{updater}
|
||||
WHERE deleted = 0
|
||||
AND id IN
|
||||
AND dept_id IN
|
||||
<foreach collection="deptIds" item="deptId" open="(" separator="," close=")">
|
||||
#{deptId}
|
||||
</foreach>
|
||||
@@ -134,7 +144,7 @@
|
||||
<if test="updater != null">updater = #{updater},</if>
|
||||
update_time = NOW()
|
||||
</set>
|
||||
WHERE id = #{id} AND deleted = 0
|
||||
WHERE dept_id = #{deptID} AND deleted = 0
|
||||
</update>
|
||||
|
||||
<!-- 根据ID删除(逻辑删除) -->
|
||||
@@ -142,7 +152,7 @@
|
||||
UPDATE tb_sys_dept
|
||||
SET deleted = 1,
|
||||
delete_time = NOW()
|
||||
WHERE id = #{id} AND deleted = 0
|
||||
WHERE dept_id = #{deptID} AND deleted = 0
|
||||
</update>
|
||||
|
||||
</mapper>
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.xyzh.system.mapper.DeptRoleMapper">
|
||||
|
||||
<!-- 基础结果映射 -->
|
||||
<resultMap id="BaseResultMap" type="org.xyzh.common.dto.dept.TbSysDeptRole">
|
||||
<id column="id" property="id" jdbcType="VARCHAR"/>
|
||||
<result column="dept_id" property="deptID" jdbcType="VARCHAR"/>
|
||||
<result column="role_id" property="roleID" jdbcType="VARCHAR"/>
|
||||
<result column="creator" property="creator" jdbcType="VARCHAR"/>
|
||||
<result column="updater" property="updater" jdbcType="VARCHAR"/>
|
||||
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
|
||||
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
|
||||
<result column="delete_time" property="deleteTime" jdbcType="TIMESTAMP"/>
|
||||
<result column="deleted" property="deleted" jdbcType="BOOLEAN"/>
|
||||
</resultMap>
|
||||
|
||||
<!-- 基础字段 -->
|
||||
<sql id="Base_Column_List">
|
||||
id, dept_id, role_id, creator, updater,
|
||||
create_time, update_time, delete_time, deleted
|
||||
</sql>
|
||||
<sql id="Where_Clause">
|
||||
<where>
|
||||
deleted = 0
|
||||
<if test="deptID != null and deptID != ''">
|
||||
AND dept_id = #{deptID}
|
||||
</if>
|
||||
</where>
|
||||
</sql>
|
||||
|
||||
<!-- selectDeptRole -->
|
||||
|
||||
<select id="selectDeptRole">
|
||||
SELECT
|
||||
<include refid="Base_Column_List"/>
|
||||
FROM tb_sys_dept_role
|
||||
<include refid="Where_Clause"/>
|
||||
ORDER BY create_time DESC
|
||||
</select>
|
||||
|
||||
<select id="selectDeptRoleList">
|
||||
SELECT
|
||||
<include refid="Base_Column_List"/>
|
||||
FROM tb_sys_dept_role
|
||||
ORDER BY dept_id, role_id, create_time DESC
|
||||
</select>
|
||||
|
||||
<!-- batchBindDeptRole -->
|
||||
|
||||
<insert id="batchBindDeptRole">
|
||||
INSERT INTO tb_sys_dept_role (id, dept_id, role_id, creator, create_time, deleted)
|
||||
VALUES
|
||||
<foreach collection="deptRoles" item="deptRole" separator=",">
|
||||
(#{deptRole.id}, #{deptRole.deptID}, #{deptRole.roleID}, #{deptRole.creator}, #{deptRole.createTime}, 0)
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
<!-- batchUnbindDeptRole -->
|
||||
|
||||
<delete id="batchUnbindDeptRole">
|
||||
DELETE FROM tb_sys_dept_role
|
||||
WHERE (dept_id, role_id) IN
|
||||
<foreach collection="deptRoles" item="deptRole" open="(" separator="," close=")">
|
||||
(#{deptRole.deptID}, #{deptRole.roleID})
|
||||
</foreach>
|
||||
</delete>
|
||||
</mapper>
|
||||
@@ -33,13 +33,9 @@
|
||||
<!-- 批量解绑菜单权限(真删除) -->
|
||||
<delete id="batchUnbindMenuPermission">
|
||||
DELETE FROM tb_sys_menu_permission
|
||||
WHERE menu_id IN
|
||||
WHERE (menu_id, permission_id) IN
|
||||
<foreach collection="menuPermissions" item="menuPermission" open="(" separator="," close=")">
|
||||
#{menuPermission.menuID}
|
||||
</foreach>
|
||||
AND permission_id IN
|
||||
<foreach collection="menuPermissions" item="menuPermission" open="(" separator="," close=")">
|
||||
#{menuPermission.permissionID}
|
||||
(#{menuPermission.menuID}, #{menuPermission.permissionID})
|
||||
</foreach>
|
||||
AND deleted = 0
|
||||
</delete>
|
||||
|
||||
@@ -58,14 +58,11 @@
|
||||
<sql id="Where_Clause">
|
||||
<where>
|
||||
deleted = 0
|
||||
<if test="roleName != null and roleName != ''">
|
||||
AND role_name LIKE CONCAT('%', #{roleName}, '%')
|
||||
<if test="roleID != null and roleID != ''">
|
||||
AND role_id = #{roleID}
|
||||
</if>
|
||||
<if test="roleCode != null and roleCode != ''">
|
||||
AND role_code = #{roleCode}
|
||||
</if>
|
||||
<if test="status != null">
|
||||
AND status = #{status}
|
||||
<if test="name != null and name != ''">
|
||||
AND name LIKE CONCAT('%', #{name}, '%')
|
||||
</if>
|
||||
</where>
|
||||
</sql>
|
||||
@@ -80,6 +77,36 @@
|
||||
ORDER BY role_id, create_time ASC
|
||||
</select>
|
||||
|
||||
<!-- 根据过滤条件查询角色列表 -->
|
||||
<select id="selectRole" resultMap="tbSysRoleResultMap">
|
||||
SELECT
|
||||
<include refid="TbSysRole_Column_List"/>
|
||||
FROM tb_sys_role
|
||||
<include refid="Where_Clause"/>
|
||||
ORDER BY role_id, create_time ASC
|
||||
</select>
|
||||
|
||||
<!-- 插入角色 -->
|
||||
<insert id="insertRole" parameterType="org.xyzh.common.dto.role.TbSysRole">
|
||||
INSERT INTO tb_sys_role
|
||||
(id, role_id, name, description, creator, create_time)
|
||||
VALUES (#{id}, #{roleID}, #{name}, #{description}, #{creator}, #{createTime})
|
||||
</insert>
|
||||
|
||||
<!-- 更新角色 -->
|
||||
<update id="updateRole" parameterType="org.xyzh.common.dto.role.TbSysRole">
|
||||
UPDATE tb_sys_role
|
||||
(name, description, updater, update_time)
|
||||
VALUES (#{name}, #{description}, #{updater}, #{updateTime})
|
||||
WHERE role_id = #{roleID}
|
||||
</update>
|
||||
|
||||
<!-- 删除角色 -->
|
||||
<delete id="deleteRole" parameterType="org.xyzh.common.dto.role.TbSysRole">
|
||||
DELETE FROM tb_sys_role
|
||||
WHERE role_id = #{roleID}
|
||||
</delete>
|
||||
|
||||
<!-- 根据用户ID查询角色列表 -->
|
||||
<select id="selectDeptRolesByUserId" resultMap="deptRoleVOResultMap">
|
||||
SELECT
|
||||
@@ -107,7 +134,7 @@
|
||||
SELECT COUNT(1)
|
||||
FROM tb_sys_role
|
||||
WHERE deleted = 0
|
||||
AND role_name = #{roleName}
|
||||
AND name = #{roleName}
|
||||
<if test="excludeId != null and excludeId != ''">
|
||||
AND id != #{excludeId}
|
||||
</if>
|
||||
@@ -137,55 +164,7 @@
|
||||
</foreach>
|
||||
</update>
|
||||
|
||||
<!-- 插入角色 -->
|
||||
<insert id="insert" parameterType="org.xyzh.common.dto.role.TbSysRole">
|
||||
INSERT INTO tb_sys_role
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="id != null">id,</if>
|
||||
<if test="roleID != null">role_id,</if>
|
||||
<if test="roleName != null">role_name,</if>
|
||||
<if test="roleCode != null">role_code,</if>
|
||||
<if test="description != null">description,</if>
|
||||
<if test="status != null">status,</if>
|
||||
<if test="creator != null">creator,</if>
|
||||
<if test="createTime != null">create_time,</if>
|
||||
deleted
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="id != null">#{id},</if>
|
||||
<if test="roleID != null">#{roleID},</if>
|
||||
<if test="roleName != null">#{roleName},</if>
|
||||
<if test="roleCode != null">#{roleCode},</if>
|
||||
<if test="description != null">#{description},</if>
|
||||
<if test="status != null">#{status},</if>
|
||||
<if test="creator != null">#{creator},</if>
|
||||
<if test="createTime != null">#{createTime},</if>
|
||||
0
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
<!-- 更新角色 -->
|
||||
<update id="updateById" parameterType="org.xyzh.common.dto.role.TbSysRole">
|
||||
UPDATE tb_sys_role
|
||||
<set>
|
||||
<if test="roleID != null">role_id = #{roleID},</if>
|
||||
<if test="roleName != null">role_name = #{roleName},</if>
|
||||
<if test="roleCode != null">role_code = #{roleCode},</if>
|
||||
<if test="description != null">description = #{description},</if>
|
||||
<if test="status != null">status = #{status},</if>
|
||||
<if test="updater != null">updater = #{updater},</if>
|
||||
update_time = NOW()
|
||||
</set>
|
||||
WHERE id = #{id} AND deleted = 0
|
||||
</update>
|
||||
|
||||
<!-- 根据ID删除(逻辑删除) -->
|
||||
<update id="deleteById">
|
||||
UPDATE tb_sys_role
|
||||
SET deleted = 1,
|
||||
delete_time = NOW()
|
||||
WHERE id = #{id} AND deleted = 0
|
||||
</update>
|
||||
|
||||
<!-- checkRoleExists -->
|
||||
|
||||
|
||||
@@ -14,6 +14,19 @@
|
||||
<result column="delete_time" property="deleteTime" jdbcType="TIMESTAMP"/>
|
||||
<result column="deleted" property="deleted" jdbcType="BOOLEAN"/>
|
||||
</resultMap>
|
||||
<resultMap id="PermissionResultMap" type="org.xyzh.common.dto.permission.TbSysPermission">
|
||||
<id column="id" property="id" jdbcType="VARCHAR"/>
|
||||
<result column="permission_id" property="permissionID" jdbcType="VARCHAR"/>
|
||||
<result column="name" property="name" jdbcType="VARCHAR"/>
|
||||
<result column="code" property="code" jdbcType="VARCHAR"/>
|
||||
<result column="description" property="description" jdbcType="VARCHAR"/>
|
||||
<result column="creator" property="creator" jdbcType="VARCHAR"/>
|
||||
<result column="updater" property="updater" jdbcType="VARCHAR"/>
|
||||
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
|
||||
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
|
||||
<result column="delete_time" property="deleteTime" jdbcType="TIMESTAMP"/>
|
||||
<result column="deleted" property="deleted" jdbcType="BOOLEAN"/>
|
||||
</resultMap>
|
||||
|
||||
<!-- 基础字段 -->
|
||||
<sql id="Base_Column_List">
|
||||
@@ -21,6 +34,11 @@
|
||||
create_time, update_time, delete_time, deleted
|
||||
</sql>
|
||||
|
||||
<!-- 权限基础字段 -->
|
||||
<sql id="Permission_Column_List">
|
||||
id, permission_id, name, code, description, creator, updater, create_time, update_time, delete_time, deleted
|
||||
</sql>
|
||||
|
||||
<!-- 批量绑定角色权限 -->
|
||||
<insert id="batchBindRolePermission">
|
||||
INSERT INTO tb_sys_role_permission (id, role_id, permission_id, creator, create_time, deleted)
|
||||
@@ -33,13 +51,9 @@
|
||||
<!-- 批量解绑角色权限(真删除,避免批量绑定时报错存在的问题) -->
|
||||
<delete id="batchUnbindRolePermission">
|
||||
DELETE FROM tb_sys_role_permission
|
||||
WHERE role_id IN
|
||||
WHERE (role_id, permission_id) IN
|
||||
<foreach collection="rolePermissions" item="rolePermission" open="(" separator="," close=")">
|
||||
#{rolePermission.roleID}
|
||||
</foreach>
|
||||
AND permission_id IN
|
||||
<foreach collection="rolePermissions" item="rolePermission" open="(" separator="," close=")">
|
||||
#{rolePermission.permissionID}
|
||||
(#{rolePermission.roleID}, #{rolePermission.permissionID})
|
||||
</foreach>
|
||||
AND deleted = 0
|
||||
</delete>
|
||||
@@ -50,19 +64,27 @@
|
||||
<include refid="Base_Column_List"/>
|
||||
FROM tb_sys_role_permission
|
||||
WHERE deleted = 0
|
||||
AND role_id = #{rolePermission.roleID}
|
||||
AND permission_id = #{rolePermission.permissionID}
|
||||
AND role_id = #{roleId}
|
||||
AND permission_id = #{permissionId}
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
<!-- 根据角色ID查询权限关联列表 -->
|
||||
<select id="selectByRoleId" resultMap="BaseResultMap">
|
||||
<select id="selectByRoleId" resultMap="PermissionResultMap">
|
||||
SELECT
|
||||
<include refid="Base_Column_List"/>
|
||||
FROM tb_sys_role_permission
|
||||
WHERE deleted = 0
|
||||
AND role_id = #{rolePermission.roleID}
|
||||
ORDER BY create_time ASC
|
||||
tsp.permission_id,
|
||||
tsp.name,
|
||||
tsp.code,
|
||||
tsp.description,
|
||||
tsp.creator,
|
||||
tsp.updater,
|
||||
tsp.create_time,
|
||||
tsp.update_time
|
||||
FROM tb_sys_role_permission tsrp
|
||||
INNER JOIN tb_sys_permission tsp ON tsrp.permission_id = tsp.permission_id
|
||||
WHERE tsrp.deleted = 0 AND tsp.deleted = 0
|
||||
AND tsrp.role_id = #{roleId}
|
||||
ORDER BY tsrp.permission_id , tsrp.create_time ASC
|
||||
</select>
|
||||
|
||||
<!-- 根据权限ID查询角色关联列表 -->
|
||||
@@ -71,7 +93,7 @@
|
||||
<include refid="Base_Column_List"/>
|
||||
FROM tb_sys_role_permission
|
||||
WHERE deleted = 0
|
||||
AND permission_id = #{rolePermission.permissionID}
|
||||
AND permission_id = #{permissionId}
|
||||
ORDER BY create_time ASC
|
||||
</select>
|
||||
|
||||
@@ -82,8 +104,8 @@
|
||||
delete_time = NOW(),
|
||||
updater = #{updater}
|
||||
WHERE deleted = 0
|
||||
AND role_id = #{rolePermission.roleID}
|
||||
AND permission_id = #{rolePermission.permissionID}
|
||||
AND role_id = #{roleId}
|
||||
AND permission_id = #{permissionId}
|
||||
</update>
|
||||
|
||||
</mapper>
|
||||
|
||||
@@ -1,4 +1,73 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.xyzh.system.mapper.UserDeptRoleMapper">
|
||||
<resultMap id="UserDeptRoleResultMap" type="TbSysUserDeptRole">
|
||||
<id column="id" property="id" />
|
||||
<result column="user_id" property="userID" />
|
||||
<result column="dept_id" property="deptID" />
|
||||
<result column="role_id" property="roleID" />
|
||||
<result column="creator" property="creator" />
|
||||
<result column="updater" property="updater" />
|
||||
<result column="create_time" property="createTime" />
|
||||
<result column="update_time" property="updateTime" />
|
||||
<result column="delete_time" property="deleteTime" />
|
||||
<result column="deleted" property="deleted" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="UserDeptRole_Column_List">
|
||||
id, user_id, dept_id, role_id, creator, updater, create_time, update_time, delete_time, deleted
|
||||
</sql>
|
||||
|
||||
<sql id="Where_Clause" >
|
||||
<where>
|
||||
<if test="id != null">
|
||||
id = #{id}
|
||||
</if>
|
||||
<if test="userID != null">
|
||||
user_id = #{userID}
|
||||
</if>
|
||||
<if test="deptID != null">
|
||||
dept_id = #{deptID}
|
||||
</if>
|
||||
<if test="roleID != null">
|
||||
role_id = #{roleID}
|
||||
</if>
|
||||
<if test="creator != null">
|
||||
creator = #{creator}
|
||||
</if>
|
||||
<if test="updater != null">
|
||||
updater = #{updater}
|
||||
</if>
|
||||
<if test="createTime != null">
|
||||
create_time = #{createTime}
|
||||
</if>
|
||||
</where>
|
||||
</sql>
|
||||
|
||||
<!-- selectByFilter -->
|
||||
|
||||
<select id="selectByFilter">
|
||||
SELECT
|
||||
<include refid="UserDeptRole_Column_List"/>
|
||||
FROM tb_sys_user_dept_role
|
||||
<include refid="Where_Clause"/>
|
||||
ORDER BY user_id, dept_id, role_id, create_time DESC
|
||||
</select>
|
||||
|
||||
<insert id="bindUser" parameterType="TbSysUserDeptRole">
|
||||
INSERT INTO tb_sys_user_dept_role (id, user_id, dept_id, role_id, creator, create_time)
|
||||
VALUES
|
||||
<foreach collection="userDeptRoles" item="userDeptRole" separator=",">
|
||||
(#{userDeptRole.id}, #{userDeptRole.userID}, #{userDeptRole.deptID}, #{userDeptRole.roleID}, #{userDeptRole.creator}, #{userDeptRole.createTime})
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
<delete id="unbindUser" parameterType="TbSysUserDeptRole">
|
||||
DELETE FROM tb_sys_user_dept_role
|
||||
WHERE (user_id, dept_id, role_id) IN
|
||||
<foreach collection="userDeptRoles" item="userDeptRole" open="(" separator="," close=")">
|
||||
(#{userDeptRole.userID}, #{userDeptRole.deptID}, #{userDeptRole.roleID})
|
||||
</foreach>
|
||||
</delete>
|
||||
|
||||
</mapper>
|
||||
@@ -1,5 +1,52 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.xyzh.system.mapper.UserInfoMapper">
|
||||
<resultMap id="BaseResultMap" type="TbSysUserInfo">
|
||||
<id column="id" property="id" />
|
||||
<result column="user_id" property="userID" />
|
||||
<result column="avatar" property="avatar" />
|
||||
<result column="gender" property="gender" />
|
||||
<result column="family_name" property="familyName" />
|
||||
<result column="given_name" property="givenName" />
|
||||
<result column="full_name" property="fullName" />
|
||||
<result column="id_card" property="idCard" />
|
||||
<result column="address" property="address" />
|
||||
<result column="create_time" property="createTime" />
|
||||
<result column="update_time" property="updateTime" />
|
||||
<result column="delete_time" property="deleteTime" />
|
||||
<result column="deleted" property="deleted" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="Base_Column_List">
|
||||
id, user_id, avatar, gender, family_name, given_name, full_name, id_card, address, create_time, update_time, delete_time, deleted
|
||||
</sql>
|
||||
<!-- insertUserInfo -->
|
||||
|
||||
<insert id="insertUserInfo">
|
||||
INSERT INTO tb_sys_user_info (id, user_id, avatar, create_time)
|
||||
VALUES (#{userInfo.id}, #{userInfo.userID}, #{userInfo.avatar}, #{userInfo.createTime})
|
||||
</insert>
|
||||
|
||||
<!-- updateUserInfo -->
|
||||
|
||||
<update id="updateUserInfo">
|
||||
UPDATE tb_sys_user_info
|
||||
<set>
|
||||
<if test="userInfo.avatar != null">avatar = #{userInfo.avatar},</if>
|
||||
<if test="userInfo.gender != null">gender = #{userInfo.gender},</if>
|
||||
<if test="userInfo.familyName != null">family_name = #{userInfo.familyName},</if>
|
||||
<if test="userInfo.givenName != null">given_name = #{userInfo.givenName},</if>
|
||||
<if test="userInfo.fullName != null">full_name = #{userInfo.fullName},</if>
|
||||
<if test="userInfo.idCard != null">id_card = #{userInfo.idCard},</if>
|
||||
<if test="userInfo.address != null">address = #{userInfo.address},</if>
|
||||
<if test="userInfo.updater != null">updater = #{userInfo.updater},</if>
|
||||
<if test="userInfo.updateTime != null">update_time = #{userInfo.updateTime},</if>
|
||||
</set>
|
||||
WHERE user_id = #{userInfo.userID}
|
||||
</update>
|
||||
|
||||
<delete id="deleteUserInfo">
|
||||
DELETE FROM tb_sys_user_info
|
||||
WHERE user_id = #{userID}
|
||||
</delete>
|
||||
</mapper>
|
||||
@@ -124,7 +124,6 @@
|
||||
AND wechat_id = #{filter.wechatID}
|
||||
</if>
|
||||
</where>
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
<!-- 查询用户列表 -->
|
||||
@@ -150,67 +149,50 @@
|
||||
</update>
|
||||
|
||||
<!-- 插入用户 -->
|
||||
<insert id="insert" parameterType="org.xyzh.common.dto.user.TbSysUser">
|
||||
<insert id="insertUser" parameterType="org.xyzh.common.dto.user.TbSysUser">
|
||||
INSERT INTO tb_sys_user
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="id != null">id,</if>
|
||||
<if test="username != null">username,</if>
|
||||
<if test="password != null">password,</if>
|
||||
<if test="email != null">email,</if>
|
||||
<if test="phone != null">phone,</if>
|
||||
<if test="avatar != null">avatar,</if>
|
||||
<if test="nickname != null">nickname,</if>
|
||||
<if test="gender != null">gender,</if>
|
||||
<if test="birthday != null">birthday,</if>
|
||||
<if test="status != null">status,</if>
|
||||
<if test="lastLoginTime != null">last_login_time,</if>
|
||||
<if test="lastLoginIp != null">last_login_ip,</if>
|
||||
<if test="creator != null">creator,</if>
|
||||
<if test="createTime != null">create_time,</if>
|
||||
<if test="user.id != null">id,</if>
|
||||
<if test="user.username != null">username,</if>
|
||||
<if test="user.password != null">password,</if>
|
||||
<if test="user.email != null">email,</if>
|
||||
<if test="user.phone != null">phone,</if>
|
||||
<if test="user.wechatID != null">wechat_id,</if>
|
||||
<if test="user.status != null">status,</if>
|
||||
<if test="user.createTime != null">create_time,</if>
|
||||
deleted
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="id != null">#{id},</if>
|
||||
<if test="username != null">#{username},</if>
|
||||
<if test="password != null">#{password},</if>
|
||||
<if test="email != null">#{email},</if>
|
||||
<if test="phone != null">#{phone},</if>
|
||||
<if test="avatar != null">#{avatar},</if>
|
||||
<if test="nickname != null">#{nickname},</if>
|
||||
<if test="gender != null">#{gender},</if>
|
||||
<if test="birthday != null">#{birthday},</if>
|
||||
<if test="status != null">#{status},</if>
|
||||
<if test="lastLoginTime != null">#{lastLoginTime},</if>
|
||||
<if test="lastLoginIp != null">#{lastLoginIp},</if>
|
||||
<if test="creator != null">#{creator},</if>
|
||||
<if test="createTime != null">#{createTime},</if>
|
||||
VALUES
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="user.id != null">#{user.id},</if>
|
||||
<if test="user.username != null">#{user.username},</if>
|
||||
<if test="user.password != null">#{user.password},</if>
|
||||
<if test="user.email != null">#{user.email},</if>
|
||||
<if test="user.phone != null">#{user.phone},</if>
|
||||
<if test="user.wechatID != null">#{user.wechatID},</if>
|
||||
<if test="user.status != null">#{user.status},</if>
|
||||
<if test="user.createTime != null">#{user.createTime},</if>
|
||||
0
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
<!-- 更新用户 -->
|
||||
<update id="updateById" parameterType="org.xyzh.common.dto.user.TbSysUser">
|
||||
<update id="updateUser" parameterType="org.xyzh.common.dto.user.TbSysUser">
|
||||
UPDATE tb_sys_user
|
||||
<set>
|
||||
<if test="username != null">username = #{username},</if>
|
||||
<if test="password != null">password = #{password},</if>
|
||||
<if test="email != null">email = #{email},</if>
|
||||
<if test="phone != null">phone = #{phone},</if>
|
||||
<if test="avatar != null">avatar = #{avatar},</if>
|
||||
<if test="nickname != null">nickname = #{nickname},</if>
|
||||
<if test="gender != null">gender = #{gender},</if>
|
||||
<if test="birthday != null">birthday = #{birthday},</if>
|
||||
<if test="status != null">status = #{status},</if>
|
||||
<if test="lastLoginTime != null">last_login_time = #{lastLoginTime},</if>
|
||||
<if test="lastLoginIp != null">last_login_ip = #{lastLoginIp},</if>
|
||||
<if test="updater != null">updater = #{updater},</if>
|
||||
<if test="user.username != null">username = #{user.username},</if>
|
||||
<if test="user.password != null">password = #{user.password},</if>
|
||||
<if test="user.email != null">email = #{user.email},</if>
|
||||
<if test="user.phone != null">phone = #{user.phone},</if>
|
||||
<if test="user.wechatID != null">wechat_id = #{user.wechatID},</if>
|
||||
<if test="user.status != null">status = #{user.status},</if>
|
||||
update_time = NOW()
|
||||
</set>
|
||||
WHERE id = #{id} AND deleted = 0
|
||||
WHERE id = #{user.id} AND deleted = 0
|
||||
</update>
|
||||
|
||||
<!-- 根据ID删除(逻辑删除) -->
|
||||
<update id="deleteById">
|
||||
<update id="deleteUser">
|
||||
UPDATE tb_sys_user
|
||||
SET deleted = 1,
|
||||
delete_time = NOW()
|
||||
|
||||
Reference in New Issue
Block a user