返回类型变更

This commit is contained in:
yangsong 2023-09-12 16:42:43 +08:00
parent 57d5ab56a4
commit 38dd3d3f79
3 changed files with 69 additions and 5 deletions

View File

@ -1,16 +1,15 @@
package cn.axzo.tyr.server.controller.role;
import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum;
import cn.axzo.framework.domain.web.result.ApiPageResult;
import cn.axzo.framework.domain.web.result.ApiResult;
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
import cn.axzo.tyr.client.feign.SaasPermissionGroupApi;
import cn.axzo.tyr.client.model.req.QuerySaasPermissionGroupReq;
import cn.axzo.tyr.client.model.vo.SaasPermissionGroupVO;
import cn.axzo.tyr.server.repository.service.SaasPermissionGroupDao;
import cn.axzo.tyr.server.repository.service.SaasPermissionGroupScopeDao;
import cn.axzo.tyr.server.repository.service.SaasPgroupPermissionRelationDao;
import cn.axzo.tyr.server.service.PermissionGroupService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.transaction.annotation.Transactional;
@ -18,7 +17,6 @@ import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@Slf4j
@RestController
@RequiredArgsConstructor
@ -27,6 +25,7 @@ public class SaasPermissionGroupController implements SaasPermissionGroupApi {
private final SaasPermissionGroupDao permissionGroupDao;
private final SaasPgroupPermissionRelationDao pgroupPermissionRelationDao;
private final SaasPermissionGroupScopeDao permissionGroupScopeDao;
private final PermissionGroupService permissionGroupService;
@Override
public ApiResult<Void> saveOrUpdate(SaasPermissionGroupVO req) {
@ -40,7 +39,7 @@ public class SaasPermissionGroupController implements SaasPermissionGroupApi {
@Override
public ApiPageResult<SaasPermissionGroupVO> query(QuerySaasPermissionGroupReq req) {
return null;
return ApiPageResult.ok(permissionGroupService.page(req));
}
@Transactional

View File

@ -1,5 +1,6 @@
package cn.axzo.tyr.server.service;
import cn.axzo.framework.domain.page.PageResp;
import cn.axzo.tyr.client.model.req.QuerySaasPermissionGroupReq;
import cn.axzo.tyr.client.model.vo.SaasPermissionGroupVO;
@ -19,6 +20,6 @@ public interface PermissionGroupService {
*/
public List<SaasPermissionGroupVO> query(QuerySaasPermissionGroupReq req);
PageResp<SaasPermissionGroupVO> page(QuerySaasPermissionGroupReq req);
}

View File

@ -1,6 +1,7 @@
package cn.axzo.tyr.server.service.impl;
import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum;
import cn.axzo.framework.domain.page.PageResp;
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
import cn.axzo.tyr.client.model.permission.PermissionPointTreeNode;
import cn.axzo.tyr.client.model.req.QuerySaasPermissionGroupReq;
@ -13,6 +14,7 @@ import cn.axzo.tyr.server.repository.service.SaasPgroupPermissionRelationDao;
import cn.axzo.tyr.server.repository.service.SaasPgroupRoleRelationDao;
import cn.axzo.tyr.server.service.PermissionGroupService;
import cn.axzo.tyr.server.service.PermissionPointService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
@ -97,4 +99,66 @@ public class PermissionGroupImpl implements PermissionGroupService {
).collect(Collectors.toList());
}
@Override
public PageResp<SaasPermissionGroupVO> page(QuerySaasPermissionGroupReq req) {
// 如果角色id不为空则先查询角色权限集关联表
IPage<SaasPermissionGroup> iPage = req.toPage();
if (CollectionUtils.isNotEmpty(req.getRoleIds())) {
List<SaasPgroupRoleRelation> relationList = roleRelationDao.lambdaQuery()
.in(SaasPgroupRoleRelation::getRoleId, req.getRoleIds())
.eq(BaseEntity::getIsDelete, TableIsDeleteEnum.NORMAL.value)
.list();
List<Long> hitIds = relationList.stream().map(SaasPgroupRoleRelation::getGroupId).distinct().collect(Collectors.toList());
if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(req.getIds())) {
req.getIds().retainAll(hitIds);
} else {
req.setIds(hitIds);
}
// 如果没查询到关联关系则直接返回
if (CollectionUtils.isEmpty(relationList)) {
return PageResp.zero(iPage.getCurrent(), iPage.getSize());
}
}
// 查询权限集
iPage = permissionGroupDao.lambdaQuery()
.in(CollectionUtils.isNotEmpty(req.getIds()), BaseEntity::getId, req.getIds())
.eq(req.getIsCommon() != null, SaasPermissionGroup::getIsCommon, req.getIsCommon())
.eq(req.getCreateBy() != null, SaasPermissionGroup::getCreateBy, req.getCreateBy())
.eq(req.getUpdateBy() != null, SaasPermissionGroup::getUpdateBy, req.getUpdateBy())
.eq(StringUtils.isNotBlank(req.getType()), SaasPermissionGroup::getType, req.getType())
.like(StringUtils.isNotBlank(req.getName()), SaasPermissionGroup::getName, req.getName())
.eq(BaseEntity::getIsDelete, TableIsDeleteEnum.NORMAL.value)
.orderByDesc(BaseEntity::getId)
.page(iPage);
List<SaasPermissionGroup> groupList = iPage.getRecords();
// 如果权限集为空则直接返回
if (CollectionUtils.isEmpty(groupList)) {
return PageResp.zero(iPage.getCurrent(), iPage.getSize());
}
// 查询权限集关联的权限
List<SaasPgroupPermissionRelation> permissionList = permissionRelationDao.lambdaQuery()
.in(SaasPgroupPermissionRelation::getGroupId, groupList.stream().map(BaseEntity::getId).collect(Collectors.toList()))
.eq(BaseEntity::getIsDelete, TableIsDeleteEnum.NORMAL.value)
.list();
List<PermissionPointTreeNode> feature = null;
if (CollectionUtils.isNotEmpty(permissionList)) {
// 查询featureCode
feature = featureService.listNodesByIds(permissionList.stream().map(SaasPgroupPermissionRelation::getFeatureId).collect(Collectors.toList()));
}
// 组装填充字段
List<PermissionPointTreeNode> finalFeature = feature;
List<SaasPermissionGroupVO> pageList = groupList.stream().map(group ->
SaasPermissionGroupVO.builder()
.id(group.getId())
.name(group.getName())
.feature(finalFeature)
.createBy(group.getCreateBy())
.updateBy(group.getUpdateBy())
.type(group.getType())
.build()
).collect(Collectors.toList());
return PageResp.list(iPage.getCurrent(), iPage.getSize(), iPage.getTotal(), pageList);
}
}