123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196 |
- package com.dragoninfo.dcuc.authweb.restcontroller.auth;
- import com.dragoninfo.dcuc.auth.auth.dto.AppFunTreeDTO;
- import com.dragoninfo.dcuc.auth.auth.entity.AppFunInfo;
- import com.dragoninfo.dcuc.auth.auth.vo.AppFunInfoVo;
- import com.dragoninfo.dcuc.auth.auth.vo.TreeInfoVO;
- import com.dragoninfo.dcuc.auth.auth.vo.appfun.RespAppFunTreeVo;
- import com.dragoninfo.dcuc.auth.power.facade.IAppFunInfoFacade;
- import com.dragoninfo.dcuc.authweb.restcontroller.auth.vo.AppFunTreeVo;
- import com.dragoninfo.duceap.core.response.Result;
- import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
- import com.dragonsoft.duceap.base.entity.search.SearchDTO;
- import com.dragonsoft.duceap.base.enums.BooleanEnum;
- import com.dragonsoft.duceap.commons.util.collections.CollectionUtils;
- import com.dragonsoft.duceap.commons.util.tree.SimpleTreeNodeItemResolver;
- import com.dragonsoft.duceap.commons.util.tree.TreeNodeUtils;
- import com.dragonsoft.duceap.core.search.Searchable;
- import com.dragonsoft.duceap.web.annotation.Permission;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiImplicitParam;
- import io.swagger.annotations.ApiImplicitParams;
- import io.swagger.annotations.ApiOperation;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.BeanUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.data.domain.Page;
- import org.springframework.validation.annotation.Validated;
- import org.springframework.web.bind.annotation.*;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Map;
- import java.util.stream.Collectors;
- /**
- * 菜单功能信息
- *
- * @author Administrator
- */
- @Api(tags = {"授权模块-菜单管理接口"})
- @Permission(value = "power_config")
- @RestController
- @RequestMapping(value = "authsvr/v2/appfuninfo")
- public class AppFunInfoController {
- public static Logger logger = LoggerFactory.getLogger(AppFunInfoController.class);
- @Autowired
- private IAppFunInfoFacade iAppFunInfoFacade;
- /**
- * 获取所有菜单信息列表
- *
- * @return
- */
- @ApiOperation(value = "获取所有菜单信息列表")
- @ApiImplicitParam(name = "appId", value = "应用id")
- @GetMapping(value = "/menuTreeList")
- public Result<List<Map<String, Object>>> getMenuTreeList(@RequestParam(value = "appId") String appId) {
- List<TreeInfoVO> funList = iAppFunInfoFacade.getAllTreeList(appId, null);
- List<Map<String, Object>> maps = TreeNodeUtils.generateTree(funList, new SimpleTreeNodeItemResolver("code", "pid"));
- for (Map<String, Object> map : maps) {
- List children = (List) map.get("children");
- if (CollectionUtils.isNotEmpty(children)) {
- map.put("isParent", true);
- }
- }
- return Result.success(maps);
- }
- @ApiOperation(value = "根据id获取应用的菜单")
- @ApiImplicitParams({@ApiImplicitParam(paramType = "path", name = "id", value = "菜单ID", required = true
- , example = "40288a8b699fc2500169a33b20540000")})
- @GetMapping(value = "/menuCode/{id}")
- public Result<List<AppFunInfoVo>> getMenuCode(@PathVariable("id") String codeId) {
- List<AppFunInfo> resultList = iAppFunInfoFacade.getCode(codeId);
- List<AppFunInfoVo> vos = new ArrayList<>();
- for (AppFunInfo source : resultList) {
- AppFunInfoVo vo = new AppFunInfoVo();
- BeanUtils.copyProperties(source, vo);
- vos.add(vo);
- }
- return Result.success(vos);
- }
- /**
- * 获取菜单、功能初始化
- *
- * @param
- * @return
- */
- @ApiOperation(value = "根据id获取应用的菜单")
- @ApiImplicitParam(name = "appId", value = "应用id")
- @GetMapping(value = "/menu/{appId}")
- public Result<List<Map<String, Object>>> getMenu(@PathVariable("appId") String appId) {
- //获取该应用的所有节点
- List<TreeInfoVO> appAllTreeList = iAppFunInfoFacade.getAllTreeList(appId, BooleanEnum.TRUE.value);
- List<Map<String, Object>> maps = TreeNodeUtils.generateTree(appAllTreeList, new SimpleTreeNodeItemResolver("code", "pid"));
- for (Map<String, Object> map : maps) {
- List children = (List) map.get("children");
- if (CollectionUtils.isNotEmpty(children)) {
- map.put("isParent", true);
- }
- }
- return Result.success(maps);
- }
- @ApiOperation(value = "查询功能资源列表")
- @ApiImplicitParam(name = "searchable", value = "查询条件(name:功能名称,like;isActive:在用状态(0:停用 1:启用),=;)")
- @PostMapping(value = "/search")
- public Result<List<AppFunInfoVo>> appFunInfoPage(Searchable searchable) {
- SearchDTO searchDTO = searchable.toSearchDTO();
- Page<AppFunInfoVo> page = iAppFunInfoFacade.appFunInfoPage(searchDTO);
- return Result.success(page.getTotalElements(), page.getContent());
- }
- @ApiOperation(value = "查询功能详情")
- @ApiImplicitParam(name = "id", value = "id")
- @GetMapping(value = "/{id}")
- public Result<AppFunInfoVo> toDetail(@PathVariable("id") String id) {
- //查询查询功能详情
- AppFunInfoVo appFunInfoVo = iAppFunInfoFacade.getById(id);
- return Result.success(appFunInfoVo);
- }
- @ApiOperation(value = "功能资源新增")
- @ApiImplicitParam(name = "功能资源新增", value = "功能资源新增")
- @PostMapping(value = "/save")
- public Result saveAppFunInfo(@Validated @RequestBody AppFunInfoVo appFunInfoVo) {
- AppFunInfo appFunInfo = new AppFunInfo();
- BeanUtils.copyProperties(appFunInfoVo, appFunInfo);
- ResponseStatus responseStatus = iAppFunInfoFacade.save(appFunInfo);
- if (!responseStatus.getStatusCode().equals(ResponseStatus.SUCCESS_CODE)){
- return Result.fail(responseStatus.getStatusCode(), responseStatus.getMessage());
- }
- return Result.success();
- }
- @ApiOperation(value = "功能资源修改")
- @ApiImplicitParam(name = "功能资源修改", value = "功能资源修改")
- @PutMapping(value = "/update")
- public Result updateAppFunInfo(@Validated @RequestBody AppFunInfoVo appFunInfoVo) {
- ResponseStatus responseStatus = iAppFunInfoFacade.updateAppFunInfo(appFunInfoVo);
- if (!responseStatus.getStatusCode().equals(ResponseStatus.SUCCESS_CODE)){
- return Result.fail(responseStatus.getStatusCode(), responseStatus.getMessage());
- }
- return Result.success();
- }
- @ApiOperation(value = "功能资源删除")
- @ApiImplicitParam(name = "功能资源删除", value = "功能资源删除")
- @DeleteMapping(value = "/{id}")
- public Result deleteAppFunInfo(@PathVariable("id") String id) {
- ResponseStatus responseStatus = iAppFunInfoFacade.deleteById(id);
- if (!responseStatus.getStatusCode().equals(ResponseStatus.SUCCESS_CODE)){
- return Result.fail(responseStatus.getStatusCode(), responseStatus.getMessage());
- }
- return Result.success();
- }
- @ApiOperation(value = "全量应用功能树")
- @ApiImplicitParam(name = "exclude", value = "exclude 是否需要排除已经通过角色授权的菜单,true 需要排除, 非必填,不选时默认为false")
- @GetMapping(value = "/allMenuTree")
- public Result allMenuTree(@RequestParam(value = "exclude", required = false) Boolean exclude) {
- if(null == exclude) {
- exclude = false;
- }
- List<AppFunTreeDTO> treeDTOS = iAppFunInfoFacade.allMenuTree(exclude);
- List<AppFunTreeVo> list = treeDTOS.stream().map(item -> {
- AppFunTreeVo treeVo = new AppFunTreeVo();
- BeanUtils.copyProperties(item, treeVo);
- return treeVo;
- }).collect(Collectors.toList());
- return Result.success(list);
- }
- /**
- * 查看角色关联的菜单树
- */
- @ApiOperation(value = "角色关联的菜单树")
- @ApiImplicitParam(name = "roleId", value = "角色id")
- @GetMapping(value = "/menuTree")
- public Result<List<RespAppFunTreeVo>> getRoleMenuTree(@RequestParam("roleId") String roleId) {
- List<RespAppFunTreeVo> treeVos = iAppFunInfoFacade.getRoleMenuTree(roleId);
- return Result.success(treeVos);
- }
- }
|