路由更新

This commit is contained in:
2025-10-16 18:03:46 +08:00
parent 1199cbc176
commit 0811af6d03
94 changed files with 9511 additions and 667 deletions

View File

@@ -0,0 +1,257 @@
package org.xyzh.system.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.xyzh.api.system.module.ModuleService;
import org.xyzh.common.core.page.PageParam;
import org.xyzh.common.dto.system.TbSysModule;
import org.xyzh.common.core.domain.ResultDomain;
import java.util.List;
/**
* @description 系统模块控制器
* @filename ModuleController.java
* @author yslg
* @copyright xyzh
* @since 2025-10-16
*/
@RestController
@RequestMapping("/system/module")
@CrossOrigin(origins = "*")
public class ModuleController {
@Autowired
private ModuleService moduleService;
/**
* @description 查询模块列表
* @param filter 过滤条件
* @return ResultDomain<TbSysModule> 模块列表
* @author yslg
* @since 2025-10-16
*/
@PostMapping("/list")
public ResultDomain<TbSysModule> getModuleList(@RequestBody(required = false) TbSysModule filter) {
return moduleService.getModuleList(filter);
}
/**
* @description 根据模块ID查询模块信息
* @param moduleID 模块ID
* @return ResultDomain<TbSysModule> 模块信息
* @author yslg
* @since 2025-10-16
*/
@GetMapping("/{moduleID}")
public ResultDomain<TbSysModule> getModuleById(@PathVariable String moduleID) {
return moduleService.getModuleById(moduleID);
}
/**
* @description 根据模块代码查询模块信息
* @param code 模块代码
* @return ResultDomain<TbSysModule> 模块信息
* @author yslg
* @since 2025-10-16
*/
@GetMapping("/code/{code}")
public ResultDomain<TbSysModule> getModuleByCode(@PathVariable String code) {
return moduleService.getModuleByCode(code);
}
/**
* @description 查询启用的模块列表
* @return ResultDomain<TbSysModule> 启用的模块列表
* @author yslg
* @since 2025-10-16
*/
@GetMapping("/active")
public ResultDomain<TbSysModule> getActiveModules() {
return moduleService.getActiveModules();
}
/**
* @description 创建模块
* @param module 模块信息
* @return ResultDomain<TbSysModule> 创建结果
* @author yslg
* @since 2025-10-16
*/
@PostMapping("/create")
public ResultDomain<TbSysModule> createModule(@RequestBody TbSysModule module) {
return moduleService.createModule(module);
}
/**
* @description 更新模块
* @param module 模块信息
* @return ResultDomain<TbSysModule> 更新结果
* @author yslg
* @since 2025-10-16
*/
@PutMapping("/update")
public ResultDomain<TbSysModule> updateModule(@RequestBody TbSysModule module) {
return moduleService.updateModule(module);
}
/**
* @description 删除模块
* @param moduleID 模块ID
* @return ResultDomain<Boolean> 删除结果
* @author yslg
* @since 2025-10-16
*/
@DeleteMapping("/{moduleID}")
public ResultDomain<Boolean> deleteModule(@PathVariable String moduleID) {
return moduleService.deleteModule(moduleID);
}
/**
* @description 批量删除模块
* @param moduleIDs 模块ID列表
* @return ResultDomain<Boolean> 删除结果
* @author yslg
* @since 2025-10-16
*/
@DeleteMapping("/batch")
public ResultDomain<Boolean> batchDeleteModules(@RequestBody List<String> moduleIDs) {
return moduleService.batchDeleteModules(moduleIDs);
}
/**
* @description 更新模块状态
* @param moduleID 模块ID
* @param status 状态
* @return ResultDomain<Boolean> 更新结果
* @author yslg
* @since 2025-10-16
*/
@PutMapping("/{moduleID}/status/{status}")
public ResultDomain<Boolean> updateModuleStatus(@PathVariable String moduleID, @PathVariable Integer status) {
return moduleService.updateModuleStatus(moduleID, status);
}
/**
* @description 更新模块排序
* @param moduleID 模块ID
* @param orderNum 排序号
* @return ResultDomain<Boolean> 更新结果
* @author yslg
* @since 2025-10-16
*/
@PutMapping("/{moduleID}/order/{orderNum}")
public ResultDomain<Boolean> updateModuleOrder(@PathVariable String moduleID, @PathVariable Integer orderNum) {
return moduleService.updateModuleOrder(moduleID, orderNum);
}
/**
* @description 分页查询模块列表
* @param filter 过滤条件
* @param pageParam 分页参数
* @return ResultDomain<TbSysModule> 模块列表
* @author yslg
* @since 2025-10-16
*/
@PostMapping("/page")
public ResultDomain<TbSysModule> getModuleListPage(@RequestBody(required = false) TbSysModule filter,
@RequestParam(defaultValue = "1") int pageNumber,
@RequestParam(defaultValue = "10") int pageSize) {
PageParam pageParam = new PageParam(pageNumber, pageSize);
return moduleService.getModuleListPage(filter, pageParam);
}
/**
* @description 统计模块数量
* @param filter 过滤条件
* @return ResultDomain<Long> 模块数量
* @author yslg
* @since 2025-10-16
*/
@PostMapping("/count")
public ResultDomain<Long> countModules(@RequestBody(required = false) TbSysModule filter) {
return moduleService.countModules(filter);
}
/**
* @description 检查模块代码是否存在
* @param code 模块代码
* @param excludeID 排除的模块ID
* @return ResultDomain<Boolean> 是否存在
* @author yslg
* @since 2025-10-16
*/
@GetMapping("/check-code")
public ResultDomain<Boolean> checkModuleCodeExists(@RequestParam String code,
@RequestParam(required = false) String excludeID) {
return moduleService.checkModuleCodeExists(code, excludeID);
}
/**
* @description 绑定权限到模块
* @param moduleID 模块ID
* @param permissionIds 权限ID列表
* @return ResultDomain<Boolean> 绑定结果
* @author yslg
* @since 2025-10-16
*/
@PostMapping("/{moduleID}/bind-permissions")
public ResultDomain<Boolean> bindPermissionsToModule(@PathVariable String moduleID,
@RequestBody List<String> permissionIds) {
return moduleService.bindPermissionsToModule(moduleID, permissionIds);
}
/**
* @description 解绑模块的权限
* @param moduleID 模块ID
* @param permissionIds 权限ID列表
* @return ResultDomain<Boolean> 解绑结果
* @author yslg
* @since 2025-10-16
*/
@PostMapping("/{moduleID}/unbind-permissions")
public ResultDomain<Boolean> unbindPermissionsFromModule(@PathVariable String moduleID,
@RequestBody List<String> permissionIds) {
return moduleService.unbindPermissionsFromModule(moduleID, permissionIds);
}
/**
* @description 获取模块的权限列表
* @param moduleID 模块ID
* @return ResultDomain<List<String>> 权限ID列表
* @author yslg
* @since 2025-10-16
*/
@GetMapping("/{moduleID}/permissions")
public ResultDomain<List<String>> getModulePermissions(@PathVariable String moduleID) {
return moduleService.getModulePermissions(moduleID);
}
/**
* @description 批量绑定权限到模块
* @param moduleID 模块ID
* @param permissionIds 权限ID列表
* @return ResultDomain<Boolean> 绑定结果
* @author yslg
* @since 2025-10-16
*/
@PostMapping("/{moduleID}/batch-bind-permissions")
public ResultDomain<Boolean> batchBindPermissionsToModule(@PathVariable String moduleID,
@RequestBody List<String> permissionIds) {
return moduleService.batchBindPermissionsToModule(moduleID, permissionIds);
}
/**
* @description 批量解绑模块的权限
* @param moduleID 模块ID
* @param permissionIds 权限ID列表
* @return ResultDomain<Boolean> 解绑结果
* @author yslg
* @since 2025-10-16
*/
@PostMapping("/{moduleID}/batch-unbind-permissions")
public ResultDomain<Boolean> batchUnbindPermissionsFromModule(@PathVariable String moduleID,
@RequestBody List<String> permissionIds) {
return moduleService.batchUnbindPermissionsFromModule(moduleID, permissionIds);
}
}

