feat: (feature/REQ-3167) 修改端的生成方式

This commit is contained in:
李龙 2024-12-02 16:10:14 +08:00
parent 8d975bd0ed
commit c1901a8e5e
3 changed files with 42 additions and 1 deletions

View File

@ -1,8 +1,12 @@
package cn.axzo.tyr.server.service;
import cn.axzo.framework.auth.domain.TerminalInfo;
import cn.axzo.tyr.client.model.req.GetTerminalInfoReq;
import cn.axzo.tyr.client.model.res.TerminalConfigRes;
public interface TerminalService {
TerminalConfigRes getConfig();
TerminalInfo getTerminalInfo(GetTerminalInfoReq param);
}

View File

@ -11,6 +11,7 @@ import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
import cn.axzo.thrones.client.saas.ServicePkgClient;
import cn.axzo.thrones.client.saas.entity.serivicepgkproduct.ServicePkgProduct;
import cn.axzo.thrones.client.saas.entity.servicepkg.ServicePkgDetailRes;
import cn.axzo.tyr.client.TerminalClient;
import cn.axzo.tyr.client.common.enums.FeatureResourceStatus;
import cn.axzo.tyr.client.common.enums.FeatureResourceType;
import cn.axzo.tyr.client.common.enums.RoleTypeEnum;
@ -19,6 +20,7 @@ import cn.axzo.tyr.client.model.base.WorkspaceOUPair;
import cn.axzo.tyr.client.model.enums.IdentityType;
import cn.axzo.tyr.client.model.enums.RolePermissionTagEnum;
import cn.axzo.tyr.client.model.product.ProductFeatureRelationVO;
import cn.axzo.tyr.client.model.req.GetTerminalInfoReq;
import cn.axzo.tyr.client.model.req.IdentityAuthReq;
import cn.axzo.tyr.client.model.req.ListPermissionFeatureReq;
import cn.axzo.tyr.client.model.req.NavTreeReq;
@ -55,6 +57,7 @@ import cn.axzo.tyr.server.service.RoleSaasFeatureResourceCacheService;
import cn.axzo.tyr.server.service.RoleService;
import cn.axzo.tyr.server.service.SaasFeatureResourceService;
import cn.axzo.tyr.server.service.SaasRoleUserRelationService;
import cn.axzo.tyr.server.service.TerminalService;
import cn.axzo.tyr.server.service.TyrSaasAuthService;
import cn.axzo.tyr.server.service.WorkspaceProductService;
import cn.axzo.tyr.server.utils.RpcInternalUtil;
@ -111,6 +114,7 @@ public class PermissionQueryServiceImpl implements PermissionQueryService {
private final WorkspaceProductService workspaceProductService;
private final RoleSaasFeatureResourceCacheService roleSaasFeatureResourceCacheService;
private final PermissionTagService permissionTagService;
private final TerminalService terminalService;
@Value("${not.auth.uniCodes:}")
private Set<String> notAuthUniCodes;
@ -174,7 +178,10 @@ public class PermissionQueryServiceImpl implements PermissionQueryService {
return false;
}
TerminalInfo tm = new TerminalInfo(terminal);
GetTerminalInfoReq getTerminalInfoReq = GetTerminalInfoReq.builder()
.terminalCode(terminal)
.build();
TerminalInfo tm = terminalService.getTerminalInfo(getTerminalInfoReq);
return tm.isGA();
}

View File

@ -1,17 +1,25 @@
package cn.axzo.tyr.server.service.impl;
import cn.axzo.framework.auth.domain.TerminalInfo;
import cn.axzo.framework.jackson.utility.JSON;
import cn.axzo.nanopart.api.ConfigApi;
import cn.axzo.nanopart.api.constant.enums.BizTypeEnum;
import cn.axzo.nanopart.api.response.ConfigResp;
import cn.axzo.tyr.client.model.req.GetTerminalInfoReq;
import cn.axzo.tyr.client.model.res.TerminalConfigRes;
import cn.axzo.tyr.server.controller.terminal.TerminalController;
import cn.axzo.tyr.server.service.TerminalService;
import cn.axzo.tyr.server.util.RpcInternalUtil;
import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Objects;
import java.util.Optional;
import java.util.concurrent.TimeUnit;
@Slf4j
@Service
@ -19,6 +27,8 @@ public class TerminalServiceImpl implements TerminalService {
@Autowired
private ConfigApi configApi;
@Autowired
private TerminalController terminalController;
private static final String TERMINAL_CONFIG = "terminal.config";
@ -36,4 +46,24 @@ public class TerminalServiceImpl implements TerminalService {
return JSON.parseObject(configByBizCode.getContent(), TerminalConfigRes.class);
}
private LoadingCache<String, Optional<TerminalInfo>> terminalInfoCache = CacheBuilder.newBuilder()
.expireAfterWrite(10, TimeUnit.MINUTES)
.maximumSize(100)
.build(new CacheLoader<String, Optional<TerminalInfo>>() {
@Override
public Optional<TerminalInfo> load(String terminalCode) {
GetTerminalInfoReq getTerminalInfoReq = GetTerminalInfoReq.builder()
.terminalCode(terminalCode)
.build();
return Optional.ofNullable(terminalController.getTerminalInfo(getTerminalInfoReq).getData());
}
});
@Override
public TerminalInfo getTerminalInfo(GetTerminalInfoReq param) {
return terminalInfoCache.getUnchecked(param.getTerminalCode())
.orElseGet(() -> new TerminalInfo(param.getTerminalCode()));
}
}