serv-模块、权限、成就
This commit is contained in:
@@ -3,12 +3,11 @@ 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.core.page.PageRequest;
|
||||
import org.xyzh.common.dto.permission.TbSysPermission;
|
||||
import org.xyzh.common.dto.system.TbSysModule;
|
||||
import org.xyzh.common.core.domain.ResultDomain;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @description 系统模块控制器
|
||||
* @filename ModuleController.java
|
||||
@@ -17,7 +16,7 @@ import java.util.List;
|
||||
* @since 2025-10-16
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/system/module")
|
||||
@RequestMapping("/system/modules")
|
||||
@CrossOrigin(origins = "*")
|
||||
public class ModuleController {
|
||||
|
||||
@@ -44,7 +43,7 @@ public class ModuleController {
|
||||
* @since 2025-10-16
|
||||
*/
|
||||
@GetMapping("/{moduleID}")
|
||||
public ResultDomain<TbSysModule> getModuleById(@PathVariable String moduleID) {
|
||||
public ResultDomain<TbSysModule> getModuleById(@PathVariable(name = "moduleID") String moduleID) {
|
||||
return moduleService.getModuleById(moduleID);
|
||||
}
|
||||
|
||||
@@ -56,7 +55,7 @@ public class ModuleController {
|
||||
* @since 2025-10-16
|
||||
*/
|
||||
@GetMapping("/code/{code}")
|
||||
public ResultDomain<TbSysModule> getModuleByCode(@PathVariable String code) {
|
||||
public ResultDomain<TbSysModule> getModuleByCode(@PathVariable(name = "code") String code) {
|
||||
return moduleService.getModuleByCode(code);
|
||||
}
|
||||
|
||||
@@ -78,7 +77,7 @@ public class ModuleController {
|
||||
* @author yslg
|
||||
* @since 2025-10-16
|
||||
*/
|
||||
@PostMapping("/create")
|
||||
@PostMapping("/module")
|
||||
public ResultDomain<TbSysModule> createModule(@RequestBody TbSysModule module) {
|
||||
return moduleService.createModule(module);
|
||||
}
|
||||
@@ -90,7 +89,7 @@ public class ModuleController {
|
||||
* @author yslg
|
||||
* @since 2025-10-16
|
||||
*/
|
||||
@PutMapping("/update")
|
||||
@PutMapping("/module")
|
||||
public ResultDomain<TbSysModule> updateModule(@RequestBody TbSysModule module) {
|
||||
return moduleService.updateModule(module);
|
||||
}
|
||||
@@ -102,21 +101,9 @@ public class ModuleController {
|
||||
* @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);
|
||||
@DeleteMapping("/module")
|
||||
public ResultDomain<Boolean> deleteModule(@RequestBody TbSysModule module) {
|
||||
return moduleService.deleteModule(module.getModuleID());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -128,7 +115,7 @@ public class ModuleController {
|
||||
* @since 2025-10-16
|
||||
*/
|
||||
@PutMapping("/{moduleID}/status/{status}")
|
||||
public ResultDomain<Boolean> updateModuleStatus(@PathVariable String moduleID, @PathVariable Integer status) {
|
||||
public ResultDomain<Boolean> updateModuleStatus(@PathVariable(name = "moduleID") String moduleID, @PathVariable(name = "status") Integer status) {
|
||||
return moduleService.updateModuleStatus(moduleID, status);
|
||||
}
|
||||
|
||||
@@ -141,7 +128,7 @@ public class ModuleController {
|
||||
* @since 2025-10-16
|
||||
*/
|
||||
@PutMapping("/{moduleID}/order/{orderNum}")
|
||||
public ResultDomain<Boolean> updateModuleOrder(@PathVariable String moduleID, @PathVariable Integer orderNum) {
|
||||
public ResultDomain<Boolean> updateModuleOrder(@PathVariable(name = "moduleID") String moduleID, @PathVariable(name = "orderNum") Integer orderNum) {
|
||||
return moduleService.updateModuleOrder(moduleID, orderNum);
|
||||
}
|
||||
|
||||
@@ -154,11 +141,8 @@ public class ModuleController {
|
||||
* @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);
|
||||
public ResultDomain<TbSysModule> getModuleListPage(@RequestBody PageRequest<TbSysModule> pageRequest) {
|
||||
return moduleService.getModuleListPage(pageRequest.getFilter(), pageRequest.getPageParam());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -182,76 +166,64 @@ public class ModuleController {
|
||||
* @since 2025-10-16
|
||||
*/
|
||||
@GetMapping("/check-code")
|
||||
public ResultDomain<Boolean> checkModuleCodeExists(@RequestParam String code,
|
||||
@RequestParam(required = false) String excludeID) {
|
||||
public ResultDomain<Boolean> checkModuleCodeExists(@RequestParam(name = "code") String code,
|
||||
@RequestParam(required = false, value = "excludeID") String excludeID) {
|
||||
return moduleService.checkModuleCodeExists(code, excludeID);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 绑定权限到模块
|
||||
* @description 在模块中创建权限
|
||||
* @param moduleID 模块ID
|
||||
* @param permissionIds 权限ID列表
|
||||
* @return ResultDomain<Boolean> 绑定结果
|
||||
* @param permission 权限信息
|
||||
* @return ResultDomain<TbSysPermission> 创建结果
|
||||
* @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);
|
||||
@PostMapping("/{moduleID}/permissions")
|
||||
public ResultDomain<TbSysPermission> createPermissionInModule(@PathVariable(name = "moduleID") String moduleID,
|
||||
@RequestBody TbSysPermission permission) {
|
||||
permission.setModuleID(moduleID);
|
||||
return moduleService.createPermissionInModule(permission);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 解绑模块的权限
|
||||
* @description 更新模块中的权限
|
||||
* @param moduleID 模块ID
|
||||
* @param permissionIds 权限ID列表
|
||||
* @return ResultDomain<Boolean> 解绑结果
|
||||
* @param permission 权限信息
|
||||
* @return ResultDomain<TbSysPermission> 更新结果
|
||||
* @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);
|
||||
@PutMapping("/{moduleID}/permissions")
|
||||
public ResultDomain<TbSysPermission> updatePermissionInModule(@PathVariable(name = "moduleID") String moduleID,
|
||||
@RequestBody TbSysPermission permission) {
|
||||
permission.setModuleID(moduleID);
|
||||
return moduleService.updatePermissionInModule(permission);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 删除模块中的权限
|
||||
* @param moduleID 模块ID
|
||||
* @param permissionID 权限ID
|
||||
* @return ResultDomain<Boolean> 删除结果
|
||||
* @author yslg
|
||||
* @since 2025-10-16
|
||||
*/
|
||||
@DeleteMapping("/{moduleID}/permissions/{permissionID}")
|
||||
public ResultDomain<Boolean> deletePermissionInModule(@PathVariable(name = "moduleID") String moduleID,
|
||||
@PathVariable(name = "permissionID") String permissionID) {
|
||||
return moduleService.deletePermissionInModule(moduleID, permissionID);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 获取模块的权限列表
|
||||
* @param moduleID 模块ID
|
||||
* @return ResultDomain<List<String>> 权限ID列表
|
||||
* @return ResultDomain<TbSysPermission> 权限列表
|
||||
* @author yslg
|
||||
* @since 2025-10-16
|
||||
*/
|
||||
@GetMapping("/{moduleID}/permissions")
|
||||
public ResultDomain<List<String>> getModulePermissions(@PathVariable String moduleID) {
|
||||
public ResultDomain<TbSysPermission> getModulePermissions(@PathVariable(name = "moduleID") 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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -168,31 +168,11 @@ public interface PermissionMapper extends BaseMapper<TbSysPermission> {
|
||||
List<TbSysPermission> selectPermissionsByModuleID(@Param("moduleID") String moduleID);
|
||||
|
||||
/**
|
||||
* @description 绑定权限到模块
|
||||
* @description 获取模块的权限列表
|
||||
* @param moduleID 模块ID
|
||||
* @param permissionIds 权限ID列表
|
||||
* @return int 影响行数
|
||||
* @return List<TbSysPermission> 权限列表
|
||||
* @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);
|
||||
List<TbSysPermission> getModulePermissionIds(@Param("moduleID") String moduleID);
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ 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.permission.TbSysPermission;
|
||||
import org.xyzh.common.dto.system.TbSysModule;
|
||||
import org.xyzh.common.utils.IDUtils;
|
||||
import org.xyzh.common.core.domain.ResultDomain;
|
||||
@@ -184,6 +185,15 @@ public class ModuleServiceImpl implements ModuleService {
|
||||
return result;
|
||||
}
|
||||
|
||||
// 级联删除模块下的所有权限
|
||||
List<TbSysPermission> permissions = permissionMapper.selectPermissionsByModuleID(moduleID);
|
||||
if (permissions != null && !permissions.isEmpty()) {
|
||||
for (TbSysPermission permission : permissions) {
|
||||
permission.setDeleteTime(new Date());
|
||||
permissionMapper.deletePermission(permission);
|
||||
}
|
||||
}
|
||||
|
||||
module.setDeleteTime(new Date());
|
||||
int result = moduleMapper.deleteModule(module);
|
||||
if (result > 0) {
|
||||
@@ -267,16 +277,12 @@ public class ModuleServiceImpl implements ModuleService {
|
||||
|
||||
@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;
|
||||
}
|
||||
pageParam.setOffset((pageParam.getPageNumber() - 1) * pageParam.getPageSize());
|
||||
List<TbSysModule> modules = moduleMapper.selectModulesPage(filter, pageParam);
|
||||
ResultDomain<TbSysModule> result = new ResultDomain<>();
|
||||
result.success("查询成功", modules);
|
||||
return result;
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -309,99 +315,124 @@ public class ModuleServiceImpl implements ModuleService {
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public ResultDomain<Boolean> bindPermissionsToModule(String moduleID, List<String> permissionIds) {
|
||||
public ResultDomain<TbSysPermission> createPermissionInModule(TbSysPermission permission) {
|
||||
try {
|
||||
int result = permissionMapper.bindPermissionsToModule(moduleID, permissionIds);
|
||||
// 检查模块是否存在
|
||||
TbSysModule module = moduleMapper.selectByModuleID(permission.getModuleID());
|
||||
if (module == null) {
|
||||
ResultDomain<TbSysPermission> result = new ResultDomain<>();
|
||||
result.fail("模块不存在");
|
||||
return result;
|
||||
}
|
||||
|
||||
// 设置基础信息
|
||||
permission.setID(IDUtils.generateID());
|
||||
permission.setPermissionID(IDUtils.generateID());
|
||||
permission.setCreateTime(new Date());
|
||||
permission.setUpdateTime(new Date());
|
||||
permission.setDeleted(false);
|
||||
|
||||
int result = permissionMapper.insertPermission(permission);
|
||||
if (result > 0) {
|
||||
ResultDomain<Boolean> resultDomain = new ResultDomain<>();
|
||||
resultDomain.success("绑定成功", true);
|
||||
ResultDomain<TbSysPermission> resultDomain = new ResultDomain<>();
|
||||
resultDomain.success("创建权限成功", permission);
|
||||
return resultDomain;
|
||||
} else {
|
||||
ResultDomain<Boolean> resultDomain = new ResultDomain<>();
|
||||
resultDomain.fail("绑定权限到模块失败");
|
||||
ResultDomain<TbSysPermission> resultDomain = new ResultDomain<>();
|
||||
resultDomain.fail("创建权限失败");
|
||||
return resultDomain;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
ResultDomain<Boolean> result = new ResultDomain<>();
|
||||
result.fail("绑定权限到模块失败:" + e.getMessage());
|
||||
ResultDomain<TbSysPermission> result = new ResultDomain<>();
|
||||
result.fail("创建权限失败:" + e.getMessage());
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public ResultDomain<Boolean> unbindPermissionsFromModule(String moduleID, List<String> permissionIds) {
|
||||
public ResultDomain<TbSysPermission> updatePermissionInModule(TbSysPermission permission) {
|
||||
try {
|
||||
int result = permissionMapper.unbindPermissionsFromModule(moduleID, permissionIds);
|
||||
// 检查权限是否存在
|
||||
TbSysPermission existingPermission = permissionMapper.selectPermission(permission);
|
||||
if (existingPermission == null) {
|
||||
ResultDomain<TbSysPermission> result = new ResultDomain<>();
|
||||
result.fail("权限不存在");
|
||||
return result;
|
||||
}
|
||||
|
||||
// 检查权限是否属于该模块
|
||||
if (!existingPermission.getModuleID().equals(permission.getModuleID())) {
|
||||
ResultDomain<TbSysPermission> result = new ResultDomain<>();
|
||||
result.fail("权限不属于该模块");
|
||||
return result;
|
||||
}
|
||||
|
||||
permission.setID(existingPermission.getID());
|
||||
permission.setUpdateTime(new Date());
|
||||
|
||||
int result = permissionMapper.updatePermission(permission);
|
||||
if (result > 0) {
|
||||
ResultDomain<Boolean> resultDomain = new ResultDomain<>();
|
||||
resultDomain.success("解绑成功", true);
|
||||
ResultDomain<TbSysPermission> resultDomain = new ResultDomain<>();
|
||||
resultDomain.success("更新权限成功", permission);
|
||||
return resultDomain;
|
||||
} else {
|
||||
ResultDomain<Boolean> resultDomain = new ResultDomain<>();
|
||||
resultDomain.fail("解绑模块权限失败");
|
||||
ResultDomain<TbSysPermission> 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());
|
||||
ResultDomain<TbSysPermission> result = new ResultDomain<>();
|
||||
result.fail("更新权限失败:" + e.getMessage());
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public ResultDomain<Boolean> batchBindPermissionsToModule(String moduleID, List<String> permissionIds) {
|
||||
public ResultDomain<Boolean> deletePermissionInModule(String moduleID, String permissionID) {
|
||||
try {
|
||||
int result = permissionMapper.bindPermissionsToModule(moduleID, permissionIds);
|
||||
// 检查权限是否存在
|
||||
TbSysPermission permission = new TbSysPermission();
|
||||
permission.setPermissionID(permissionID);
|
||||
TbSysPermission existingPermission = permissionMapper.selectPermission(permission);
|
||||
|
||||
if (existingPermission == null) {
|
||||
ResultDomain<Boolean> result = new ResultDomain<>();
|
||||
result.fail("权限不存在");
|
||||
return result;
|
||||
}
|
||||
|
||||
// 检查权限是否属于该模块
|
||||
if (!existingPermission.getModuleID().equals(moduleID)) {
|
||||
ResultDomain<Boolean> result = new ResultDomain<>();
|
||||
result.fail("权限不属于该模块");
|
||||
return result;
|
||||
}
|
||||
|
||||
existingPermission.setDeleteTime(new Date());
|
||||
int result = permissionMapper.deletePermission(existingPermission);
|
||||
if (result > 0) {
|
||||
ResultDomain<Boolean> resultDomain = new ResultDomain<>();
|
||||
resultDomain.success("批量绑定成功", true);
|
||||
resultDomain.success("删除权限成功", true);
|
||||
return resultDomain;
|
||||
} else {
|
||||
ResultDomain<Boolean> resultDomain = new ResultDomain<>();
|
||||
resultDomain.fail("批量绑定权限到模块失败");
|
||||
resultDomain.fail("删除权限失败");
|
||||
return resultDomain;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
ResultDomain<Boolean> result = new ResultDomain<>();
|
||||
result.fail("批量绑定权限到模块失败:" + e.getMessage());
|
||||
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;
|
||||
}
|
||||
public ResultDomain<TbSysPermission> getModulePermissions(String moduleID) {
|
||||
List<TbSysPermission> permissions = permissionMapper.getModulePermissionIds(moduleID);
|
||||
ResultDomain<TbSysPermission> result = new ResultDomain<>();
|
||||
result.success("查询成功", permissions);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@@ -63,6 +63,9 @@ public class SysPermissionServiceImpl implements SysPermissionService {
|
||||
|
||||
@Autowired
|
||||
private MenuService menuService;
|
||||
|
||||
@Autowired
|
||||
private org.xyzh.system.mapper.ModuleMapper moduleMapper;
|
||||
|
||||
@Transactional
|
||||
@Override
|
||||
@@ -82,6 +85,19 @@ public class SysPermissionServiceImpl implements SysPermissionService {
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
// 检查所属模块ID是否存在(权限必须在模块中创建)
|
||||
if (!StringUtils.hasText(permission.getModuleID())) {
|
||||
resultDomain.fail("权限必须指定所属模块");
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
// 校验模块是否存在
|
||||
org.xyzh.common.dto.system.TbSysModule module = moduleMapper.selectByModuleID(permission.getModuleID());
|
||||
if (module == null) {
|
||||
resultDomain.fail("指定的模块不存在");
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
// 检查权限名称是否已存在
|
||||
ResultDomain<Boolean> nameCheckResult = checkPermissionNameExists(permission.getName(), null);
|
||||
if (!nameCheckResult.isSuccess()) {
|
||||
|
||||
@@ -53,6 +53,29 @@
|
||||
</where>
|
||||
</sql>
|
||||
|
||||
<sql id="Filter_Where_Clause">
|
||||
<where>
|
||||
deleted = 0
|
||||
<if test="filter != null">
|
||||
<if test="filter.id != null and filter.id != ''">
|
||||
AND id = #{filter.id}
|
||||
</if>
|
||||
</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>
|
||||
</where>
|
||||
</sql>
|
||||
|
||||
<!-- 查询模块列表 -->
|
||||
<select id="selectModules" resultMap="BaseResultMap">
|
||||
SELECT
|
||||
@@ -178,7 +201,7 @@
|
||||
SELECT
|
||||
<include refid="Base_Column_List" />
|
||||
FROM tb_sys_module
|
||||
<include refid="Base_Where_Clause" />
|
||||
<include refid="Filter_Where_Clause" />
|
||||
ORDER BY order_num ASC, create_time DESC
|
||||
LIMIT #{pageParam.pageSize} OFFSET #{pageParam.offset}
|
||||
</select>
|
||||
@@ -187,7 +210,7 @@
|
||||
<select id="countModules" resultType="long">
|
||||
SELECT COUNT(1)
|
||||
FROM tb_sys_module
|
||||
<include refid="Base_Where_Clause" />
|
||||
<include refid="Filter_Where_Clause" />
|
||||
</select>
|
||||
|
||||
<!-- 更新模块状态 -->
|
||||
|
||||
@@ -150,6 +150,7 @@
|
||||
<if test="permission.name != null">name,</if>
|
||||
<if test="permission.code != null">code,</if>
|
||||
<if test="permission.description != null">description,</if>
|
||||
<if test="permission.moduleID != null">module_id,</if>
|
||||
<if test="permission.creator != null">creator,</if>
|
||||
<if test="permission.createTime != null">create_time,</if>
|
||||
deleted
|
||||
@@ -160,6 +161,7 @@
|
||||
<if test="permission.name != null">#{permission.name},</if>
|
||||
<if test="permission.code != null">#{permission.code},</if>
|
||||
<if test="permission.description != null">#{permission.description},</if>
|
||||
<if test="permission.moduleID != null">#{permission.moduleID},</if>
|
||||
<if test="permission.creator != null">#{permission.creator},</if>
|
||||
<if test="permission.createTime != null">#{permission.createTime},</if>
|
||||
0
|
||||
@@ -174,6 +176,7 @@
|
||||
<if test="permission.name != null">name = #{permission.name},</if>
|
||||
<if test="permission.code != null">code = #{permission.code},</if>
|
||||
<if test="permission.description != null">description = #{permission.description},</if>
|
||||
<if test="permission.moduleID != null">module_id = #{permission.moduleID},</if>
|
||||
<if test="permission.updater != null">updater = #{permission.updater},</if>
|
||||
update_time = NOW()
|
||||
</set>
|
||||
@@ -298,32 +301,10 @@
|
||||
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
|
||||
<!-- 获取模块的权限列表 -->
|
||||
<select id="getModulePermissionIds" resultMap="BaseResultMap">
|
||||
SELECT
|
||||
<include refid="Base_Column_List" />
|
||||
FROM tb_sys_permission
|
||||
WHERE module_id = #{moduleID} AND deleted = 0
|
||||
ORDER BY create_time DESC
|
||||
|
||||
Reference in New Issue
Block a user