View File

@@ -0,0 +1,149 @@
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.core.page.PageParam;
import org.xyzh.common.dto.system.TbSysModule;
import java.util.List;
/**
* @description 系统模块数据访问层
* @filename ModuleMapper.java
* @author yslg
* @copyright xyzh
* @since 2025-10-16
*/
@Mapper
public interface ModuleMapper extends BaseMapper<TbSysModule> {
/**
* @description 查询模块列表
* @param filter 过滤条件
* @return List<TbSysModule> 模块列表
* @author yslg
* @since 2025-10-16
*/
List<TbSysModule> selectModules(TbSysModule filter);
/**
* @description 根据模块ID查询模块信息
* @param moduleID 模块ID
* @return TbSysModule 模块信息
* @author yslg
* @since 2025-10-16
*/
TbSysModule selectByModuleID(@Param("moduleID") String moduleID);
/**
* @description 根据模块代码查询模块信息
* @param code 模块代码
* @return TbSysModule 模块信息
* @author yslg
* @since 2025-10-16
*/
TbSysModule selectByCode(@Param("code") String code);
/**
* @description 查询启用的模块列表
* @return List<TbSysModule> 启用的模块列表
* @author yslg
* @since 2025-10-16
*/
List<TbSysModule> selectActiveModules();
/**
* @description 检查模块代码是否存在
* @param code 模块代码
* @param excludeID 排除的模块ID
* @return int 存在的数量
* @author yslg
* @since 2025-10-16
*/
int countByCode(@Param("code") String code, @Param("excludeID") String excludeID);
/**
* @description 插入模块
* @param module 模块信息
* @return int 影响行数
* @author yslg
* @since 2025-10-16
*/
int insertModule(TbSysModule module);
/**
* @description 更新模块
* @param module 模块信息
* @return int 影响行数
* @author yslg
* @since 2025-10-16
*/
int updateModule(TbSysModule module);
/**
* @description 删除模块
* @param module 模块信息
* @return int 影响行数
* @author yslg
* @since 2025-10-16
*/
int deleteModule(TbSysModule module);
/**
* @description 批量插入模块
* @param moduleList 模块列表
* @return int 影响行数
* @author yslg
* @since 2025-10-16
*/
int batchInsertModules(@Param("moduleList") List<TbSysModule> moduleList);
/**
* @description 批量删除模块
* @param moduleIDs 模块ID列表
* @return int 影响行数
* @author yslg
* @since 2025-10-16
*/
int batchDeleteModules(@Param("moduleIDs") List<String> moduleIDs);
/**
* @description 分页查询模块列表
* @param filter 过滤条件
* @param pageParam 分页参数
* @return List<TbSysModule> 模块列表
* @author yslg
* @since 2025-10-16
*/
List<TbSysModule> selectModulesPage(@Param("filter") TbSysModule filter, @Param("pageParam") PageParam pageParam);
/**
* @description 统计模块数量
* @param filter 过滤条件
* @return long 模块数量
* @author yslg
* @since 2025-10-16
*/
long countModules(@Param("filter") TbSysModule filter);
/**
* @description 更新模块状态
* @param moduleID 模块ID
* @param status 状态
* @return int 影响行数
* @author yslg
* @since 2025-10-16
*/
int updateModuleStatus(@Param("moduleID") String moduleID, @Param("status") Integer status);
/**
* @description 更新模块排序
* @param moduleID 模块ID
* @param orderNum 排序号
* @return int 影响行数
* @author yslg
* @since 2025-10-16
*/
int updateModuleOrder(@Param("moduleID") String moduleID, @Param("orderNum") Integer orderNum);
}

