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<Long> 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<String> 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<String> 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<PagerResult<ResAdminPermission>> search(@RequestBody SearchAdminPermission request) {
|
return this.service.searchPermission(request);
|
}
|
}
|