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<Long> 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<String> 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<String> 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<String> 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<String> 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<String> 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<String> 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<String> 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<PagerResult<AdminRoleVO>> search(@RequestBody SearchAdminRole request) {
|
return this.service.searchRole(request);
|
}
|
|
/**
|
* 设置角色菜单权限列表
|
*
|
* @author lin.liu
|
* @date 2023/02/17
|
*/
|
@MustAdmin
|
@PostMapping(value = "setListMenuAndPermission")
|
public ExecutedResult<String> 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<ResAdminPower> 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<String> 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<List<AdminRoleVO>> 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);
|
}
|
}
|