View File

@@ -58,12 +58,12 @@ public interface PermissionMapper extends BaseMapper<TbSysPermission> {
/**
* @description 根据角色ID查询权限列表
* @param roleId 角色ID
* @param roleID 角色ID
* @return List<TbSysPermission> 权限列表
* @author yslg
* @since 2025-09-28
*/
List<TbSysPermission> selectPermissionsByRoleId(@Param("roleId") String roleId);
List<TbSysPermission> selectPermissionsByRoleID(@Param("roleID") String roleID);
/**
* @description 根据权限编码查询权限
@@ -77,22 +77,22 @@ public interface PermissionMapper extends BaseMapper<TbSysPermission> {
/**
* @description 检查权限名称是否存在
* @param permissionName 权限名称
* @param excludeId 排除的权限ID
* @param excludeID 排除的权限ID
* @return int 存在数量
* @author yslg
* @since 2025-09-28
*/
int countByPermissionName(@Param("permissionName") String permissionName, @Param("excludeId") String excludeId);
int countByPermissionName(@Param("permissionName") String permissionName, @Param("excludeID") String excludeID);
/**
* @description 检查权限编码是否存在
* @param permissionCode 权限编码
* @param excludeId 排除的权限ID
* @param excludeID 排除的权限ID
* @return int 存在数量
* @author yslg
* @since 2025-09-28
*/
int countByPermissionCode(@Param("permissionCode") String permissionCode, @Param("excludeId") String excludeId);
int countByPermissionCode(@Param("permissionCode") String permissionCode, @Param("excludeID") String excludeID);
/**
* @description 批量删除权限(逻辑删除)
@@ -157,4 +157,42 @@ public interface PermissionMapper extends BaseMapper<TbSysPermission> {
* @since 2025-10-08
*/
List<TbSysRole> selectPermissionBindRole(@Param("permission") PermissionVO permission);
/**
* @description 根据模块ID查询权限列表
* @param moduleID 模块ID
* @return List<TbSysPermission> 权限列表
* @author yslg
* @since 2025-10-16
*/
List<TbSysPermission> selectPermissionsByModuleID(@Param("moduleID") String moduleID);
/**
* @description 绑定权限到模块
* @param moduleID 模块ID
* @param permissionIds 权限ID列表
* @return int 影响行数
* @author yslg
* @since 2025-10-16
*/
int bindPermissionsToModule(@Param("moduleID") String moduleID, @Param("permissionIds") List<String> permissionIds);
/**
* @description 解绑模块的权限
* @param moduleID 模块ID
* @param permissionIds 权限ID列表
* @return int 影响行数
* @author yslg
* @since 2025-10-16
*/
int unbindPermissionsFromModule(@Param("moduleID") String moduleID, @Param("permissionIds") List<String> permissionIds);
/**
* @description 获取模块的权限ID列表
* @param moduleID 模块ID
* @return List<String> 权限ID列表
* @author yslg
* @since 2025-10-16
*/
List<String> getModulePermissionIds(@Param("moduleID") String moduleID);
}

