105 lines
3.6 KiB
Java
105 lines
3.6 KiB
Java
package com.tiesheng.role.controller;
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.tiesheng.role.pojos.dao.CoreRoleAuthority;
|
|
import com.tiesheng.role.pojos.dao.CoreRoleServer;
|
|
import com.tiesheng.role.pojos.dto.OwnerMenuDTO;
|
|
import com.tiesheng.role.pojos.dto.OwnerPointDTO;
|
|
import com.tiesheng.role.pojos.vo.ServiceMenuVO;
|
|
import com.tiesheng.role.service.CoreRoleService;
|
|
import com.tiesheng.util.pojos.ApiResp;
|
|
import com.tiesheng.util.pojos.TokenBean;
|
|
import org.springframework.web.bind.annotation.GetMapping;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.validation.Valid;
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
import java.util.Objects;
|
|
import java.util.stream.Collectors;
|
|
|
|
@RestController
|
|
@RequestMapping("/comm/role")
|
|
public class CommRoleController {
|
|
|
|
@Resource
|
|
CoreRoleService coreRoleService;
|
|
|
|
|
|
/**
|
|
* 获取自己拥有的服务
|
|
*
|
|
* @return
|
|
*/
|
|
@GetMapping("/owner/server")
|
|
public ApiResp<List<CoreRoleServer>> ownerServer(TokenBean tokenBean) {
|
|
List<CoreRoleAuthority> allOwnerMenus = coreRoleService.getOwnerAuthorityLeafList(tokenBean.getId(), tokenBean.getRoleId());
|
|
List<String> list = allOwnerMenus.stream().map(CoreRoleAuthority::getService).collect(Collectors.toList());
|
|
|
|
List<CoreRoleServer> roleServerList = new ArrayList<>();
|
|
if (CollUtil.isNotEmpty(list)) {
|
|
roleServerList = coreRoleService.getServerMapper().selectList(new QueryWrapper<CoreRoleServer>()
|
|
.in("id", list)
|
|
.eq(CoreRoleServer.IS_DELETED, 0)
|
|
.eq("is_open", 1)
|
|
);
|
|
}
|
|
|
|
return ApiResp.respOK(roleServerList);
|
|
}
|
|
|
|
|
|
/**
|
|
* 获取自己拥有的菜单
|
|
*
|
|
* @return
|
|
*/
|
|
@GetMapping("/owner/menu")
|
|
public ApiResp<List<ServiceMenuVO>> ownerMenu(@Valid OwnerMenuDTO dto, TokenBean tokenBean) {
|
|
List<ServiceMenuVO> ownerMenus = coreRoleService.getOwnerMenus(tokenBean.getId(), tokenBean.getRoleId(), dto);
|
|
return ApiResp.respOK(ownerMenus);
|
|
}
|
|
|
|
/**
|
|
* 获取自己拥有的功能点
|
|
*
|
|
* @return
|
|
*/
|
|
@GetMapping("/owner/point")
|
|
public ApiResp<List<CoreRoleAuthority>> ownerPoint(@Valid OwnerPointDTO dto, TokenBean tokenBean) {
|
|
|
|
List<CoreRoleAuthority> allOwnerMenus = coreRoleService.getOwnerAuthorityLeafList(tokenBean.getId(), tokenBean.getRoleId());
|
|
|
|
String parentId;
|
|
if (StrUtil.isNotEmpty(dto.getParentNo())) {
|
|
CoreRoleAuthority selected = coreRoleService.getAuthorityMapper().selectOne(new QueryWrapper<CoreRoleAuthority>()
|
|
.eq("no", dto.getParentNo())
|
|
.eq("is_deleted", 0)
|
|
.last("limit 1")
|
|
);
|
|
parentId = selected == null ? "" : selected.getId();
|
|
} else {
|
|
parentId = "";
|
|
}
|
|
|
|
List<CoreRoleAuthority> collect = allOwnerMenus.stream()
|
|
.filter(it -> Objects.equals(it.getType(), "point"))
|
|
.filter(it -> it.getService().equals(dto.getService()))
|
|
.filter(it -> it.getPlatform().equals(dto.getPlatform()))
|
|
.filter(it -> {
|
|
if (StrUtil.isNotEmpty(parentId)) {
|
|
return parentId.equals(it.getParent());
|
|
}
|
|
return true;
|
|
}).collect(Collectors.toList());
|
|
|
|
return ApiResp.respOK(collect);
|
|
}
|
|
|
|
|
|
}
|