feat(REQ-2046): 新增通过appItemId查询featureId的接口
This commit is contained in:
parent
c3211f3916
commit
3dbfb14078
@ -7,6 +7,10 @@ import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author honghao.zhang
|
||||
@ -17,4 +21,13 @@ public interface TyrSaasFeatureApi {
|
||||
|
||||
@PostMapping("/api/saasFeature/permission/codes")
|
||||
ApiResult<FeaturePermissionRes> listPermissionCodes(@RequestBody @Validated FeaturePermissionReq req);
|
||||
|
||||
/**
|
||||
* 通过 {@code appItemId} 获取 {@code featureId}
|
||||
*
|
||||
* @param appItemIds 应用子级条目id集合
|
||||
* @return {@code featureId} 列表
|
||||
*/
|
||||
@PostMapping("/api/saasFeature/featureId/list")
|
||||
ApiResult<List<Long>> listAppFeatureIds(@RequestParam("appItemIds") Collection<Long> appItemIds);
|
||||
}
|
||||
|
||||
@ -9,6 +9,9 @@ import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author honghao.zhang
|
||||
* @since 2023/10/18 18:30
|
||||
@ -24,4 +27,9 @@ public class TyrSaasFeatureController implements TyrSaasFeatureApi {
|
||||
public ApiResult<FeaturePermissionRes> listPermissionCodes(FeaturePermissionReq req) {
|
||||
return ApiResult.ok(saasFeatureService.listPermissionCodes(req));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiResult<List<Long>> listAppFeatureIds(Collection<Long> appItemIds) {
|
||||
return ApiResult.ok(saasFeatureService.listAppFeatureIds(appItemIds));
|
||||
}
|
||||
}
|
||||
|
||||
@ -3,6 +3,9 @@ package cn.axzo.tyr.server.service;
|
||||
import cn.axzo.tyr.client.model.req.FeaturePermissionReq;
|
||||
import cn.axzo.tyr.client.model.res.FeaturePermissionRes;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author honghao.zhang
|
||||
* @since 2023/10/18 18:25
|
||||
@ -10,4 +13,12 @@ import cn.axzo.tyr.client.model.res.FeaturePermissionRes;
|
||||
public interface SaasFeatureService {
|
||||
|
||||
FeaturePermissionRes listPermissionCodes(FeaturePermissionReq req);
|
||||
|
||||
/**
|
||||
* 通过 {@code appItemId} 获取 {@code featureId}
|
||||
*
|
||||
* @param appItemIds 应用子级条目id集合
|
||||
* @return {@code featureId} 列表
|
||||
*/
|
||||
List<Long> listAppFeatureIds(Collection<Long> appItemIds);
|
||||
}
|
||||
|
||||
@ -1,21 +1,28 @@
|
||||
package cn.axzo.tyr.server.service.impl;
|
||||
|
||||
import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum;
|
||||
import cn.axzo.tyr.client.model.enums.IdentityType;
|
||||
import cn.axzo.tyr.client.model.req.FeaturePermissionReq;
|
||||
import cn.axzo.tyr.client.model.req.IdentityAuthReq;
|
||||
import cn.axzo.tyr.client.model.res.FeaturePermissionRes;
|
||||
import cn.axzo.tyr.client.model.res.IdentityAuthRes;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasFeatureDao;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasFeature;
|
||||
import cn.axzo.tyr.server.service.SaasFeatureService;
|
||||
import cn.axzo.tyr.server.service.TyrSaasAuthService;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import com.google.common.collect.Lists;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.function.Predicate;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@ -27,6 +34,7 @@ import java.util.stream.Collectors;
|
||||
@RequiredArgsConstructor
|
||||
public class SaasFeatureServiceImpl implements SaasFeatureService {
|
||||
|
||||
private final SaasFeatureDao saasFeatureDao;
|
||||
private final TyrSaasAuthService tyrSaasAuthService;
|
||||
|
||||
@Override
|
||||
@ -58,4 +66,28 @@ public class SaasFeatureServiceImpl implements SaasFeatureService {
|
||||
return featurePermissionRes;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Long> listAppFeatureIds(Collection<Long> appItemIds) {
|
||||
if (CollectionUtils.isEmpty(appItemIds)) {
|
||||
log.info("appItemIds is empty.");
|
||||
return Collections.emptyList();
|
||||
}
|
||||
List<SaasFeature> saasFeatures = saasFeatureDao.lambdaQuery()
|
||||
.in(SaasFeature::getLinkType, Lists.newArrayList(LINK_TYPE_UNIAPP, LINK_TYPE_NATIVE))
|
||||
.in(SaasFeature::getIsDelete, TableIsDeleteEnum.NORMAL.value)
|
||||
.list();
|
||||
return saasFeatures.stream()
|
||||
.filter(UNI_APP_ITEM_ID_FILTER)
|
||||
.filter(e -> appItemIds.contains(Long.parseLong(e.getMicroAppItemId())))
|
||||
.map(SaasFeature::getId)
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
// 小程序
|
||||
private static final Integer LINK_TYPE_UNIAPP = 2;
|
||||
// 原生
|
||||
private static final Integer LINK_TYPE_NATIVE = 4;
|
||||
|
||||
private static final Predicate<SaasFeature> UNI_APP_ITEM_ID_FILTER = e ->
|
||||
StringUtils.hasText(e.getMicroAppItemId()) && NumberUtil.isNumber(e.getMicroAppItemId().trim());
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user