From 22ed35e3a3b6fdd4f17e51b63d6f8fb34745f014 Mon Sep 17 00:00:00 2001 From: icanci Date: Sat, 19 Nov 2022 10:21:46 +0800 Subject: [PATCH 1/2] WebApiService --- .../mapper/{ => config}/BaseDataMapper.java | 2 +- .../biz/mapper/{ => config}/BaseMapper.java | 2 +- .../mapper/{ => config}/DataSourceMapper.java | 2 +- .../biz/mapper/{ => config}/DomainMapper.java | 2 +- .../mapper/{ => config}/LogOperateMapper.java | 2 +- .../mapper/{ => config}/MetadataMapper.java | 2 +- .../biz/mapper/{ => config}/SceneMapper.java | 2 +- .../mapper/{ => config}/StrategyMapper.java | 6 +- .../biz/mapper/dto/BaseDataDtoMapper.java | 19 ++++ .../admin/biz/mapper/dto/BaseDtoMapper.java | 15 +++ .../biz/mapper/dto/DataSourceDtoMapper.java | 26 ++++++ .../admin/biz/mapper/dto/DomainDtoMapper.java | 15 +++ .../biz/mapper/dto/MetadataDtoMapper.java | 16 ++++ .../admin/biz/mapper/dto/SceneDtoMapper.java | 18 ++++ .../biz/mapper/dto/StrategyDtoMapper.java | 26 ++++++ .../rec/admin/biz/service/WebApiService.java | 16 ++++ .../biz/service/impl/BaseDataServiceImpl.java | 2 +- .../service/impl/DataSourceServiceImpl.java | 2 +- .../biz/service/impl/DomainServiceImpl.java | 2 +- .../service/impl/LogOperateServiceImpl.java | 2 +- .../biz/service/impl/MetadataServiceImpl.java | 2 +- .../biz/service/impl/SceneServiceImpl.java | 2 +- .../biz/service/impl/StrategyServiceImpl.java | 2 +- .../biz/service/impl/WebApiServiceImpl.java | 92 +++++++++++++++++++ .../dal/mongodb/daointerface/BaseDataDAO.java | 4 + .../mongodb/daointerface/DataSourceDAO.java | 4 + .../dal/mongodb/daointerface/MetadataDAO.java | 4 + .../dal/mongodb/daointerface/StrategyDAO.java | 4 + .../dal/mongodb/mongo/MongoBaseDataDAO.java | 16 +++- .../dal/mongodb/mongo/MongoDataSourceDAO.java | 7 ++ .../dal/mongodb/mongo/MongoMetadataDAO.java | 8 ++ .../dal/mongodb/mongo/MongoStrategyDAO.java | 8 ++ 32 files changed, 311 insertions(+), 21 deletions(-) rename rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/{ => config}/BaseDataMapper.java (94%) rename rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/{ => config}/BaseMapper.java (85%) rename rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/{ => config}/DataSourceMapper.java (96%) rename rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/{ => config}/DomainMapper.java (90%) rename rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/{ => config}/LogOperateMapper.java (92%) rename rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/{ => config}/MetadataMapper.java (92%) rename rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/{ => config}/SceneMapper.java (92%) rename rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/{ => config}/StrategyMapper.java (87%) create mode 100644 rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/dto/BaseDataDtoMapper.java create mode 100644 rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/dto/BaseDtoMapper.java create mode 100644 rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/dto/DataSourceDtoMapper.java create mode 100644 rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/dto/DomainDtoMapper.java create mode 100644 rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/dto/MetadataDtoMapper.java create mode 100644 rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/dto/SceneDtoMapper.java create mode 100644 rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/dto/StrategyDtoMapper.java diff --git a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/BaseDataMapper.java b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/config/BaseDataMapper.java similarity index 94% rename from rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/BaseDataMapper.java rename to rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/config/BaseDataMapper.java index be0d74f..63e9cad 100644 --- a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/BaseDataMapper.java +++ b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/config/BaseDataMapper.java @@ -1,4 +1,4 @@ -package cn.icanci.rec.admin.biz.mapper; +package cn.icanci.rec.admin.biz.mapper.config; import cn.icanci.rec.admin.biz.mapper.convertor.DataTypeEnumConverter; import cn.icanci.rec.admin.biz.mapper.convertor.ResultTypeEnumConverter; diff --git a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/BaseMapper.java b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/config/BaseMapper.java similarity index 85% rename from rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/BaseMapper.java rename to rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/config/BaseMapper.java index 0f255dd..ee0030e 100644 --- a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/BaseMapper.java +++ b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/config/BaseMapper.java @@ -1,4 +1,4 @@ -package cn.icanci.rec.admin.biz.mapper; +package cn.icanci.rec.admin.biz.mapper.config; import java.util.Collection; import java.util.List; diff --git a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/DataSourceMapper.java b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/config/DataSourceMapper.java similarity index 96% rename from rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/DataSourceMapper.java rename to rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/config/DataSourceMapper.java index a293526..f991443 100644 --- a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/DataSourceMapper.java +++ b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/config/DataSourceMapper.java @@ -1,4 +1,4 @@ -package cn.icanci.rec.admin.biz.mapper; +package cn.icanci.rec.admin.biz.mapper.config; import cn.icanci.rec.admin.biz.mapper.convertor.DataSourceTypeEnumConverter; import cn.icanci.rec.admin.biz.mapper.convertor.HttpRequestTypeEnumConverter; diff --git a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/DomainMapper.java b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/config/DomainMapper.java similarity index 90% rename from rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/DomainMapper.java rename to rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/config/DomainMapper.java index e72e954..c91c404 100644 --- a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/DomainMapper.java +++ b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/config/DomainMapper.java @@ -1,4 +1,4 @@ -package cn.icanci.rec.admin.biz.mapper; +package cn.icanci.rec.admin.biz.mapper.config; import cn.icanci.rec.admin.dal.mongodb.dateobject.DomainDO; import cn.icanci.rec.common.model.config.DomainVO; diff --git a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/LogOperateMapper.java b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/config/LogOperateMapper.java similarity index 92% rename from rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/LogOperateMapper.java rename to rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/config/LogOperateMapper.java index 4d846aa..522c012 100644 --- a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/LogOperateMapper.java +++ b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/config/LogOperateMapper.java @@ -1,4 +1,4 @@ -package cn.icanci.rec.admin.biz.mapper; +package cn.icanci.rec.admin.biz.mapper.config; import cn.icanci.rec.admin.biz.mapper.convertor.ModuleTypeEnumConverter; import cn.icanci.rec.admin.dal.mongodb.dateobject.LogOperateDO; diff --git a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/MetadataMapper.java b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/config/MetadataMapper.java similarity index 92% rename from rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/MetadataMapper.java rename to rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/config/MetadataMapper.java index 7151404..da6f4fb 100644 --- a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/MetadataMapper.java +++ b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/config/MetadataMapper.java @@ -1,4 +1,4 @@ -package cn.icanci.rec.admin.biz.mapper; +package cn.icanci.rec.admin.biz.mapper.config; import cn.icanci.rec.admin.dal.mongodb.dateobject.MetadataDO; import cn.icanci.rec.common.model.config.MetadataVO; diff --git a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/SceneMapper.java b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/config/SceneMapper.java similarity index 92% rename from rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/SceneMapper.java rename to rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/config/SceneMapper.java index fc7c306..6e66665 100644 --- a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/SceneMapper.java +++ b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/config/SceneMapper.java @@ -1,4 +1,4 @@ -package cn.icanci.rec.admin.biz.mapper; +package cn.icanci.rec.admin.biz.mapper.config; import cn.icanci.rec.admin.dal.mongodb.dateobject.SceneDO; import cn.icanci.rec.common.model.config.SceneVO; diff --git a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/StrategyMapper.java b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/config/StrategyMapper.java similarity index 87% rename from rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/StrategyMapper.java rename to rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/config/StrategyMapper.java index 8566238..f574dcc 100644 --- a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/StrategyMapper.java +++ b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/config/StrategyMapper.java @@ -1,4 +1,4 @@ -package cn.icanci.rec.admin.biz.mapper; +package cn.icanci.rec.admin.biz.mapper.config; import cn.icanci.rec.admin.biz.mapper.convertor.*; import cn.icanci.rec.admin.dal.mongodb.dateobject.StrategyDO; @@ -14,11 +14,11 @@ import org.mapstruct.NullValueMappingStrategy; @Mapper(componentModel = "spring", uses = { DataSourceTypeEnumConverter.class, RuleTypeEnumConverter.class, OperatorEnumConverter.class, InterruptEnumConverter.class, ResultTypeEnumConverter.class, RuleModeEnumConverter.class }, nullValueMappingStrategy = NullValueMappingStrategy.RETURN_NULL) public interface StrategyMapper extends BaseMapper { - StrategyVO.RuleListInfo do2vo(StrategyVO.RuleListInfo ruleListInfo); + StrategyVO.RuleListInfo do2vo(StrategyDO.RuleListInfo ruleListInfo); StrategyDO.RuleListInfo vo2do(StrategyVO.RuleListInfo ruleListInfo); - StrategyVO.RuleTreeInfo do2vo(StrategyVO.RuleTreeInfo ruleTreeInfo); + StrategyVO.RuleTreeInfo do2vo(StrategyDO.RuleTreeInfo ruleTreeInfo); StrategyDO.RuleTreeInfo vo2do(StrategyVO.RuleTreeInfo ruleTreeInfo); diff --git a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/dto/BaseDataDtoMapper.java b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/dto/BaseDataDtoMapper.java new file mode 100644 index 0000000..0c84906 --- /dev/null +++ b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/dto/BaseDataDtoMapper.java @@ -0,0 +1,19 @@ +package cn.icanci.rec.admin.biz.mapper.dto; + +import cn.icanci.rec.admin.biz.mapper.convertor.DataTypeEnumConverter; +import cn.icanci.rec.admin.biz.mapper.convertor.ResultTypeEnumConverter; +import cn.icanci.rec.admin.biz.mapper.convertor.ScriptTypeEnumConverter; +import cn.icanci.rec.admin.dal.mongodb.dateobject.BaseDataDO; +import cn.icanci.rec.common.aggregation.model.BaseDataDTO; + +import org.mapstruct.Mapper; +import org.mapstruct.NullValueMappingStrategy; + +/** + * @author icanci + * @since 1.0 Created in 2022/11/18 08:19 + */ +@Mapper(componentModel = "spring", uses = { DataTypeEnumConverter.class, ScriptTypeEnumConverter.class, + ResultTypeEnumConverter.class }, nullValueMappingStrategy = NullValueMappingStrategy.RETURN_NULL) +public interface BaseDataDtoMapper extends BaseDtoMapper { +} diff --git a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/dto/BaseDtoMapper.java b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/dto/BaseDtoMapper.java new file mode 100644 index 0000000..e434ee2 --- /dev/null +++ b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/dto/BaseDtoMapper.java @@ -0,0 +1,15 @@ +package cn.icanci.rec.admin.biz.mapper.dto; + +import java.util.Collection; +import java.util.List; + +/** + * @author icanci + * @since 1.0 Created in 2022/11/18 08:19 + */ +public interface BaseDtoMapper { + + R do2dto(T t); + + List dos2dtos(Collection ts); +} diff --git a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/dto/DataSourceDtoMapper.java b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/dto/DataSourceDtoMapper.java new file mode 100644 index 0000000..520087c --- /dev/null +++ b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/dto/DataSourceDtoMapper.java @@ -0,0 +1,26 @@ +package cn.icanci.rec.admin.biz.mapper.dto; + +import cn.icanci.rec.admin.biz.mapper.convertor.DataSourceTypeEnumConverter; +import cn.icanci.rec.admin.biz.mapper.convertor.HttpRequestTypeEnumConverter; +import cn.icanci.rec.admin.biz.mapper.convertor.ScriptTypeEnumConverter; +import cn.icanci.rec.admin.dal.mongodb.dateobject.DataSourceDO; +import cn.icanci.rec.common.aggregation.model.DataSourceDTO; + +import org.mapstruct.Mapper; +import org.mapstruct.NullValueMappingStrategy; + +/** + * @author icanci + * @since 1.0 Created in 2022/11/18 08:19 + */ +@Mapper(componentModel = "spring", uses = { DataSourceTypeEnumConverter.class, ScriptTypeEnumConverter.class, + HttpRequestTypeEnumConverter.class }, nullValueMappingStrategy = NullValueMappingStrategy.RETURN_NULL) +public interface DataSourceDtoMapper extends BaseDtoMapper { + + DataSourceDTO.ScriptInfo do2dto(DataSourceDO.ScriptInfo scriptInfo); + + DataSourceDTO.HttpInfo do2dto(DataSourceDO.HttpInfo httpInfo); + + DataSourceDTO.SqlInfo do2dto(DataSourceDO.SqlInfo sqlInfo); + +} diff --git a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/dto/DomainDtoMapper.java b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/dto/DomainDtoMapper.java new file mode 100644 index 0000000..af33144 --- /dev/null +++ b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/dto/DomainDtoMapper.java @@ -0,0 +1,15 @@ +package cn.icanci.rec.admin.biz.mapper.dto; + +import cn.icanci.rec.admin.dal.mongodb.dateobject.DomainDO; +import cn.icanci.rec.common.aggregation.model.DomainDTO; + +import org.mapstruct.Mapper; +import org.mapstruct.NullValueMappingStrategy; + +/** + * @author icanci + * @since 1.0 Created in 2022/11/18 08:19 + */ +@Mapper(componentModel = "spring", nullValueMappingStrategy = NullValueMappingStrategy.RETURN_NULL) +public interface DomainDtoMapper extends BaseDtoMapper { +} diff --git a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/dto/MetadataDtoMapper.java b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/dto/MetadataDtoMapper.java new file mode 100644 index 0000000..9e4b9ff --- /dev/null +++ b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/dto/MetadataDtoMapper.java @@ -0,0 +1,16 @@ +package cn.icanci.rec.admin.biz.mapper.dto; + +import cn.icanci.rec.admin.dal.mongodb.dateobject.MetadataDO; +import cn.icanci.rec.common.aggregation.model.MetadataDTO; + +import org.mapstruct.Mapper; +import org.mapstruct.NullValueMappingStrategy; + +/** + * @author icanci + * @since 1.0 Created in 2022/11/18 08:19 + */ +@Mapper(componentModel = "spring", nullValueMappingStrategy = NullValueMappingStrategy.RETURN_NULL) +public interface MetadataDtoMapper extends BaseDtoMapper { + MetadataDTO.MetadataPair do2dto(MetadataDO.MetadataPair metadataPair); +} diff --git a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/dto/SceneDtoMapper.java b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/dto/SceneDtoMapper.java new file mode 100644 index 0000000..53ad5bb --- /dev/null +++ b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/dto/SceneDtoMapper.java @@ -0,0 +1,18 @@ +package cn.icanci.rec.admin.biz.mapper.dto; + +import cn.icanci.rec.admin.dal.mongodb.dateobject.SceneDO; +import cn.icanci.rec.common.aggregation.model.SceneDTO; + +import org.mapstruct.Mapper; +import org.mapstruct.NullValueMappingStrategy; + +/** + * @author icanci + * @since 1.0 Created in 2022/11/18 08:19 + */ +@Mapper(componentModel = "spring", nullValueMappingStrategy = NullValueMappingStrategy.RETURN_NULL) +public interface SceneDtoMapper extends BaseDtoMapper { + + SceneDTO.ScenePair do2dto(SceneDO.ScenePair scenePair); + +} diff --git a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/dto/StrategyDtoMapper.java b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/dto/StrategyDtoMapper.java new file mode 100644 index 0000000..d4ba5e2 --- /dev/null +++ b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/mapper/dto/StrategyDtoMapper.java @@ -0,0 +1,26 @@ +package cn.icanci.rec.admin.biz.mapper.dto; + +import cn.icanci.rec.admin.biz.mapper.convertor.*; +import cn.icanci.rec.admin.dal.mongodb.dateobject.StrategyDO; +import cn.icanci.rec.common.aggregation.model.StrategyDTO; + +import org.mapstruct.Mapper; +import org.mapstruct.NullValueMappingStrategy; + +/** + * @author icanci + * @since 1.0 Created in 2022/11/18 08:19 + */ +@Mapper(componentModel = "spring", uses = { DataSourceTypeEnumConverter.class, RuleTypeEnumConverter.class, OperatorEnumConverter.class, InterruptEnumConverter.class, + ResultTypeEnumConverter.class, RuleModeEnumConverter.class }, nullValueMappingStrategy = NullValueMappingStrategy.RETURN_NULL) +public interface StrategyDtoMapper extends BaseDtoMapper { + + StrategyDTO.RuleListInfo do2dto(StrategyDO.RuleListInfo ruleListInfo); + + StrategyDTO.RuleTreeInfo do2dto(StrategyDO.RuleTreeInfo ruleTreeInfo); + + StrategyDTO.Condition do2dto(StrategyDO.Condition condition); + + StrategyDTO.SingleCondition do2dto(StrategyDO.SingleCondition singleCondition); + +} diff --git a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/WebApiService.java b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/WebApiService.java index 06382d8..36b5320 100644 --- a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/WebApiService.java +++ b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/WebApiService.java @@ -1,8 +1,24 @@ package cn.icanci.rec.admin.biz.service; +import cn.icanci.rec.common.aggregation.model.*; + +import java.util.List; +import java.util.Set; + /** * @author icanci * @since 1.0 Created in 2022/11/18 22:49 */ public interface WebApiService { + List loadDomainByDomains(Set domainCodes); + + List loadSceneByDomains(Set domainCodes); + + List loadMetadataByDomains(Set domainCodes); + + List loadBaseDataByDomains(Set domainCodes); + + List loadDataSourceByDomains(Set domainCodes); + + List loadStrategyByDomains(Set domainCodes); } diff --git a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/BaseDataServiceImpl.java b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/BaseDataServiceImpl.java index 168794c..1838e92 100644 --- a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/BaseDataServiceImpl.java +++ b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/BaseDataServiceImpl.java @@ -1,7 +1,7 @@ package cn.icanci.rec.admin.biz.service.impl; import cn.icanci.rec.admin.biz.event.log.LogEvent; -import cn.icanci.rec.admin.biz.mapper.BaseDataMapper; +import cn.icanci.rec.admin.biz.mapper.config.BaseDataMapper; import cn.icanci.rec.admin.biz.model.BaseDataDebugResult; import cn.icanci.rec.admin.biz.service.BaseDataService; import cn.icanci.rec.admin.dal.mongodb.common.PageList; diff --git a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/DataSourceServiceImpl.java b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/DataSourceServiceImpl.java index 0584b7b..d83fb71 100644 --- a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/DataSourceServiceImpl.java +++ b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/DataSourceServiceImpl.java @@ -1,7 +1,7 @@ package cn.icanci.rec.admin.biz.service.impl; import cn.icanci.rec.admin.biz.event.log.LogEvent; -import cn.icanci.rec.admin.biz.mapper.DataSourceMapper; +import cn.icanci.rec.admin.biz.mapper.config.DataSourceMapper; import cn.icanci.rec.admin.biz.model.DataSourceDebugResult; import cn.icanci.rec.admin.biz.service.DataSourceService; import cn.icanci.rec.admin.dal.mongodb.common.PageList; diff --git a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/DomainServiceImpl.java b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/DomainServiceImpl.java index 76cd821..fd5688c 100644 --- a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/DomainServiceImpl.java +++ b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/DomainServiceImpl.java @@ -1,7 +1,7 @@ package cn.icanci.rec.admin.biz.service.impl; import cn.icanci.rec.admin.biz.event.log.LogEvent; -import cn.icanci.rec.admin.biz.mapper.DomainMapper; +import cn.icanci.rec.admin.biz.mapper.config.DomainMapper; import cn.icanci.rec.admin.biz.service.DomainService; import cn.icanci.rec.admin.dal.mongodb.common.PageList; import cn.icanci.rec.admin.dal.mongodb.daointerface.DomainDAO; diff --git a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/LogOperateServiceImpl.java b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/LogOperateServiceImpl.java index be34911..89c6332 100644 --- a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/LogOperateServiceImpl.java +++ b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/LogOperateServiceImpl.java @@ -1,6 +1,6 @@ package cn.icanci.rec.admin.biz.service.impl; -import cn.icanci.rec.admin.biz.mapper.LogOperateMapper; +import cn.icanci.rec.admin.biz.mapper.config.LogOperateMapper; import cn.icanci.rec.admin.biz.service.LogOperateService; import cn.icanci.rec.admin.dal.mongodb.common.PageList; import cn.icanci.rec.admin.dal.mongodb.daointerface.LogOperateDAO; diff --git a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/MetadataServiceImpl.java b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/MetadataServiceImpl.java index 55d0962..cc980f2 100644 --- a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/MetadataServiceImpl.java +++ b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/MetadataServiceImpl.java @@ -1,7 +1,7 @@ package cn.icanci.rec.admin.biz.service.impl; import cn.icanci.rec.admin.biz.event.log.LogEvent; -import cn.icanci.rec.admin.biz.mapper.MetadataMapper; +import cn.icanci.rec.admin.biz.mapper.config.MetadataMapper; import cn.icanci.rec.admin.biz.service.MetadataService; import cn.icanci.rec.admin.dal.mongodb.common.PageList; import cn.icanci.rec.admin.dal.mongodb.daointerface.MetadataDAO; diff --git a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/SceneServiceImpl.java b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/SceneServiceImpl.java index b2e00a2..df6ef55 100644 --- a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/SceneServiceImpl.java +++ b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/SceneServiceImpl.java @@ -1,6 +1,6 @@ package cn.icanci.rec.admin.biz.service.impl; -import cn.icanci.rec.admin.biz.mapper.SceneMapper; +import cn.icanci.rec.admin.biz.mapper.config.SceneMapper; import cn.icanci.rec.admin.biz.service.SceneService; import cn.icanci.rec.admin.dal.mongodb.common.PageList; import cn.icanci.rec.admin.dal.mongodb.daointerface.SceneDAO; diff --git a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/StrategyServiceImpl.java b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/StrategyServiceImpl.java index 3362f8e..50778cd 100644 --- a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/StrategyServiceImpl.java +++ b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/StrategyServiceImpl.java @@ -1,7 +1,7 @@ package cn.icanci.rec.admin.biz.service.impl; import cn.icanci.rec.admin.biz.event.log.LogEvent; -import cn.icanci.rec.admin.biz.mapper.StrategyMapper; +import cn.icanci.rec.admin.biz.mapper.config.StrategyMapper; import cn.icanci.rec.admin.biz.model.StrategyDebugResult; import cn.icanci.rec.admin.biz.service.StrategyService; import cn.icanci.rec.admin.dal.mongodb.common.PageList; diff --git a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/WebApiServiceImpl.java b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/WebApiServiceImpl.java index 9242a63..55565ea 100644 --- a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/WebApiServiceImpl.java +++ b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/WebApiServiceImpl.java @@ -1,13 +1,105 @@ package cn.icanci.rec.admin.biz.service.impl; +import cn.icanci.rec.admin.biz.mapper.dto.*; import cn.icanci.rec.admin.biz.service.WebApiService; +import cn.icanci.rec.admin.dal.mongodb.daointerface.*; +import cn.icanci.rec.common.aggregation.model.*; + +import java.util.List; +import java.util.Set; + +import javax.annotation.Resource; import org.springframework.stereotype.Service; +import com.google.common.collect.Lists; + /** * @author icanci * @since 1.0 Created in 2022/11/18 22:49 */ @Service public class WebApiServiceImpl implements WebApiService { + // =========================== DAO =========================== + @Resource + private DomainDAO domainDAO; + @Resource + private SceneDAO sceneDAO; + @Resource + private MetadataDAO metadataDAO; + @Resource + private BaseDataDAO baseDataDAO; + @Resource + private DataSourceDAO dataSourceDAO; + @Resource + private StrategyDAO strategyDAO; + // =========================== DTO mapper =========================== + @Resource + private DomainDtoMapper domainDtoMapper; + @Resource + private SceneDtoMapper sceneDtoMapper; + @Resource + private MetadataDtoMapper metadataDtoMapper; + @Resource + private BaseDataDtoMapper baseDataDtoMapper; + @Resource + private DataSourceDtoMapper dataSourceDtoMapper; + @Resource + private StrategyDtoMapper strategyDtoMapper; + + // =========================== Load Method =========================== + + @Override + public List loadDomainByDomains(Set domainCodes) { + List domains = Lists.newArrayList(); + for (String domainCode : domainCodes) { + domains.add(domainDtoMapper.do2dto(domainDAO.queryByDomainCode(domainCode))); + } + return domains; + } + + @Override + public List loadSceneByDomains(Set domainCodes) { + List scenes = Lists.newArrayList(); + for (String domainCode : domainCodes) { + scenes.add(sceneDtoMapper.do2dto(sceneDAO.queryByDomainCode(domainCode))); + } + return scenes; + } + + @Override + public List loadMetadataByDomains(Set domainCodes) { + List metadatas = Lists.newArrayList(); + for (String domainCode : domainCodes) { + metadatas.addAll(metadataDtoMapper.dos2dtos(metadataDAO.queryByDomainCode(domainCode))); + } + return metadatas; + } + + @Override + public List loadBaseDataByDomains(Set domainCodes) { + List baseDatas = Lists.newArrayList(); + for (String domainCode : domainCodes) { + baseDatas.addAll(baseDataDtoMapper.dos2dtos(baseDataDAO.queryByDomainCode(domainCode))); + } + return baseDatas; + } + + @Override + public List loadDataSourceByDomains(Set domainCodes) { + List dataSources = Lists.newArrayList(); + for (String domainCode : domainCodes) { + dataSources.addAll(dataSourceDtoMapper.dos2dtos(dataSourceDAO.queryByDomainCode(domainCode))); + } + return dataSources; + } + + @Override + public List loadStrategyByDomains(Set domainCodes) { + List strategies = Lists.newArrayList(); + for (String domainCode : domainCodes) { + strategies.addAll(strategyDtoMapper.dos2dtos(strategyDAO.queryByDomainCode(domainCode))); + } + return strategies; + } } diff --git a/rec-admin/rec-admin-dal/src/main/java/cn/icanci/rec/admin/dal/mongodb/daointerface/BaseDataDAO.java b/rec-admin/rec-admin-dal/src/main/java/cn/icanci/rec/admin/dal/mongodb/daointerface/BaseDataDAO.java index 9c91140..e8064a5 100644 --- a/rec-admin/rec-admin-dal/src/main/java/cn/icanci/rec/admin/dal/mongodb/daointerface/BaseDataDAO.java +++ b/rec-admin/rec-admin-dal/src/main/java/cn/icanci/rec/admin/dal/mongodb/daointerface/BaseDataDAO.java @@ -1,5 +1,7 @@ package cn.icanci.rec.admin.dal.mongodb.daointerface; +import java.util.List; + import cn.icanci.rec.admin.dal.mongodb.dateobject.BaseDataDO; /** @@ -18,6 +20,8 @@ public interface BaseDataDAO extends BaseDAO { BaseDataDO queryByFieldNameAndDomainCode(String fieldName, String domainCode); + List queryByDomainCode(String domainCode); + interface BaseDataColumn extends BaseColumn { /** * 域Code diff --git a/rec-admin/rec-admin-dal/src/main/java/cn/icanci/rec/admin/dal/mongodb/daointerface/DataSourceDAO.java b/rec-admin/rec-admin-dal/src/main/java/cn/icanci/rec/admin/dal/mongodb/daointerface/DataSourceDAO.java index b1bbd83..e0b87ec 100644 --- a/rec-admin/rec-admin-dal/src/main/java/cn/icanci/rec/admin/dal/mongodb/daointerface/DataSourceDAO.java +++ b/rec-admin/rec-admin-dal/src/main/java/cn/icanci/rec/admin/dal/mongodb/daointerface/DataSourceDAO.java @@ -2,6 +2,8 @@ package cn.icanci.rec.admin.dal.mongodb.daointerface; import cn.icanci.rec.admin.dal.mongodb.dateobject.DataSourceDO; +import java.util.List; + /** * @author icanci * @since 1.0 Created in 2022/11/11 14:04 @@ -18,6 +20,8 @@ public interface DataSourceDAO extends BaseDAO { DataSourceDO queryByDataSourceName(String domainCode, String dataSourceName); + List queryByDomainCode(String domainCode); + interface DataSourceColumn extends BaseColumn { /** * 数据源名称 diff --git a/rec-admin/rec-admin-dal/src/main/java/cn/icanci/rec/admin/dal/mongodb/daointerface/MetadataDAO.java b/rec-admin/rec-admin-dal/src/main/java/cn/icanci/rec/admin/dal/mongodb/daointerface/MetadataDAO.java index 5c8c2e6..e6166fa 100644 --- a/rec-admin/rec-admin-dal/src/main/java/cn/icanci/rec/admin/dal/mongodb/daointerface/MetadataDAO.java +++ b/rec-admin/rec-admin-dal/src/main/java/cn/icanci/rec/admin/dal/mongodb/daointerface/MetadataDAO.java @@ -2,6 +2,8 @@ package cn.icanci.rec.admin.dal.mongodb.daointerface; import cn.icanci.rec.admin.dal.mongodb.dateobject.MetadataDO; +import java.util.List; + /** * @author icanci * @since 1.0 Created in 2022/11/11 14:06 @@ -18,6 +20,8 @@ public interface MetadataDAO extends BaseDAO { MetadataDO queryByMetadataName(String metadataName, String domainCode); + List queryByDomainCode(String domainCode); + interface MetadataColumn extends BaseColumn { /** * 域Code diff --git a/rec-admin/rec-admin-dal/src/main/java/cn/icanci/rec/admin/dal/mongodb/daointerface/StrategyDAO.java b/rec-admin/rec-admin-dal/src/main/java/cn/icanci/rec/admin/dal/mongodb/daointerface/StrategyDAO.java index d8e2653..7bf5995 100644 --- a/rec-admin/rec-admin-dal/src/main/java/cn/icanci/rec/admin/dal/mongodb/daointerface/StrategyDAO.java +++ b/rec-admin/rec-admin-dal/src/main/java/cn/icanci/rec/admin/dal/mongodb/daointerface/StrategyDAO.java @@ -2,6 +2,8 @@ package cn.icanci.rec.admin.dal.mongodb.daointerface; import cn.icanci.rec.admin.dal.mongodb.dateobject.StrategyDO; +import java.util.List; + /** * 策略 * @@ -20,6 +22,8 @@ public interface StrategyDAO extends BaseDAO { StrategyDO queryByStrategyName(String domainCode, String strategyName); + List queryByDomainCode(String domainCode); + interface StrategyColumn extends BaseColumn { /** * 域Code diff --git a/rec-admin/rec-admin-dal/src/main/java/cn/icanci/rec/admin/dal/mongodb/mongo/MongoBaseDataDAO.java b/rec-admin/rec-admin-dal/src/main/java/cn/icanci/rec/admin/dal/mongodb/mongo/MongoBaseDataDAO.java index 6997d9e..ba41358 100644 --- a/rec-admin/rec-admin-dal/src/main/java/cn/icanci/rec/admin/dal/mongodb/mongo/MongoBaseDataDAO.java +++ b/rec-admin/rec-admin-dal/src/main/java/cn/icanci/rec/admin/dal/mongodb/mongo/MongoBaseDataDAO.java @@ -1,9 +1,5 @@ package cn.icanci.rec.admin.dal.mongodb.mongo; -import cn.icanci.rec.admin.dal.mongodb.common.PageList; -import cn.icanci.rec.admin.dal.mongodb.daointerface.BaseDataDAO; -import cn.icanci.rec.admin.dal.mongodb.dateobject.BaseDataDO; - import java.util.List; import org.apache.commons.lang3.StringUtils; @@ -12,6 +8,10 @@ import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.stereotype.Service; +import cn.icanci.rec.admin.dal.mongodb.common.PageList; +import cn.icanci.rec.admin.dal.mongodb.daointerface.BaseDataDAO; +import cn.icanci.rec.admin.dal.mongodb.dateobject.BaseDataDO; + /** * @author icanci * @since 1.0 Created in 2022/11/11 14:59 @@ -73,4 +73,12 @@ public class MongoBaseDataDAO extends AbstractBaseDAO implements Bas return mongoTemplate.findOne(query, COLLECTION_CLASS, COLLECTION_NAME); } + @Override + public List queryByDomainCode(String domainCode) { + Criteria criteria = Criteria.where(BaseDataColumn.domainCode).is(domainCode); + criteria.and(BaseDataColumn.env).is(DEFAULT_ENV); + Query query = new Query(criteria); + return mongoTemplate.find(query, COLLECTION_CLASS, COLLECTION_NAME); + } + } diff --git a/rec-admin/rec-admin-dal/src/main/java/cn/icanci/rec/admin/dal/mongodb/mongo/MongoDataSourceDAO.java b/rec-admin/rec-admin-dal/src/main/java/cn/icanci/rec/admin/dal/mongodb/mongo/MongoDataSourceDAO.java index 1b52e90..84d823c 100644 --- a/rec-admin/rec-admin-dal/src/main/java/cn/icanci/rec/admin/dal/mongodb/mongo/MongoDataSourceDAO.java +++ b/rec-admin/rec-admin-dal/src/main/java/cn/icanci/rec/admin/dal/mongodb/mongo/MongoDataSourceDAO.java @@ -72,4 +72,11 @@ public class MongoDataSourceDAO extends AbstractBaseDAO implements Query query = new Query(criteria); return mongoTemplate.findOne(query, COLLECTION_CLASS, COLLECTION_NAME); } + + @Override public List queryByDomainCode(String domainCode) { + Criteria criteria = Criteria.where(DataSourceColumn.domainCode).is(domainCode); + criteria.and(DataSourceColumn.env).is(DEFAULT_ENV); + Query query = new Query(criteria); + return mongoTemplate.find(query, COLLECTION_CLASS, COLLECTION_NAME); + } } diff --git a/rec-admin/rec-admin-dal/src/main/java/cn/icanci/rec/admin/dal/mongodb/mongo/MongoMetadataDAO.java b/rec-admin/rec-admin-dal/src/main/java/cn/icanci/rec/admin/dal/mongodb/mongo/MongoMetadataDAO.java index a971ca2..2ce0360 100644 --- a/rec-admin/rec-admin-dal/src/main/java/cn/icanci/rec/admin/dal/mongodb/mongo/MongoMetadataDAO.java +++ b/rec-admin/rec-admin-dal/src/main/java/cn/icanci/rec/admin/dal/mongodb/mongo/MongoMetadataDAO.java @@ -73,4 +73,12 @@ public class MongoMetadataDAO extends AbstractBaseDAO implements Met Query query = new Query(criteria); return mongoTemplate.findOne(query, COLLECTION_CLASS, COLLECTION_NAME); } + + @Override + public List queryByDomainCode(String domainCode) { + Criteria criteria = Criteria.where(MetadataColumn.domainCode).is(domainCode); + criteria.and(MetadataColumn.env).is(DEFAULT_ENV); + Query query = new Query(criteria); + return mongoTemplate.find(query, COLLECTION_CLASS, COLLECTION_NAME); + } } diff --git a/rec-admin/rec-admin-dal/src/main/java/cn/icanci/rec/admin/dal/mongodb/mongo/MongoStrategyDAO.java b/rec-admin/rec-admin-dal/src/main/java/cn/icanci/rec/admin/dal/mongodb/mongo/MongoStrategyDAO.java index 5b023f9..3405d9b 100644 --- a/rec-admin/rec-admin-dal/src/main/java/cn/icanci/rec/admin/dal/mongodb/mongo/MongoStrategyDAO.java +++ b/rec-admin/rec-admin-dal/src/main/java/cn/icanci/rec/admin/dal/mongodb/mongo/MongoStrategyDAO.java @@ -74,4 +74,12 @@ public class MongoStrategyDAO extends AbstractBaseDAO implements Str Query query = new Query(criteria); return mongoTemplate.findOne(query, COLLECTION_CLASS, COLLECTION_NAME); } + + @Override + public List queryByDomainCode(String domainCode) { + Criteria criteria = Criteria.where(StrategyColumn.domainCode).is(domainCode); + criteria.and(StrategyColumn.env).is(DEFAULT_ENV); + Query query = new Query(criteria); + return mongoTemplate.find(query, COLLECTION_CLASS, COLLECTION_NAME); + } } \ No newline at end of file -- Gitee From 523cab06b9b62bc7657e2dddfdcea10a9bb1e396 Mon Sep 17 00:00:00 2001 From: icanci Date: Sat, 19 Nov 2022 11:01:47 +0800 Subject: [PATCH 2/2] AdminSPI --- .../rec/admin/biz/spi/AdminBaseDataSPI.java | 6 +- .../rec/admin/biz/spi/AdminDataSourceSPI.java | 6 +- .../rec/admin/biz/spi/AdminDomainSPI.java | 9 +- .../rec/admin/biz/spi/AdminMetadataSPI.java | 6 +- .../rec/admin/biz/spi/AdminSceneSPI.java | 8 +- .../rec/admin/biz/spi/AdminStrategySPI.java | 6 +- .../admin/web/webapi/WebApiController.java | 48 +++++++--- .../rec/common/aggregation/WebApiRequest.java | 22 +++++ .../common/aggregation/WebApiResponse.java | 27 ++++++ .../repository/EngineRepositoryHolder.java | 87 +++++++++++-------- 10 files changed, 160 insertions(+), 65 deletions(-) create mode 100644 rec-common/src/main/java/cn/icanci/rec/common/aggregation/WebApiRequest.java create mode 100644 rec-common/src/main/java/cn/icanci/rec/common/aggregation/WebApiResponse.java diff --git a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/spi/AdminBaseDataSPI.java b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/spi/AdminBaseDataSPI.java index 7fb91f1..42f0893 100644 --- a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/spi/AdminBaseDataSPI.java +++ b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/spi/AdminBaseDataSPI.java @@ -6,6 +6,8 @@ import cn.icanci.rec.engine.sdk.spi.BaseDataSPI; import java.util.List; import java.util.Set; +import com.google.common.collect.Sets; + /** * @author icanci * @since 1.0 Created in 2022/11/18 19:37 @@ -14,11 +16,11 @@ public class AdminBaseDataSPI extends AbstractLoadSPI implements BaseDataSPI { @Override public List load(Set domains) { - return null; + return webApiService.loadBaseDataByDomains(domains); } @Override public List load(String domain) { - return null; + return webApiService.loadBaseDataByDomains(Sets.newHashSet(domain)); } } diff --git a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/spi/AdminDataSourceSPI.java b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/spi/AdminDataSourceSPI.java index 432c332..74dabbf 100644 --- a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/spi/AdminDataSourceSPI.java +++ b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/spi/AdminDataSourceSPI.java @@ -6,6 +6,8 @@ import cn.icanci.rec.engine.sdk.spi.DataSourceSPI; import java.util.List; import java.util.Set; +import com.google.common.collect.Sets; + /** * @author icanci * @since 1.0 Created in 2022/11/18 19:37 @@ -13,11 +15,11 @@ import java.util.Set; public class AdminDataSourceSPI extends AbstractLoadSPI implements DataSourceSPI { @Override public List load(Set domains) { - return null; + return webApiService.loadDataSourceByDomains(domains); } @Override public List load(String domain) { - return null; + return webApiService.loadDataSourceByDomains(Sets.newHashSet(domain)); } } diff --git a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/spi/AdminDomainSPI.java b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/spi/AdminDomainSPI.java index a8bd9ca..36e6be7 100644 --- a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/spi/AdminDomainSPI.java +++ b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/spi/AdminDomainSPI.java @@ -1,12 +1,13 @@ package cn.icanci.rec.admin.biz.spi; import cn.icanci.rec.common.aggregation.model.DomainDTO; -import cn.icanci.rec.engine.sdk.extensions.SpringBean; import cn.icanci.rec.engine.sdk.spi.DomainSPI; import java.util.List; import java.util.Set; +import com.google.common.collect.Sets; + /** * @author icanci * @since 1.0 Created in 2022/11/18 19:37 @@ -15,16 +16,16 @@ public class AdminDomainSPI extends AbstractLoadSPI implements DomainSPI { @Override public DomainDTO loadOne(String domain) { - return null; + return webApiService.loadDomainByDomains(Sets.newHashSet(domain)).iterator().next(); } @Override public List load(Set domains) { - return null; + return webApiService.loadDomainByDomains(domains); } @Override public List load(String domain) { - return null; + return webApiService.loadDomainByDomains(Sets.newHashSet(domain)); } } diff --git a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/spi/AdminMetadataSPI.java b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/spi/AdminMetadataSPI.java index fac2a1b..aee7c33 100644 --- a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/spi/AdminMetadataSPI.java +++ b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/spi/AdminMetadataSPI.java @@ -6,6 +6,8 @@ import cn.icanci.rec.engine.sdk.spi.MetadataSPI; import java.util.List; import java.util.Set; +import com.google.common.collect.Sets; + /** * @author icanci * @since 1.0 Created in 2022/11/18 19:37 @@ -13,11 +15,11 @@ import java.util.Set; public class AdminMetadataSPI extends AbstractLoadSPI implements MetadataSPI { @Override public List load(Set domains) { - return null; + return webApiService.loadMetadataByDomains(domains); } @Override public List load(String domain) { - return null; + return webApiService.loadMetadataByDomains(Sets.newHashSet(domain)); } } diff --git a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/spi/AdminSceneSPI.java b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/spi/AdminSceneSPI.java index a15a607..3c7f46d 100644 --- a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/spi/AdminSceneSPI.java +++ b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/spi/AdminSceneSPI.java @@ -6,6 +6,8 @@ import cn.icanci.rec.engine.sdk.spi.SceneSPI; import java.util.List; import java.util.Set; +import com.google.common.collect.Sets; + /** * @author icanci * @since 1.0 Created in 2022/11/18 19:37 @@ -13,16 +15,16 @@ import java.util.Set; public class AdminSceneSPI extends AbstractLoadSPI implements SceneSPI { @Override public List load(Set domains) { - return null; + return webApiService.loadSceneByDomains(domains); } @Override public List load(String domain) { - return null; + return webApiService.loadSceneByDomains(Sets.newHashSet(domain)); } @Override public SceneDTO loadOne(String domainCode) { - return null; + return webApiService.loadSceneByDomains(Sets.newHashSet(domainCode)).iterator().next(); } } diff --git a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/spi/AdminStrategySPI.java b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/spi/AdminStrategySPI.java index ed7fd9c..a62a2e4 100644 --- a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/spi/AdminStrategySPI.java +++ b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/spi/AdminStrategySPI.java @@ -6,6 +6,8 @@ import cn.icanci.rec.engine.sdk.spi.StrategySPI; import java.util.List; import java.util.Set; +import com.google.common.collect.Sets; + /** * @author icanci * @since 1.0 Created in 2022/11/18 19:37 @@ -13,12 +15,12 @@ import java.util.Set; public class AdminStrategySPI extends AbstractLoadSPI implements StrategySPI { @Override public List load(Set domains) { - return null; + return webApiService.loadStrategyByDomains(domains); } @Override public List load(String domain) { - return null; + return webApiService.loadStrategyByDomains(Sets.newHashSet(domain)); } } diff --git a/rec-admin/rec-admin-web/src/main/java/cn/icanci/rec/admin/web/webapi/WebApiController.java b/rec-admin/rec-admin-web/src/main/java/cn/icanci/rec/admin/web/webapi/WebApiController.java index b7cbeaf..655cb0d 100644 --- a/rec-admin/rec-admin-web/src/main/java/cn/icanci/rec/admin/web/webapi/WebApiController.java +++ b/rec-admin/rec-admin-web/src/main/java/cn/icanci/rec/admin/web/webapi/WebApiController.java @@ -1,14 +1,13 @@ package cn.icanci.rec.admin.web.webapi; -import cn.icanci.rec.common.enums.DataSourceTypeEnum; -import cn.icanci.rec.common.model.TextValue; -import cn.icanci.rec.common.result.R; +import cn.icanci.rec.admin.biz.service.WebApiService; +import cn.icanci.rec.common.aggregation.WebApiRequest; +import cn.icanci.rec.common.aggregation.WebApiResponse; +import cn.icanci.rec.common.aggregation.model.*; -import java.util.Arrays; -import java.util.List; -import java.util.stream.Collectors; +import javax.annotation.Resource; -import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -20,11 +19,36 @@ import org.springframework.web.bind.annotation.RestController; @RequestMapping("/rec/webapi") public class WebApiController { - // TODO - @GetMapping("dataSourceType") - public R dataSourceType() { - List textValues = Arrays.stream(DataSourceTypeEnum.values()).map(x -> new TextValue(x.getDesc(), x.name())).collect(Collectors.toList()); - return R.builderOk().data("textValues", textValues).build(); + @Resource + private WebApiService webApiService; + + @RequestMapping("/loadDomains") + public WebApiResponse loadDomains(@RequestBody WebApiRequest request) { + return new WebApiResponse<>(webApiService.loadDomainByDomains(request.getDomainCodes())); + } + + @RequestMapping("/loadScenes") + public WebApiResponse loadScenes(@RequestBody WebApiRequest request) { + return new WebApiResponse<>(webApiService.loadSceneByDomains(request.getDomainCodes())); + } + + @RequestMapping("/loadMetadatas") + public WebApiResponse loadMetadatas(@RequestBody WebApiRequest request) { + return new WebApiResponse<>(webApiService.loadMetadataByDomains(request.getDomainCodes())); } + @RequestMapping("/loadBaseDatas") + public WebApiResponse loadBaseDatas(@RequestBody WebApiRequest request) { + return new WebApiResponse<>(webApiService.loadBaseDataByDomains(request.getDomainCodes())); + } + + @RequestMapping("/loadDataSources") + public WebApiResponse loadDataSources(@RequestBody WebApiRequest request) { + return new WebApiResponse<>(webApiService.loadDataSourceByDomains(request.getDomainCodes())); + } + + @RequestMapping("/loadStrategies") + public WebApiResponse loadStrategies(@RequestBody WebApiRequest request) { + return new WebApiResponse<>(webApiService.loadStrategyByDomains(request.getDomainCodes())); + } } diff --git a/rec-common/src/main/java/cn/icanci/rec/common/aggregation/WebApiRequest.java b/rec-common/src/main/java/cn/icanci/rec/common/aggregation/WebApiRequest.java new file mode 100644 index 0000000..ee286da --- /dev/null +++ b/rec-common/src/main/java/cn/icanci/rec/common/aggregation/WebApiRequest.java @@ -0,0 +1,22 @@ +package cn.icanci.rec.common.aggregation; + +import java.io.Serializable; +import java.util.Set; + +/** + * @author icanci + * @since 1.0 Created in 2022/11/19 10:22 + */ +public class WebApiRequest implements Serializable { + private static final long serialVersionUID = 5046682826770853155L; + + private Set domainCodes; + + public Set getDomainCodes() { + return domainCodes; + } + + public void setDomainCodes(Set domainCodes) { + this.domainCodes = domainCodes; + } +} diff --git a/rec-common/src/main/java/cn/icanci/rec/common/aggregation/WebApiResponse.java b/rec-common/src/main/java/cn/icanci/rec/common/aggregation/WebApiResponse.java new file mode 100644 index 0000000..0d03a1f --- /dev/null +++ b/rec-common/src/main/java/cn/icanci/rec/common/aggregation/WebApiResponse.java @@ -0,0 +1,27 @@ +package cn.icanci.rec.common.aggregation; + +import java.io.Serializable; +import java.util.List; + +/** + * @author icanci + * @since 1.0 Created in 2022/11/19 10:25 + */ +public class WebApiResponse implements Serializable { + + private static final long serialVersionUID = -7238440183222443753L; + + private List ret; + + public WebApiResponse(List ret) { + this.ret = ret; + } + + public List getRet() { + return ret; + } + + public void setRet(List ret) { + this.ret = ret; + } +} diff --git a/rec-engine/rec-engine-sdk/src/main/java/cn/icanci/rec/engine/sdk/rule/repository/EngineRepositoryHolder.java b/rec-engine/rec-engine-sdk/src/main/java/cn/icanci/rec/engine/sdk/rule/repository/EngineRepositoryHolder.java index 63da349..31f265d 100644 --- a/rec-engine/rec-engine-sdk/src/main/java/cn/icanci/rec/engine/sdk/rule/repository/EngineRepositoryHolder.java +++ b/rec-engine/rec-engine-sdk/src/main/java/cn/icanci/rec/engine/sdk/rule/repository/EngineRepositoryHolder.java @@ -16,6 +16,8 @@ import javax.annotation.Resource; import javax.script.CompiledScript; import org.apache.commons.collections4.CollectionUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import com.google.common.collect.Maps; @@ -24,6 +26,7 @@ import com.google.common.collect.Maps; * @since 1.0 Created in 2022/11/16 08:38 */ public class EngineRepositoryHolder { + Logger logger = LoggerFactory.getLogger(EngineRepositoryHolder.class); @Resource private EngineRepositoryLoader engineRepositoryLoader; @Resource @@ -38,6 +41,7 @@ public class EngineRepositoryHolder { * @param domainCodes domainCodes */ public void refresh(Set domainCodes) { + if (CollectionUtils.isEmpty(domainCodes)) { return; } @@ -52,45 +56,52 @@ public class EngineRepositoryHolder { * @param domain domain */ private void refresh(String domain) { - // 1.先获取场景,如果场景都没有,则不处理 - List scenePairs = engineRepositoryLoader.loadScenePairs(domain); - if (CollectionUtils.isEmpty(scenePairs)) { - return; + try { + // 1.先获取场景,如果场景都没有,则不处理 + List scenePairs = engineRepositoryLoader.loadScenePairs(domain); + if (CollectionUtils.isEmpty(scenePairs)) { + return; + } + // 2.新建或者获取域对应的仓储 + EngineRepository repository = ENGINE_REPOSITORY_CONFIG.putIfAbsent(domain, new EngineRepository()); + + // 3.构建本地缓存 + // 3.1 构建域信息 + DomainDTO domainRepository = engineRepositoryLoader.loadDomain(domain); + + // 3.2 构建基础数据信息 + List baseDatas = engineRepositoryLoader.loadBaseDatas(domain); + // 3.2.1 编译执行脚本 + compileBaseDataScript(baseDatas); + // 3.2.2 属性仓储信息 + Map refreshBaseDatas = baseDatas.stream().collect(Collectors.toMap(BaseDTO::getUuid, baseData -> baseData)); + + // 3.3 构建元数据信息 + List metadatas = engineRepositoryLoader.loadMetadatas(domain); + Map refreshMetadatas = metadatas.stream().collect(Collectors.toMap(BaseDTO::getUuid, metadata -> metadata)); + + // 3.4 构建数据源信息 + List dataSources = engineRepositoryLoader.loadDataSource(domain); + // 3.4.1 编译执行脚本 + compileDataSourceScript(dataSources); + // 3.4.2 属性仓储信息 + Map refreshDataSources = dataSources.stream().collect(Collectors.toMap(BaseDTO::getUuid, dataSource -> dataSource)); + + // 3.5 构建策略信息 + List strategies = engineRepositoryLoader.loadStrategy(domain); + Map refreshStrategies = strategies.stream() + .collect(Collectors.toMap(x -> new DomainSceneKey(x.getDomainCode(), x.getSceneCode()), dataSource -> dataSource)); + + // 4. 全部构建成功之后,再刷新缓存 + repository.setDomainRepository(domainRepository); + repository.getBaseDataRepository().putAll(refreshBaseDatas); + repository.getMetadataRepository().putAll(refreshMetadatas); + repository.getDataSourceRepository().putAll(refreshDataSources); + repository.getStrategyRepository().putAll(refreshStrategies); + } catch (Throwable e) { + logger.error("[EngineRepositoryHolder][refresh] refresh domain:{} fail,error message:{}", domain, e.getMessage()); } - // 2.新建或者获取域对应的仓储 - EngineRepository repository = ENGINE_REPOSITORY_CONFIG.putIfAbsent(domain, new EngineRepository()); - - // 3.刷新本地缓存 - - // 3.1 刷新域信息 - repository.setDomainRepository(engineRepositoryLoader.loadDomain(domain)); - - // 3.2 刷新基础数据信息 - List baseDatas = engineRepositoryLoader.loadBaseDatas(domain); - // 3.2.1 编译执行脚本 - compileBaseDataScript(baseDatas); - // 3.2.2 属性仓储信息 - Map refreshBaseDatas = baseDatas.stream().collect(Collectors.toMap(BaseDTO::getUuid, baseData -> baseData)); - repository.getBaseDataRepository().putAll(refreshBaseDatas); - - // 3.3 刷新元数据信息 - List metadatas = engineRepositoryLoader.loadMetadatas(domain); - Map refreshMetadatas = metadatas.stream().collect(Collectors.toMap(BaseDTO::getUuid, metadata -> metadata)); - repository.getMetadataRepository().putAll(refreshMetadatas); - - // 3.4 刷新数据源信息 - List dataSources = engineRepositoryLoader.loadDataSource(domain); - // 3.4.1 编译执行脚本 - compileDataSourceScript(dataSources); - // 3.4.2 属性仓储信息 - Map refreshDataSources = dataSources.stream().collect(Collectors.toMap(BaseDTO::getUuid, dataSource -> dataSource)); - repository.getDataSourceRepository().putAll(refreshDataSources); - - // 3.5 构建策略信息 - List strategies = engineRepositoryLoader.loadStrategy(domain); - Map refreshStrategies = strategies.stream() - .collect(Collectors.toMap(x -> new DomainSceneKey(x.getDomainCode(), x.getSceneCode()), dataSource -> dataSource)); - repository.getStrategyRepository().putAll(refreshStrategies); + } /** -- Gitee