package cn.stylefeng.guns.modular.business.controller;
|
|
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.util.StrUtil;
|
import cn.stylefeng.guns.modular.business.dto.request.SysRoleBindMenuButtonRequest;
|
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
import cn.stylefeng.roses.kernel.rule.annotation.BusinessLog;
|
import cn.stylefeng.roses.kernel.rule.enums.ResBizTypeEnum;
|
import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData;
|
import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData;
|
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
import cn.stylefeng.roses.kernel.scanner.api.annotation.PostResource;
|
import cn.stylefeng.roses.kernel.system.api.MenuServiceApi;
|
import cn.stylefeng.roses.kernel.system.api.pojo.menu.*;
|
import cn.stylefeng.roses.kernel.system.api.pojo.menu.antd.AntdSysMenuDTO;
|
import cn.stylefeng.roses.kernel.system.api.pojo.menu.layui.LayuiMenuAndButtonTreeResponse;
|
import cn.stylefeng.roses.kernel.system.api.pojo.role.request.SysRoleAddEditRequest;
|
import cn.stylefeng.roses.kernel.system.api.pojo.role.request.SysRoleGrantMenuAndButtonRequest;
|
import cn.stylefeng.roses.kernel.system.api.pojo.role.request.SysRoleRequest;
|
import cn.stylefeng.roses.kernel.system.modular.menu.service.SysMenuButtonService;
|
import cn.stylefeng.roses.kernel.system.modular.menu.service.SysMenuService;
|
import cn.stylefeng.roses.kernel.system.modular.role.entity.SysRole;
|
import cn.stylefeng.roses.kernel.system.modular.role.service.SysRoleService;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiOperation;
|
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RestController;
|
|
import javax.annotation.Resource;
|
import java.util.List;
|
|
@Api(tags = "权限管理")
|
@RestController
|
@ApiResource(name = "权限管理", resBizType = ResBizTypeEnum.SYSTEM)
|
@RequestMapping("/sysRoleBusiness")
|
public class SysRoleBusinessController {
|
|
@Resource
|
private MenuServiceApi menuServiceApi;
|
|
@Resource
|
private SysMenuService sysMenuService;
|
|
@Resource
|
private SysMenuButtonService sysMenuButtonService;
|
|
@Resource
|
private SysRoleService sysRoleService;
|
|
@ApiOperation(value = "添加系统菜单")
|
@PostResource(name = "添加系统菜单", path = "/sysMenu/add")
|
@BusinessLog
|
public ResponseData<?> sysMenuAdd(@RequestBody SysMenuAddEditRequest req) {
|
SysMenuRequest sysMenuRequest = BeanUtil.copyProperties(req, SysMenuRequest.class);
|
sysMenuService.add(sysMenuRequest);
|
return new SuccessResponseData<>();
|
}
|
|
@ApiOperation(value = "编辑系统菜单")
|
@PostResource(name = "编辑系统菜单", path = "/sysMenu/edit")
|
@BusinessLog
|
public ResponseData<?> sysMenuEdit(@RequestBody SysMenuAddEditRequest req) {
|
SysMenuRequest sysMenuRequest = BeanUtil.copyProperties(req, SysMenuRequest.class);
|
sysMenuService.edit(sysMenuRequest);
|
return new SuccessResponseData<>();
|
}
|
|
@ApiOperation(value = "删除系统菜单")
|
@PostResource(name = "删除系统菜单", path = "/sysMenu/delete")
|
@BusinessLog
|
public ResponseData<?> sysMenuDelete(@RequestBody SysMenuAddEditRequest req) {
|
SysMenuRequest sysMenuRequest = BeanUtil.copyProperties(req, SysMenuRequest.class);
|
sysMenuService.del(sysMenuRequest);
|
return new SuccessResponseData<>();
|
}
|
|
@ApiOperation(value = "添加系统菜单按钮")
|
@PostResource(name = "添加系统菜单按钮", path = "/sysMenuButton/add")
|
@BusinessLog
|
public ResponseData<?> sysMenuButtonAdd(@RequestBody SysMenuButtonAddEditRequest req) {
|
SysMenuButtonRequest sysMenuButtonRequest = BeanUtil.copyProperties(req, SysMenuButtonRequest.class);
|
sysMenuButtonService.add(sysMenuButtonRequest);
|
return new SuccessResponseData<>();
|
}
|
@ApiOperation(value = "添加系统默认菜单按钮", notes = "添加系统默认菜单(查询、新增、编辑、删除)按钮")
|
@PostResource(name = "添加系统默认菜单按钮", path = "/sysMenuButton/addSystemDefaultButton")
|
@BusinessLog
|
public ResponseData<?> addSystemDefaultButton(@RequestBody SysMenuButtonAddEditRequest req) {
|
SysMenuButtonRequest sysMenuButtonRequest = BeanUtil.copyProperties(req, SysMenuButtonRequest.class);
|
sysMenuButtonService.addDefaultButtons(sysMenuButtonRequest);
|
return new SuccessResponseData<>();
|
}
|
|
@ApiOperation(value = "编辑系统菜单按钮")
|
@PostResource(name = "编辑系统菜单按钮", path = "/sysMenuButton/edit")
|
@BusinessLog
|
public ResponseData<?> sysMenuButtonEdit(@RequestBody SysMenuButtonAddEditRequest req) {
|
SysMenuButtonRequest sysMenuButtonRequest = BeanUtil.copyProperties(req, SysMenuButtonRequest.class);
|
sysMenuButtonService.edit(sysMenuButtonRequest);
|
return new SuccessResponseData<>();
|
}
|
|
@ApiOperation(value = "删除系统菜单按钮")
|
@PostResource(name = "删除系统菜单按钮", path = "/sysMenuButton/delete")
|
@BusinessLog
|
public ResponseData<?> sysMenuButtonDelete(@RequestBody SysMenuButtonAddEditRequest req) {
|
SysMenuButtonRequest sysMenuButtonRequest = BeanUtil.copyProperties(req, SysMenuButtonRequest.class);
|
sysMenuButtonService.del(sysMenuButtonRequest);
|
return new SuccessResponseData<>();
|
}
|
|
@ApiOperation(value = "获取系统所有菜单", notes = "获取系统左侧菜单(适用于登录后获取左侧菜单),管理后台:systemAdmin,工作人员后台:workerAdmin")
|
@GetResource(name = "获取系统所有菜单(适用于登录后获取左侧菜单)(适配antd vue版本)", path = "/sysMenu/getLeftMenusAntdv", requiredPermission = false)
|
public ResponseData<List<AntdSysMenuDTO>> getLeftMenusAntdv(String appCode) {
|
SysMenuRequest sysMenuRequest = new SysMenuRequest();
|
sysMenuRequest.setAppCode(StrUtil.isNotBlank(appCode) ? appCode : "systemAdmin");
|
List<AntdSysMenuDTO> sysMenuResponses = sysMenuService.getLeftMenusAntdv(sysMenuRequest);
|
return new SuccessResponseData<>(sysMenuResponses);
|
}
|
|
@ApiOperation(value = "获取系统菜单和按钮的树", notes = "获取系统菜单和按钮的树,用于角色分配菜单按钮")
|
@GetResource(name = "获取系统菜单和按钮的树用于角色分配菜单按钮", path = "/sysMenu/menuAndButtonTreeChildren")
|
public ResponseData<List<LayuiMenuAndButtonTreeResponse>> menuAndButtonTreeChildren(Long roleId) {
|
SysRoleRequest sysRoleRequest = new SysRoleRequest();
|
sysRoleRequest.setRoleId(roleId);
|
List<LayuiMenuAndButtonTreeResponse> treeResponseList = sysMenuService.getMenuAndButtonTree(sysRoleRequest, false);
|
return new SuccessResponseData<>(treeResponseList);
|
}
|
|
@ApiOperation(value = "添加角色")
|
@PostResource(name = "添加角色", path = "/sysRole/add")
|
@BusinessLog
|
public ResponseData<?> add(@RequestBody SysRoleAddEditRequest req) {
|
SysRoleRequest sysRoleRequest = BeanUtil.copyProperties(req, SysRoleRequest.class);
|
SysRole sysRole = sysRoleService.add(sysRoleRequest);
|
// // 异步实现接口授权
|
// Thread apiThread = new Thread(new Runnable() {
|
// @Override
|
// public void run() {
|
// SysRoleRequest sysRoleRequest1 = new SysRoleRequest();
|
// sysRoleRequest1.setRoleId(sysRole.getRoleId());
|
// sysRoleRequest1.setTotalSelectFlag(true);
|
// sysRoleRequest1.setResourceBizType(1);
|
// sysRoleAuthController.grantResourceV2GrantAll(sysRoleRequest1);
|
// SysRoleRequest sysRoleRequest2 = new SysRoleRequest();
|
// sysRoleRequest2.setRoleId(sysRole.getRoleId());
|
// sysRoleRequest2.setTotalSelectFlag(true);
|
// sysRoleRequest2.setResourceBizType(2);
|
// sysRoleAuthController.grantResourceV2GrantAll(sysRoleRequest2);
|
// }
|
// });
|
// apiThread.start();
|
return new SuccessResponseData<>();
|
}
|
|
@ApiOperation("角色编辑")
|
@PostResource(name = "角色编辑", path = "/sysRole/edit")
|
@BusinessLog
|
public ResponseData<?> edit(@RequestBody SysRoleAddEditRequest req) {
|
SysRoleRequest sysRoleRequest = BeanUtil.copyProperties(req, SysRoleRequest.class);
|
sysRoleService.edit(sysRoleRequest);
|
return new SuccessResponseData<>();
|
}
|
|
@ApiOperation("角色删除")
|
@PostResource(name = "角色删除", path = "/sysRole/delete")
|
@BusinessLog
|
public ResponseData<?> delete(@RequestBody SysRoleAddEditRequest req) {
|
SysRoleRequest sysRoleRequest = BeanUtil.copyProperties(req, SysRoleRequest.class);
|
sysRoleService.del(sysRoleRequest);
|
return new SuccessResponseData<>();
|
}
|
|
@ApiOperation("查询角色")
|
@GetResource(name = "查询角色", path = "/sysRole/page")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "pageNo", value = "当前页数", dataTypeClass = Integer.class, defaultValue = "1"),
|
@ApiImplicitParam(name = "pageSize", value = "分页条数", dataTypeClass = Integer.class, defaultValue = "20"),
|
@ApiImplicitParam(name = "roleName", value = "角色名称", dataTypeClass = String.class),
|
@ApiImplicitParam(name = "statusFlag", value = "状态:1-启用,2-禁用", dataTypeClass = Integer.class),
|
})
|
public ResponseData<PageResult<SysRole>> page(Integer pageNo, Integer pageSize, String roleName, Integer statusFlag) {
|
SysRoleRequest sysRoleRequest = new SysRoleRequest();
|
sysRoleRequest.setPageNo(pageNo);
|
sysRoleRequest.setPageSize(pageSize);
|
sysRoleRequest.setRoleName(roleName);
|
sysRoleRequest.setStatusFlag(statusFlag);
|
return new SuccessResponseData<>(sysRoleService.findPage(sysRoleRequest));
|
}
|
|
@ApiOperation("角色授权菜单和按钮")
|
@PostResource(name = "角色授权菜单和按钮", path = "/sysRole/grantMenuAndButton")
|
public ResponseData<?> grantMenuAndButton(@RequestBody SysRoleGrantMenuAndButtonRequest req) {
|
SysRoleRequest sysRoleRequest = BeanUtil.copyProperties(req, SysRoleRequest.class);
|
sysRoleService.grantMenuAndButton(sysRoleRequest);
|
return new SuccessResponseData<>();
|
}
|
|
@ApiOperation("获取角色分配菜单界面,绑定情况列表")
|
@PostResource(name = "获取角色分配菜单界面,绑定情况列表", path = "/sysMenu/roleBindMenuList")
|
public ResponseData<List<MenuAndButtonTreeResponse>> roleBindMenuList(@RequestBody SysRoleBindMenuButtonRequest req) {
|
List<MenuAndButtonTreeResponse> treeResponseList = menuServiceApi.getRoleBindMenuListV2(req.getRoleIdList());
|
return new SuccessResponseData<>(treeResponseList);
|
}
|
|
@ApiOperation("获取角色分配操作权限,绑定情况列表")
|
@PostResource(name = "获取角色分配操作权限,绑定情况列表", path = "/sysMenu/roleBindOperateList")
|
public ResponseData<List<MenuAndButtonTreeResponse>> roleBindOperateList(@RequestBody SysRoleBindMenuButtonRequest req) {
|
List<MenuAndButtonTreeResponse> treeResponseList = menuServiceApi.getRoleBindOperateListV2(req.getRoleIdList());
|
return new SuccessResponseData<>(treeResponseList);
|
}
|
|
}
|