View File

@@ -0,0 +1,14 @@
package org.xyzh.system.module;
import org.xyzh.api.system.module.ModuleService;
/**
* @description 系统模块服务接口
* @filename SysModuleService.java
* @author yslg
* @copyright xyzh
* @since 2025-10-16
*/
public interface SysModuleService extends ModuleService{
}

View File

@@ -0,0 +1,407 @@
package org.xyzh.system.module.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.xyzh.common.core.page.PageParam;
import org.xyzh.common.dto.system.TbSysModule;
import org.xyzh.common.utils.IDUtils;
import org.xyzh.common.core.domain.ResultDomain;
import org.xyzh.system.mapper.ModuleMapper;
import org.xyzh.system.mapper.PermissionMapper;
import org.xyzh.api.system.module.ModuleService;
import java.util.Date;
import java.util.List;
/**
* @description 系统模块服务实现类
* @filename ModuleServiceImpl.java
* @author yslg
* @copyright xyzh
* @since 2025-10-16
*/
@Service
public class ModuleServiceImpl implements ModuleService {
@Autowired
private ModuleMapper moduleMapper;
@Autowired
private PermissionMapper permissionMapper;
@Override
public ResultDomain<TbSysModule> getModuleList(TbSysModule filter) {
try {
List<TbSysModule> modules = moduleMapper.selectModules(filter);
ResultDomain<TbSysModule> result = new ResultDomain<>();
result.success("查询成功", modules);
return result;
} catch (Exception e) {
ResultDomain<TbSysModule> result = new ResultDomain<>();
result.fail("查询模块列表失败:" + e.getMessage());
return result;
}
}
@Override
public ResultDomain<TbSysModule> getModuleById(String moduleID) {
try {
TbSysModule module = moduleMapper.selectByModuleID(moduleID);
if (module == null) {
ResultDomain<TbSysModule> result = new ResultDomain<>();
result.fail("模块不存在");
return result;
}
ResultDomain<TbSysModule> result = new ResultDomain<>();
result.success("查询成功", module);
return result;
} catch (Exception e) {
ResultDomain<TbSysModule> result = new ResultDomain<>();
result.fail("查询模块信息失败:" + e.getMessage());
return result;
}
}
@Override
public ResultDomain<TbSysModule> getModuleByCode(String code) {
try {
TbSysModule module = moduleMapper.selectByCode(code);
if (module == null) {
ResultDomain<TbSysModule> result = new ResultDomain<>();
result.fail("模块不存在");
return result;
}
ResultDomain<TbSysModule> result = new ResultDomain<>();
result.success("查询成功", module);
return result;
} catch (Exception e) {
ResultDomain<TbSysModule> result = new ResultDomain<>();
result.fail("查询模块信息失败:" + e.getMessage());
return result;
}
}
@Override
public ResultDomain<TbSysModule> getActiveModules() {
try {
List<TbSysModule> modules = moduleMapper.selectActiveModules();
ResultDomain<TbSysModule> result = new ResultDomain<>();
result.success("查询成功", modules);
return result;
} catch (Exception e) {
ResultDomain<TbSysModule> result = new ResultDomain<>();
result.fail("查询启用模块列表失败:" + e.getMessage());
return result;
}
}
@Override
@Transactional
public ResultDomain<TbSysModule> createModule(TbSysModule module) {
try {
// 检查模块代码是否已存在
int count = moduleMapper.countByCode(module.getCode(), null);
if (count > 0) {
ResultDomain<TbSysModule> result = new ResultDomain<>();
result.fail("模块代码已存在");
return result;
}
// 设置ID和创建时间
module.setID(IDUtils.generateID());
module.setModuleID(IDUtils.generateID());
module.setCreateTime(new Date());
module.setUpdateTime(new Date());
module.setDeleted(false);
int result = moduleMapper.insertModule(module);
if (result > 0) {
ResultDomain<TbSysModule> resultDomain = new ResultDomain<>();
resultDomain.success("创建成功", module);
return resultDomain;
} else {
ResultDomain<TbSysModule> resultDomain = new ResultDomain<>();
resultDomain.fail("创建模块失败");
return resultDomain;
}
} catch (Exception e) {
ResultDomain<TbSysModule> result = new ResultDomain<>();
result.fail("创建模块失败:" + e.getMessage());
return result;
}
}
@Override
@Transactional
public ResultDomain<TbSysModule> updateModule(TbSysModule module) {
try {
// 检查模块是否存在
TbSysModule existingModule = moduleMapper.selectByModuleID(module.getModuleID());
if (existingModule == null) {
ResultDomain<TbSysModule> result = new ResultDomain<>();
result.fail("模块不存在");
return result;
}
// 检查模块代码是否已存在(排除自身)
int count = moduleMapper.countByCode(module.getCode(), existingModule.getID());
if (count > 0) {
ResultDomain<TbSysModule> result = new ResultDomain<>();
result.fail("模块代码已存在");
return result;
}
// 设置更新时间和ID
module.setID(existingModule.getID());
module.setUpdateTime(new Date());
int result = moduleMapper.updateModule(module);
if (result > 0) {
ResultDomain<TbSysModule> resultDomain = new ResultDomain<>();
resultDomain.success("更新成功", module);
return resultDomain;
} else {
ResultDomain<TbSysModule> resultDomain = new ResultDomain<>();
resultDomain.fail("更新模块失败");
return resultDomain;
}
} catch (Exception e) {
ResultDomain<TbSysModule> result = new ResultDomain<>();
result.fail("更新模块失败:" + e.getMessage());
return result;
}
}
@Override
@Transactional
public ResultDomain<Boolean> deleteModule(String moduleID) {
try {
TbSysModule module = moduleMapper.selectByModuleID(moduleID);
if (module == null) {
ResultDomain<Boolean> result = new ResultDomain<>();
result.fail("模块不存在");
return result;
}
module.setDeleteTime(new Date());
int result = moduleMapper.deleteModule(module);
if (result > 0) {
ResultDomain<Boolean> resultDomain = new ResultDomain<>();
resultDomain.success("删除成功", true);
return resultDomain;
} else {
ResultDomain<Boolean> resultDomain = new ResultDomain<>();
resultDomain.fail("删除模块失败");
return resultDomain;
}
} catch (Exception e) {
ResultDomain<Boolean> result = new ResultDomain<>();
result.fail("删除模块失败:" + e.getMessage());
return result;
}
}
@Override
@Transactional
public ResultDomain<Boolean> batchDeleteModules(List<String> moduleIDs) {
try {
int result = moduleMapper.batchDeleteModules(moduleIDs);
if (result > 0) {
ResultDomain<Boolean> resultDomain = new ResultDomain<>();
resultDomain.success("批量删除成功", true);
return resultDomain;
} else {
ResultDomain<Boolean> resultDomain = new ResultDomain<>();
resultDomain.fail("批量删除模块失败");
return resultDomain;
}
} catch (Exception e) {
ResultDomain<Boolean> result = new ResultDomain<>();
result.fail("批量删除模块失败:" + e.getMessage());
return result;
}
}
@Override
@Transactional
public ResultDomain<Boolean> updateModuleStatus(String moduleID, Integer status) {
try {
int result = moduleMapper.updateModuleStatus(moduleID, status);
if (result > 0) {
ResultDomain<Boolean> resultDomain = new ResultDomain<>();
resultDomain.success("更新状态成功", true);
return resultDomain;
} else {
ResultDomain<Boolean> resultDomain = new ResultDomain<>();
resultDomain.fail("更新模块状态失败");
return resultDomain;
}
} catch (Exception e) {
ResultDomain<Boolean> result = new ResultDomain<>();
result.fail("更新模块状态失败:" + e.getMessage());
return result;
}
}
@Override
@Transactional
public ResultDomain<Boolean> updateModuleOrder(String moduleID, Integer orderNum) {
try {
int result = moduleMapper.updateModuleOrder(moduleID, orderNum);
if (result > 0) {
ResultDomain<Boolean> resultDomain = new ResultDomain<>();
resultDomain.success("更新排序成功", true);
return resultDomain;
} else {
ResultDomain<Boolean> resultDomain = new ResultDomain<>();
resultDomain.fail("更新模块排序失败");
return resultDomain;
}
} catch (Exception e) {
ResultDomain<Boolean> result = new ResultDomain<>();
result.fail("更新模块排序失败:" + e.getMessage());
return result;
}
}
@Override
public ResultDomain<TbSysModule> getModuleListPage(TbSysModule filter, PageParam pageParam) {
try {
List<TbSysModule> modules = moduleMapper.selectModulesPage(filter, pageParam);
ResultDomain<TbSysModule> result = new ResultDomain<>();
result.success("查询成功", modules);
return result;
} catch (Exception e) {
ResultDomain<TbSysModule> result = new ResultDomain<>();
result.fail("分页查询模块列表失败:" + e.getMessage());
return result;
}
}
@Override
public ResultDomain<Long> countModules(TbSysModule filter) {
try {
long count = moduleMapper.countModules(filter);
ResultDomain<Long> result = new ResultDomain<>();
result.success("统计成功", count);
return result;
} catch (Exception e) {
ResultDomain<Long> result = new ResultDomain<>();
result.fail("统计模块数量失败:" + e.getMessage());
return result;
}
}
@Override
public ResultDomain<Boolean> checkModuleCodeExists(String code, String excludeID) {
try {
int count = moduleMapper.countByCode(code, excludeID);
ResultDomain<Boolean> result = new ResultDomain<>();
result.success("检查成功", count > 0);
return result;
} catch (Exception e) {
ResultDomain<Boolean> result = new ResultDomain<>();
result.fail("检查模块代码失败:" + e.getMessage());
return result;
}
}
@Override
@Transactional
public ResultDomain<Boolean> bindPermissionsToModule(String moduleID, List<String> permissionIds) {
try {
int result = permissionMapper.bindPermissionsToModule(moduleID, permissionIds);
if (result > 0) {
ResultDomain<Boolean> resultDomain = new ResultDomain<>();
resultDomain.success("绑定成功", true);
return resultDomain;
} else {
ResultDomain<Boolean> resultDomain = new ResultDomain<>();
resultDomain.fail("绑定权限到模块失败");
return resultDomain;
}
} catch (Exception e) {
ResultDomain<Boolean> result = new ResultDomain<>();
result.fail("绑定权限到模块失败:" + e.getMessage());
return result;
}
}
@Override
@Transactional
public ResultDomain<Boolean> unbindPermissionsFromModule(String moduleID, List<String> permissionIds) {
try {
int result = permissionMapper.unbindPermissionsFromModule(moduleID, permissionIds);
if (result > 0) {
ResultDomain<Boolean> resultDomain = new ResultDomain<>();
resultDomain.success("解绑成功", true);
return resultDomain;
} else {
ResultDomain<Boolean> resultDomain = new ResultDomain<>();
resultDomain.fail("解绑模块权限失败");
return resultDomain;
}
} catch (Exception e) {
ResultDomain<Boolean> result = new ResultDomain<>();
result.fail("解绑模块权限失败:" + e.getMessage());
return result;
}
}
@Override
public ResultDomain<List<String>> getModulePermissions(String moduleID) {
try {
List<String> permissionIds = permissionMapper.getModulePermissionIds(moduleID);
ResultDomain<List<String>> result = new ResultDomain<>();
result.success("查询成功", permissionIds);
return result;
} catch (Exception e) {
ResultDomain<List<String>> result = new ResultDomain<>();
result.fail("获取模块权限失败:" + e.getMessage());
return result;
}
}
@Override
@Transactional
public ResultDomain<Boolean> batchBindPermissionsToModule(String moduleID, List<String> permissionIds) {
try {
int result = permissionMapper.bindPermissionsToModule(moduleID, permissionIds);
if (result > 0) {
ResultDomain<Boolean> resultDomain = new ResultDomain<>();
resultDomain.success("批量绑定成功", true);
return resultDomain;
} else {
ResultDomain<Boolean> resultDomain = new ResultDomain<>();
resultDomain.fail("批量绑定权限到模块失败");
return resultDomain;
}
} catch (Exception e) {
ResultDomain<Boolean> result = new ResultDomain<>();
result.fail("批量绑定权限到模块失败:" + e.getMessage());
return result;
}
}
@Override
@Transactional
public ResultDomain<Boolean> batchUnbindPermissionsFromModule(String moduleID, List<String> permissionIds) {
try {
int result = permissionMapper.unbindPermissionsFromModule(moduleID, permissionIds);
if (result > 0) {
ResultDomain<Boolean> resultDomain = new ResultDomain<>();
resultDomain.success("批量解绑成功", true);
return resultDomain;
} else {
ResultDomain<Boolean> resultDomain = new ResultDomain<>();
resultDomain.fail("批量解绑模块权限失败");
return resultDomain;
}
} catch (Exception e) {
ResultDomain<Boolean> result = new ResultDomain<>();
result.fail("批量解绑模块权限失败:" + e.getMessage());
return result;
}
}
}

