package com.nanjing.water.host.controller.admin; import com.nanjing.water.common.ConstantFactory; import com.nanjing.water.common.ExecutedResult; import com.nanjing.water.common.PagerResult; import com.nanjing.water.common.util.ParameterUtil; import com.nanjing.water.common.validator.ParameterValidateResult; import com.nanjing.water.common.validator.ParameterValidator; import com.nanjing.water.entity.enums.EState; import com.nanjing.water.entity.request.ReqListId; import com.nanjing.water.entity.request.ReqListSetSort; import com.nanjing.water.entity.request.ReqSetSort; import com.nanjing.water.entity.request.adminrole.ReqCreateAdminRole; import com.nanjing.water.entity.request.adminrole.ReqModifyAdminRole; import com.nanjing.water.entity.request.adminrolemenurelation.ReqSetListMenu4Role; import com.nanjing.water.entity.request.adminuser.ReqSetListRole4Admin; import com.nanjing.water.entity.response.admin.ResAdminPower; import com.nanjing.water.entity.search.SearchAdminRole; import com.nanjing.water.host.BasicController; import com.nanjing.water.host.api.MustAdmin; import com.nanjing.water.repository.vo.AdminRoleVO; import com.nanjing.water.service.AdminPowerService; import com.nanjing.water.service.AdminService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; /** * 30.角色相关接口 * * @author lin.liu * @date 2023/02/17 * @order 30 */ @RestController @RequestMapping(value = "admin/role") public class AdminRoleController extends BasicController { @Autowired private AdminPowerService service; @Autowired private AdminService adminService; /** * 创建角色 * * @author lin.liu * @date 2023/02/17 */ @MustAdmin @PostMapping(value = "create") public ExecutedResult create(@RequestBody ReqCreateAdminRole request) { //#region 参数验证 ParameterValidator validator = new ParameterValidator() // 非空 .addNotNullOrEmpty(ParameterUtil.named("角色名称"), request.getName()) // 限制长度 .addLengthMax(ParameterUtil.named("角色名称"), request.getName(), ConstantFactory.LENGTH_MAX20) // 限制长度 .addLengthMax(ParameterUtil.named("描述"), request.getDescription(), ConstantFactory.LENGTH_MAX100) ; ParameterValidateResult result = validator.validate(); if (result.getIsFiled()) { return ExecutedResult.failed(result.getErrorMsg()); } //#endregion return service.createRole(request); } /** * 编辑角色 * * @author lin.liu * @date 2023/02/17 */ @MustAdmin @PostMapping(value = "modify") public ExecutedResult modify(@RequestBody ReqModifyAdminRole request) { //#region 参数验证 ParameterValidator validator = new ParameterValidator() // 必须大于0 .addGreater(ParameterUtil.named("角色id"), request.getId(), 0L) // 非空 .addNotNullOrEmpty(ParameterUtil.named("角色名称"), request.getName()) // 限制长度 .addLengthMax(ParameterUtil.named("角色名称"), request.getName(), ConstantFactory.LENGTH_MAX100) // 限制长度 .addLengthMax(ParameterUtil.named("描述"), request.getDescription(), ConstantFactory.LENGTH_MAX200) // 必须是枚举值 .addMustEnum(ParameterUtil.named("状态"), request.getStatus(), EState.class) ; ParameterValidateResult result = validator.validate(); if (result.getIsFiled()) { return ExecutedResult.failed(result.getErrorMsg()); } //#endregion return service.modifyRole(request); } /** * 停用角色 * * @param roleId 角色id * @author lin.liu * @date 2023/02/17 */ @MustAdmin @PostMapping(value = "stop/{roleId}") public ExecutedResult stop(@PathVariable Long roleId) { //#region 参数验证 ParameterValidator validator = new ParameterValidator() .addGreater(ParameterUtil.named("角色id"), roleId, 0L); ParameterValidateResult result = validator.validate(); if (result.getIsFiled()) { return ExecutedResult.failed(result.getErrorMsg()); } //#endregion return service.changeRoleStatus(roleId, EState.DISABLED); } /** * 启用角色 * * @param roleId 角色id * @author lin.liu * @date 2023/02/17 */ @MustAdmin @PostMapping(value = "enable/{roleId}") public ExecutedResult enable(@PathVariable Long roleId) { //#region 参数验证 ParameterValidator validator = new ParameterValidator() .addGreater(ParameterUtil.named("角色id"), roleId, 0L); ParameterValidateResult result = validator.validate(); if (result.getIsFiled()) { return ExecutedResult.failed(result.getErrorMsg()); } //#endregion return service.changeRoleStatus(roleId, EState.NORMAL); } /** * [角色]设置排序值 * * @author lin.liu * @date 2021/11/23 */ @PostMapping(value = "setSort") public ExecutedResult setSort(@RequestBody ReqSetSort request) { //#region 参数验证 ParameterValidator validator = new ParameterValidator() // 必须大于0 .addGreater(ParameterUtil.named("角色id"), request.getId(), 0L) // 必须大于0 .addGreaterThan(ParameterUtil.named("排序值"), request.getSort(), 0) ; ParameterValidateResult result = validator.validate(); if (result.getIsFiled()) { return failed(result.getErrorMsg()); } //#endregion return this.service.setRoleSort(request); } /** * [角色]批量设置排序值 * * @author lin.liu * @date 2021/11/23 */ @PostMapping(value = "listSetSort") ExecutedResult listSetSort(ReqListSetSort request) { //#region 参数验证 ParameterValidator validator = new ParameterValidator() // 不能为空 .addNotNullOrEmpty(ParameterUtil.named("角色排序设置列表"), request.getList()) ; ParameterValidateResult result = validator.validate(); if (result.getIsFiled()) { return failed(result.getErrorMsg()); } //#endregion return this.service.listSetRoleSort(request); } /** * 删除角色 * * @param roleId 角色id * @author lin.liu * @date 2023/02/17 */ @MustAdmin @PostMapping(value = "remove/{roleId}") public ExecutedResult remove(@PathVariable Long roleId) { //#region 参数验证 ParameterValidator validator = new ParameterValidator() .addGreater(ParameterUtil.named("角色id"), roleId, 0L); ParameterValidateResult result = validator.validate(); if (result.getIsFiled()) { return ExecutedResult.failed(result.getErrorMsg()); } //#endregion return service.removeRole(roleId); } /** * 批量删除角色 * @param request 请求参数 * @author lin.liu * @date 2021/11/23 */ @PostMapping(value = "removeList") public ExecutedResult removeList(@RequestBody ReqListId request) { //#region 参数验证 ParameterValidator validator = new ParameterValidator() // 不能为空 .addNotNullOrEmpty(ParameterUtil.named("角色id列表"), request.getListId()) ; ParameterValidateResult result = validator.validate(); if (result.getIsFiled()) { return failed(result.getErrorMsg()); } //#endregion return this.service.removeRoleList(request.getListId()); } /** * 分页查询角色 * * @author lin.liu * @date 2023/02/17 */ @PostMapping(value = "search") public ExecutedResult> search(@RequestBody SearchAdminRole request) { return this.service.searchRole(request); } /** * 设置角色菜单权限列表 * * @author lin.liu * @date 2023/02/17 */ @MustAdmin @PostMapping(value = "setListMenuAndPermission") public ExecutedResult setListMenuAndPermission(@RequestBody ReqSetListMenu4Role request) { //#region 参数验证 ParameterValidator validator = new ParameterValidator() .addGreater(ParameterUtil.named("角色id"), request.getId(), 0) .addNotNullOrEmpty(ParameterUtil.named("菜单列表"), request.getListMenu()) .addNotNullOrEmpty(ParameterUtil.named("菜单权限列表"), request.getListMenu()); ParameterValidateResult result = validator.validate(); if (result.getIsFiled()) { return ExecutedResult.failed(result.getErrorMsg()); } //#endregion return service.setListMenu4Role(request); } /** * 获取角色菜单权限列表 * * @param roleId 角色id * @author lin.liu * @date 2023/02/17 */ @GetMapping(value = "getListMenuAndPermission/{roleId}") public ExecutedResult getListMenuAndPermission(@PathVariable Long roleId) { //#region 参数验证 ParameterValidator validator = new ParameterValidator() .addGreater(ParameterUtil.named("角色id"), roleId, 0); ParameterValidateResult result = validator.validate(); if (result.getIsFiled()) { return ExecutedResult.failed(result.getErrorMsg()); } //#endregion return service.getListMenu4Role(roleId); } /** * 设置管理员的角色列表 * * @author lin.liu * @date 2023/02/17 */ @MustAdmin @PostMapping(value = "setListRole4Admin") public ExecutedResult setListRole4Admin(@RequestBody ReqSetListRole4Admin request) { //#region 参数验证 ParameterValidator validator = new ParameterValidator() .addGreater(ParameterUtil.named("管理员id"), request.getId(), 0); ParameterValidateResult result = validator.validate(); if (result.getIsFiled()) { return ExecutedResult.failed(result.getErrorMsg()); } //#endregion return adminService.setListRole4Admin(request); } /** * 获取管理员的角色列表 * * @param adminId 管理员id * @author lin.liu * @date 2023/02/17 */ @GetMapping(value = "getListRole4Admin") public ExecutedResult> getListRole4Admin(@RequestParam Long adminId) { //#region 参数验证 ParameterValidator validator = new ParameterValidator() .addGreater(ParameterUtil.named("管理员id"), adminId, 0); ParameterValidateResult result = validator.validate(); if (result.getIsFiled()) { return ExecutedResult.failed(result.getErrorMsg()); } //#endregion return adminService.getListRole4Admin(adminId); } }