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.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
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
|
* @author honghao.zhang
|
||||||
@ -17,4 +21,13 @@ public interface TyrSaasFeatureApi {
|
|||||||
|
|
||||||
@PostMapping("/api/saasFeature/permission/codes")
|
@PostMapping("/api/saasFeature/permission/codes")
|
||||||
ApiResult<FeaturePermissionRes> listPermissionCodes(@RequestBody @Validated FeaturePermissionReq req);
|
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 lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author honghao.zhang
|
* @author honghao.zhang
|
||||||
* @since 2023/10/18 18:30
|
* @since 2023/10/18 18:30
|
||||||
@ -24,4 +27,9 @@ public class TyrSaasFeatureController implements TyrSaasFeatureApi {
|
|||||||
public ApiResult<FeaturePermissionRes> listPermissionCodes(FeaturePermissionReq req) {
|
public ApiResult<FeaturePermissionRes> listPermissionCodes(FeaturePermissionReq req) {
|
||||||
return ApiResult.ok(saasFeatureService.listPermissionCodes(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.req.FeaturePermissionReq;
|
||||||
import cn.axzo.tyr.client.model.res.FeaturePermissionRes;
|
import cn.axzo.tyr.client.model.res.FeaturePermissionRes;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author honghao.zhang
|
* @author honghao.zhang
|
||||||
* @since 2023/10/18 18:25
|
* @since 2023/10/18 18:25
|
||||||
@ -10,4 +13,12 @@ import cn.axzo.tyr.client.model.res.FeaturePermissionRes;
|
|||||||
public interface SaasFeatureService {
|
public interface SaasFeatureService {
|
||||||
|
|
||||||
FeaturePermissionRes listPermissionCodes(FeaturePermissionReq req);
|
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;
|
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.enums.IdentityType;
|
||||||
import cn.axzo.tyr.client.model.req.FeaturePermissionReq;
|
import cn.axzo.tyr.client.model.req.FeaturePermissionReq;
|
||||||
import cn.axzo.tyr.client.model.req.IdentityAuthReq;
|
import cn.axzo.tyr.client.model.req.IdentityAuthReq;
|
||||||
import cn.axzo.tyr.client.model.res.FeaturePermissionRes;
|
import cn.axzo.tyr.client.model.res.FeaturePermissionRes;
|
||||||
import cn.axzo.tyr.client.model.res.IdentityAuthRes;
|
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.SaasFeatureService;
|
||||||
import cn.axzo.tyr.server.service.TyrSaasAuthService;
|
import cn.axzo.tyr.server.service.TyrSaasAuthService;
|
||||||
import cn.hutool.core.collection.CollUtil;
|
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 com.google.common.collect.Lists;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.collections.CollectionUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.function.Predicate;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -27,6 +34,7 @@ import java.util.stream.Collectors;
|
|||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class SaasFeatureServiceImpl implements SaasFeatureService {
|
public class SaasFeatureServiceImpl implements SaasFeatureService {
|
||||||
|
|
||||||
|
private final SaasFeatureDao saasFeatureDao;
|
||||||
private final TyrSaasAuthService tyrSaasAuthService;
|
private final TyrSaasAuthService tyrSaasAuthService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -58,4 +66,28 @@ public class SaasFeatureServiceImpl implements SaasFeatureService {
|
|||||||
return featurePermissionRes;
|
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