View File

@@ -888,7 +888,7 @@ public class SysPermissionServiceImpl implements SysPermissionService {
return resultDomain;
}
List<TbSysPermission> permissions = permissionMapper.selectPermissionsByRoleId(roleId);
List<TbSysPermission> permissions = permissionMapper.selectPermissionsByRoleID(roleId);
logger.info("根据角色ID查询权限列表完成共找到{}个权限", permissions.size());
resultDomain.success("查询成功", permissions);

View File

@@ -0,0 +1,207 @@
<?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.ModuleMapper">
<!-- 基础结果映射 -->
<resultMap id="BaseResultMap" type="org.xyzh.common.dto.system.TbSysModule">
<id column="id" property="id" jdbcType="VARCHAR"/>
<result column="module_id" property="moduleID" 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="icon" property="icon" jdbcType="VARCHAR"/>
<result column="order_num" property="orderNum" jdbcType="INTEGER"/>
<result column="status" property="status" jdbcType="INTEGER"/>
<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, module_id, name, code, description, icon, order_num, status, creator, updater,
create_time, update_time, delete_time, deleted
</sql>
<!-- 基础WHERE条件 -->
<sql id="Base_Where_Clause">
<where>
<if test="filter != null">
<if test="filter.id != null and filter.id != ''">
AND id = #{filter.id}
</if>
<if test="filter.moduleID != null and filter.moduleID != ''">
AND module_id = #{filter.moduleID}
</if>
<if test="filter.name != null and filter.name != ''">
AND name LIKE CONCAT('%', #{filter.name}, '%')
</if>
<if test="filter.code != null and filter.code != ''">
AND code = #{filter.code}
</if>
<if test="filter.status != null">
AND status = #{filter.status}
</if>
<if test="filter.deleted != null">
AND deleted = #{filter.deleted}
</if>
</if>
AND deleted = 0
</where>
</sql>
<!-- 查询模块列表 -->
<select id="selectModules" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List" />
FROM tb_sys_module
<include refid="Base_Where_Clause" />
ORDER BY order_num ASC, create_time DESC
</select>
<!-- 根据模块ID查询模块信息 -->
<select id="selectByModuleID" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List" />
FROM tb_sys_module
WHERE module_id = #{moduleID} AND deleted = 0
</select>
<!-- 根据模块代码查询模块信息 -->
<select id="selectByCode" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List" />
FROM tb_sys_module
WHERE code = #{code} AND deleted = 0
</select>
<!-- 查询启用的模块列表 -->
<select id="selectActiveModules" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List" />
FROM tb_sys_module
WHERE status = 1 AND deleted = 0
ORDER BY order_num ASC, create_time DESC
</select>
<!-- 检查模块代码是否存在 -->
<select id="countByCode" resultType="int">
SELECT COUNT(1)
FROM tb_sys_module
WHERE code = #{code} AND deleted = 0
<if test="excludeID != null and excludeID != ''">
AND id != #{excludeID}
</if>
</select>
<!-- 插入模块 -->
<insert id="insertModule" parameterType="org.xyzh.common.dto.system.TbSysModule">
INSERT INTO tb_sys_module (
id, module_id, name, code, description, icon, order_num, status,
creator, updater, create_time, update_time, deleted
) VALUES (
#{id}, #{moduleID}, #{name}, #{code}, #{description}, #{icon}, #{orderNum}, #{status},
#{creator}, #{updater}, #{createTime}, #{updateTime}, #{deleted}
)
</insert>
<!-- 更新模块 -->
<update id="updateModule" parameterType="org.xyzh.common.dto.system.TbSysModule">
UPDATE tb_sys_module
<set>
<if test="name != null and name != ''">
name = #{name},
</if>
<if test="code != null and code != ''">
code = #{code},
</if>
<if test="description != null">
description = #{description},
</if>
<if test="icon != null">
icon = #{icon},
</if>
<if test="orderNum != null">
order_num = #{orderNum},
</if>
<if test="status != null">
status = #{status},
</if>
<if test="updater != null and updater != ''">
updater = #{updater},
</if>
<if test="updateTime != null">
update_time = #{updateTime},
</if>
</set>
WHERE id = #{id} AND deleted = 0
</update>
<!-- 删除模块 -->
<update id="deleteModule" parameterType="org.xyzh.common.dto.system.TbSysModule">
UPDATE tb_sys_module
SET deleted = 1, delete_time = #{deleteTime}
WHERE id = #{id} AND deleted = 0
</update>
<!-- 批量插入模块 -->
<insert id="batchInsertModules" parameterType="java.util.List">
INSERT INTO tb_sys_module (
id, module_id, name, code, description, icon, order_num, status,
creator, updater, create_time, update_time, deleted
) VALUES
<foreach collection="moduleList" item="module" separator=",">
(
#{module.id}, #{module.moduleID}, #{module.name}, #{module.code}, #{module.description},
#{module.icon}, #{module.orderNum}, #{module.status}, #{module.creator}, #{module.updater},
#{module.createTime}, #{module.updateTime}, #{module.deleted}
)
</foreach>
</insert>
<!-- 批量删除模块 -->
<update id="batchDeleteModules">
UPDATE tb_sys_module
SET deleted = 1, delete_time = NOW()
WHERE id IN
<foreach collection="moduleIDs" item="moduleID" open="(" separator="," close=")">
#{moduleID}
</foreach>
AND deleted = 0
</update>
<!-- 分页查询模块列表 -->
<select id="selectModulesPage" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List" />
FROM tb_sys_module
<include refid="Base_Where_Clause" />
ORDER BY order_num ASC, create_time DESC
LIMIT #{pageParam.pageSize} OFFSET #{pageParam.pageNumber}
</select>
<!-- 统计模块数量 -->
<select id="countModules" resultType="long">
SELECT COUNT(1)
FROM tb_sys_module
<include refid="Base_Where_Clause" />
</select>
<!-- 更新模块状态 -->
<update id="updateModuleStatus">
UPDATE tb_sys_module
SET status = #{status}, update_time = NOW()
WHERE module_id = #{moduleID} AND deleted = 0
</update>
<!-- 更新模块排序 -->
<update id="updateModuleOrder">
UPDATE tb_sys_module
SET order_num = #{orderNum}, update_time = NOW()
WHERE module_id = #{moduleID} AND deleted = 0
</update>
</mapper>

View File

@@ -9,6 +9,7 @@
<result column="name" property="name" jdbcType="VARCHAR"/>
<result column="code" property="code" jdbcType="VARCHAR"/>
<result column="description" property="description" jdbcType="VARCHAR"/>
<result column="module_id" property="moduleID" jdbcType="VARCHAR"/>
<result column="creator" property="creator" jdbcType="VARCHAR"/>
<result column="updater" property="updater" jdbcType="VARCHAR"/>
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
@@ -48,7 +49,7 @@
<!-- 基础字段 -->
<sql id="Base_Column_List">
id, permission_id, name, code, description, creator, updater,
id, permission_id, name, code, description, module_id, creator, updater,
create_time, update_time, delete_time, deleted
</sql>
@@ -82,7 +83,7 @@
</select>
<!-- 根据角色ID查询权限列表 -->
<select id="selectPermissionsByRoleId" resultMap="BaseResultMap">
<select id="selectPermissionsByRoleID" resultMap="BaseResultMap">
SELECT
p.id, p.permission_id, p.name, p.code, p.description,
p.creator, p.updater,
@@ -91,7 +92,7 @@
INNER JOIN tb_sys_permission p ON p.permission_id = rp.permission_id
WHERE p.deleted = 0
AND rp.deleted = 0
AND rp.role_id = #{roleId}
AND rp.role_id = #{roleID}
ORDER BY p.create_time ASC
</select>
@@ -111,8 +112,8 @@
FROM tb_sys_permission
WHERE deleted = 0
AND name = #{permissionName}
<if test="excludeId != null and excludeId != ''">
AND id != #{excludeId}
<if test="excludeID != null and excludeID != ''">
AND id != #{excludeID}
</if>
</select>
@@ -122,8 +123,8 @@
FROM tb_sys_permission
WHERE deleted = 0
AND code = #{permissionCode}
<if test="excludeId != null and excludeId != ''">
AND id != #{excludeId}
<if test="excludeID != null and excludeID != ''">
AND id != #{excludeID}
</if>
</select>
@@ -287,4 +288,44 @@
AND tsrp.permission_id = #{permission.permissionID}
ORDER BY tsr.role_id, tsr.create_time ASC
</select>
<!-- 根据模块ID查询权限列表 -->
<select id="selectPermissionsByModuleID" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List" />
FROM tb_sys_permission
WHERE module_id = #{moduleID} AND deleted = 0
ORDER BY create_time DESC
</select>
<!-- 绑定权限到模块 -->
<update id="bindPermissionsToModule">
UPDATE tb_sys_permission
SET module_id = #{moduleID}, update_time = NOW()
WHERE permission_id IN
<foreach collection="permissionIds" item="permissionId" open="(" separator="," close=")">
#{permissionId}
</foreach>
AND deleted = 0
</update>
<!-- 解绑模块的权限 -->
<update id="unbindPermissionsFromModule">
UPDATE tb_sys_permission
SET module_id = NULL, update_time = NOW()
WHERE permission_id IN
<foreach collection="permissionIds" item="permissionId" open="(" separator="," close=")">
#{permissionId}
</foreach>
AND module_id = #{moduleID}
AND deleted = 0
</update>
<!-- 获取模块的权限ID列表 -->
<select id="getModulePermissionIds" resultType="String">
SELECT permission_id
FROM tb_sys_permission
WHERE module_id = #{moduleID} AND deleted = 0
ORDER BY create_time DESC
</select>
</mapper>