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.adminpermission.ReqCreateAdminPermission; import com.nanjing.water.entity.request.adminpermission.ReqModifyAdminPermission; import com.nanjing.water.entity.response.admin.ResAdminPermission; import com.nanjing.water.entity.search.SearchAdminPermission; import com.nanjing.water.host.api.MustAdmin; import com.nanjing.water.service.AdminPowerService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; /** * 20.权限相关接口 * * @author lin.liu * @date 2023/02/17 * @order 20 */ @MustAdmin @RestController @RequestMapping(value = "admin/permission") public class AdminPermissionController { @Autowired private AdminPowerService service; /** * 创建权限 * * @author lin.liu * @date 2023/02/17 */ @PostMapping(value = "create") public ExecutedResult create(@RequestBody ReqCreateAdminPermission request) { //#region 参数验证 ParameterValidator validator = new ParameterValidator() .addNotNullOrEmpty(ParameterUtil.named("权限值"), request.getSn()) .addLengthMax(ParameterUtil.named("权限值"), request.getSn(), ConstantFactory.LENGTH_MAX50) .addGreater(ParameterUtil.named("菜单id"), request.getMenuId(), 0) .addLengthMax(ParameterUtil.named("前端资源url"), request.getMenuUrl(), ConstantFactory.LENGTH_MAX200) .addNotNullOrEmpty(ParameterUtil.named("权限名称"), request.getName()) .addLengthMax(ParameterUtil.named("权限名称"), request.getName(), ConstantFactory.LENGTH_MAX50) .addLengthMax(ParameterUtil.named("图标"), request.getIcon(), ConstantFactory.LENGTH_MAX200) .addLengthMax(ParameterUtil.named("类型"), request.getType(), ConstantFactory.LENGTH_MAX50) ; ParameterValidateResult result = validator.validate(); if (result.getIsFiled()) { return ExecutedResult.failed(result.getErrorMsg()); } //#endregion return this.service.createPermission(request); } /** * 编辑权限 * * @author lin.liu * @date 2023/02/17 */ @PostMapping(value = "modify") public ExecutedResult modify(@RequestBody ReqModifyAdminPermission request) { //#region 参数验证 ParameterValidator validator = new ParameterValidator() .addNotNullOrEmpty(ParameterUtil.named("权限值"), request.getSn()) .addLengthMax(ParameterUtil.named("权限值"), request.getSn(), ConstantFactory.LENGTH_MAX50) .addGreater(ParameterUtil.named("菜单id"), request.getMenuId(), 0) .addLengthMax(ParameterUtil.named("前端资源url"), request.getMenuUrl(), ConstantFactory.LENGTH_MAX200) .addNotNullOrEmpty(ParameterUtil.named("权限名称"), request.getName()) .addLengthMax(ParameterUtil.named("权限名称"), request.getName(), ConstantFactory.LENGTH_MAX50) .addLengthMax(ParameterUtil.named("图标"), request.getIcon(), ConstantFactory.LENGTH_MAX200) .addLengthMax(ParameterUtil.named("类型"), request.getType(), ConstantFactory.LENGTH_MAX50) // 必须是枚举 .addMustEnum(ParameterUtil.named("状态"), request.getStatus(), EState.class) ; ParameterValidateResult result = validator.validate(); if (result.getIsFiled()) { return ExecutedResult.failed(result.getErrorMsg()); } //#endregion return this.service.modifyPermission(request); } /** * 删除权限 * * @param powerId 权限id * @author lin.liu * @date 2023/02/17 */ @GetMapping(value = "remove/{powerId}") public ExecutedResult remove(@PathVariable Long powerId) { //#region 参数验证 ParameterValidator validator = new ParameterValidator() .addGreater(ParameterUtil.named("权限id"), powerId, 0L); ParameterValidateResult result = validator.validate(); if (result.getIsFiled()) { return ExecutedResult.failed(result.getErrorMsg()); } //#endregion return this.service.removePermission(powerId); } /** * 分页查询权限 * * @author lin.liu * @date 2023/02/17 */ @PostMapping(value = "search") public ExecutedResult> search(@RequestBody SearchAdminPermission request) { return this.service.searchPermission(request); } }