feat(REQ-2545): 增加根据featureResourceId查询featureCode的接口
This commit is contained in:
parent
6c50de8e93
commit
686c638dd5
@ -15,6 +15,7 @@ import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 功能资源API接口
|
||||
@ -59,4 +60,8 @@ public interface FeatureResourceApi {
|
||||
/** 从基准环境查询功能资源树 **/
|
||||
@PostMapping("/api/featureResource/getBaseTree")
|
||||
ApiResult<List<FeatureResourceTreeNode>> getBaseTree(@RequestBody @Valid GetFeatureResourceTreeReq req);
|
||||
|
||||
/** 通过featureResourceIds查询对应的featureCode **/
|
||||
@PostMapping("/api/featureResource/listFeatureCodeByFeatureResourceIds")
|
||||
ApiResult<Map<Long, String>> listFeatureCodeByFeatureResourceIds(@RequestParam List<Long> featureResourceIds);
|
||||
}
|
||||
|
||||
@ -15,6 +15,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 功能资源接口实现
|
||||
@ -85,4 +86,9 @@ public class FeatureResourceController implements FeatureResourceApi {
|
||||
public ApiResult<List<FeatureResourceTreeNode>> getBaseTree(GetFeatureResourceTreeReq req) {
|
||||
return ApiResult.ok(featureResourceSyncService.getBaseTree(req));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiResult<Map<Long, String>> listFeatureCodeByFeatureResourceIds(List<Long> featureResourceIds) {
|
||||
return ApiResult.ok(featureResourceSyncService.listFeatureCodeByFeatureResourceIds(featureResourceIds));
|
||||
}
|
||||
}
|
||||
|
||||
@ -5,6 +5,7 @@ import cn.axzo.tyr.client.model.req.ResourceSyncReq;
|
||||
import cn.axzo.tyr.client.model.res.FeatureResourceTreeNode;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 功能资源同步服务
|
||||
@ -20,4 +21,6 @@ public interface FeatureResourceSyncService {
|
||||
void syncFromBase(ResourceSyncReq req);
|
||||
|
||||
List<FeatureResourceTreeNode> getBaseTree(GetFeatureResourceTreeReq req);
|
||||
|
||||
Map<Long, String> listFeatureCodeByFeatureResourceIds(List<Long> featureResourceIds);
|
||||
}
|
||||
|
||||
@ -9,18 +9,13 @@ import cn.axzo.tyr.client.model.req.GetFeatureResourceTreeReq;
|
||||
import cn.axzo.tyr.client.model.req.ResourceSyncReq;
|
||||
import cn.axzo.tyr.client.model.res.FeatureResourceTreeNode;
|
||||
import cn.axzo.tyr.server.inner.feign.BaseFeatureResourceApi;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasFeatureResourceDao;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasPgroupPermissionRelationDao;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasPgroupRoleRelationDao;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasRoleDao;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasFeatureResource;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPgroupPermissionRelation;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPgroupRoleRelation;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasRole;
|
||||
import cn.axzo.tyr.server.repository.dao.*;
|
||||
import cn.axzo.tyr.server.repository.entity.*;
|
||||
import cn.axzo.tyr.server.service.FeatureResourceSyncService;
|
||||
import cn.axzo.tyr.server.util.RpcInternalUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.Maps;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
@ -33,6 +28,7 @@ import java.util.*;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@ -59,6 +55,8 @@ public class FeatureResourceSyncServiceImpl implements FeatureResourceSyncServic
|
||||
|
||||
private final SaasPgroupPermissionRelationDao saasPgroupPermissionRelationDao;
|
||||
|
||||
private final SaasPageElementFeatureResourceRelationDao saasPageElementFeatureResourceRelationDao;
|
||||
|
||||
@Qualifier("asyncExecutor")
|
||||
@Autowired
|
||||
private ExecutorService asyncExecutor;
|
||||
@ -128,6 +126,30 @@ public class FeatureResourceSyncServiceImpl implements FeatureResourceSyncServic
|
||||
"get resource tree from base env", req).getData();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<Long, String> listFeatureCodeByFeatureResourceIds(List<Long> featureResourceIds) {
|
||||
if (CollectionUtils.isEmpty(featureResourceIds)) {
|
||||
return Maps.newHashMap();
|
||||
}
|
||||
List<SaasFeatureResource> resources = featureResourceDao.lambdaQuery()
|
||||
.in(SaasFeatureResource::getId, featureResourceIds)
|
||||
.list();
|
||||
if (CollectionUtils.isEmpty(resources)) {
|
||||
return Maps.newHashMap();
|
||||
}
|
||||
Map<String, SaasPageElementFeatureResourceRelation> relationMap = saasPageElementFeatureResourceRelationDao.listByUniCodeAndTerminal(resources.stream().map(SaasFeatureResource::getUniCode).distinct().collect(Collectors.toList()),
|
||||
resources.get(0).getTerminal(), null).stream().collect(Collectors.toMap(SaasPageElementFeatureResourceRelation::getFeatureResourceUniCode, Function.identity(), (v1, v2) -> v1));
|
||||
|
||||
Map<Long, String> featureResourceIdCodeMap = Maps.newHashMap();
|
||||
resources.forEach(e -> {
|
||||
SaasPageElementFeatureResourceRelation relation = relationMap.get(e.getUniCode());
|
||||
if (Objects.nonNull(relation)) {
|
||||
featureResourceIdCodeMap.put(e.getId(), relation.getPageElementCode());
|
||||
}
|
||||
});
|
||||
return featureResourceIdCodeMap;
|
||||
}
|
||||
|
||||
private void syncResourceProcess(List<FeatureResourceTreeNode> syncList, Map<Long, String> codeCache, Long operatorId) {
|
||||
|
||||
for (FeatureResourceTreeNode treeNode : syncList) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user