From d593488a21ad2a592311a2877cac4714cc49ba2b Mon Sep 17 00:00:00 2001 From: sxlong Date: Tue, 29 Oct 2024 10:46:45 +0800 Subject: [PATCH] =?UTF-8?q?1.=E6=A1=86=E6=9E=B6=E4=BB=A3=E7=A0=81=E5=88=9D?= =?UTF-8?q?=E5=A7=8B=E5=8C=96=E6=8F=90=E4=BA=A4=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 + .idea/.gitignore | 0 .idea/compiler.xml | 45 + .idea/encodings.xml | 16 + .idea/inspectionProfiles/Project_Default.xml | 6 + .idea/jarRepositories.xml | 25 + ...__ch_qos_logback_logback_classic_1_2_3.xml | 13 + ...ven__ch_qos_logback_logback_core_1_2_3.xml | 13 + .../Maven__cn_hutool_hutool_all_5_8_4.xml | 13 + .../Maven__com_alibaba_druid_1_1_10.xml | 13 + ...ibaba_druid_spring_boot_starter_1_1_10.xml | 13 + .../Maven__com_alibaba_fastjson_1_2_3.xml | 13 + .../Maven__com_fasterxml_classmate_1_4_0.xml | 13 + ...ackson_core_jackson_annotations_2_9_10.xml | 13 + ...erxml_jackson_core_jackson_core_2_9_10.xml | 13 + ...jackson_core_jackson_databind_2_9_10_3.xml | 13 + ..._datatype_jackson_datatype_jdk8_2_9_10.xml | 13 + ...atatype_jackson_datatype_jsr310_2_9_10.xml | 13 + ..._jackson_module_parameter_names_2_9_10.xml | 13 + ...en__com_github_jsonzou_jmockdata_4_3_0.xml | 13 + ...__com_github_jsqlparser_jsqlparser_1_0.xml | 13 + ...com_github_pagehelper_pagehelper_5_1_2.xml | 13 + ...helper_spring_boot_autoconfigure_1_3_0.xml | 13 + ...r_pagehelper_spring_boot_starter_1_3_0.xml | 13 + ..._com_google_code_findbugs_jsr305_3_0_2.xml | 13 + ...rorprone_error_prone_annotations_2_3_4.xml | 13 + ...__com_google_guava_failureaccess_1_0_1.xml | 13 + ...Maven__com_google_guava_guava_28_2_jre.xml | 13 + ...9_0_empty_to_avoid_conflict_with_guava.xml | 13 + ...m_google_j2objc_j2objc_annotations_1_3.xml | 13 + .../Maven__com_lmax_disruptor_3_4_2.xml | 13 + .../Maven__com_zaxxer_HikariCP_3_2_0.xml | 13 + ...n__commons_logging_commons_logging_1_2.xml | 13 + ...ven__io_springfox_springfox_core_2_7_0.xml | 13 + ...n__io_springfox_springfox_schema_2_7_0.xml | 13 + ...aven__io_springfox_springfox_spi_2_7_0.xml | 13 + ...o_springfox_springfox_spring_web_2_7_0.xml | 13 + ..._io_springfox_springfox_swagger2_2_7_0.xml | 13 + ...ringfox_springfox_swagger_common_2_7_0.xml | 13 + ...o_springfox_springfox_swagger_ui_2_7_0.xml | 13 + ..._io_swagger_swagger_annotations_1_5_13.xml | 13 + ...aven__io_swagger_swagger_models_1_5_13.xml | 13 + ..._annotation_javax_annotation_api_1_3_2.xml | 13 + ..._validation_validation_api_2_0_1_Final.xml | 13 + .idea/libraries/Maven__junit_junit_4_12.xml | 13 + ...ven__mysql_mysql_connector_java_8_0_19.xml | 13 + ...Maven__net_bytebuddy_byte_buddy_1_9_16.xml | 13 + ..._org_apache_commons_commons_lang3_3_11.xml | 13 + ..._apache_logging_log4j_log4j_api_2_11_2.xml | 13 + ...apache_logging_log4j_log4j_core_2_11_2.xml | 13 + ..._apache_logging_log4j_log4j_jcl_2_11_2.xml | 13 + ..._logging_log4j_log4j_slf4j_impl_2_11_2.xml | 13 + ...he_logging_log4j_log4j_to_slf4j_2_11_2.xml | 13 + ..._tomcat_embed_tomcat_embed_core_9_0_31.xml | 13 + ...he_tomcat_embed_tomcat_embed_el_9_0_31.xml | 13 + ...at_embed_tomcat_embed_websocket_9_0_31.xml | 13 + ...Maven__org_aspectj_aspectjweaver_1_9_5.xml | 13 + ...g_checkerframework_checker_qual_2_10_0.xml | 13 + .../Maven__org_hamcrest_hamcrest_core_1_3.xml | 13 + ...dator_hibernate_validator_6_0_18_Final.xml | 13 + ...ven__org_javassist_javassist_3_21_0_GA.xml | 13 + ...boss_logging_jboss_logging_3_3_3_Final.xml | 13 + ...n__org_mapstruct_mapstruct_1_4_1_Final.xml | 13 + ...struct_mapstruct_processor_1_4_1_Final.xml | 13 + .../Maven__org_mybatis_mybatis_3_5_7.xml | 13 + ...aven__org_mybatis_mybatis_spring_1_3_2.xml | 13 + ...ybatis_spring_boot_autoconfigure_2_1_3.xml | 13 + ...boot_mybatis_spring_boot_starter_2_1_3.xml | 13 + ...aven__org_projectlombok_lombok_1_18_12.xml | 13 + ...en__org_reflections_reflections_0_9_11.xml | 13 + .../Maven__org_slf4j_jul_to_slf4j_1_7_30.xml | 13 + .../Maven__org_slf4j_slf4j_api_1_7_30.xml | 13 + ...mework_boot_spring_boot_2_1_13_RELEASE.xml | 13 + ...ring_boot_autoconfigure_2_1_13_RELEASE.xml | 13 + ...oot_spring_boot_starter_2_1_13_RELEASE.xml | 13 + ...spring_boot_starter_aop_2_1_13_RELEASE.xml | 13 + ...pring_boot_starter_jdbc_2_1_13_RELEASE.xml | 13 + ...pring_boot_starter_json_2_1_13_RELEASE.xml | 13 + ...ng_boot_starter_logging_2_1_13_RELEASE.xml | 13 + ...ing_boot_starter_tomcat_2_1_13_RELEASE.xml | 13 + ...spring_boot_starter_web_2_1_13_RELEASE.xml | 13 + ...k_boot_spring_boot_test_2_1_13_RELEASE.xml | 13 + ...lugin_spring_plugin_core_1_2_0_RELEASE.xml | 13 + ...n_spring_plugin_metadata_1_2_0_RELEASE.xml | 13 + ...ingframework_spring_aop_5_1_14_RELEASE.xml | 13 + ...gframework_spring_beans_5_1_14_RELEASE.xml | 13 + ...ramework_spring_context_5_1_14_RELEASE.xml | 13 + ...ngframework_spring_core_5_1_14_RELEASE.xml | 13 + ...ework_spring_expression_5_1_14_RELEASE.xml | 13 + ...ingframework_spring_jcl_5_1_14_RELEASE.xml | 13 + ...ingframework_spring_jdbc_5_0_3_RELEASE.xml | 13 + ...ngframework_spring_test_5_1_14_RELEASE.xml | 13 + ...pringframework_spring_tx_5_0_3_RELEASE.xml | 13 + ...ingframework_spring_web_5_1_14_RELEASE.xml | 13 + ...framework_spring_webmvc_5_1_14_RELEASE.xml | 13 + .../Maven__org_yaml_snakeyaml_1_23.xml | 13 + .idea/misc.xml | 11 + .idea/modules.xml | 17 + .idea/uiDesigner.xml | 124 ++ .idea/workspace.xml | 145 +++ README.md | 92 ++ bootstrap/bootstrap.iml | 115 ++ bootstrap/pom.xml | 167 +++ .../data/manage/bootstrap/Application.java | 31 + .../controller/IndicatorCardController.java | 79 ++ .../controller/config/WebMvcConfig.java | 30 + .../src/main/resources/application.properties | 27 + bootstrap/src/main/resources/log4j.properties | 5 + .../src/main/resources/log4j2-spring-prod.xml | 205 ++++ .../src/main/resources/log4j2-spring.xml | 217 ++++ domain/domain.iml | 60 + domain/pom.xml | 52 + .../indicator/enums/EffectFlagEnum.java | 27 + .../enums/IndicatorAnalysisEnum.java | 38 + .../indicator/enums/IndicatorAscribeEnum.java | 22 + .../enums/IndicatorCardHomeDisplayEnum.java | 25 + .../enums/IndicatorCardStatusEnum.java | 26 + .../enums/IndicatorCardTypeEnum.java | 30 + .../enums/IndicatorCardWarningFlagEnum.java | 25 + .../indicator/enums/IndicatorFieldEnum.java | 34 + .../enums/IndicatorOrgConfigStatusEnum.java | 25 + .../enums/IndicatorOrgConfigTypeEnum.java | 25 + .../indicator/enums/IndicatorOrgEnum.java | 21 + .../indicator/enums/IndicatorTypeEnum.java | 23 + .../indicator/model/Indicator.java | 86 ++ .../indicator/model/IndicatorCard.java | 88 ++ .../indicator/model/IndicatorCardDetial.java | 27 + .../indicator/model/IndicatorCardExtend.java | 113 ++ .../indicator/model/IndicatorCardPage.java | 29 + .../indicator/model/IndicatorOrgConfig.java | 74 ++ .../parames/IndicatorCardParams.java | 58 + .../parames/IndicatorOrgConfigParams.java | 43 + .../indicator/parames/IndicatorParams.java | 41 + .../repository/IndicatorCardRepository.java | 64 ++ .../service/IndicatorCardService.java | 59 + .../impl/IndicatorCardServiceImpl.java | 143 +++ .../indicator/util/IndicatorContent.java | 17 + electromagnetic-data.iml | 12 + .../electromagnetic-framework.iml | 57 + electromagnetic-framework/framework.iml | 57 + electromagnetic-framework/pom.xml | 68 ++ .../share/common/ParamsConstants.java | 53 + .../share/config/DefaultValidationTool.java | 87 ++ .../ValidationToolAutoConfiguration.java | 35 + .../constants/ElectromagneticConstants.java | 41 + .../share/enums/CommonResultCode.java | 26 + .../enums/ElectromagneticCommonErrorEnum.java | 53 + .../share/enums/ElectromagneticEnum.java | 34 + .../enums/ElectromagneticIsValidEnum.java | 25 + .../ElectromagneticSceneIncidentEnum.java | 30 + .../data/framework/share/enums/ErrorEnum.java | 23 + .../framework/share/enums/ErrorLevels.java | 23 + .../framework/share/enums/ErrorTypes.java | 25 + .../framework/share/enums/ResultCodeEnum.java | 1009 +++++++++++++++++ .../data/framework/share/enums/Status.java | 72 ++ .../framework/share/enums/SystemCode.java | 17 + .../share/exception/BizRuntimeException.java | 130 +++ .../share/exception/DigestLogException.java | 25 + .../ElectromagneticBizRuntimeException.java | 71 ++ .../exception/IllegalParameterException.java | 23 + .../share/exception/LoggerConstant.java | 46 + .../data/framework/share/id/IdWorker.java | 161 +++ .../data/framework/share/log/DateUtil.java | 330 ++++++ .../data/framework/share/log/DigestValue.java | 30 + .../share/log/LogDigestBaseInfo.java | 157 +++ .../data/framework/share/log/LogUtils.java | 455 ++++++++ .../share/log/ServiceResultHandleUtil.java | 102 ++ .../data/framework/share/log/Shield.java | 31 + .../data/framework/share/log/ShieldUtil.java | 37 + .../framework/share/model/BaseRequest.java | 56 + .../model/ElectromagneticPaginationInfo.java | 145 +++ .../ElectromagneticPaginationResult.java | 193 ++++ .../share/model/ElectromagneticRequest.java | 186 +++ .../share/model/ElectromagneticResult.java | 135 +++ .../model/ElectromagneticResultMessage.java | 79 ++ .../model/ElectromagneticResultUtil.java | 69 ++ .../data/framework/share/model/PageModel.java | 80 ++ .../share/monitor/MonitorLogModel.java | 24 + .../share/monitor/MonitorLogUtil.java | 53 + .../share/result/CallbackResult.java | 209 ++++ .../framework/share/result/CommonError.java | 124 ++ .../framework/share/result/ErrorContext.java | 264 +++++ .../share/result/ErrorContextUtil.java | 70 ++ .../data/framework/share/result/Message.java | 104 ++ .../data/framework/share/result/Result.java | 27 + .../framework/share/result/ResultCode.java | 403 +++++++ .../framework/share/result/ResultModel.java | 41 + .../data/framework/share/sign/AESUtils.java | 134 +++ .../data/framework/share/sign/SingHelper.java | 148 +++ .../data/framework/share/spi/ProxyUtils.java | 29 + .../share/spi/ServiceLoaderUtil.java | 42 + .../data/framework/share/spi/SpiListener.java | 94 ++ .../spi/annotation/SpiAttributeFind.java | 22 + .../share/spi/annotation/SpiClassFind.java | 22 + .../share/spi/annotation/SpiInjecte.java | 20 + .../spi/config/SpiFindConfiguration.java | 20 + .../data/framework/share/util/CoUtils.java | 191 ++++ .../share/util/CommonConvertUtil.java | 45 + .../share/util/ContrastDateUtils.java | 29 + .../util/DefaultSimpleValidationTool.java | 30 + .../share/util/DefaultValidationResult.java | 39 + .../data/framework/share/util/Failed.java | 60 + .../data/framework/share/util/Functions.java | 31 + .../share/util/NumberConversionUtil.java | 23 + .../framework/share/util/ParamsBuilder.java | 42 + .../data/framework/share/util/Results.java | 61 + .../data/framework/share/util/SignHelper.java | 56 + .../data/framework/share/util/SignUtils.java | 171 +++ .../framework/share/util/SpringUtils.java | 52 + .../ElectromagneticSimpleValidationTool.java | 11 + .../validation/SimpleValidationTool.java | 44 + .../share/validation/ValidationResult.java | 31 + .../share/validation/ValidationTool.java | 81 ++ ...gneticValidationToolAutoConfiguration.java | 39 + ...ectromagneticSimpleValidationToolImpl.java | 31 + facade/facade.iml | 56 + facade/pom.xml | 44 + .../base/DataplatformDataServiceResult.java | 26 + .../common/ElectromagneticErrorEnum.java | 213 ++++ .../common/MotorcycleOrTractorEnum.java | 38 + .../manage/common/NewEnergyInsuranceEnum.java | 44 + .../software/data/manage/common/PageEnum.java | 32 + .../manage/facade/IndicatorCardFacade.java | 85 ++ .../indicator/IndicatorCardRequest.java | 116 ++ .../indicator/IndicatorDataRequest.java | 35 + .../indicator/IndicatorOrgConfigRequest.java | 48 + .../request/indicator/IndicatorRequest.java | 61 + .../indicator/IndicatorWarnResultRequest.java | 25 + .../indicator/IndicatorCardDetailReponse.java | 29 + .../IndicatorCardExtendResponse.java | 82 ++ .../indicator/IndicatorCardPageResponse.java | 31 + .../indicator/IndicatorCardResponse.java | 112 ++ .../indicator/IndicatorOrgConfigResponse.java | 25 + .../response/indicator/IndicatorResponse.java | 92 ++ .../IndicatorWarnResultResponse.java | 28 + infrastructure/common/common.iml | 74 ++ infrastructure/common/pom.xml | 66 ++ .../manage/repository/MysqlMybatisConfig.java | 59 + .../manage/repository/ObMybatisConfig.java | 89 ++ .../mybatis-wisdom-decision-config.xml | 28 + infrastructure/infrastructure.iml | 12 + infrastructure/pom.xml | 21 + infrastructure/repository/pom.xml | 98 ++ infrastructure/repository/repository.iml | 73 ++ .../repository/dao/IndicatorCardMapper.java | 57 + .../impl/IndicatorCardRepositoryImpl.java | 98 ++ .../sqlmapper/IndicatorCardMapper.xml | 198 ++++ infrastructure/wraper/pom.xml | 16 + infrastructure/wraper/wraper.iml | 13 + pom.xml | 333 ++++++ service/pom.xml | 46 + service/service.iml | 61 + .../manage/service/aop/CommonLogAspect.java | 61 + .../manage/service/aop/MonitorLogModel.java | 18 + .../manage/service/aop/MonitorLogUtil.java | 51 + .../manage/service/aop/ServiceAspect.java | 53 + .../facade/IndicatorCardFacadeImpl.java | 180 +++ .../service/mappers/IndicatorCardMappers.java | 79 ++ 258 files changed, 14015 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/compiler.xml create mode 100644 .idea/encodings.xml create mode 100644 .idea/inspectionProfiles/Project_Default.xml create mode 100644 .idea/jarRepositories.xml create mode 100644 .idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_3.xml create mode 100644 .idea/libraries/Maven__ch_qos_logback_logback_core_1_2_3.xml create mode 100644 .idea/libraries/Maven__cn_hutool_hutool_all_5_8_4.xml create mode 100644 .idea/libraries/Maven__com_alibaba_druid_1_1_10.xml create mode 100644 .idea/libraries/Maven__com_alibaba_druid_spring_boot_starter_1_1_10.xml create mode 100644 .idea/libraries/Maven__com_alibaba_fastjson_1_2_3.xml create mode 100644 .idea/libraries/Maven__com_fasterxml_classmate_1_4_0.xml create mode 100644 .idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_9_10.xml create mode 100644 .idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_9_10.xml create mode 100644 .idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_9_10_3.xml create mode 100644 .idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_9_10.xml create mode 100644 .idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_9_10.xml create mode 100644 .idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_9_10.xml create mode 100644 .idea/libraries/Maven__com_github_jsonzou_jmockdata_4_3_0.xml create mode 100644 .idea/libraries/Maven__com_github_jsqlparser_jsqlparser_1_0.xml create mode 100644 .idea/libraries/Maven__com_github_pagehelper_pagehelper_5_1_2.xml create mode 100644 .idea/libraries/Maven__com_github_pagehelper_pagehelper_spring_boot_autoconfigure_1_3_0.xml create mode 100644 .idea/libraries/Maven__com_github_pagehelper_pagehelper_spring_boot_starter_1_3_0.xml create mode 100644 .idea/libraries/Maven__com_google_code_findbugs_jsr305_3_0_2.xml create mode 100644 .idea/libraries/Maven__com_google_errorprone_error_prone_annotations_2_3_4.xml create mode 100644 .idea/libraries/Maven__com_google_guava_failureaccess_1_0_1.xml create mode 100644 .idea/libraries/Maven__com_google_guava_guava_28_2_jre.xml create mode 100644 .idea/libraries/Maven__com_google_guava_listenablefuture_9999_0_empty_to_avoid_conflict_with_guava.xml create mode 100644 .idea/libraries/Maven__com_google_j2objc_j2objc_annotations_1_3.xml create mode 100644 .idea/libraries/Maven__com_lmax_disruptor_3_4_2.xml create mode 100644 .idea/libraries/Maven__com_zaxxer_HikariCP_3_2_0.xml create mode 100644 .idea/libraries/Maven__commons_logging_commons_logging_1_2.xml create mode 100644 .idea/libraries/Maven__io_springfox_springfox_core_2_7_0.xml create mode 100644 .idea/libraries/Maven__io_springfox_springfox_schema_2_7_0.xml create mode 100644 .idea/libraries/Maven__io_springfox_springfox_spi_2_7_0.xml create mode 100644 .idea/libraries/Maven__io_springfox_springfox_spring_web_2_7_0.xml create mode 100644 .idea/libraries/Maven__io_springfox_springfox_swagger2_2_7_0.xml create mode 100644 .idea/libraries/Maven__io_springfox_springfox_swagger_common_2_7_0.xml create mode 100644 .idea/libraries/Maven__io_springfox_springfox_swagger_ui_2_7_0.xml create mode 100644 .idea/libraries/Maven__io_swagger_swagger_annotations_1_5_13.xml create mode 100644 .idea/libraries/Maven__io_swagger_swagger_models_1_5_13.xml create mode 100644 .idea/libraries/Maven__javax_annotation_javax_annotation_api_1_3_2.xml create mode 100644 .idea/libraries/Maven__javax_validation_validation_api_2_0_1_Final.xml create mode 100644 .idea/libraries/Maven__junit_junit_4_12.xml create mode 100644 .idea/libraries/Maven__mysql_mysql_connector_java_8_0_19.xml create mode 100644 .idea/libraries/Maven__net_bytebuddy_byte_buddy_1_9_16.xml create mode 100644 .idea/libraries/Maven__org_apache_commons_commons_lang3_3_11.xml create mode 100644 .idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_11_2.xml create mode 100644 .idea/libraries/Maven__org_apache_logging_log4j_log4j_core_2_11_2.xml create mode 100644 .idea/libraries/Maven__org_apache_logging_log4j_log4j_jcl_2_11_2.xml create mode 100644 .idea/libraries/Maven__org_apache_logging_log4j_log4j_slf4j_impl_2_11_2.xml create mode 100644 .idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_11_2.xml create mode 100644 .idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_31.xml create mode 100644 .idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_31.xml create mode 100644 .idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_31.xml create mode 100644 .idea/libraries/Maven__org_aspectj_aspectjweaver_1_9_5.xml create mode 100644 .idea/libraries/Maven__org_checkerframework_checker_qual_2_10_0.xml create mode 100644 .idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml create mode 100644 .idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_0_18_Final.xml create mode 100644 .idea/libraries/Maven__org_javassist_javassist_3_21_0_GA.xml create mode 100644 .idea/libraries/Maven__org_jboss_logging_jboss_logging_3_3_3_Final.xml create mode 100644 .idea/libraries/Maven__org_mapstruct_mapstruct_1_4_1_Final.xml create mode 100644 .idea/libraries/Maven__org_mapstruct_mapstruct_processor_1_4_1_Final.xml create mode 100644 .idea/libraries/Maven__org_mybatis_mybatis_3_5_7.xml create mode 100644 .idea/libraries/Maven__org_mybatis_mybatis_spring_1_3_2.xml create mode 100644 .idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_autoconfigure_2_1_3.xml create mode 100644 .idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_starter_2_1_3.xml create mode 100644 .idea/libraries/Maven__org_projectlombok_lombok_1_18_12.xml create mode 100644 .idea/libraries/Maven__org_reflections_reflections_0_9_11.xml create mode 100644 .idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_30.xml create mode 100644 .idea/libraries/Maven__org_slf4j_slf4j_api_1_7_30.xml create mode 100644 .idea/libraries/Maven__org_springframework_boot_spring_boot_2_1_13_RELEASE.xml create mode 100644 .idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_1_13_RELEASE.xml create mode 100644 .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_1_13_RELEASE.xml create mode 100644 .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_aop_2_1_13_RELEASE.xml create mode 100644 .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_1_13_RELEASE.xml create mode 100644 .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_1_13_RELEASE.xml create mode 100644 .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_1_13_RELEASE.xml create mode 100644 .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_1_13_RELEASE.xml create mode 100644 .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_1_13_RELEASE.xml create mode 100644 .idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_1_13_RELEASE.xml create mode 100644 .idea/libraries/Maven__org_springframework_plugin_spring_plugin_core_1_2_0_RELEASE.xml create mode 100644 .idea/libraries/Maven__org_springframework_plugin_spring_plugin_metadata_1_2_0_RELEASE.xml create mode 100644 .idea/libraries/Maven__org_springframework_spring_aop_5_1_14_RELEASE.xml create mode 100644 .idea/libraries/Maven__org_springframework_spring_beans_5_1_14_RELEASE.xml create mode 100644 .idea/libraries/Maven__org_springframework_spring_context_5_1_14_RELEASE.xml create mode 100644 .idea/libraries/Maven__org_springframework_spring_core_5_1_14_RELEASE.xml create mode 100644 .idea/libraries/Maven__org_springframework_spring_expression_5_1_14_RELEASE.xml create mode 100644 .idea/libraries/Maven__org_springframework_spring_jcl_5_1_14_RELEASE.xml create mode 100644 .idea/libraries/Maven__org_springframework_spring_jdbc_5_0_3_RELEASE.xml create mode 100644 .idea/libraries/Maven__org_springframework_spring_test_5_1_14_RELEASE.xml create mode 100644 .idea/libraries/Maven__org_springframework_spring_tx_5_0_3_RELEASE.xml create mode 100644 .idea/libraries/Maven__org_springframework_spring_web_5_1_14_RELEASE.xml create mode 100644 .idea/libraries/Maven__org_springframework_spring_webmvc_5_1_14_RELEASE.xml create mode 100644 .idea/libraries/Maven__org_yaml_snakeyaml_1_23.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/uiDesigner.xml create mode 100644 .idea/workspace.xml create mode 100644 README.md create mode 100644 bootstrap/bootstrap.iml create mode 100644 bootstrap/pom.xml create mode 100644 bootstrap/src/main/java/com/electromagnetic/industry/software/data/manage/bootstrap/Application.java create mode 100644 bootstrap/src/main/java/com/electromagnetic/industry/software/data/manage/controller/IndicatorCardController.java create mode 100644 bootstrap/src/main/java/com/electromagnetic/industry/software/data/manage/controller/config/WebMvcConfig.java create mode 100644 bootstrap/src/main/resources/application.properties create mode 100644 bootstrap/src/main/resources/log4j.properties create mode 100644 bootstrap/src/main/resources/log4j2-spring-prod.xml create mode 100644 bootstrap/src/main/resources/log4j2-spring.xml create mode 100644 domain/domain.iml create mode 100644 domain/pom.xml create mode 100644 domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/EffectFlagEnum.java create mode 100644 domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/IndicatorAnalysisEnum.java create mode 100644 domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/IndicatorAscribeEnum.java create mode 100644 domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/IndicatorCardHomeDisplayEnum.java create mode 100644 domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/IndicatorCardStatusEnum.java create mode 100644 domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/IndicatorCardTypeEnum.java create mode 100644 domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/IndicatorCardWarningFlagEnum.java create mode 100644 domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/IndicatorFieldEnum.java create mode 100644 domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/IndicatorOrgConfigStatusEnum.java create mode 100644 domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/IndicatorOrgConfigTypeEnum.java create mode 100644 domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/IndicatorOrgEnum.java create mode 100644 domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/IndicatorTypeEnum.java create mode 100644 domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/model/Indicator.java create mode 100644 domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/model/IndicatorCard.java create mode 100644 domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/model/IndicatorCardDetial.java create mode 100644 domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/model/IndicatorCardExtend.java create mode 100644 domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/model/IndicatorCardPage.java create mode 100644 domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/model/IndicatorOrgConfig.java create mode 100644 domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/parames/IndicatorCardParams.java create mode 100644 domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/parames/IndicatorOrgConfigParams.java create mode 100644 domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/parames/IndicatorParams.java create mode 100644 domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/repository/IndicatorCardRepository.java create mode 100644 domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/service/IndicatorCardService.java create mode 100644 domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/service/impl/IndicatorCardServiceImpl.java create mode 100644 domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/util/IndicatorContent.java create mode 100644 electromagnetic-data.iml create mode 100644 electromagnetic-framework/electromagnetic-framework.iml create mode 100644 electromagnetic-framework/framework.iml create mode 100644 electromagnetic-framework/pom.xml create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/common/ParamsConstants.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/config/DefaultValidationTool.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/config/ValidationToolAutoConfiguration.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/constants/ElectromagneticConstants.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/enums/CommonResultCode.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/enums/ElectromagneticCommonErrorEnum.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/enums/ElectromagneticEnum.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/enums/ElectromagneticIsValidEnum.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/enums/ElectromagneticSceneIncidentEnum.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/enums/ErrorEnum.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/enums/ErrorLevels.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/enums/ErrorTypes.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/enums/ResultCodeEnum.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/enums/Status.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/enums/SystemCode.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/exception/BizRuntimeException.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/exception/DigestLogException.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/exception/ElectromagneticBizRuntimeException.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/exception/IllegalParameterException.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/exception/LoggerConstant.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/id/IdWorker.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/log/DateUtil.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/log/DigestValue.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/log/LogDigestBaseInfo.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/log/LogUtils.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/log/ServiceResultHandleUtil.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/log/Shield.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/log/ShieldUtil.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/model/BaseRequest.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/model/ElectromagneticPaginationInfo.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/model/ElectromagneticPaginationResult.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/model/ElectromagneticRequest.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/model/ElectromagneticResult.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/model/ElectromagneticResultMessage.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/model/ElectromagneticResultUtil.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/model/PageModel.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/monitor/MonitorLogModel.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/monitor/MonitorLogUtil.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/result/CallbackResult.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/result/CommonError.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/result/ErrorContext.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/result/ErrorContextUtil.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/result/Message.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/result/Result.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/result/ResultCode.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/result/ResultModel.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/sign/AESUtils.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/sign/SingHelper.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/spi/ProxyUtils.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/spi/ServiceLoaderUtil.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/spi/SpiListener.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/spi/annotation/SpiAttributeFind.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/spi/annotation/SpiClassFind.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/spi/annotation/SpiInjecte.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/spi/config/SpiFindConfiguration.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/CoUtils.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/CommonConvertUtil.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/ContrastDateUtils.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/DefaultSimpleValidationTool.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/DefaultValidationResult.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/Failed.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/Functions.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/NumberConversionUtil.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/ParamsBuilder.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/Results.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/SignHelper.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/SignUtils.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/SpringUtils.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/validation/ElectromagneticSimpleValidationTool.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/validation/SimpleValidationTool.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/validation/ValidationResult.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/validation/ValidationTool.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/validation/config/ElectromagneticValidationToolAutoConfiguration.java create mode 100644 electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/validation/impl/ElectromagneticSimpleValidationToolImpl.java create mode 100644 facade/facade.iml create mode 100644 facade/pom.xml create mode 100644 facade/src/main/java/com/electromagnetic/industry/software/data/manage/base/DataplatformDataServiceResult.java create mode 100644 facade/src/main/java/com/electromagnetic/industry/software/data/manage/common/ElectromagneticErrorEnum.java create mode 100644 facade/src/main/java/com/electromagnetic/industry/software/data/manage/common/MotorcycleOrTractorEnum.java create mode 100644 facade/src/main/java/com/electromagnetic/industry/software/data/manage/common/NewEnergyInsuranceEnum.java create mode 100644 facade/src/main/java/com/electromagnetic/industry/software/data/manage/common/PageEnum.java create mode 100644 facade/src/main/java/com/electromagnetic/industry/software/data/manage/facade/IndicatorCardFacade.java create mode 100644 facade/src/main/java/com/electromagnetic/industry/software/data/manage/request/indicator/IndicatorCardRequest.java create mode 100644 facade/src/main/java/com/electromagnetic/industry/software/data/manage/request/indicator/IndicatorDataRequest.java create mode 100644 facade/src/main/java/com/electromagnetic/industry/software/data/manage/request/indicator/IndicatorOrgConfigRequest.java create mode 100644 facade/src/main/java/com/electromagnetic/industry/software/data/manage/request/indicator/IndicatorRequest.java create mode 100644 facade/src/main/java/com/electromagnetic/industry/software/data/manage/request/indicator/IndicatorWarnResultRequest.java create mode 100644 facade/src/main/java/com/electromagnetic/industry/software/data/manage/response/indicator/IndicatorCardDetailReponse.java create mode 100644 facade/src/main/java/com/electromagnetic/industry/software/data/manage/response/indicator/IndicatorCardExtendResponse.java create mode 100644 facade/src/main/java/com/electromagnetic/industry/software/data/manage/response/indicator/IndicatorCardPageResponse.java create mode 100644 facade/src/main/java/com/electromagnetic/industry/software/data/manage/response/indicator/IndicatorCardResponse.java create mode 100644 facade/src/main/java/com/electromagnetic/industry/software/data/manage/response/indicator/IndicatorOrgConfigResponse.java create mode 100644 facade/src/main/java/com/electromagnetic/industry/software/data/manage/response/indicator/IndicatorResponse.java create mode 100644 facade/src/main/java/com/electromagnetic/industry/software/data/manage/response/indicator/IndicatorWarnResultResponse.java create mode 100644 infrastructure/common/common.iml create mode 100644 infrastructure/common/pom.xml create mode 100644 infrastructure/common/src/main/java/com/electromagnetic/industry/software/data/manage/repository/MysqlMybatisConfig.java create mode 100644 infrastructure/common/src/main/java/com/electromagnetic/industry/software/data/manage/repository/ObMybatisConfig.java create mode 100644 infrastructure/common/src/main/resources/mybatis-wisdom-decision-config.xml create mode 100644 infrastructure/infrastructure.iml create mode 100644 infrastructure/pom.xml create mode 100644 infrastructure/repository/pom.xml create mode 100644 infrastructure/repository/repository.iml create mode 100644 infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/dao/IndicatorCardMapper.java create mode 100644 infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/impl/IndicatorCardRepositoryImpl.java create mode 100644 infrastructure/repository/src/main/resources/sqlmapper/IndicatorCardMapper.xml create mode 100644 infrastructure/wraper/pom.xml create mode 100644 infrastructure/wraper/wraper.iml create mode 100644 pom.xml create mode 100644 service/pom.xml create mode 100644 service/service.iml create mode 100644 service/src/main/java/com/electromagnetic/industry/software/data/manage/service/aop/CommonLogAspect.java create mode 100644 service/src/main/java/com/electromagnetic/industry/software/data/manage/service/aop/MonitorLogModel.java create mode 100644 service/src/main/java/com/electromagnetic/industry/software/data/manage/service/aop/MonitorLogUtil.java create mode 100644 service/src/main/java/com/electromagnetic/industry/software/data/manage/service/aop/ServiceAspect.java create mode 100644 service/src/main/java/com/electromagnetic/industry/software/data/manage/service/facade/IndicatorCardFacadeImpl.java create mode 100644 service/src/main/java/com/electromagnetic/industry/software/data/manage/service/mappers/IndicatorCardMappers.java diff --git a/.gitignore b/.gitignore index a1c2a23..1f4f1bb 100644 --- a/.gitignore +++ b/.gitignore @@ -21,3 +21,5 @@ # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid* + +.vs diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..e60c781 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..300fb0f --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..4ac7251 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..2d9362f --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_3.xml b/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_3.xml new file mode 100644 index 0000000..6fec8f4 --- /dev/null +++ b/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_3.xml b/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_3.xml new file mode 100644 index 0000000..9eb8596 --- /dev/null +++ b/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__cn_hutool_hutool_all_5_8_4.xml b/.idea/libraries/Maven__cn_hutool_hutool_all_5_8_4.xml new file mode 100644 index 0000000..5a5c626 --- /dev/null +++ b/.idea/libraries/Maven__cn_hutool_hutool_all_5_8_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_alibaba_druid_1_1_10.xml b/.idea/libraries/Maven__com_alibaba_druid_1_1_10.xml new file mode 100644 index 0000000..4c27784 --- /dev/null +++ b/.idea/libraries/Maven__com_alibaba_druid_1_1_10.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_alibaba_druid_spring_boot_starter_1_1_10.xml b/.idea/libraries/Maven__com_alibaba_druid_spring_boot_starter_1_1_10.xml new file mode 100644 index 0000000..74fcd43 --- /dev/null +++ b/.idea/libraries/Maven__com_alibaba_druid_spring_boot_starter_1_1_10.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_alibaba_fastjson_1_2_3.xml b/.idea/libraries/Maven__com_alibaba_fastjson_1_2_3.xml new file mode 100644 index 0000000..79b4a80 --- /dev/null +++ b/.idea/libraries/Maven__com_alibaba_fastjson_1_2_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_fasterxml_classmate_1_4_0.xml b/.idea/libraries/Maven__com_fasterxml_classmate_1_4_0.xml new file mode 100644 index 0000000..bbd3a88 --- /dev/null +++ b/.idea/libraries/Maven__com_fasterxml_classmate_1_4_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_9_10.xml b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_9_10.xml new file mode 100644 index 0000000..3a0b2ef --- /dev/null +++ b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_9_10.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_9_10.xml b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_9_10.xml new file mode 100644 index 0000000..8e1de75 --- /dev/null +++ b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_9_10.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_9_10_3.xml b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_9_10_3.xml new file mode 100644 index 0000000..749f556 --- /dev/null +++ b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_9_10_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_9_10.xml b/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_9_10.xml new file mode 100644 index 0000000..cf1d5bc --- /dev/null +++ b/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_9_10.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_9_10.xml b/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_9_10.xml new file mode 100644 index 0000000..016cb82 --- /dev/null +++ b/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_9_10.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_9_10.xml b/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_9_10.xml new file mode 100644 index 0000000..06c4c21 --- /dev/null +++ b/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_9_10.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_github_jsonzou_jmockdata_4_3_0.xml b/.idea/libraries/Maven__com_github_jsonzou_jmockdata_4_3_0.xml new file mode 100644 index 0000000..4b25da2 --- /dev/null +++ b/.idea/libraries/Maven__com_github_jsonzou_jmockdata_4_3_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_github_jsqlparser_jsqlparser_1_0.xml b/.idea/libraries/Maven__com_github_jsqlparser_jsqlparser_1_0.xml new file mode 100644 index 0000000..d7b01a3 --- /dev/null +++ b/.idea/libraries/Maven__com_github_jsqlparser_jsqlparser_1_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_github_pagehelper_pagehelper_5_1_2.xml b/.idea/libraries/Maven__com_github_pagehelper_pagehelper_5_1_2.xml new file mode 100644 index 0000000..eb9f3ed --- /dev/null +++ b/.idea/libraries/Maven__com_github_pagehelper_pagehelper_5_1_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_github_pagehelper_pagehelper_spring_boot_autoconfigure_1_3_0.xml b/.idea/libraries/Maven__com_github_pagehelper_pagehelper_spring_boot_autoconfigure_1_3_0.xml new file mode 100644 index 0000000..f870e68 --- /dev/null +++ b/.idea/libraries/Maven__com_github_pagehelper_pagehelper_spring_boot_autoconfigure_1_3_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_github_pagehelper_pagehelper_spring_boot_starter_1_3_0.xml b/.idea/libraries/Maven__com_github_pagehelper_pagehelper_spring_boot_starter_1_3_0.xml new file mode 100644 index 0000000..64a8fe7 --- /dev/null +++ b/.idea/libraries/Maven__com_github_pagehelper_pagehelper_spring_boot_starter_1_3_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_google_code_findbugs_jsr305_3_0_2.xml b/.idea/libraries/Maven__com_google_code_findbugs_jsr305_3_0_2.xml new file mode 100644 index 0000000..1c380d0 --- /dev/null +++ b/.idea/libraries/Maven__com_google_code_findbugs_jsr305_3_0_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_google_errorprone_error_prone_annotations_2_3_4.xml b/.idea/libraries/Maven__com_google_errorprone_error_prone_annotations_2_3_4.xml new file mode 100644 index 0000000..848cecd --- /dev/null +++ b/.idea/libraries/Maven__com_google_errorprone_error_prone_annotations_2_3_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_google_guava_failureaccess_1_0_1.xml b/.idea/libraries/Maven__com_google_guava_failureaccess_1_0_1.xml new file mode 100644 index 0000000..36e948e --- /dev/null +++ b/.idea/libraries/Maven__com_google_guava_failureaccess_1_0_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_google_guava_guava_28_2_jre.xml b/.idea/libraries/Maven__com_google_guava_guava_28_2_jre.xml new file mode 100644 index 0000000..4c14853 --- /dev/null +++ b/.idea/libraries/Maven__com_google_guava_guava_28_2_jre.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_google_guava_listenablefuture_9999_0_empty_to_avoid_conflict_with_guava.xml b/.idea/libraries/Maven__com_google_guava_listenablefuture_9999_0_empty_to_avoid_conflict_with_guava.xml new file mode 100644 index 0000000..4e15702 --- /dev/null +++ b/.idea/libraries/Maven__com_google_guava_listenablefuture_9999_0_empty_to_avoid_conflict_with_guava.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_google_j2objc_j2objc_annotations_1_3.xml b/.idea/libraries/Maven__com_google_j2objc_j2objc_annotations_1_3.xml new file mode 100644 index 0000000..bacaa45 --- /dev/null +++ b/.idea/libraries/Maven__com_google_j2objc_j2objc_annotations_1_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_lmax_disruptor_3_4_2.xml b/.idea/libraries/Maven__com_lmax_disruptor_3_4_2.xml new file mode 100644 index 0000000..7187793 --- /dev/null +++ b/.idea/libraries/Maven__com_lmax_disruptor_3_4_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_zaxxer_HikariCP_3_2_0.xml b/.idea/libraries/Maven__com_zaxxer_HikariCP_3_2_0.xml new file mode 100644 index 0000000..8f760a2 --- /dev/null +++ b/.idea/libraries/Maven__com_zaxxer_HikariCP_3_2_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__commons_logging_commons_logging_1_2.xml b/.idea/libraries/Maven__commons_logging_commons_logging_1_2.xml new file mode 100644 index 0000000..eab40b3 --- /dev/null +++ b/.idea/libraries/Maven__commons_logging_commons_logging_1_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_springfox_springfox_core_2_7_0.xml b/.idea/libraries/Maven__io_springfox_springfox_core_2_7_0.xml new file mode 100644 index 0000000..abb3fd9 --- /dev/null +++ b/.idea/libraries/Maven__io_springfox_springfox_core_2_7_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_springfox_springfox_schema_2_7_0.xml b/.idea/libraries/Maven__io_springfox_springfox_schema_2_7_0.xml new file mode 100644 index 0000000..706ae46 --- /dev/null +++ b/.idea/libraries/Maven__io_springfox_springfox_schema_2_7_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_springfox_springfox_spi_2_7_0.xml b/.idea/libraries/Maven__io_springfox_springfox_spi_2_7_0.xml new file mode 100644 index 0000000..4d0a278 --- /dev/null +++ b/.idea/libraries/Maven__io_springfox_springfox_spi_2_7_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_springfox_springfox_spring_web_2_7_0.xml b/.idea/libraries/Maven__io_springfox_springfox_spring_web_2_7_0.xml new file mode 100644 index 0000000..0813776 --- /dev/null +++ b/.idea/libraries/Maven__io_springfox_springfox_spring_web_2_7_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_springfox_springfox_swagger2_2_7_0.xml b/.idea/libraries/Maven__io_springfox_springfox_swagger2_2_7_0.xml new file mode 100644 index 0000000..117d4ee --- /dev/null +++ b/.idea/libraries/Maven__io_springfox_springfox_swagger2_2_7_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_springfox_springfox_swagger_common_2_7_0.xml b/.idea/libraries/Maven__io_springfox_springfox_swagger_common_2_7_0.xml new file mode 100644 index 0000000..e6679b3 --- /dev/null +++ b/.idea/libraries/Maven__io_springfox_springfox_swagger_common_2_7_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_springfox_springfox_swagger_ui_2_7_0.xml b/.idea/libraries/Maven__io_springfox_springfox_swagger_ui_2_7_0.xml new file mode 100644 index 0000000..b1342e2 --- /dev/null +++ b/.idea/libraries/Maven__io_springfox_springfox_swagger_ui_2_7_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_swagger_swagger_annotations_1_5_13.xml b/.idea/libraries/Maven__io_swagger_swagger_annotations_1_5_13.xml new file mode 100644 index 0000000..1fd5fc3 --- /dev/null +++ b/.idea/libraries/Maven__io_swagger_swagger_annotations_1_5_13.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_swagger_swagger_models_1_5_13.xml b/.idea/libraries/Maven__io_swagger_swagger_models_1_5_13.xml new file mode 100644 index 0000000..fa7a4b3 --- /dev/null +++ b/.idea/libraries/Maven__io_swagger_swagger_models_1_5_13.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__javax_annotation_javax_annotation_api_1_3_2.xml b/.idea/libraries/Maven__javax_annotation_javax_annotation_api_1_3_2.xml new file mode 100644 index 0000000..e74f3ab --- /dev/null +++ b/.idea/libraries/Maven__javax_annotation_javax_annotation_api_1_3_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__javax_validation_validation_api_2_0_1_Final.xml b/.idea/libraries/Maven__javax_validation_validation_api_2_0_1_Final.xml new file mode 100644 index 0000000..6978c0b --- /dev/null +++ b/.idea/libraries/Maven__javax_validation_validation_api_2_0_1_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__junit_junit_4_12.xml b/.idea/libraries/Maven__junit_junit_4_12.xml new file mode 100644 index 0000000..d411041 --- /dev/null +++ b/.idea/libraries/Maven__junit_junit_4_12.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__mysql_mysql_connector_java_8_0_19.xml b/.idea/libraries/Maven__mysql_mysql_connector_java_8_0_19.xml new file mode 100644 index 0000000..41908d9 --- /dev/null +++ b/.idea/libraries/Maven__mysql_mysql_connector_java_8_0_19.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_9_16.xml b/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_9_16.xml new file mode 100644 index 0000000..cc556d1 --- /dev/null +++ b/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_9_16.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_11.xml b/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_11.xml new file mode 100644 index 0000000..7a30e6e --- /dev/null +++ b/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_11.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_11_2.xml b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_11_2.xml new file mode 100644 index 0000000..fe93f54 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_11_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_logging_log4j_log4j_core_2_11_2.xml b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_core_2_11_2.xml new file mode 100644 index 0000000..c7e1697 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_core_2_11_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_logging_log4j_log4j_jcl_2_11_2.xml b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_jcl_2_11_2.xml new file mode 100644 index 0000000..ca65c2a --- /dev/null +++ b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_jcl_2_11_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_logging_log4j_log4j_slf4j_impl_2_11_2.xml b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_slf4j_impl_2_11_2.xml new file mode 100644 index 0000000..3959614 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_slf4j_impl_2_11_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_11_2.xml b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_11_2.xml new file mode 100644 index 0000000..889bf4f --- /dev/null +++ b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_11_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_31.xml b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_31.xml new file mode 100644 index 0000000..f7f75ff --- /dev/null +++ b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_31.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_31.xml b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_31.xml new file mode 100644 index 0000000..2b31bf6 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_31.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_31.xml b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_31.xml new file mode 100644 index 0000000..d3d4f18 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_31.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_aspectj_aspectjweaver_1_9_5.xml b/.idea/libraries/Maven__org_aspectj_aspectjweaver_1_9_5.xml new file mode 100644 index 0000000..1a387a4 --- /dev/null +++ b/.idea/libraries/Maven__org_aspectj_aspectjweaver_1_9_5.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_checkerframework_checker_qual_2_10_0.xml b/.idea/libraries/Maven__org_checkerframework_checker_qual_2_10_0.xml new file mode 100644 index 0000000..2301054 --- /dev/null +++ b/.idea/libraries/Maven__org_checkerframework_checker_qual_2_10_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml b/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml new file mode 100644 index 0000000..f58bbc1 --- /dev/null +++ b/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_0_18_Final.xml b/.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_0_18_Final.xml new file mode 100644 index 0000000..d035d9c --- /dev/null +++ b/.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_0_18_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_javassist_javassist_3_21_0_GA.xml b/.idea/libraries/Maven__org_javassist_javassist_3_21_0_GA.xml new file mode 100644 index 0000000..09c4cf0 --- /dev/null +++ b/.idea/libraries/Maven__org_javassist_javassist_3_21_0_GA.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_3_3_Final.xml b/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_3_3_Final.xml new file mode 100644 index 0000000..cb848ae --- /dev/null +++ b/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_3_3_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_mapstruct_mapstruct_1_4_1_Final.xml b/.idea/libraries/Maven__org_mapstruct_mapstruct_1_4_1_Final.xml new file mode 100644 index 0000000..249dfb5 --- /dev/null +++ b/.idea/libraries/Maven__org_mapstruct_mapstruct_1_4_1_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_mapstruct_mapstruct_processor_1_4_1_Final.xml b/.idea/libraries/Maven__org_mapstruct_mapstruct_processor_1_4_1_Final.xml new file mode 100644 index 0000000..e90aa08 --- /dev/null +++ b/.idea/libraries/Maven__org_mapstruct_mapstruct_processor_1_4_1_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_mybatis_mybatis_3_5_7.xml b/.idea/libraries/Maven__org_mybatis_mybatis_3_5_7.xml new file mode 100644 index 0000000..fab1459 --- /dev/null +++ b/.idea/libraries/Maven__org_mybatis_mybatis_3_5_7.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_mybatis_mybatis_spring_1_3_2.xml b/.idea/libraries/Maven__org_mybatis_mybatis_spring_1_3_2.xml new file mode 100644 index 0000000..713f604 --- /dev/null +++ b/.idea/libraries/Maven__org_mybatis_mybatis_spring_1_3_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_autoconfigure_2_1_3.xml b/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_autoconfigure_2_1_3.xml new file mode 100644 index 0000000..dc3ed94 --- /dev/null +++ b/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_autoconfigure_2_1_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_starter_2_1_3.xml b/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_starter_2_1_3.xml new file mode 100644 index 0000000..9304237 --- /dev/null +++ b/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_starter_2_1_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_projectlombok_lombok_1_18_12.xml b/.idea/libraries/Maven__org_projectlombok_lombok_1_18_12.xml new file mode 100644 index 0000000..46cf8a8 --- /dev/null +++ b/.idea/libraries/Maven__org_projectlombok_lombok_1_18_12.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_reflections_reflections_0_9_11.xml b/.idea/libraries/Maven__org_reflections_reflections_0_9_11.xml new file mode 100644 index 0000000..d8b2fb5 --- /dev/null +++ b/.idea/libraries/Maven__org_reflections_reflections_0_9_11.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_30.xml b/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_30.xml new file mode 100644 index 0000000..27229ce --- /dev/null +++ b/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_30.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_30.xml b/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_30.xml new file mode 100644 index 0000000..02b6812 --- /dev/null +++ b/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_30.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_1_13_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_1_13_RELEASE.xml new file mode 100644 index 0000000..adf1803 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_1_13_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_1_13_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_1_13_RELEASE.xml new file mode 100644 index 0000000..b00030d --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_1_13_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_1_13_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_1_13_RELEASE.xml new file mode 100644 index 0000000..0e72676 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_1_13_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_aop_2_1_13_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_aop_2_1_13_RELEASE.xml new file mode 100644 index 0000000..5a7f0ac --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_aop_2_1_13_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_1_13_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_1_13_RELEASE.xml new file mode 100644 index 0000000..3db2aad --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_1_13_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_1_13_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_1_13_RELEASE.xml new file mode 100644 index 0000000..e9e2579 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_1_13_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_1_13_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_1_13_RELEASE.xml new file mode 100644 index 0000000..25d6a99 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_1_13_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_1_13_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_1_13_RELEASE.xml new file mode 100644 index 0000000..c246c18 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_1_13_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_1_13_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_1_13_RELEASE.xml new file mode 100644 index 0000000..fac55df --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_1_13_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_1_13_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_1_13_RELEASE.xml new file mode 100644 index 0000000..8011097 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_1_13_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_plugin_spring_plugin_core_1_2_0_RELEASE.xml b/.idea/libraries/Maven__org_springframework_plugin_spring_plugin_core_1_2_0_RELEASE.xml new file mode 100644 index 0000000..fbc0452 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_plugin_spring_plugin_core_1_2_0_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_plugin_spring_plugin_metadata_1_2_0_RELEASE.xml b/.idea/libraries/Maven__org_springframework_plugin_spring_plugin_metadata_1_2_0_RELEASE.xml new file mode 100644 index 0000000..7e6f096 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_plugin_spring_plugin_metadata_1_2_0_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_aop_5_1_14_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_aop_5_1_14_RELEASE.xml new file mode 100644 index 0000000..b09d838 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_aop_5_1_14_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_beans_5_1_14_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_beans_5_1_14_RELEASE.xml new file mode 100644 index 0000000..8e3307d --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_beans_5_1_14_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_context_5_1_14_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_context_5_1_14_RELEASE.xml new file mode 100644 index 0000000..13812b0 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_context_5_1_14_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_core_5_1_14_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_core_5_1_14_RELEASE.xml new file mode 100644 index 0000000..a89385e --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_core_5_1_14_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_expression_5_1_14_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_expression_5_1_14_RELEASE.xml new file mode 100644 index 0000000..f0edc5d --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_expression_5_1_14_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_jcl_5_1_14_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_jcl_5_1_14_RELEASE.xml new file mode 100644 index 0000000..f4fd3d6 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_jcl_5_1_14_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_jdbc_5_0_3_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_jdbc_5_0_3_RELEASE.xml new file mode 100644 index 0000000..ef2cd78 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_jdbc_5_0_3_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_test_5_1_14_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_test_5_1_14_RELEASE.xml new file mode 100644 index 0000000..cab5e12 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_test_5_1_14_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_tx_5_0_3_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_tx_5_0_3_RELEASE.xml new file mode 100644 index 0000000..ac26c1b --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_tx_5_0_3_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_web_5_1_14_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_web_5_1_14_RELEASE.xml new file mode 100644 index 0000000..85dc95f --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_web_5_1_14_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_webmvc_5_1_14_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_webmvc_5_1_14_RELEASE.xml new file mode 100644 index 0000000..b8aec36 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_webmvc_5_1_14_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_yaml_snakeyaml_1_23.xml b/.idea/libraries/Maven__org_yaml_snakeyaml_1_23.xml new file mode 100644 index 0000000..7e63769 --- /dev/null +++ b/.idea/libraries/Maven__org_yaml_snakeyaml_1_23.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..4361200 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,11 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..a63dd8f --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..e96534f --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 0000000..faf7988 --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,145 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1729509628475 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..ba1d12e --- /dev/null +++ b/README.md @@ -0,0 +1,92 @@ +# electromagnetic-data + + + +## Getting started + +To make it easy for you to get started with GitLab, here's a list of recommended next steps. + +Already a pro? Just edit this README.md and make it your own. Want to make it easy? [Use the template at the bottom](#editing-this-readme)! + +## Add your files + +- [ ] [Create](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#create-a-file) or [upload](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#upload-a-file) files +- [ ] [Add files using the command line](https://docs.gitlab.com/ee/gitlab-basics/add-file.html#add-a-file-using-the-command-line) or push an existing Git repository with the following command: + +``` +cd existing_repo +git remote add origin http://192.168.1.215/COMIC_DEMO/electromagnetic-data.git +git branch -M main +git push -uf origin main +``` + +## Integrate with your tools + +- [ ] [Set up project integrations](http://192.168.1.215/COMIC_DEMO/electromagnetic-data/-/settings/integrations) + +## Collaborate with your team + +- [ ] [Invite team members and collaborators](https://docs.gitlab.com/ee/user/project/members/) +- [ ] [Create a new merge request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html) +- [ ] [Automatically close issues from merge requests](https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically) +- [ ] [Enable merge request approvals](https://docs.gitlab.com/ee/user/project/merge_requests/approvals/) +- [ ] [Automatically merge when pipeline succeeds](https://docs.gitlab.com/ee/user/project/merge_requests/merge_when_pipeline_succeeds.html) + +## Test and Deploy + +Use the built-in continuous integration in GitLab. + +- [ ] [Get started with GitLab CI/CD](https://docs.gitlab.com/ee/ci/quick_start/index.html) +- [ ] [Analyze your code for known vulnerabilities with Static Application Security Testing(SAST)](https://docs.gitlab.com/ee/user/application_security/sast/) +- [ ] [Deploy to Kubernetes, Amazon EC2, or Amazon ECS using Auto Deploy](https://docs.gitlab.com/ee/topics/autodevops/requirements.html) +- [ ] [Use pull-based deployments for improved Kubernetes management](https://docs.gitlab.com/ee/user/clusters/agent/) +- [ ] [Set up protected environments](https://docs.gitlab.com/ee/ci/environments/protected_environments.html) + +*** + +# Editing this README + +When you're ready to make this README your own, just edit this file and use the handy template below (or feel free to structure it however you want - this is just a starting point!). Thank you to [makeareadme.com](https://www.makeareadme.com/) for this template. + +## Suggestions for a good README +Every project is different, so consider which of these sections apply to yours. The sections used in the template are suggestions for most open source projects. Also keep in mind that while a README can be too long and detailed, too long is better than too short. If you think your README is too long, consider utilizing another form of documentation rather than cutting out information. + +## Name +Choose a self-explaining name for your project. + +## Description +Let people know what your project can do specifically. Provide context and add a link to any reference visitors might be unfamiliar with. A list of Features or a Background subsection can also be added here. If there are alternatives to your project, this is a good place to list differentiating factors. + +## Badges +On some READMEs, you may see small images that convey metadata, such as whether or not all the tests are passing for the project. You can use Shields to add some to your README. Many services also have instructions for adding a badge. + +## Visuals +Depending on what you are making, it can be a good idea to include screenshots or even a video (you'll frequently see GIFs rather than actual videos). Tools like ttygif can help, but check out Asciinema for a more sophisticated method. + +## Installation +Within a particular ecosystem, there may be a common way of installing things, such as using Yarn, NuGet, or Homebrew. However, consider the possibility that whoever is reading your README is a novice and would like more guidance. Listing specific steps helps remove ambiguity and gets people to using your project as quickly as possible. If it only runs in a specific context like a particular programming language version or operating system or has dependencies that have to be installed manually, also add a Requirements subsection. + +## Usage +Use examples liberally, and show the expected output if you can. It's helpful to have inline the smallest example of usage that you can demonstrate, while providing links to more sophisticated examples if they are too long to reasonably include in the README. + +## Support +Tell people where they can go to for help. It can be any combination of an issue tracker, a chat room, an email address, etc. + +## Roadmap +If you have ideas for releases in the future, it is a good idea to list them in the README. + +## Contributing +State if you are open to contributions and what your requirements are for accepting them. + +For people who want to make changes to your project, it's helpful to have some documentation on how to get started. Perhaps there is a script that they should run or some environment variables that they need to set. Make these steps explicit. These instructions could also be useful to your future self. + +You can also document commands to lint the code or run tests. These steps help to ensure high code quality and reduce the likelihood that the changes inadvertently break something. Having instructions for running tests is especially helpful if it requires external setup, such as starting a Selenium server for testing in a browser. + +## Authors and acknowledgment +Show your appreciation to those who have contributed to the project. + +## License +For open source projects, say how it is licensed. + +## Project status +If you have run out of energy or time for your project, put a note at the top of the README saying that development has slowed down or stopped completely. Someone may choose to fork your project or volunteer to step in as a maintainer or owner, allowing your project to keep going. You can also make an explicit request for maintainers. diff --git a/bootstrap/bootstrap.iml b/bootstrap/bootstrap.iml new file mode 100644 index 0000000..8b1def8 --- /dev/null +++ b/bootstrap/bootstrap.iml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bootstrap/pom.xml b/bootstrap/pom.xml new file mode 100644 index 0000000..89eefd5 --- /dev/null +++ b/bootstrap/pom.xml @@ -0,0 +1,167 @@ + + + + 4.0.0 + + + com.electromagnetic.data + electromagnetic-data + 1.0.0-SNAPSHOT + + com.electromagnetic.data + bootstrap + jar + bootstrap + + + + + org.apache.logging.log4j + log4j-api + + + org.apache.logging.log4j + log4j-core + + + org.apache.logging.log4j + log4j-jcl + + + + com.lmax + disruptor + + + + + org.apache.logging.log4j + log4j-slf4j-impl + + + + + com.electromagnetic.data + electromagnetic-framework + + + com.electromagnetic.data + facade + + + com.electromagnetic.data + service + + + com.electromagnetic.data + domain + + + com.electromagnetic.data + common + + + com.electromagnetic.data + repository + + + com.electromagnetic.data + wraper + + + + + org.springframework.boot + spring-boot-starter + + + ch.qos.logback + logback-classic + + + org.slf4j + slf4j-log4j12 + + + org.apache.logging.log4j + log4j-to-slf4j + + + + + org.springframework.boot + spring-boot-autoconfigure + + + org.springframework.boot + spring-boot-starter-web + + + org.mybatis + mybatis + + + org.mybatis + mybatis-spring + + + com.alibaba + druid + + + mysql + mysql-connector-java + + + com.github.pagehelper + pagehelper + + + + io.springfox + springfox-swagger2 + 2.7.0 + + + io.springfox + springfox-swagger-ui + 2.7.0 + + + org.springframework.boot + spring-boot-test + test + + + org.springframework + spring-test + test + + + + + + + org.springframework.boot + + spring-boot-maven-plugin + 2.1.13.RELEASE + + + ../target + + + + + + repackage + + + + + + + + \ No newline at end of file diff --git a/bootstrap/src/main/java/com/electromagnetic/industry/software/data/manage/bootstrap/Application.java b/bootstrap/src/main/java/com/electromagnetic/industry/software/data/manage/bootstrap/Application.java new file mode 100644 index 0000000..1c15b3e --- /dev/null +++ b/bootstrap/src/main/java/com/electromagnetic/industry/software/data/manage/bootstrap/Application.java @@ -0,0 +1,31 @@ +package com.electromagnetic.industry.software.data.manage.bootstrap; + + +import org.mybatis.spring.annotation.MapperScan; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; + +/** + * @author + */ + +@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}, + scanBasePackages = {"com.electromagnetic.industry.software.data.manage.*", + "electromagnetic.data.framework.share.*"}) +@MapperScan({"com.electromagnetic.industry.software.data.manage.repository"}) +public class Application { + + private static final Logger LOGGER = LoggerFactory.getLogger(Application.class); + + /** + * main start + * @param args + */ + public static void main(String[] args) { + SpringApplication.run(Application.class, args); + LOGGER.info("启动结束"); + } +} \ No newline at end of file diff --git a/bootstrap/src/main/java/com/electromagnetic/industry/software/data/manage/controller/IndicatorCardController.java b/bootstrap/src/main/java/com/electromagnetic/industry/software/data/manage/controller/IndicatorCardController.java new file mode 100644 index 0000000..c8828ca --- /dev/null +++ b/bootstrap/src/main/java/com/electromagnetic/industry/software/data/manage/controller/IndicatorCardController.java @@ -0,0 +1,79 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package com.electromagnetic.industry.software.data.manage.controller; + + +import com.electromagnetic.industry.software.data.manage.facade.IndicatorCardFacade; +import com.electromagnetic.industry.software.data.manage.request.indicator.IndicatorCardRequest; +import com.electromagnetic.industry.software.data.manage.request.indicator.IndicatorDataRequest; +import com.electromagnetic.industry.software.data.manage.response.indicator.IndicatorCardPageResponse; +import electromagnetic.data.framework.share.model.ElectromagneticResult; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @author + * @version $Id: IndicatorCardController.java, v 0.1 2024-07-29 18:21 + */ +@RequestMapping("/indicator") +@RestController +public class IndicatorCardController { + + @Resource + private IndicatorCardFacade indicatorCardFacade; + + @ApiOperation(value = "获取中支指标配置列表",notes = "") + @RequestMapping(value = "/getIndicatorListConfig",method = RequestMethod.POST) + public ElectromagneticResult getIndicatorListConfig(@RequestBody IndicatorCardRequest request){ + return indicatorCardFacade.getIndicatorCardListConfig(request); + } + @ApiOperation(value = "获取首页指标卡配置列表",notes = "") + @RequestMapping(value = "/getHomeIndicatorListConfig",method = RequestMethod.POST) + public ElectromagneticResult getHomeIndicatorListConfig(@RequestBody IndicatorCardRequest request){ + return indicatorCardFacade.getHomeIndicatorListConfig(request); + } + + @ApiOperation(value = "获取中支指标数据",notes = "") + @RequestMapping(value = "/getIndicatorsData",method = RequestMethod.POST) + public ElectromagneticResult getIndicatorsData(@RequestBody IndicatorDataRequest request){ + return indicatorCardFacade.getIndicatorsData(request); + } + @ApiOperation(value = "测试中支指标数据",notes = "") + @RequestMapping(value = "/testIndicatorsData",method = RequestMethod.POST) + public ElectromagneticResult testIndicatorsData(@RequestBody IndicatorDataRequest request){ + return indicatorCardFacade.testIndicatorsData(request); + } + + @ApiOperation(value = "创建指标卡",notes = "") + @RequestMapping(value = "/createIndicatorCard",method = RequestMethod.POST) + public ElectromagneticResult createIndicatorCard(@RequestBody IndicatorCardRequest request){ + return indicatorCardFacade.createIndicatorCard(request); + } + @ApiOperation(value = "修改指标卡",notes = "") + @RequestMapping(value = "/updateIndicatorCard",method = RequestMethod.POST) + public ElectromagneticResult updateIndicatorCard(@RequestBody IndicatorCardRequest request){ + return indicatorCardFacade.updateIndicatorCard(request); + } + @ApiOperation(value = "获取指标卡详情",notes = "") + @RequestMapping(value = "/getIndicatorCardDetail",method = RequestMethod.POST) + public ElectromagneticResult getIndicatorCardDetail(@RequestBody IndicatorCardRequest request){ + return indicatorCardFacade.getIndicatorCardDetail(request); + } + @ApiOperation(value = "获取指标卡详情",notes = "") + @RequestMapping(value = "/updateIndicatorCardOrder",method = RequestMethod.POST) + public ElectromagneticResult updateIndicatorCardOrder(@RequestBody List requests){ + return indicatorCardFacade.updateIndicatorCardOrder(requests); + } + @ApiOperation(value = "指标卡状态更新和删除",notes = "") + @RequestMapping(value = "/updateStatusOrEffect",method = RequestMethod.POST) + public ElectromagneticResult updateStatusOrEffect(@RequestBody IndicatorCardRequest requests){ + return indicatorCardFacade.updateStatusOrEffect(requests); + } +} \ No newline at end of file diff --git a/bootstrap/src/main/java/com/electromagnetic/industry/software/data/manage/controller/config/WebMvcConfig.java b/bootstrap/src/main/java/com/electromagnetic/industry/software/data/manage/controller/config/WebMvcConfig.java new file mode 100644 index 0000000..afa406d --- /dev/null +++ b/bootstrap/src/main/java/com/electromagnetic/industry/software/data/manage/controller/config/WebMvcConfig.java @@ -0,0 +1,30 @@ +/** + * Copyright (c) 2004-2021 All Rights Reserved. + */ +package com.electromagnetic.industry.software.data.manage.controller.config; + +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +/** + * @author + * @version $Id: d.java, v 0.1 2021-01-05 19:33 Exp $$ + */ +@Configuration +public class WebMvcConfig implements WebMvcConfigurer { + /** + * + * @param registry registry + */ + @Override + public void addResourceHandlers(ResourceHandlerRegistry registry) { + registry.addResourceHandler("swagger-ui.html") + .addResourceLocations("classpath:/META-INF/resources/"); + + registry.addResourceHandler("/webjars/**") + .addResourceLocations("classpath:/META-INF/resources/webjars/"); + } + + +} diff --git a/bootstrap/src/main/resources/application.properties b/bootstrap/src/main/resources/application.properties new file mode 100644 index 0000000..a70d14e --- /dev/null +++ b/bootstrap/src/main/resources/application.properties @@ -0,0 +1,27 @@ +#required +spring.application.name=electromagnetic-data +# security +run.mode=NORMAL +com.alipay.env=shared +#log +logging.path=./logs +loggerPath=electromagnetic-data +logging.level.com.aliyun.fsi.insurance=${LOG_LEVEL:INFO} +#日志配置 +logging.config=classpath:${LOG_CONFIG:log4j2-spring.xml} + + +spring.datasource.typd=com.alibaba.druid.pool.DruidDataSource +spring.datasource.url=jdbc:mysql://${DATASOURCE_URL:obproxy-0c63.ops.cloud.cic.inter}:3306/${DATASOURCE_HOST:dataplatform_ptst}?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true&rewriteBatchedStatements=true +spring.datasource.username=${DATASOURCE_NAME:dataplatform@ProjectTest_tenant5#testdb} +spring.datasource.password=${DATASOURCE_PASSWORD:Y7G6v4_3ijn77K_Kbl_U85} + + + +spring.datasource.driver-class-name=com.mysql.jdbc.Driver +spring.datasource.type=com.alibaba.druid.pool.DruidDataSource +mybatis.mapper-locations=classpath:sqlmapper/*.xml +pagehelper.helperDialect=mysql +pagehelper.reasonable=false +server.port=8888 + diff --git a/bootstrap/src/main/resources/log4j.properties b/bootstrap/src/main/resources/log4j.properties new file mode 100644 index 0000000..f15f1e7 --- /dev/null +++ b/bootstrap/src/main/resources/log4j.properties @@ -0,0 +1,5 @@ +log4j.rootLogger=DEBUG, stdout +# Console output... +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n \ No newline at end of file diff --git a/bootstrap/src/main/resources/log4j2-spring-prod.xml b/bootstrap/src/main/resources/log4j2-spring-prod.xml new file mode 100644 index 0000000..199e1fc --- /dev/null +++ b/bootstrap/src/main/resources/log4j2-spring-prod.xml @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bootstrap/src/main/resources/log4j2-spring.xml b/bootstrap/src/main/resources/log4j2-spring.xml new file mode 100644 index 0000000..4a41574 --- /dev/null +++ b/bootstrap/src/main/resources/log4j2-spring.xml @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/domain/domain.iml b/domain/domain.iml new file mode 100644 index 0000000..fbf2a78 --- /dev/null +++ b/domain/domain.iml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/domain/pom.xml b/domain/pom.xml new file mode 100644 index 0000000..77aa05a --- /dev/null +++ b/domain/pom.xml @@ -0,0 +1,52 @@ + + + + + + com.electromagnetic.data + electromagnetic-data + 1.0.0-SNAPSHOT + + + 4.0.0 + com.electromagnetic.data + domain + + + + + + com.electromagnetic.data + facade + + + + org.mapstruct + mapstruct-processor + + + org.mapstruct + mapstruct + + + com.github.pagehelper + pagehelper + + + cn.hutool + hutool-all + + + com.electromagnetic.data + electromagnetic-framework + + + org.slf4j + slf4j-api + + + + + \ No newline at end of file diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/EffectFlagEnum.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/EffectFlagEnum.java new file mode 100644 index 0000000..c4f1636 --- /dev/null +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/EffectFlagEnum.java @@ -0,0 +1,27 @@ +package com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 是否删除枚举 + * + * @author zhangxiong.pt + * @version $Id: EffectFlagEnum.java, v 0.1 2024-08-01 18:18 + */ +@AllArgsConstructor +@Getter +public enum EffectFlagEnum { + /** + * 有效 + */ + EFFECT_FLAG_1(1,"有效"), + /** + * 无效 + */ + EFFECT_FLAG_0(0,"无效"), + ; + private Integer code; + private String desc; + +} \ No newline at end of file diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/IndicatorAnalysisEnum.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/IndicatorAnalysisEnum.java new file mode 100644 index 0000000..9c85d1e --- /dev/null +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/IndicatorAnalysisEnum.java @@ -0,0 +1,38 @@ +package com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 指标分析-模板-数据服务入参 + * + * @author zhangxiong + * @version $Id: BaseCodeParamEnum.java, v 0.1 2024-08-08 17:31 + */ +@Getter +@AllArgsConstructor +public enum IndicatorAnalysisEnum { + DT("dt", "统计日期"), + BRANCH_NO("branch_no", "机构"), + IS_ORG_LV2("is_org_lv2", "是否展示二级机构"), + IS_ORG_LV3("is_org_lv3", "是否展示三级机构"), + IS_ORG_LV4("is_org_lv4", "是否展示四级机构"), + IS_ORG_LV5("is_org_lv5", "是否展示五级机构"), + IS_CUSTOMER_GROUP("is_customer_group", "是否展示客群"), + IS_CHANNEL_MNGMT_DEPT("is_channel_mngmt_dept", "是否展示渠道"), + IS_BOARD_PRODUCT_BIG_TYPE("is_board_product_big_type", "是否展示险种大类"), + IS_PRODUCT_BIG_TYPE("is_product_big_type","是否展示产品大全"), + IS_CURD("is_curd", "是否展示当日"), + IS_CURM("is_curm", "是否展示当月"), + IS_CURY("is_cury", "是否展示当年"), + /** + * 请求入参 + */ + CURD("day", "当日"), + CURM("month", "当月"), + CURY("year", "当年"), + ; + + private String code; + private String desc; +} \ No newline at end of file diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/IndicatorAscribeEnum.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/IndicatorAscribeEnum.java new file mode 100644 index 0000000..a01f58b --- /dev/null +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/IndicatorAscribeEnum.java @@ -0,0 +1,22 @@ +package com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 归因结论枚举 + * + * @author zhangxiong.pt + * @version $Id: IndicatorAscribeEnum.java, v 0.1 2024-08-14 10:10 + */ +@Getter +@AllArgsConstructor +public enum IndicatorAscribeEnum { + + INDEX_ID("index_id", "指标ID"), + DIM_COMBINE("dim_combine","维度组合"), + ; + + private String code; + private String desc; +} \ No newline at end of file diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/IndicatorCardHomeDisplayEnum.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/IndicatorCardHomeDisplayEnum.java new file mode 100644 index 0000000..73759fb --- /dev/null +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/IndicatorCardHomeDisplayEnum.java @@ -0,0 +1,25 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 首页是否显示 + * @author + * @version $Id: IndicatorCardHomeDisplayEnum.java, v 0.1 2024-07-26 17:18 + */ +@AllArgsConstructor +@Getter +public enum IndicatorCardHomeDisplayEnum { + + DISPLAY("display","显示"), + HIDE("hide","隐藏"), + ; + /*编码*/ + private String code; + /*描述*/ + private String desc; +} \ No newline at end of file diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/IndicatorCardStatusEnum.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/IndicatorCardStatusEnum.java new file mode 100644 index 0000000..e719ff0 --- /dev/null +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/IndicatorCardStatusEnum.java @@ -0,0 +1,26 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 指标卡状态 + * @author + * @version $Id: IndicatorCardStatusEnum.java, v 0.1 2024-08-19 9:39 + */ +@AllArgsConstructor +@Getter +public enum IndicatorCardStatusEnum { + + ENABLE("Enable","启用"), + DISABLE("Disable","禁用"), + ; + + /*编码*/ + private String code; + /*描述*/ + private String desc; +} \ No newline at end of file diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/IndicatorCardTypeEnum.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/IndicatorCardTypeEnum.java new file mode 100644 index 0000000..614afb8 --- /dev/null +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/IndicatorCardTypeEnum.java @@ -0,0 +1,30 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 指标卡类型 + * @author + * @version $Id: IndicatorCardTypeEnum.java, v 0.1 2024-07-30 16:25 + */ +@AllArgsConstructor +@Getter +public enum IndicatorCardTypeEnum { + + ALL("","全部"), + SCALE("SCALE","规模"), + QUALITY("QUALITY","品质"), + FINANCE("FINANCE","财务管理"), + CUSTOM("CUSTOM","客户"), + SETTLEMENT("SETTLEMENT","理赔"), + RANKS("RANKS","队伍"), + ; + /*编码*/ + private String code; + /*描述*/ + private String desc; +} \ No newline at end of file diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/IndicatorCardWarningFlagEnum.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/IndicatorCardWarningFlagEnum.java new file mode 100644 index 0000000..0b7708a --- /dev/null +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/IndicatorCardWarningFlagEnum.java @@ -0,0 +1,25 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 支持预警 + * @author + * @version $Id: IndicatorCardWarningFlagEnum.java, v 0.1 2024-07-26 17:18 + */ +@Getter +@AllArgsConstructor +public enum IndicatorCardWarningFlagEnum { + + CORRECT("correct","是"), + DENY("deny","否"), + ; + /*编码*/ + private String code; + /*描述*/ + private String desc; +} \ No newline at end of file diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/IndicatorFieldEnum.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/IndicatorFieldEnum.java new file mode 100644 index 0000000..355ede7 --- /dev/null +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/IndicatorFieldEnum.java @@ -0,0 +1,34 @@ +package com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 指标字段枚举 + * + * @author zhangxiong.pt + * @version $Id: IndicatorFieldEnum.java, v 0.1 2024-08-14 18:10 + */ +@Getter +@AllArgsConstructor +public enum IndicatorFieldEnum { + /** + * 签单保费 + */ + CURM_SIGN_PREMIUM("curm_sign_premium", "签单保费", "1"), + COMPR_COMP_COST_RATE("compr_cost_rate", "综合成本率", "2"), + UNKNOW("unknow", "未知", "-1"); + + private String code; + private String desc; + private String indexId; + + public static String getIndexId(String code) { + for (IndicatorFieldEnum indicatorFieldEnum : IndicatorFieldEnum.values()) { + if (indicatorFieldEnum.getCode().equals(code)) { + return indicatorFieldEnum.getIndexId(); + } + } + return IndicatorFieldEnum.UNKNOW.getIndexId(); + } +} \ No newline at end of file diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/IndicatorOrgConfigStatusEnum.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/IndicatorOrgConfigStatusEnum.java new file mode 100644 index 0000000..95d18d2 --- /dev/null +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/IndicatorOrgConfigStatusEnum.java @@ -0,0 +1,25 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 中支配置状态 + * @author + * @version $Id: IndicatorOrgConfigTypeEnum.java, v 0.1 2024-07-26 17:18 + */ +@Getter +@AllArgsConstructor +public enum IndicatorOrgConfigStatusEnum { + + FINISH("finish","已设置"), + NOTSET("notSet","未设置"), + ; + /*编码*/ + private String code; + /*描述*/ + private String desc; +} \ No newline at end of file diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/IndicatorOrgConfigTypeEnum.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/IndicatorOrgConfigTypeEnum.java new file mode 100644 index 0000000..0f7b693 --- /dev/null +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/IndicatorOrgConfigTypeEnum.java @@ -0,0 +1,25 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 中支配置类型 + * @author + * @version $Id: IndicatorOrgConfigTypeEnum.java, v 0.1 2024-07-26 17:18 + */ +@Getter +@AllArgsConstructor +public enum IndicatorOrgConfigTypeEnum { + + HOME("home","首页"), + WARNING("warning","预警"), + ; + /*编码*/ + private String code; + /*描述*/ + private String desc; +} \ No newline at end of file diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/IndicatorOrgEnum.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/IndicatorOrgEnum.java new file mode 100644 index 0000000..df9ef15 --- /dev/null +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/IndicatorOrgEnum.java @@ -0,0 +1,21 @@ +package com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 机构排行枚举类 + * + * @author zhangxiong.pt + * @version $Id: IndicatorOrgEnum.java, v 0.1 2024-08-14 11:09 + */ +@Getter +@AllArgsConstructor +public enum IndicatorOrgEnum { + + DATE_TYPE("date_type", "日期类型") + ; + + private String code; + private String desc; +} \ No newline at end of file diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/IndicatorTypeEnum.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/IndicatorTypeEnum.java new file mode 100644 index 0000000..aafb8cb --- /dev/null +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/enums/IndicatorTypeEnum.java @@ -0,0 +1,23 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * @author + * @version $Id: IndicatorType.java, v 0.1 2024-07-26 17:54 + */ +@AllArgsConstructor +@Getter +public enum IndicatorTypeEnum { + HOST("host","主指标"), + ASSOCIATION("association","联指标"), + ; + /*编码*/ + private String code; + /*描述*/ + private String desc; +} \ No newline at end of file diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/model/Indicator.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/model/Indicator.java new file mode 100644 index 0000000..76c031b --- /dev/null +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/model/Indicator.java @@ -0,0 +1,86 @@ +package com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.model; + +import lombok.Data; + +import java.util.Date; + +/** + * 指标表 + */ +@Data +public class Indicator { + /** + * 主键ID + */ + private Long id; + /** + * 指标编码 + */ + private String indicatorNo; + /** + * 指标卡编码 + */ + private String indicatorCardNo; + /** + * 指标类型:主指标host,关联指标association + */ + private String indicatorType; + /** + * 指标名称 + */ + private String indicatorName; + /** + * 指标字段 + */ + private String standardField; + /** + * 数据标准编码 + */ + private String standardNo; + /** + * 指标单位 + */ + private String indicatorUnit; + /** + * 指标定义 + */ + private String indicatorDefine; + /** + * 数据更新类型:实时real,T+1 yester + */ + private String renewType; + /** + * 是否支持预警:是correct,否deny' + */ + private String warningIndicator; + /** + * 创建人 + */ + private String creator; + /** + * 创建人姓名 + */ + private String creatorName; + /** + * 创建时间 + */ + private Date gmtCreate; + /** + * 更新人 + */ + private String modifier; + /** + * 更新人姓名 + */ + private String modifierName; + /** + * 更新时间 + */ + private Date gmtModified; + /** + * 是否有效:0-无效 1-有效 + */ + private Integer effectFlag; + + +} \ No newline at end of file diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/model/IndicatorCard.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/model/IndicatorCard.java new file mode 100644 index 0000000..0f9344c --- /dev/null +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/model/IndicatorCard.java @@ -0,0 +1,88 @@ +package com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.model; + +import lombok.Data; + +import java.util.Date; + +/** + * 指标卡 + */ +@Data +public class IndicatorCard { + /** + * 主键ID + */ + private Long id; + /** + * 指标卡编码 + */ + private String indicatorCardNo; + /** + * 指标卡名称 + */ + private String indicatorCardName; + /** + * 指标卡类型 + */ + private String indicatorCardType; + /** + * 数据服务编码 + */ + private String dataserviceNo; + /** + * 数据服务名称 + */ + private String dataserviceName; + /** + * 默认显示顺序 + */ + private Integer indicatorCardOrder; + /** + * 权限控制 + */ + private String accessControl; + /** + * 首页是否显示,display显示,hide隐藏 + */ + private String homeDisplay; + /** + * 支持预警:是correct,否deny + */ + private String warningFlag; + /** + * 模板编码 + */ + private String templateNos; + /** + * 指标卡状态 + */ + private String cardStatus; + /** + * 创建人 + */ + private String creator; + /** + * 创建人姓名 + */ + private String creatorName; + /** + * 创建时间 + */ + private Date gmtCreate; + /** + * 更新人 + */ + private String modifier; + /** + * 更新人姓名 + */ + private String modifierName; + /** + * 更新时间 + */ + private Date gmtModified; + /** + * 是否有效:0-无效 1-有效 + */ + private Integer effectFlag; +} \ No newline at end of file diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/model/IndicatorCardDetial.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/model/IndicatorCardDetial.java new file mode 100644 index 0000000..b459fce --- /dev/null +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/model/IndicatorCardDetial.java @@ -0,0 +1,27 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.model; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @author + * @version $Id: IndicatorCardDetial.java, v 0.1 2024-08-14 11:14 + */ +@Data +public class IndicatorCardDetial implements Serializable { + private static final long serialVersionUID = 3240621575594769160L; + /** + * 指标卡 + */ + private IndicatorCard indicatorCard; + /** + * 指标列表 + */ + private List indicatorList; + +} \ No newline at end of file diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/model/IndicatorCardExtend.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/model/IndicatorCardExtend.java new file mode 100644 index 0000000..7ef700d --- /dev/null +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/model/IndicatorCardExtend.java @@ -0,0 +1,113 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.model; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 指标卡扩展模型 + * @author + * @version $Id: IndicatorCardExtends.java, v 0.1 2024-07-29 16:50 + */ +@Data +public class IndicatorCardExtend implements Serializable { + private static final long serialVersionUID = -3740781311783249505L; + + /** + * 主键ID + */ + private Long id; + /** + * 指标卡编码 + */ + private String indicatorCardNo; + /** + * 指标卡名称 + */ + private String indicatorCardName; + /** + * 指标卡类型 + */ + private String indicatorCardType; + /** + * 数据服务编码 + */ + private String dataserviceNo; + /** + * 数据服务名称 + */ + private String dataserviceName; + + /** + * 默认显示顺序 + */ + private Integer indicatorCardOrder; + /** + * 权限控制 + */ + private String accessControl; + /** + * 首页是否显示,display显示,hide隐藏 + */ + private String homeDisplay; + /** + * 支持预警:是correct,否deny + */ + private String warningFlag; + /** + * 下钻模板编码 + */ + private String templateNos; + /** + * 首页配置 + */ + private String home; + /** + * 告警配置 + */ + private String warning; + /** + * 指标卡状态 + */ + private String cardStatus; + /** + * 数据更新类型:实时real,T+1 yester + */ + private String renewType; + /** + * 是否支持预警:是correct,否deny' + */ + private String warningIndicator; + /** + * 创建人 + */ + private String creator; + /** + * 创建人姓名 + */ + private String creatorName; + /** + * 创建时间 + */ + private Date gmtCreate; + /** + * 更新人 + */ + private String modifier; + /** + * 更新人姓名 + */ + private String modifierName; + /** + * 更新时间 + */ + private Date gmtModified; + /** + * 是否有效:0-无效 1-有效 + */ + private Integer effectFlag; +} \ No newline at end of file diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/model/IndicatorCardPage.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/model/IndicatorCardPage.java new file mode 100644 index 0000000..b4d1765 --- /dev/null +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/model/IndicatorCardPage.java @@ -0,0 +1,29 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.model; + +import com.github.pagehelper.PageInfo; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * 分页综合返回 + * @author + * @version $Id: IndicatorCardPage.java, v 0.1 2024-08-14 17:30 + */ +@Data +public class IndicatorCardPage implements Serializable { + private static final long serialVersionUID = -6207631048120337133L; + /** + * 指标卡 + */ + private PageInfo indicatorCardExtends; + /** + * 指标 + */ + private List indicators; + +} \ No newline at end of file diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/model/IndicatorOrgConfig.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/model/IndicatorOrgConfig.java new file mode 100644 index 0000000..8f8f3e0 --- /dev/null +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/model/IndicatorOrgConfig.java @@ -0,0 +1,74 @@ +package com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.model; + +import lombok.Data; + +import java.util.Date; + +/** + * 指标中支配置 + */ + +@Data +public class IndicatorOrgConfig { + /** + * 主键ID + */ + private Long id; + /** + * 指标编码 + */ + private String indicatorNo; + /** + * 指标卡编码 + */ + private String indicatorCardNo; + /** + * 中支编码 + */ + private String orgCode; + /** + * 类型:首页home,预警warning + */ + private String configType; + /** + * 状态:已设置finish,未设置notSet + */ + private String configStatus; + + /** + * 预警规则code + */ + private String ruleCode; + /** + * 预警规则 + */ + private String ruleObj; + /** + * 创建人 + */ + private String creator; + /** + * 创建人姓名 + */ + private String creatorName; + /** + * 创建时间 + */ + private Date gmtCreate; + /** + * 更新人 + */ + private String modifier; + /** + * 更新人姓名 + */ + private String modifierName; + /** + * 更新时间 + */ + private Date gmtModified; + /** + * 是否有效:0-无效 1-有效 + */ + private Integer effectFlag; +} \ No newline at end of file diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/parames/IndicatorCardParams.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/parames/IndicatorCardParams.java new file mode 100644 index 0000000..566c220 --- /dev/null +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/parames/IndicatorCardParams.java @@ -0,0 +1,58 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.parames; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @author + * @version $Id: IndicatorCardParams.java, v 0.1 2024-07-29 18:17 + */ +@Data +public class IndicatorCardParams implements Serializable { + private static final long serialVersionUID = -3000072995448373089L; + /** + * 指标卡类型 + */ + private String indicatorCardType; + /** + * 主指标名称 + */ + private String indicatorName; + /** + * 机构编码 + */ + private String orgCode; + /** + * 操作用户id + */ + private String userId; + + /** + *人员姓名 + */ + private String personName; + /** + * 权限控制 + */ + private String accessControl; + /** + * 当前页 + */ + private Integer pageIndex; + /** + * 每页数据 + */ + private Integer pageSize; + /** + * 首页类型 + */ + private String homeType; + /** + * 指标卡状态 + */ + private String cardStatus; +} \ No newline at end of file diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/parames/IndicatorOrgConfigParams.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/parames/IndicatorOrgConfigParams.java new file mode 100644 index 0000000..4c34d27 --- /dev/null +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/parames/IndicatorOrgConfigParams.java @@ -0,0 +1,43 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.parames; + +import lombok.Data; + +import java.io.Serializable; +import java.time.LocalDate; +import java.util.List; + +/** + */ +@Data +public class IndicatorOrgConfigParams implements Serializable { + + private static final long serialVersionUID = 4624289977072479498L; + /** + * 指标编码 + */ + private String indicatorNo; + /** + * 指标卡编码 + */ + private String indicatorCardNo; + /** + * 中支编码 + */ + private String orgCode; + /** + * 类型:首页home,预警warning + */ + private String configType; + /** + * 时间 + */ + private LocalDate triggerDate; + /** + * 指标编码集合 + */ + private List indicatorNos; + +} \ No newline at end of file diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/parames/IndicatorParams.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/parames/IndicatorParams.java new file mode 100644 index 0000000..38523a5 --- /dev/null +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/parames/IndicatorParams.java @@ -0,0 +1,41 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.parames; + +import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.model.Indicator; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @author + * @version $Id: IndicatorParams.java, v 0.1 2024-07-30 19:07 + */ +@Data +public class IndicatorParams implements Serializable { + + private static final long serialVersionUID = -7465169279945884415L; + /** + * 指标卡编码 + */ + private String indicatorCardNo; + /** + * 服务编码(服务测试使用) + */ + private String dataserviceNo; + /** + * 统计日期 + */ + private String dt; + /** + * 指标配置 + */ + private List indicatorList; + + /** + * 指标编码集合 + */ + private List indicatorNos; +} \ No newline at end of file diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/repository/IndicatorCardRepository.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/repository/IndicatorCardRepository.java new file mode 100644 index 0000000..1779a3f --- /dev/null +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/repository/IndicatorCardRepository.java @@ -0,0 +1,64 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.repository; + +import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.model.IndicatorCard; +import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.model.IndicatorCardExtend; +import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.parames.IndicatorCardParams; +import com.github.pagehelper.PageInfo; + +import java.util.List; + +/** + * @author + * @version $Id: IndicatorCardRepos.java, v 0.1 2024-07-29 19:02 + */ +public interface IndicatorCardRepository { + + /** + * 获取中支指标配置列表 + * @param parames + * @return + */ + PageInfo getIndicatorCardListConfig(IndicatorCardParams parames); + + /** + * 根据indicatorCardNo获取指标卡 + * @param indicatorCardNo + * @return + */ + IndicatorCard getIndicatorCard(String indicatorCardNo); + /** + * 获取指标卡最新顺序 + * @return + */ + IndicatorCard getIndicatorCardOrder(); + + /** + * 指标卡插入 + * @param indicatorCard + * @return + */ + int insert(IndicatorCard indicatorCard); + /** + * 指标卡更新 + * @param indicatorCard + * @return + */ + int update(IndicatorCard indicatorCard); + + /** + * 指标卡状态更新和删除 + * @param indicatorCard + * @return + */ + int updateStatusOrEffect(IndicatorCard indicatorCard); + + /** + * 修改指标卡顺序 + * @param list + * @return + */ + int updateIndicatorCardOrder(List list); +} \ No newline at end of file diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/service/IndicatorCardService.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/service/IndicatorCardService.java new file mode 100644 index 0000000..5410d9e --- /dev/null +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/service/IndicatorCardService.java @@ -0,0 +1,59 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.service; + +import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.model.IndicatorCard; +import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.model.IndicatorCardDetial; +import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.model.IndicatorCardPage; +import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.parames.IndicatorCardParams; + +import java.util.List; + +/** + * 指标卡管理 + * @author + * @version $Id: IndicatorCardService.java, v 0.1 2024-07-26 17:20 + */ +public interface IndicatorCardService { + + /** + * 获取中支指标配置列表 + * @param parames + * @return + */ + IndicatorCardPage getIndicatorCardListConfig(IndicatorCardParams parames); + /** + * 获取首页指标卡配置列表 + * @param parames + * @return + */ + IndicatorCardPage getHomeIndicatorListConfig(IndicatorCardParams parames); + /** + * 获取指标卡 + * @param indicatorCard + * @return + */ + IndicatorCard getIndicatorCard(IndicatorCard indicatorCard); + + /** + * 获取指标卡详情 + * @param indicatorCard + * @return + */ + IndicatorCardDetial getIndicatorCardDetail(IndicatorCard indicatorCard); + + /** + * 修改指标卡顺序 + * @param indicatorCards + * @return + */ + Boolean updateIndicatorCardOrder(List indicatorCards); + + /** + * 指标卡状态更新和删除 + * @param indicatorCard + * @return + */ + Boolean updateStatusOrEffect(IndicatorCard indicatorCard); +} \ No newline at end of file diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/service/impl/IndicatorCardServiceImpl.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/service/impl/IndicatorCardServiceImpl.java new file mode 100644 index 0000000..b2bf38f --- /dev/null +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/service/impl/IndicatorCardServiceImpl.java @@ -0,0 +1,143 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.service.impl; + +import com.electromagnetic.industry.software.data.manage.common.ElectromagneticErrorEnum; +import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.enums.EffectFlagEnum; +import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.enums.IndicatorCardHomeDisplayEnum; +import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.enums.IndicatorCardStatusEnum; +import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.model.*; +import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.parames.IndicatorCardParams; +import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.repository.IndicatorCardRepository; +import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.service.IndicatorCardService; +import com.github.pagehelper.PageInfo; +import electromagnetic.data.framework.share.enums.ElectromagneticSceneIncidentEnum; +import electromagnetic.data.framework.share.exception.ElectromagneticBizRuntimeException; +import electromagnetic.data.framework.share.exception.LoggerConstant; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + +/** + * @author + * @version $Id: IndicatorCardServiceImpl.java, v 0.1 2024-07-26 17:20 + */ +@Service +public class IndicatorCardServiceImpl implements IndicatorCardService { + + private static final Logger LOGGER = LoggerFactory.getLogger(LoggerConstant.DOMAIN_SERVICE); + + @Resource + private IndicatorCardRepository indicatorCardRepository; + /** + * 获取中支指标配置列表 + * @param parames + * @return + */ + @Override + public IndicatorCardPage getIndicatorCardListConfig(IndicatorCardParams parames) { + IndicatorCardPage indicatorCardPage=new IndicatorCardPage(); + //数据查询 + PageInfo pageInfo=indicatorCardRepository.getIndicatorCardListConfig(parames); + List indicatorCardStrings=new ArrayList<>(); + pageInfo.getList().forEach(e->indicatorCardStrings.add(e.getIndicatorCardNo())); + //查询指标 + indicatorCardPage.setIndicatorCardExtends(pageInfo); + return indicatorCardPage; + } + + /** + * 获取首页指标卡配置列表 + * @param parames + * @return + */ + @Override + public IndicatorCardPage getHomeIndicatorListConfig(IndicatorCardParams parames) { + //获取指标卡 + parames.setHomeType(IndicatorCardHomeDisplayEnum.DISPLAY.getCode()); + parames.setCardStatus(IndicatorCardStatusEnum.ENABLE.getCode()); + IndicatorCardPage indicatorCardPage=getIndicatorCardListConfig(parames); + List indicatorList=indicatorCardPage.getIndicators(); + return indicatorCardPage; + } + + /** + * 获取指标卡 + * @param indicatorCard + * @return + */ + @Override + public IndicatorCard getIndicatorCard(IndicatorCard indicatorCard) { + return indicatorCardRepository.getIndicatorCard(indicatorCard.getIndicatorCardNo()); + } + + /** + * 获取指标卡详情 + * @param indicatorCard + * @return + */ + @Override + public IndicatorCardDetial getIndicatorCardDetail(IndicatorCard indicatorCard) { + //获取指标卡 + indicatorCard=indicatorCardRepository.getIndicatorCard(indicatorCard.getIndicatorCardNo()); + IndicatorCardDetial indicatorCardDetial=new IndicatorCardDetial(); + indicatorCardDetial.setIndicatorCard(indicatorCard); + return indicatorCardDetial; + } + + /** + * 修改指标卡顺序 + * @param indicatorCards + * @return + */ + @Override + public Boolean updateIndicatorCardOrder(List indicatorCards) { + indicatorCardRepository.updateIndicatorCardOrder(indicatorCards); + return Boolean.TRUE; + } + + /** + * 指标卡更新和删除 + * @param indicatorCard + * @return + */ + @Override + public Boolean updateStatusOrEffect(IndicatorCard indicatorCard) { + if(StringUtils.isEmpty(indicatorCard.getCardStatus())&&StringUtils.isEmpty(indicatorCard.getEffectFlag())){ + throw ElectromagneticBizRuntimeException.of(ElectromagneticSceneIncidentEnum.WISDOM_INDICATOR_CARD, + ElectromagneticErrorEnum.INDICATORCARD_UPDATESTATUSOREFFECT_ERROR); + } + try { + IndicatorCard card=new IndicatorCard(); + //唯一编码赋值 + card.setIndicatorCardNo(indicatorCard.getIndicatorCardNo()); + //校验状态是否正确 + if(IndicatorCardStatusEnum.DISABLE.getCode().equals(indicatorCard.getCardStatus())|| + IndicatorCardStatusEnum.ENABLE.getCode().equals(indicatorCard.getCardStatus())){ + card.setCardStatus(indicatorCard.getCardStatus()); + } + //校验删除状态是否正经 + if(EffectFlagEnum.EFFECT_FLAG_0.getCode().equals(indicatorCard.getEffectFlag())){ + card.setEffectFlag(EffectFlagEnum.EFFECT_FLAG_0.getCode()); + + } + indicatorCardRepository.updateStatusOrEffect(indicatorCard); + }catch (Exception e){ + if(ElectromagneticBizRuntimeException.class.equals(e.getClass())){ + throw e; + } + throw ElectromagneticBizRuntimeException.of(ElectromagneticSceneIncidentEnum.WISDOM_INDICATOR_CARD, + ElectromagneticErrorEnum.INDICATORCARD_INVALID_OPERATION); + } + return Boolean.TRUE; + } + + + +} \ No newline at end of file diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/util/IndicatorContent.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/util/IndicatorContent.java new file mode 100644 index 0000000..76686e2 --- /dev/null +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/util/IndicatorContent.java @@ -0,0 +1,17 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.util; + +/** + * @author + * @version $Id: IndicatorContent.java, v 0.1 2024-08-16 16:14 + */ +public class IndicatorContent { + + /** + * 默认指标卡序号 + */ + public final static int defaultIndicatorCardOrder=1; + +} \ No newline at end of file diff --git a/electromagnetic-data.iml b/electromagnetic-data.iml new file mode 100644 index 0000000..f409c0e --- /dev/null +++ b/electromagnetic-data.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/electromagnetic-framework/electromagnetic-framework.iml b/electromagnetic-framework/electromagnetic-framework.iml new file mode 100644 index 0000000..defc2cc --- /dev/null +++ b/electromagnetic-framework/electromagnetic-framework.iml @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/electromagnetic-framework/framework.iml b/electromagnetic-framework/framework.iml new file mode 100644 index 0000000..a8865ec --- /dev/null +++ b/electromagnetic-framework/framework.iml @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/electromagnetic-framework/pom.xml b/electromagnetic-framework/pom.xml new file mode 100644 index 0000000..7a1b726 --- /dev/null +++ b/electromagnetic-framework/pom.xml @@ -0,0 +1,68 @@ + + + 4.0.0 + + + com.electromagnetic.data + electromagnetic-data + 1.0.0-SNAPSHOT + + + com.electromagnetic.data + electromagnetic-framework + 1.0.2.1-SNAPSHOT + + + + org.springframework.boot + spring-boot-starter-aop + + + com.github.pagehelper + pagehelper + + + com.alibaba + fastjson + + + + cn.hutool + hutool-all + + + org.projectlombok + lombok + compile + + + org.slf4j + slf4j-api + + + org.apache.commons + commons-lang3 + + + com.google.guava + guava + + + javax.validation + validation-api + + + org.hibernate.validator + hibernate-validator + + + + junit + junit + test + + + + \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/common/ParamsConstants.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/common/ParamsConstants.java new file mode 100644 index 0000000..19f9348 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/common/ParamsConstants.java @@ -0,0 +1,53 @@ +/** + * Alibaba.com Inc. Copyright (c) 2004-2021 All Rights Reserved. + */ +package electromagnetic.data.framework.share.common; + +/** + * @author + * @version v 0.1 + * @Date 2021-01-07 18:16 + */ + +public final class ParamsConstants { + + public static final Integer NUM_ZERO = 0; + + public static final Integer NUM_ONE = 1; + + public static final Integer NUM_TWO = 2; + + public static final Integer AUDIT_PASS=4; + + public static final Integer AUDIT_REJECT=3; + + public static final Integer QUANTITY_NATIVE = -1; + + public static final Integer QUANTITY_ZERO = 0; + + public static final Integer QUANTITY_ONE = 1; + + public static final Integer QUANTITY_TWO = 2; + + public static final Integer GRANTED_TO_CONSUMED = 1; + + public static final Integer PRECONSUMED_TO_CONSUMED = 2; + + public static final Integer GRANTED_TO_PRECONSUMED= 3; + + //因子域入参租户对应 + public static final String TENANT="1"; + + public static final String DOMAIN_NAME= "electromagnetic"; + + public static final String FLOW_NAME= "test-request"; + + public static final Integer FLOW_PARAM=5; + + public static final String TIME_FORMAT="yyyy-MM-dd HH:mm:ss"; + + public static final String DELIMITER=","; + + //2021/03/16 规则 添加ruleSetName必填字段 + public static final String RULE_SET_NAME="consumeRule"; +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/config/DefaultValidationTool.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/config/DefaultValidationTool.java new file mode 100644 index 0000000..531b457 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/config/DefaultValidationTool.java @@ -0,0 +1,87 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package electromagnetic.data.framework.share.config; + +import electromagnetic.data.framework.share.exception.BizRuntimeException; +import electromagnetic.data.framework.share.util.DefaultValidationResult; +import electromagnetic.data.framework.share.util.Failed; +import electromagnetic.data.framework.share.util.Functions; +import electromagnetic.data.framework.share.util.Results; +import electromagnetic.data.framework.share.validation.ValidationResult; +import electromagnetic.data.framework.share.validation.ValidationTool; +import electromagnetic.data.framework.share.util.*; +import org.hibernate.validator.HibernateValidator; +import org.hibernate.validator.HibernateValidatorConfiguration; +import org.springframework.beans.factory.InitializingBean; + +import javax.validation.ConstraintViolation; +import javax.validation.Validation; +import javax.validation.ValidatorFactory; +import java.util.Set; +import java.util.function.BiFunction; +import java.util.function.Consumer; +import javax.validation.Validator; + +/** + * 默认的验证工具实现,支持函数化的编程方式 + * @author wsk + * @version $Id: DefaultValidationTool.java, v 0.1 2024-10-20 19:14 wsk + */ +public class DefaultValidationTool implements ValidationTool, InitializingBean { + + /** + * Bean Validator + */ + private Validator validator; + + @Override + @SuppressWarnings("ALL") + public ValidationResult validate(T param, Consumer successFunc, BiFunction failFunc) { + if (successFunc == null || failFunc == null) { + throw new IllegalArgumentException(""); + } + + DefaultValidationResult validationResult; + if (param == null) { + validationResult = Results.failResult("param", "paramIsNull", "NotNull"); + } else { + Set> constraintViolations = validator.validate(param); + validationResult = constraintViolations.stream() + .findFirst() + .map(Results::failResult) + .orElseGet(Results::successResult); + } + + if (validationResult.isPass()) { + successFunc.accept(param); + } else { + R apply = failFunc.apply(param, validationResult); + // 如果是异常类型,则直接 + if (apply instanceof BizRuntimeException) { + throw (BizRuntimeException) apply; + } + + validationResult.setResult(apply); + } + + return (ValidationResult) validationResult; + } + + @Override + public ValidationResult validate(T param, BiFunction failFunc) { + return validate(param, Functions.getDummyConsumer(), failFunc); + } + + @Override + public ValidationResult validate(T param) { + return validate(param, Functions.getDummyConsumer(), Functions.getDummyBiFunction()); + } + + @Override + public void afterPropertiesSet() { + HibernateValidatorConfiguration configuration = Validation.byProvider(HibernateValidator.class).configure(); + ValidatorFactory factory = configuration.failFast(true).buildValidatorFactory(); + this.validator = (Validator) factory.getValidator(); + } +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/config/ValidationToolAutoConfiguration.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/config/ValidationToolAutoConfiguration.java new file mode 100644 index 0000000..eacf013 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/config/ValidationToolAutoConfiguration.java @@ -0,0 +1,35 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package electromagnetic.data.framework.share.config; + +import electromagnetic.data.framework.share.validation.SimpleValidationTool; +import electromagnetic.data.framework.share.validation.ValidationTool; +import electromagnetic.data.framework.share.util.DefaultSimpleValidationTool; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * 自动配置 + */ +@Configuration +@ConditionalOnClass({DefaultValidationTool.class, DefaultSimpleValidationTool.class}) +public class ValidationToolAutoConfiguration { + + @Bean("validationTool") + @ConditionalOnMissingBean + public ValidationTool validationTool() { + return new DefaultValidationTool(); + } + + @Bean("simpleValidationTool") + @ConditionalOnMissingBean + public SimpleValidationTool simpleValidationTool( + @Autowired @Qualifier("validationTool") ValidationTool validationTool) { + return new DefaultSimpleValidationTool(validationTool); + } +} diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/constants/ElectromagneticConstants.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/constants/ElectromagneticConstants.java new file mode 100644 index 0000000..85ff251 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/constants/ElectromagneticConstants.java @@ -0,0 +1,41 @@ +/** + * Alibaba.com Inc. Copyright (c) 2004-2021 All Rights Reserved. + */ +package electromagnetic.data.framework.share.constants; + +/** + * @author + * @version v 0.1 + * @Date 2021-02-25 11:54 + */ + +public final class ElectromagneticConstants { + + public static final String BIZ_SCENE_INCIDENT_PREFIX ="CE1511010"; + + public static final String SYS_SCENE_INCIDENT_PREFIX ="CE1501010"; + + + public static final String THIRD_PARTY_SCENE_INCIDENT_PREFIX ="CE1521010"; + + public static final String UNCLASSIFIED_SCENE_INCIDENT_PREFIX ="CE1591010"; + + + public static final String CODE ="1010"; + + public static final String PREFIX_CODE = "CE1"; + + public static final String PLAY_SIGN="P1"; + + public static final String BENEFIT_COUPON_SIGN="R1"; + + public static final String COUPON_ORDER_SIGN="R2"; + + public static final String ACTIVITY_SIGN="AT"; + + public static final String SEQUENCE_SEGMENT="SequenceSegment"; + + public static final String TAG_SEGMENT="TagSegment"; + + public static final String TYPE_SEGMENT="TypeSegment"; +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/enums/CommonResultCode.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/enums/CommonResultCode.java new file mode 100644 index 0000000..4ad8b0e --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/enums/CommonResultCode.java @@ -0,0 +1,26 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package electromagnetic.data.framework.share.enums; + +/** + * @author wsk + * @version $Id: CommonResultCode.java, v 0.1 2024-10-17 17:53 wsk + */ +public interface CommonResultCode { + + /** + * 获取结果码对应的Code。 + * + * @return 结果码 + */ + public String getResultCode(); + + /** + * 获取结果码对应的描述信息。 + * + * @return 描述信息 + */ + public String getResultMsg(); + +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/enums/ElectromagneticCommonErrorEnum.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/enums/ElectromagneticCommonErrorEnum.java new file mode 100644 index 0000000..7b1f76b --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/enums/ElectromagneticCommonErrorEnum.java @@ -0,0 +1,53 @@ +/** + * Copyright (c) 2004-2021 All Rights Reserved. + */ +package electromagnetic.data.framework.share.enums; + +import lombok.Getter; + +/** + * @author + * @version $Id: ErrorEnum.java, v 0.1 2021-02-25 15:38 Exp $$ + */ +@Getter +public enum ElectromagneticCommonErrorEnum implements ErrorEnum { + + + SYSTEM_ERROR(ErrorLevels.ERROR, ErrorTypes.SYSTEM,"001","ILLEGAL_PARAMS", "系统异常"), + + + ILLEGAL_PARAMS(ErrorLevels.ERROR, ErrorTypes.SYSTEM,"001","ILLEGAL_PARAMS", "非法参数"), + + RPC_CALL_FAILED(ErrorLevels.ERROR,ErrorTypes.SYSTEM, "400", "RPC CALL FAILED", "rpc 调用远端失败"), + RPC_CALL_EXCEPTION(ErrorLevels.ERROR,ErrorTypes.SYSTEM, "401", "RPC CALL EXCEPTION", "rpc 调用远端异常"), + + RPC_PROVIDER_FAILED(ErrorLevels.ERROR,ErrorTypes.SYSTEM, "500", "RPC PROVIDER FAILED", "rpc 提供失败"), + + RPC_PROVIDER_EXCEPTION(ErrorLevels.ERROR,ErrorTypes.SYSTEM, "502", "RPC PROVIDER EXCEPTION", "rpc 提供异常"), + + ; + private final String codeLevel; + + private final String codeType; + + + private final String code; + + private final String errorMsg; + + private final String errorDesc; + + ElectromagneticCommonErrorEnum(String codeLevel, String codeType, String code, String errorMsg, String errorDesc) { + this.code = code; + this.errorMsg = errorMsg; + this.errorDesc = errorDesc; + this.codeType=codeType; + this.codeLevel=codeLevel; + } + + + @Override + public String getErrorMessage() { + return null; + } +} diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/enums/ElectromagneticEnum.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/enums/ElectromagneticEnum.java new file mode 100644 index 0000000..d11a279 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/enums/ElectromagneticEnum.java @@ -0,0 +1,34 @@ +/** + * Copyright (c) 2004-2021 All Rights Reserved. + */ +package electromagnetic.data.framework.share.enums; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; + +/** + * @author wq.pt + * @version $Id: ElectromagneticEnum.java, v 0.1 2021-11-17 11:36 rongbei.pt Exp $$ + */ +@NoArgsConstructor +@AllArgsConstructor +@Getter +public enum ElectromagneticEnum { + + /**==============================================数据中台-问题反馈 1001开头=============================================================*/ + FEEDBACK_ID_DOES_NOT_EXIST("1001","反馈信息ID不存在"), + + FEEDBACK_INFOIRMATION_DOES_NOT_EXIST("1002","反馈信息不存在"), + + FEEBACK_RESOLVED("1003","反馈已解决"), + + //反馈信息处理失败 + FEEDBACK_PROCESSING_FAILED("1004","反馈信息处理失败"); + + + private String Code; + + private String desc; + + +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/enums/ElectromagneticIsValidEnum.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/enums/ElectromagneticIsValidEnum.java new file mode 100644 index 0000000..42cf73f --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/enums/ElectromagneticIsValidEnum.java @@ -0,0 +1,25 @@ +/** + * Copyright (c) 2004-2021 All Rights Reserved. + */ +package electromagnetic.data.framework.share.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; + +/** + * 营销工具行记录是否有效枚举值 + * + * @author + * @version $Id: ElectromagneticIsValidEnum.java, v 0.1 2021-01-08 11:54 Exp $$ + */ +@NoArgsConstructor +@AllArgsConstructor +@Getter +public enum ElectromagneticIsValidEnum { + INVALID(0,"无效"), + VALID(1,"有效"); + private Integer code; + private String desc; + + } \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/enums/ElectromagneticSceneIncidentEnum.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/enums/ElectromagneticSceneIncidentEnum.java new file mode 100644 index 0000000..551601f --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/enums/ElectromagneticSceneIncidentEnum.java @@ -0,0 +1,30 @@ +/** + * Copyright (c) 2004-2021 All Rights Reserved. + */ +package electromagnetic.data.framework.share.enums; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; + +/** + * @author + * @version $Id: ElectromagneticSceneIncidentEnum.java, v 0.1 2021-03-01 17:16 Exp $$ + */ +@NoArgsConstructor +@AllArgsConstructor +@Getter +public enum ElectromagneticSceneIncidentEnum { + /**==============================================数据中台-问题反馈-1001开头=============================================================*/ + GENERAL_ILLEGAL_PARAMS("0000","参数校验通用场景"), + + GENERAL_SYSTEM_ERROR("0001","系统错误通用场景"), + + WISDOM_INDICATOR_CARD("9001","指标卡"), + + ; + + + private String Code; + + private String desc; +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/enums/ErrorEnum.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/enums/ErrorEnum.java new file mode 100644 index 0000000..e9fd914 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/enums/ErrorEnum.java @@ -0,0 +1,23 @@ +/** + * Alibaba.com Inc. Copyright (c) 2004-2021 All Rights Reserved. + */ +package electromagnetic.data.framework.share.enums; + +/** + * @author + * @version V0.1 + * @Date 2021-02-25 18:41 + */ + +public interface ErrorEnum { + + String getCodeType(); + + String getCodeLevel(); + + String getCode(); + + String getErrorMessage(); + + String getErrorDesc(); +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/enums/ErrorLevels.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/enums/ErrorLevels.java new file mode 100644 index 0000000..94add12 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/enums/ErrorLevels.java @@ -0,0 +1,23 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package electromagnetic.data.framework.share.enums; + +/** + * @author wsk + * @version $Id: ErrorLevels.java, v 0.1 2024-10-17 17:44 wsk + */ +public interface ErrorLevels { + + /** INFO级别 */ + public static final String INFO = "1"; + + /** WARN级别 */ + public static final String WARN = "3"; + + /** ERROR级别 */ + public static final String ERROR = "5"; + + /** FATAL级别 */ + public static final String FATAL = "7"; +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/enums/ErrorTypes.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/enums/ErrorTypes.java new file mode 100644 index 0000000..93d3563 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/enums/ErrorTypes.java @@ -0,0 +1,25 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package electromagnetic.data.framework.share.enums; + +/** + * @author wsk + * @version $Id: ErrorTypes.java, v 0.1 2024-10-17 17:44 wsk + */ +public interface ErrorTypes { + + /** 系统错误 */ + public static final String SYSTEM = "0"; + + /** 业务错误 */ + @Deprecated + public static final String BIZ = "1"; + + /** 第三方错误 */ + @Deprecated + public static final String THIRD_PARTY = "2"; + + /** 业务错误,客户感知 */ + public static final String BIZ_CUSTOMER = "9"; +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/enums/ResultCodeEnum.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/enums/ResultCodeEnum.java new file mode 100644 index 0000000..6e2a0c4 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/enums/ResultCodeEnum.java @@ -0,0 +1,1009 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package electromagnetic.data.framework.share.enums; + +import electromagnetic.data.framework.share.result.ResultCode; + +/** + * @author wsk + * @version $Id: ResultCodeEnum.java, v 0.1 2024-10-17 17:52 wsk + */ +public enum ResultCodeEnum implements CommonResultCode { + + /** + * ------------------------------------- + * Common Functional + * ------------------------------------- + */ + + //===== global result code ==== + /** + * Success + */ + SUCCESS(ErrorLevels.INFO, ErrorTypes.SYSTEM, SystemCode.EVENTCODE, "200", "success", + Status.S, false), + + /** + * failed due to unknown reason. + */ + UNKNOWN_EXCEPTION(ErrorLevels.ERROR, ErrorTypes.THIRD_PARTY, SystemCode.EVENTCODE,"201","unknown exception", + Status.U, false), + + /** + * Illegal parameters. For example, non-numeric input, invalid date. + */ + PARAM_ILLEGAL(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE, "202", "Illegal parameters.", + Status.F, false), + + /** + * Repeated request, will be mapped in iopengw respectively in the dimension of API. + */ + REPEATED_SUBMIT(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"203", "Repeat request inconsistent.", + Status.F, false), + + // ==== common result code + + /** + * 数据异常 + */ + DATA_EXCEPTION(ErrorLevels.ERROR, ErrorTypes.SYSTEM, SystemCode.EVENTCODE,"603", "DATA_EXCEPTION", + Status.F,false), + + /** + * trace上下文不存在 + */ + TRACE_CONTEXT_NOT_EXIST(ErrorLevels.ERROR, ErrorTypes.SYSTEM, SystemCode.EVENTCODE,"527", "TRACE_CONTEXT_NOT_EXIST", + Status.F,false), + + /** + * repeat request but the key information is not consistent + */ + REPEAT_REQ_INCONSISTENT(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"301", + "repeat request, but request inconsistent", Status.F, false), + + /** + * + */ + INVALID_ACCESS_TOKEN(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"302", "Invalid access token.", + Status.F, false), + + /** + * + */ + USER_STATUS_ABNORMAL(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"303", "User status is not normal.", + Status.F, false), + /** + * + */ + PROCESS_FAIL(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"304", "General business failure. No retry.", + Status.F, false), + + /** + * + */ + KEY_NOT_FOUND(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"305", "Key is not found.", + Status.F, false), + + /** + * + */ + ACCESS_DENIED(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"306", "Access denied.", Status.F, false), + + /** + * + */ + REQUEST_TRAFFIC_EXCEED_LIMIT(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"307", + "Request traffic exceed limit.", Status.F, false), + + /** + * + */ + API_INVALID(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"308", "API is invalid (or not active)", + Status.F, false), + + /** + * + */ + INVALID_CLIENT(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"309", "Invalid client.", Status.F, false), + + /** + * + */ + INVALID_SIGNATURE(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"310", "Signature is invalid.", + Status.F, false), + + /** + * + */ + METHOD_NOT_SUPPORTED(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"311", + "The server does not implement the requested HTTP method.", + Status.F, false), + + /** + * + */ + INVALID_CONTRACT(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE, "312", "Contract is invalid.", + Status.F, false), + + /** + * + */ + INVALID_CODE(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"313", "The code is invalid.", + Status.F, false), + + /** + * + */ + MEDIA_TYPE_NOT_ACCEPTABLE(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE, "014", + "The server does not implement the media type that would be acceptable to the client.", + Status.F, false), + + /** + * + */ + USER_NOT_EXIST(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"315", "The user nor exist.", + Status.F, false), + + /** + * + */ + OAUTH_FAILED(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"316", "oAuth authentication failed", + Status.F, false), + + /** + * + */ + PAYMENT_NOT_QUALIFIED(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE, "317", + "This merchant is not qualified to pay because the merchant is not registered, does not " + + "have contract for agreement pay or forbidden to make a payment", + Status.F, false), + + /** + * 上下文异常 + */ + EVENT_CONTEXT_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"318", + "get or save event context error", Status.F, false), + + /** + * 加锁异常 + */ + LOCK_EXCEPTION(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"518", "LOCK_EXCEPTION", + Status.F, false), + + /** + * ------------------------------------- + * Payments + * ------------------------------------- + */ + + /** + * PAYMENT_IN_PROCESS + * Only U + */ + PAYMENT_IN_PROCESS(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"108", "Payment is processing.", + Status.U, false), + + /** + * + */ + CURRENCY_NOT_SUPPORT(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE, "130", + "The currency is not supported.", Status.F, false), + + /** + * + */ + USER_BALANCE_NOT_ENOUGH(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"110", + "User balance is not enough for this payment.", Status.F, false), + + /** + * + */ + ORDER_IS_CANCELED(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"101", "Order is canceled.", + Status.F, false), + + /** + * 交易关闭 + */ + ORDER_IS_CLOSED(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE, "129", "Order is closed", + Status.F, false), + + /** + * + */ + EXPIRED_CODE(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"102", "The code is expired.", + Status.F, false), + + /** + * + */ + AMOUNT_EXCEED_LIMIT(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"103", "Amount exceeds limit.", + Status.F, false), + + /** + * + */ + PAYMENT_AMOUNT_EXCEED_LIMIT(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"104", + "Payment amount exceeds limit.", Status.F, false), + + /** + * + */ + PAYMENT_COUNT_EXCEED_LIMIT(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"105", + "Payment count exceeds limit.", Status.F, false), + + /** + * + */ + USER_AMOUNT_EXCEED_LIMIT(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"106", + "Payment amount exceeds user's amount limit.", Status.F, false), + + /** + * + */ + RISK_REJECT(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"107", "Reject by risk control.", + Status.F, false), + + /** + * + */ + NO_PAY_OPTIONS(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"109", "Not any pay options", + Status.F, false), + + /** + * CAPTURE_IN_PROCESS + */ + CAPTURE_IN_PROCESS(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"110", + "The capture is still under process.", Status.U, false), + /** + * + */ + CLIENT_FORBIDDEN_ACCESS_API(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"111", + "Client is not authorized to use this API", Status.F, false), + + /** + * + */ + UNKNOWN_CLIENT(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"112", "Unknown client", Status.F, false), + + /** + * + */ + INVALID_CLIENT_STATUS(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"113", "Invalid client status", + Status.F, false), + + /** + * + */ + ORDER_NOT_EXIST(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"114", "The order doesn't exist.", + Status.F, false), + + /** + * + */ + CANCEL_WINDOW_EXCEED(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"115", "Exceed Cancel window.", + Status.F, false), + + /** + * + */ + REFUND_WINDOW_EXCEED(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"116", "Exceed Refund window.", + Status.F, false), + + /** + * + */ + REFUND_AMOUNT_EXCEED(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"117", + "The total refund amount has exceed the payment amount.", + Status.F, false), + + /** + * + */ + ORDER_STATUS_INVALID(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"118", "Order status is invalid.", + Status.F, false), + + /** + * + */ + MERCHANT_BALANCE_NOT_ENOUGH(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"119", + "The merchant balance is not enough.", Status.F, false), + + /** + * ipid映射不存在 + */ + IPID_MAPPING_NOT_EXIST(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"544", "IPID_MAPPING_NOT_EXIST", + Status.F, false), + +// /** +// * ------------------------------------- +// * Capture +// * ------------------------------------- +// */ +// +// AUTH_NOT_FOUND(ErrorLevels.ERROR, ErrorTypes.BIZ, "0120", "The authorization is not found.", +// Status.F), +// +// AUTH_EXPIRED(ErrorLevels.ERROR, ErrorTypes.BIZ, "0121", "the authorization is expired.", +// Status.F), +// +// AUTH_CANCELLED(ErrorLevels.ERROR, ErrorTypes.BIZ, "0122", +// "The authorization has been cancelled.", Status.F), +// +// CAPTURE_AMOUNT_EXCEED_AUTH_LIMIT(ErrorLevels.ERROR, ErrorTypes.BIZ, "0123", +// "total capture amount exceed auth " + "limit.", +// Status.F), + + /** + * ------------------------------------- + * Checkout + * ------------------------------------- + */ + INVALID_CVV(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"124", "The CVV code is invalid.", + Status.F, false), + + INVALID_CARD_BIN(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"125", "Illegal card bin", + Status.F, false), + + CARD_EXPIRED(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"126", "Card has expired.", Status.F, false), + + /** + * + */ + TIME_EXCEED_WINDOW(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"127", "Time has exceeded window", + Status.F, false), + + BALANCE_NOT_ENOUGH(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE, "128", "The balance is not enough.", + Status.F, false), + /** + * 收单域错误码IPAY_RS_310370625转为CARD_NOT_SUPPORT + */ + CARD_NOT_SUPPORT(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"128", "Card not support.", + Status.F, false), + + /** + * + * ------------------------------------- + * Auth + * ------------------------------------- + */ + + /** + * + */ + INVALID_AUTHCODE(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"030", "The code is invalid.", + Status.F, false), + + /** + * + */ + INVALID_REFRESH_TOKEN(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE, "031", + "The refreshToken is invalid.", Status.F, false), + + /** + * + */ + EXPIRED_REFRESH_TOKEN(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"032", + "The refresh token is expired.", Status.F, false), + + /** + * + */ + INVALID_PAYMENT_TOKEN(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"033", + "The payment token is invalid.", Status.F, false), + + /** + * + */ + EXPIRED_PAYMENT_TOKEN(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"034", + "The payment token is expired.", Status.F, false), + + /** + * ------------------------------------- + * Risks + * ------------------------------------- + */ + + /** + * + */ + RISK_SCORE_NOT_FOUND(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"300", "Risk score not found", + Status.F, false), + + /** + * ------------------------------------- + * Users + * ------------------------------------- + */ + + /** + * + */ + REQUEST_ID_INVALID(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"400", "Verify request id is invalid.", + Status.F, false), + /** + * + */ + VERIFY_TIMES_EXCEED_LIMIT(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"401", + "Verify code failed too many times, user must get a new code", + Status.F, false), + /** + * + */ + VERIFY_UNMATCHED(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"402", "Verify code invalid", + Status.F, false), + /** + * + */ + AUTHENTICATION_REQUEST_ID_INVALID(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"403", + "AuthenticationRequestId is invalid", Status.F, false), + + /** + * + */ + SEND_TIMES_EXCEED_LIMIT(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"404", "Send times exceed limit", + Status.F, false), + + /** + * Checkout + */ + + /** + * + */ + MERCHANT_WEB_URL_NO_REPORT(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"501", + "This merchant didn't report the URL", Status.F, false), + + /** + * ------------------------------------- + * Internal Error Codes + * ------------------------------------- + */ + + /** + * downstream (acq site) returned unknown error code + */ + UNRECOGNIZED_ACQ_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE, "000", + "unrecognized downstream error", Status.F, false), + + /** + * + */ + QUERY_CONTRACT_VALUE_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"001", + "Query contract returns null.", Status.F, true), + + /** + * + */ + CONFIGURATION_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"002", "Configuration error.", + Status.F, false), + + /** + * sal execute null result + */ + SAL_EXECUTE_NULL_RESULT(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"003", "sal execute null result", + Status.F, false), + +// /** +// * sal fail iacquirefront +// */ +// SAL_FAIL_IACQUIREFRONT(ErrorLevels.ERROR, ErrorTypes.BIZ, "9004", "sal fail iacquirefront", +// Status.F), +// +// /** +// * sal fail iacquirecenter +// */ +// SAL_FAIL_IACQUIRECENTER(ErrorLevels.ERROR, ErrorTypes.BIZ, "9005", "sal fail iacquirecenter", +// Status.F), + + /** + * sal fail icashiercore + */ + SAL_FAIL_ICASHIERCORE(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"006", "sal fail icashiercore", + Status.F, false), + +// /** +// * sal fail imemberprod +// */ +// SAL_FAIL_IMEMBERPROD(ErrorLevels.ERROR, ErrorTypes.BIZ, "9007", "sal fail imemberprod", +// Status.F), +// +// /** +// * sal fail imif +// */ +// SAL_FAIL_IMIF(ErrorLevels.ERROR, ErrorTypes.BIZ, "9008", "sal fail imif", Status.F), +// +// /** +// * sal fail iprodquery +// */ +// SAL_FAIL_IPRODQUERY(ErrorLevels.ERROR, ErrorTypes.BIZ, "9009", "sal fail iprodquery", +// Status.F), +// +// /** +// * sal fail icomparacenter +// */ +// SAL_FAIL_ICOMPARACENTER(ErrorLevels.ERROR, ErrorTypes.BIZ, "9010", "sal fail icomparacenter", +// Status.F), + + /** + * 消息发送失败 + **/ + SEND_MESSAGE_ERROR(ErrorLevels.ERROR, ErrorTypes.THIRD_PARTY, SystemCode.EVENTCODE,"011", "send message error", + Status.F, true), + +// /** +// * sal fail imerchprod +// */ +// SAL_FAIL_IMERCHPROD(ErrorLevels.ERROR, ErrorTypes.BIZ, "9012", "sal fail imerchprod", +// Status.F), + +// /** +// * sal fail isupergw +// */ +// SAL_FAIL_ISUPERGW(ErrorLevels.ERROR, ErrorTypes.BIZ, "9013", "sal fail isupergw", +// Status.F), +// +// /** +// * sal fail idatacontext +// */ +// SAL_FAIL_IDATACONTEXT(ErrorLevels.ERROR, ErrorTypes.BIZ, "9014", "sal fail idataContext", +// Status.F), + + /** + * sal fail iopengw + */ + SAL_FAIL_IOPENGW(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"015", "sal fail iopengw", + Status.F, true), +// /** +// * sal fail iprodintl +// */ +// SAL_FAIL_IPRODINTL(ErrorLevels.ERROR, ErrorTypes.BIZ, "9016", "sal fail iprodintl", +// Status.F), +// +// /** +// * sal fail icardcenter +// */ +// SAL_FAIL_ICARDCENTER(ErrorLevels.ERROR, ErrorTypes.BIZ, "9017", "sal fail icardcenter", +// Status.F), +// /** +// * sal fail ibcm +// */ +// SAL_FAIL_IBCM(ErrorLevels.ERROR, ErrorTypes.BIZ, "9018", "sal fail ibcm", Status.F), + + /** + * parse iopengw result fail + */ + PARSE_IOPENGW_MSG_FAIL(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"019", "parse iopengw message fail", + Status.F, false), + + /** + * Authentication failed + */ + AUTHENTICATION_FAIL(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"020", "authentication failed", + Status.F, false), + + /** + * poll acquire result fail + */ + POLL_ACQUIRE_RESULT_FAIL(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"021", "poll acquire result fail", + Status.F, false), + + + /** + * 第三方异常 + */ + REMOTE_EXCEPTION(ErrorLevels.ERROR, ErrorTypes.THIRD_PARTY, SystemCode.EVENTCODE,"308", "REMOTE_EXCEPTION", + Status.F, false), + + REMOTE_EXCEPTION_RETRY(ErrorLevels.ERROR, ErrorTypes.THIRD_PARTY, SystemCode.EVENTCODE,"307", "REMOTE_EXCEPTION", + Status.F, true), + + REMOTE_HANDLE_EXCEPTION(ErrorLevels.ERROR, ErrorTypes.THIRD_PARTY, SystemCode.EVENTCODE,"306", "资产交换处理异常", + Status.F, true), + + RESULT_EXCEPTION(ErrorLevels.ERROR, ErrorTypes.THIRD_PARTY, SystemCode.EVENTCODE,"301", "远程调用结果异常", + Status.F, false), + + RESULT_EXCEPTION_NEED_RETRY(ErrorLevels.ERROR, ErrorTypes.THIRD_PARTY, SystemCode.EVENTCODE,"304", "远程结果异常可重试", + Status.F, true), + + REMOTE_TIME_OUT_EXCEPTION(ErrorLevels.ERROR, ErrorTypes.THIRD_PARTY,SystemCode.EVENTCODE,"305","远程调用超时异常", + Status.F, true), + + PAYRESULT_UNKNOWN_EXCEPTION(ErrorLevels.ERROR, ErrorTypes.THIRD_PARTY, SystemCode.EVENTCODE,"302", "资产交换支付结果未知异常", + Status.F,true), + + PAYRESULT_FAIL_EXCEPTION(ErrorLevels.ERROR, ErrorTypes.THIRD_PARTY, SystemCode.EVENTCODE,"303", "资产交换支付结果失败,不可重试", + Status.F, false), + + + + //========================================================================// + // DAL层错误码 [011-029] + // + //========================================================================// + + DAL_DB_OPERATION_EXCEPTION(ErrorLevels.ERROR, ErrorTypes.SYSTEM, SystemCode.EVENTCODE,"011", "数据库操作异常", + Status.F, true), + + DAL_PARSE_RULE_EXCEPTION(ErrorLevels.ERROR, ErrorTypes.SYSTEM, SystemCode.EVENTCODE,"012", "DAL分库分表规则错误", + Status.F, false), + + BIZ_IDEMPOTENCE_TIMEOUT_EXCEPTION(ErrorLevels.ERROR, ErrorTypes.SYSTEM, SystemCode.EVENTCODE,"013", "业务幂等表操作超时异常", + Status.F, true), + + DAL_DB_LOCK_TIMEOUT_EXCEPTION(ErrorLevels.ERROR, ErrorTypes.SYSTEM, SystemCode.EVENTCODE,"014", "数据库锁超时异常", + Status.F, true), + + UNSUPPORT_DB_OPERATE(ErrorLevels.ERROR, ErrorTypes.SYSTEM, SystemCode.EVENTCODE,"015", "不支持的DB操作", + Status.F, false), + + + //========================================================================// + // 本地缓存错误码 [801-810] + // + //========================================================================// + + LOACL_CACHE_REGISTER_EXCEPTION(ErrorLevels.ERROR, ErrorTypes.SYSTEM, SystemCode.EVENTCODE,"801", "本地缓存服务注册异常", + Status.F, false), + + LOACL_CACHE_EXCEPTION(ErrorLevels.ERROR, ErrorTypes.SYSTEM, SystemCode.EVENTCODE,"802", "本地缓存服务异常", + Status.F, false), + + LOCAL_CACHE_CFG_INVALID_EXCEPTION(ErrorLevels.ERROR, ErrorTypes.SYSTEM, SystemCode.EVENTCODE,"803", "本地缓存服务配置异常", + Status.F, false), + + LOCAL_CACHE_PARAM_INVALID_EXCEPTION(ErrorLevels.ERROR, ErrorTypes.SYSTEM, SystemCode.EVENTCODE,"804", "本地缓存服务参数异常", + Status.F, false), + + + //========================================================================// + // 仓储服务错误码 [050-064] + // + //========================================================================// + + REPOSITORY_UPDATE_ROWS_UN_EXPECTED(ErrorLevels.ERROR, ErrorTypes.SYSTEM, SystemCode.EVENTCODE,"050", "仓储服务更新记录条数不符合期望", + Status.F, false), + + REPOSITORY_DELETE_ROWS_UN_EXPECTED(ErrorLevels.ERROR, ErrorTypes.SYSTEM, SystemCode.EVENTCODE,"051", "仓储服务删除记录条数不符合期望", + Status.F, false), + + REPOSITORY_RECORD_INCONSIST(ErrorLevels.ERROR, ErrorTypes.SYSTEM, SystemCode.EVENTCODE,"052","仓储捞取的数据不完整或不一致", + Status.F, false), + + REPOSITORY_INSTANCE_CHECK_EXCEPTION(ErrorLevels.ERROR, ErrorTypes.SYSTEM, SystemCode.EVENTCODE,"053","仓储存储对象实例不一致", + Status.F, false), + + REPOSITORY_OPERATE_ILLEGAL_EXCEPTION(ErrorLevels.ERROR, ErrorTypes.SYSTEM, SystemCode.EVENTCODE,"055", "仓储操作不合法", + Status.F, false), + + REPOSITORY_LOAD_MODEL_EXCEPTION(ErrorLevels.ERROR, ErrorTypes.SYSTEM, SystemCode.EVENTCODE,"056","仓储加载模型异常", + Status.F, false), + + + /** + * ------------------------------------- + * 收银核心错误码枚举 + * ------------------------------------- + * + */ + + /*** + * 决策配置中资产工具为空 + */ + NO_AVAILABLE_TOOL(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"502", "决策配置中资产工具为空", + Status.F, false), + + SINGLE_LIMIT_EXCEED(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"503", "单笔额度已超", + Status.F,false), + + DAILY_LIMIT_EXCEED(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"504", "日额度已超", + Status.F,false), + + NOT_SAME_PERSON(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"506","非同人", + Status.F,false), + + /** + * 无可用资产 + */ + NO_AVAILABLE_ASSET(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"517", "无可用资产", + Status.F, false), + + ASSET_TYPE_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"518", "资产类型错误", + Status.F, false), + + /** + * 收方资产类型异常 + */ + PAYEE_ASSET_TOOL_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"519", "收方资产类型异常", + Status.F, false), + + /** + * 没有匹配到支付工具 + */ + NO_MATCH_PAY_TOOL(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"520", "资产id没有匹配到支付工具或支付工具不可用", + Status.F, false), + + /** + * 选择了咨询时被标记为不可用的支付工具 + */ + PAY_TOOL_INVALID(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"521", "选择了不可用的支付工具", + Status.F, false), + + /** + * 渠道咨询返回失败 + */ + CHANNEL_CONSULE_FAIL(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"624", "渠道咨询返回失败", + Status.F,false), + + /** + * 渠道咨询为空 + */ + CHANNEL_CONSULE_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"625","渠道咨询为空", + Status.F,false), + + + + + + + /** + * ------------------------------------- + * 资产交换错误码枚举 + * + *

code对应于标准错误码14~16位。而errorLevel对应于标准错误码的第4位 + * p>在标准错误码的位置如下: + * + * + * + * + * + * + * + * + * + * + *
位置12345678910111213141516
示例AE1100000000 + * 0999
说明固定
标识









错误场景(业务事件码)错误编
+ * + *

错误码的CODE取值空间如下: + *

    + *
  • 公共错误码 [000-299,999] + *
  • 支付错误码 [300-399] + *
  • 退款错误码 [400-499] + *
  • 冻结错误码 [500-549] + *
  • 解冻错误码 [550-599] + *
  • 冲正错误码 [600-699] + *
  • 流出错误码 [700-749] + *
  • 查询错误码 [750-800] + *
+ * ------------------------------------- + * + */ + SERVICE_OPERATE_EXCEPTION(ErrorLevels.ERROR, ErrorTypes.SYSTEM, SystemCode.EVENTCODE,"139", "服务操作异常", + Status.F, false), + + SERVICE_OPERATE_IN_BLACK( ErrorLevels.ERROR, ErrorTypes.SYSTEM, SystemCode.EVENTCODE,"142", "当前操作在黑名单", + Status.F, false), + + FLUX_DECISION_SERVICE_EXCEPTION_NORETRY(ErrorLevels.ERROR, ErrorTypes.SYSTEM, SystemCode.EVENTCODE, "143", + "交换决策服务调用不可重试异常", Status.F, false), + + FLUX_DECISION_SERVICE_EXCEPTION_RETRY(ErrorLevels.ERROR, ErrorTypes.SYSTEM, SystemCode.EVENTCODE, "145", + "交换决策服务调用可重试异常", Status.F, true), + + FLUX_NET_SERVICE_EXCEPTION(ErrorLevels.ERROR, ErrorTypes.SYSTEM, SystemCode.EVENTCODE, "140", "金融网关调用失败", + Status.F, true), + + FLUX_NET_RECEIPT_RESULT_INVALID(ErrorLevels.ERROR, ErrorTypes.SYSTEM, SystemCode.EVENTCODE, "141", "交换网络回执结果无效", + Status.F, true), + + + + //========================================================================// + // 指令执行器错误码 [080-099] + // + //========================================================================// + + COMMAND_EXECUTER_CFG_ERROR(ErrorLevels.ERROR, ErrorTypes.SYSTEM, SystemCode.EVENTCODE,"080","指令执行器配置异常", + Status.F, false), + + COMMAND_EXECUTER_PARAM_INVALID(ErrorLevels.ERROR, ErrorTypes.SYSTEM, SystemCode.EVENTCODE,"081", "指令执行器参数异常", + Status.F, true), + + ASSET_TOOL_EXECUTER_FAIL_RETRY(ErrorLevels.ERROR, ErrorTypes.SYSTEM, SystemCode.EVENTCODE,"082","资产工具调用失败可重试", + Status.F, true), + + ASSET_TOOL_EXECUTER_FAIL_NORETRY(ErrorLevels.ERROR, ErrorTypes.SYSTEM, SystemCode.EVENTCODE,"083","资产工具调用失败不可重试", + Status.F, false), + + EXECUTE_RESULT_NUMBER_INVALID(ErrorLevels.ERROR, ErrorTypes.SYSTEM, SystemCode.EVENTCODE,"084", "指令执行结果个数异常", + Status.F, false), + + UNABLE_DAY_BOOK(ErrorLevels.ERROR, ErrorTypes.SYSTEM, SystemCode.EVENTCODE,"085","资产工具无法按指定时间入账", + Status.F, false), + + CMD_RECURVE_EXECUTE_TIMES_ERROR(ErrorLevels.ERROR, ErrorTypes.SYSTEM, SystemCode.EVENTCODE,"086","指令递归执行次数异常", + Status.F, false), + + EXECUTE_RESULT_REPEAT(ErrorLevels.ERROR, ErrorTypes.SYSTEM, SystemCode.EVENTCODE,"087","指令执行结果重复", + Status.F, false), + + EXECUTE_RESULT_INVALID(ErrorLevels.ERROR, ErrorTypes.SYSTEM, SystemCode.EVENTCODE,"088","指令执行结果异常", + Status.F, false), + + BREAK_HOT_TRAFFIC(ErrorLevels.ERROR, ErrorTypes.SYSTEM, SystemCode.EVENTCODE,"089","熔断热点流量", + Status.F, true), + + + //========================================================================// + // 资产工具内部实现错误码 [120-129] + // + //========================================================================// + + COMMAND_PARAM_ILLEGAL(ErrorLevels.ERROR, ErrorTypes.SYSTEM, SystemCode.EVENTCODE,"120", "指令请求参数非法", + Status.F, false), + + MESSAGE_TYPE_ILLEGAL(ErrorLevels.ERROR, ErrorTypes.BIZ, SystemCode.EVENTCODE,"127","报文不合法", + Status.F, false), + + NOT_SUPPORT_COMMAND_TYPE(ErrorLevels.ERROR, ErrorTypes.SYSTEM, SystemCode.EVENTCODE, "128","不支持的指令类型", + Status.F, false), + + UNSUPPORTED_NOSTRO_DERIVE_TYPE(ErrorLevels.ERROR, ErrorTypes.SYSTEM, SystemCode.EVENTCODE, "129","不支持的网络化衍生类型", + Status.F, false), + + + ; + + + /** + * 枚举编码 + */ + private ResultCode code; + + /** + * 结果状态 + */ + private Status resultStatus; + + /** + * 重试标示 + */ + private final boolean needRetry; + + /** + * 构造方法 + * + * @param codeLevel 错误码级别 + * @param codeType 错误码类型 + * @param errorSpecific 错误码编号 + * @param resultStatus 结果状态 + * @param description 错误码描述 + */ + private ResultCodeEnum(String codeLevel, String codeType, String eventCode, String errorSpecific, + String description, Status resultStatus, boolean needRetry) { + + this.code = new ResultCode(SystemCode.VERSION, codeLevel, codeType, eventCode, errorSpecific, + this.name()); + + this.setResultStatus(resultStatus); + this.code.setDescription(description); + this.needRetry = needRetry; + } + + /** + * 重写eventcode + * 有线程安全问题,必须作废!!!! + * + * @param eventCode + * @return + */ + @Deprecated + public ResultCodeEnum currentEvent(String eventCode) { + this.code.setSystemCode(eventCode); + return this; + } + + /** + * 通过枚举code获得枚举。 + * + * @param resultCode + * @return 枚举值 + */ + public static ResultCodeEnum getByName(String resultCode) { + for (ResultCodeEnum code : values()) { + if (code.name().equals(resultCode)) { + return code; + } + } + return null; + } + + /** + * 通过枚举code获得枚举。 + * + * @param resultCodeId + * @return 枚举值 + * return UNKNOWN_EXCEPTION as default + */ + public static ResultCodeEnum getByCodeId(String resultCodeId) { + for (ResultCodeEnum code : values()) { + if (code.getResultCode().equals(resultCodeId)) { + return code; + } + } + return ResultCodeEnum.UNKNOWN_EXCEPTION; + } + + + @Override + public String getResultCode() { + return getCode().fetchResultCode(); + } + + /** + * 重写eventcode,很重要!!!!!! + * 解决 enum 单利模式 线程安全问题 + * @param eventCode + * @return + */ + public String getResultCode(String eventCode) { + return getCode().fetchResultCode(eventCode); + } + + /** + */ + @Override + public String getResultMsg() { + return this.code.getDescription(); + } + + /** + * 获取ResultCode + * + * @return code + */ + public ResultCode getCode() { + return this.code; + } + + /** + * 获取错误名称 + * + * @return errorName + */ + public String getErrorName() { + return name(); + } + + /** + * Getter method for property resultStatus. + * + * @return property value of resultStatus + */ + public Status getResultStatus() { + return resultStatus; + } + + /** + * Setter method for property resultStatus. + * + * @param resultStatus value to be assigned to property resultStatus + */ + public void setResultStatus(Status resultStatus) { + this.resultStatus = resultStatus; + } + + /** + * Getter method for property needRetry. + * + * @return property value of needRetry + */ + public boolean isNeedRetry() { + return needRetry; + } +} diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/enums/Status.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/enums/Status.java new file mode 100644 index 0000000..3994c0a --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/enums/Status.java @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package electromagnetic.data.framework.share.enums; + +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; + +/** + * @author wsk + * @version $Id: Status.java, v 0.1 2024-10-17 17:57 wsk + */ +public enum Status{ + + /** + * SUCCESS + */ + S( 1,"SUCCESS"), + + /** + * FAIL + */ + F(2,"FAIL"), + + /** + * UNKNOWN + */ + U(3,"UNKNOWN"); + + private int value; + + private String description; + + Status(int value, String description) { + this.value = value; + this.description = description; + } + + /** + * Gets get description. + * + * @return the get description + */ + public String getDescription() { + return description; + } + + + public int getValue() { + return value; + } + + + private static final Map ENUM_MAP; + + static { + Map map = new HashMap<>(); + for (Status element : Status.values()) { + map.put(element.getValue(), element); + } + ENUM_MAP = Collections.unmodifiableMap(map); + } + + public static Status get(Integer value) { + if (value == null) { + return null; + } + return ENUM_MAP.get(value); + } + +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/enums/SystemCode.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/enums/SystemCode.java new file mode 100644 index 0000000..458d32e --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/enums/SystemCode.java @@ -0,0 +1,17 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package electromagnetic.data.framework.share.enums; + +/** + * @author wsk + * @version $Id: SystemCode.java, v 0.1 2024-10-17 17:56 wsk + */ +public class SystemCode { + + /** 默认版本 */ + public static String VERSION = "1"; + + /** 默认事件码 */ + public static String EVENTCODE = "00001001"; +} diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/exception/BizRuntimeException.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/exception/BizRuntimeException.java new file mode 100644 index 0000000..f38ff88 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/exception/BizRuntimeException.java @@ -0,0 +1,130 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package electromagnetic.data.framework.share.exception; + +/** + * @author wsk + * @version $Id: BizRuntimeException.java, v 0.1 2024-10-17 17:46 wsk + */ +/** + * Runtime业务异常 + * + * @author cihun + */ +public class BizRuntimeException extends RuntimeException implements DigestLogException { + + private static final long serialVersionUID = 4823673135679689193L; + /** + * 错误码 + */ + private String errorCode; + + public String getErrorCode() { + return errorCode; + } + + // ~~~ 构造方法 + + /** + * default + */ + public BizRuntimeException() { + super(); + } + + /** + * 创建一个BizRuntimeException + * + * @param errorMessage 错误描述 + */ + public BizRuntimeException(final String errorMessage) { + super(errorMessage); + } + + /** + * 创建一个BizRuntimeException + * + * @param errorMessage 错误描述 + * @param cause 异常 + */ + public BizRuntimeException(final String errorMessage, final Throwable cause) { + super(errorMessage, cause); + } + + /** + * 创建一个BizRuntimeException + * + * @param cause 异常 + */ + public BizRuntimeException(Throwable cause) { + super(cause); + } + + /** + * 创建一个BizRuntimeException + * + * @param errorCode 错误码 + * @param errorMessage 错误描述 + */ + public BizRuntimeException(final String errorCode, final String errorMessage) { + this(errorCode, errorMessage, null); + } + +// /** +// * 创建一个BizRuntimeException +// * +// * @param errorCode 错误码 +// * @param errorMessage 错误描述 +// * @param errorContext 错误上下文 +// */ +// public BizRuntimeException(final String errorCode, final String errorMessage, final ErrorContext errorContext) { +// super(errorMessage); +// this.errorCode = errorCode; +// this.errorContext = errorContext; +// } + + /** + * 创建一个BizRuntimeException + * + * @param errorCode 错误码 + * @param errorMessage 错误描述 + * @param cause 异常 + */ + public BizRuntimeException(final String errorCode, final String errorMessage, final Throwable cause) { + super(errorMessage, cause); + this.errorCode = errorCode; + } + +// // ~~~ 重写方法 +// +// /** +// * @see java.lang.Throwable#toString() +// */ +// @Override +// public final String toString() { +// return String.format(" %s [errorCode=%s, errorMsg=%s, errorContext=%s]", getClass() +// .getSimpleName(), errorCode, getLocalizedMessage()); +// } + + // ~~~ 容器方法 + + /** + * Setter method for property errorCode. + * + * @param errorCode value to be assigned to property errorCode + */ + public void setErrorCode(String errorCode) { + this.errorCode = errorCode; + } + + @Override + public String getTagErrorCode() { + return this.errorCode; + } + + @Override + public String getTagErrorMsg() { + return this.getMessage(); + } +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/exception/DigestLogException.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/exception/DigestLogException.java new file mode 100644 index 0000000..b751002 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/exception/DigestLogException.java @@ -0,0 +1,25 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package electromagnetic.data.framework.share.exception; + +/** + * @author wsk + * @version $Id: DigestLogException.java, v 0.1 2024-10-17 17:47 wsk + */ +public interface DigestLogException { + + /** + * 获取错误码 + * + * @return + */ + String getTagErrorCode(); + + /** + * 获取错误详情 + * + * @return + */ + String getTagErrorMsg(); +} diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/exception/ElectromagneticBizRuntimeException.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/exception/ElectromagneticBizRuntimeException.java new file mode 100644 index 0000000..b13ec2e --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/exception/ElectromagneticBizRuntimeException.java @@ -0,0 +1,71 @@ +/** + * Alibaba.com Inc. Copyright (c) 2004-2021 All Rights Reserved. + */ +package electromagnetic.data.framework.share.exception; + + +import electromagnetic.data.framework.share.constants.ElectromagneticConstants; +import electromagnetic.data.framework.share.enums.ElectromagneticSceneIncidentEnum; +import electromagnetic.data.framework.share.enums.ErrorEnum; +import electromagnetic.data.framework.share.enums.ResultCodeEnum; + +/** + * @version v 0.1 + */ + +public class ElectromagneticBizRuntimeException extends BizRuntimeException { + + + private static final long serialVersionUID = -1395535251101232205L; + + public static ElectromagneticBizRuntimeException of(ElectromagneticSceneIncidentEnum incident, ErrorEnum error){ + String errorCode = ElectromagneticConstants.PREFIX_CODE+error.getCodeLevel()+error.getCodeType()+ ElectromagneticConstants.CODE +incident.getCode() + error.getCode(); + String message = error.getErrorDesc(); + return new ElectromagneticBizRuntimeException(errorCode, message); + } + + public static ElectromagneticBizRuntimeException of(ElectromagneticSceneIncidentEnum incident, ErrorEnum error, Throwable cause){ + String errorCode = ElectromagneticConstants.PREFIX_CODE+error.getCodeLevel()+error.getCodeType()+ ElectromagneticConstants.CODE +incident.getCode() + error.getCode(); + String message = error.getErrorDesc(); + return new ElectromagneticBizRuntimeException(errorCode, message, cause); + } + + + public static ElectromagneticBizRuntimeException of(ElectromagneticSceneIncidentEnum incident, ErrorEnum error, String extendMsg){ + String errorCode = ElectromagneticConstants.PREFIX_CODE+error.getCodeLevel()+error.getCodeType()+ ElectromagneticConstants.CODE +incident.getCode() + error.getCode(); + String message = error.getErrorDesc() +"@"+ extendMsg; + return new ElectromagneticBizRuntimeException(errorCode, message); + } + + + + public static ElectromagneticBizRuntimeException of(ElectromagneticSceneIncidentEnum incident, ResultCodeEnum error){ + String errorCode = error.getResultCode(ElectromagneticConstants.CODE +incident.getCode()); + String message = error.getResultMsg(); + return new ElectromagneticBizRuntimeException(errorCode, message); + } + + public static ElectromagneticBizRuntimeException of(ElectromagneticSceneIncidentEnum incident, ResultCodeEnum error, Throwable cause){ + String errorCode = error.getResultCode(ElectromagneticConstants.CODE +incident.getCode()); + String message = error.getResultMsg(); + return new ElectromagneticBizRuntimeException(errorCode, message, cause); + } + + + public static ElectromagneticBizRuntimeException of(ElectromagneticSceneIncidentEnum incident, ResultCodeEnum error, String extendMsg){ + String errorCode = error.getResultCode(ElectromagneticConstants.CODE +incident.getCode()); + String message = error.getResultMsg() +"@"+ extendMsg; + return new ElectromagneticBizRuntimeException(errorCode, message); + } + + + + private ElectromagneticBizRuntimeException(String errorCode, String errorMsg){ + super(errorCode, errorMsg); + } + + private ElectromagneticBizRuntimeException(String errorCode, String message, Throwable cause) { + super(errorCode,message, cause); + } + +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/exception/IllegalParameterException.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/exception/IllegalParameterException.java new file mode 100644 index 0000000..551f375 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/exception/IllegalParameterException.java @@ -0,0 +1,23 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package electromagnetic.data.framework.share.exception; + +/** + * 非法参数异常扩展 + * @author wsk + * @version $Id: IllegalParameterException.java, v 0.1 2024-10-20 19:02 wsk + */ +public class IllegalParameterException extends BizRuntimeException { + + private static final long serialVersionUID = -469578593324154948L; + + public IllegalParameterException(String message) { + super("ILLEGAL_PARAM", message); + } + + public IllegalParameterException(String message, Throwable cause) { + super("ILLEGAL_PARAM", message, cause); + } + +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/exception/LoggerConstant.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/exception/LoggerConstant.java new file mode 100644 index 0000000..cb75565 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/exception/LoggerConstant.java @@ -0,0 +1,46 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package electromagnetic.data.framework.share.exception; + +/** + * @author wsk + * @version $Id: LoggerConstant.java, v 0.1 2024-10-18 18:04 wsk + */ +public class LoggerConstant { + + /** + * 异步任务日志 + */ + public static final String TASK_SCHEDULER_LOG = "TASK-SCHEDULER"; + + /** + * 消息监听日志 + */ + public static final String MSG_LISTEN = "MSG-LISTEN"; + + /** + * 严重告警日志 + */ + public static final String SERIOUS_ALERT = "SERIOUS-ALERT"; + + /** + * 业务日志 + */ + public static final String DOMAIN_SERVICE = "DOMAIN-SERVICE"; + + /** + * 业务失败日志 + */ + public static final String DOMAIN_ERROR = "DOMAIN-ERROR"; + + /** + * 业务摘要日志 + */ + public static final String DOMAIN_DIGEST = "DOMAIN-DIGEST"; + + /** + * 调用外部系统日志 + */ + public static final String INTEGRATION = "INTEGRATION"; +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/id/IdWorker.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/id/IdWorker.java new file mode 100644 index 0000000..ac842ca --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/id/IdWorker.java @@ -0,0 +1,161 @@ +/** + * Copyright (c) 2004-2022 All Rights Reserved. + */ +package electromagnetic.data.framework.share.id; + +import java.lang.management.ManagementFactory; +import java.net.InetAddress; +import java.net.NetworkInterface; + +/** + * @author wsk + * @version $Id: IdWorker.java, v 0.1 2022-06-20 16:41 wsk.pt Exp $$ + */ +public class IdWorker { + + private static IdWorker idWorker=new IdWorker(); + + // 时间起始标记点,作为基准,一般取系统的最近时间(一旦确定不能变动) + private final static long twepoch = 1288834974657L; + // 机器标识位数 + private final static long workerIdBits = 5L; + // 数据中心标识位数 + private final static long datacenterIdBits = 5L; + // 机器ID最大值 + private final static long maxWorkerId = -1L ^ (-1L << workerIdBits); + // 数据中心ID最大值 + private final static long maxDatacenterId = -1L ^ (-1L << datacenterIdBits); + // 毫秒内自增位 + private final static long sequenceBits = 12L; + // 机器ID偏左移12位 + private final static long workerIdShift = sequenceBits; + // 数据中心ID左移17位 + private final static long datacenterIdShift = sequenceBits + workerIdBits; + // 时间毫秒左移22位 + private final static long timestampLeftShift = sequenceBits + workerIdBits + datacenterIdBits; + + private final static long sequenceMask = -1L ^ (-1L << sequenceBits); + /* 上次生产id时间戳 */ + private static long lastTimestamp = -1L; + // 0,并发控制 + private long sequence = 0L; + + private final long workerId; + // 数据标识id部分 + private final long datacenterId; + + public IdWorker(){ + this.datacenterId = getDatacenterId(maxDatacenterId); + this.workerId = getMaxWorkerId(datacenterId, maxWorkerId); + } + /** + * @param workerId + * 工作机器ID + * @param datacenterId + * 序列号 + */ + public IdWorker(long workerId, long datacenterId) { + if (workerId > maxWorkerId || workerId < 0) { + throw new IllegalArgumentException(String.format("worker Id can't be greater than %d or less than 0", maxWorkerId)); + } + if (datacenterId > maxDatacenterId || datacenterId < 0) { + throw new IllegalArgumentException(String.format("datacenter Id can't be greater than %d or less than 0", maxDatacenterId)); + } + this.workerId = workerId; + this.datacenterId = datacenterId; + } + /** + * 获取下一个ID + * + * @return + */ + public synchronized long nextId() { + long timestamp = timeGen(); + if (timestamp < lastTimestamp) { + throw new RuntimeException(String.format("Clock moved backwards. Refusing to generate id for %d milliseconds", lastTimestamp - timestamp)); + } + + if (lastTimestamp == timestamp) { + // 当前毫秒内,则+1 + sequence = (sequence + 1) & sequenceMask; + if (sequence == 0) { + // 当前毫秒内计数满了,则等待下一秒 + timestamp = tilNextMillis(lastTimestamp); + } + } else { + sequence = 0L; + } + lastTimestamp = timestamp; + // ID偏移组合生成最终的ID,并返回ID + long nextId = ((timestamp - twepoch) << timestampLeftShift) + | (datacenterId << datacenterIdShift) + | (workerId << workerIdShift) | sequence; + + return nextId; + } + + private long tilNextMillis(final long lastTimestamp) { + long timestamp = this.timeGen(); + while (timestamp <= lastTimestamp) { + timestamp = this.timeGen(); + } + return timestamp; + } + + private long timeGen() { + return System.currentTimeMillis(); + } + + /** + *

+ * 获取 maxWorkerId + *

+ */ + protected static long getMaxWorkerId(long datacenterId, long maxWorkerId) { + StringBuffer mpid = new StringBuffer(); + mpid.append(datacenterId); + String name = ManagementFactory.getRuntimeMXBean().getName(); + if (!name.isEmpty()) { + /* + * GET jvmPid + */ + mpid.append(name.split("@")[0]); + } + /* + * MAC + PID 的 hashcode 获取16个低位 + */ + return (mpid.toString().hashCode() & 0xffff) % (maxWorkerId + 1); + } + + /** + *

+ * 数据标识id部分 + *

+ */ + protected static long getDatacenterId(long maxDatacenterId) { + long id = 0L; + try { + InetAddress ip = InetAddress.getLocalHost(); + NetworkInterface network = NetworkInterface.getByInetAddress(ip); + if (network == null) { + id = 1L; + } else { + byte[] mac = network.getHardwareAddress(); + id = ((0x000000FF & (long) mac[mac.length - 1]) + | (0x0000FF00 & (((long) mac[mac.length - 2]) << 8))) >> 6; + id = id % (maxDatacenterId + 1); + } + } catch (Exception e) { + System.out.println(" getDatacenterId: " + e.getMessage()); + } + return id; + } + public static long getSnowFlakeId(){ + return idWorker.nextId(); + } + + public static String getSnowFlakeIdString(){ + return String.valueOf(getSnowFlakeId()); + } + +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/log/DateUtil.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/log/DateUtil.java new file mode 100644 index 0000000..3dfb6a9 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/log/DateUtil.java @@ -0,0 +1,330 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package electromagnetic.data.framework.share.log; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; +import java.util.TimeZone; + +/** + * @author wsk + * @version $Id: DateUtil.java, v 0.1 2024-10-20 18:45 wsk + */ +public class DateUtil { + /** 日志 */ + private final static Logger logger = LoggerFactory.getLogger(DateUtil.class); + + /** yyyy-MM-dd */ + public static String DATE_FORMAT_001 = "yyyy-MM-dd"; + + /** yyyyMMdd */ + public static String DATE_FORMAT_002 = "yyyyMMdd"; + + /** yyyy-MM-dd HH:mm:ss */ + public static String DATE_FORMAT_003 = "yyyy-MM-dd HH:mm:ss"; + + /** yyyy-MM-dd HH:mm:ss.S */ + public static String DATE_FORMAT_004 = "yyyy-MM-dd HH:mm:ss.S"; + + /** yyyy-MM-dd'T'HH:mm:ssZ */ + public static String DATE_FORMAT_005 = "yyyy-MM-dd'T'HH:mm:ssZ"; + + /** yyyy-MM-dd'T'HH:mm:ss */ + public static String DATE_FORMAT_006 = "yyyy-MM-dd'T'HH:mm:ss"; + + /** yyyy-MM-dd'T'HH:mm:ss */ + public static String DATE_FORMAT_007 = "HHmmss"; + + /** yyyy-MM-dd'T'HH:mm:ss */ + public static String DATE_FORMAT_008 = "HHmm"; + + /** + * 不允许实例化 + */ + private DateUtil() { + //forbidden + } + + /** + * 按照指定的格式,格式化时间 + * + * @param srcDate 需要转换的date + * @param format 指定的格式 + * @return 具有format格式的date,是一个new Date + * @throws ParseException 转换出错 + */ + public static Date format(Date srcDate, String format) { + + SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format); + + //格式化 + String dateStr = simpleDateFormat.format(srcDate); + + return parse(dateStr, format); + + } + + /** + * 返回yyyyMMdd + * @param srcDate + * @return + */ + public static String formatDate(Date srcDate) { + SimpleDateFormat simpleDateFormat = new SimpleDateFormat(DATE_FORMAT_002); + return simpleDateFormat.format(srcDate); + } + + /** + * 获取日期 指定格式的字符串 + * + * @param date 日期 + * @param format 格式 + * @return + */ + public static String getFormatDate(Date date, String format) { + SimpleDateFormat formate = null; + if (null == format) { + formate = new SimpleDateFormat(DATE_FORMAT_003); + } else { + formate = new SimpleDateFormat(format); + } + return formate.format(date); + } + + /** + * 返回 + * @param srcDate + * @return + */ + public static String formatTime(Date srcDate) { + SimpleDateFormat simpleDateFormat = new SimpleDateFormat(DATE_FORMAT_007); + return simpleDateFormat.format(srcDate); + } + + /** + * 根据字符串和指定的格式,返回期望格式的时间 + * + * @param dateStr 日期字符串 + * @param format 输入的格式 + * @return 具有format格式的date,是一个new Date + * @throws RuntimeException 格式转换出错 + */ + public static Date parse(String dateStr, String format) { + + SimpleDateFormat formater = new SimpleDateFormat(format); + + try { + return formater.parse(dateStr); + } catch (ParseException e) { + LogUtils.error(logger,"日期string转换Date失败,日期={0},format={1}",dateStr,format); + throw new RuntimeException(e); + } + } + + /** + * 按分钟偏移,根据{@code source}得到{@code minute}分钟之后的日期
+ * + * @param source + * , 要求非空 + * @param minute + * , 分钟数,可以为负 + * @return 新创建的Date对象 + * @throws 如果source为null, 会抛出IllegalArgumentException异常 + * @author xueye.duanxy + */ + public static Date addMinutes(Date source, int minute) { + return addDate(source, Calendar.MINUTE, minute); + } + + /** + * 在指定时间后,加上指定的秒数 + * + * @param srcDate + * @param secs + * @return + */ + public static Date addSeconds(Date srcDate, long secs) { + return new Date(srcDate.getTime() + (secs * 1000)); + } + + /** + * 获取第period天凌晨时间 + * @return + */ + public static Date getTheNextMorningTime(int period) { + return getTime(Calendar.DATE, period); + } + + /** + * 根据calendarUnit获取凌晨时间 + * @param calendarUnit + * @param period + * @return + */ + private static Date getTime(int calendarUnit, int period) { + if (period <= 0) { + throw new RuntimeException("period <= 0"); + } + Calendar calendar = Calendar.getInstance(); + calendar.add(calendarUnit, period); + + Date date = calendar.getTime(); + SimpleDateFormat formatter = new SimpleDateFormat(DATE_FORMAT_001); + String dateString = formatter.format(date); + + Date ret = null; + try { + ret = formatter.parse(dateString); + } catch (ParseException e) { + throw new RuntimeException(e); + } + + return ret; + } + + /** + * 比较字符串时间 + * + * @param date1 + * @param date2 + * @param format + * @return + */ + public static int compareDate(String date1, String date2, String format) { + return parse(date1, format).compareTo(parse(date2, format)); + } + + /** + * 获取本周指定星期天数 + * 如获取本周星期一:getDateOfThisWeek(new Date(), Calendar.MONDAY) + * + * @param date + * @param dayOfWeek {@link Calendar#DAY_OF_WEEK} + * @return + */ + public static Date getDateOfThisWeek(Date date, int dayOfWeek) { + Calendar cal = Calendar.getInstance(); + cal.setTime(date); + + // 获得当前日期是一个星期的第几天 + int currentDayOfWeek = cal.get(Calendar.DAY_OF_WEEK); + + // 查找日期等于当前日期,直接返回 + if (currentDayOfWeek == dayOfWeek) { + return cal.getTime(); + } + + // 临界点,如果当前时间为星期天,先跳到本周六,然后减去 (7-dayOfWeek) 天 + if (Calendar.SUNDAY == currentDayOfWeek) { + cal.add(Calendar.DAY_OF_MONTH, -1); + currentDayOfWeek = cal.get(Calendar.DAY_OF_WEEK); + } + + // 临界点,如果要查找的时间为星期天,先跳到下周这个时刻,然后减去 (7-dayOfWeek) 天 + if (Calendar.SUNDAY == dayOfWeek) { + cal.add(Calendar.DAY_OF_MONTH, 7); + currentDayOfWeek = cal.get(Calendar.DAY_OF_WEEK); + } + + // 根据要获取的星期值 - 当前星期值的差值计算需要获取的日期 + cal.add(Calendar.DATE, dayOfWeek - currentDayOfWeek); + return cal.getTime(); + } + + /** + * 获取下周指定星期天数 + * + * @param date + * @param dayOfWeek + * @return + */ + public static Date getDateOfNextWeek(Date date, int dayOfWeek) { + Calendar cal = Calendar.getInstance(); + cal.setTime(getDateOfThisWeek(date, dayOfWeek)); + cal.add(Calendar.DATE, 7); + return cal.getTime(); + } + + /** + * 获取上周指定星期天数 + * + * @param date + * @param dayOfWeek + * @return + */ + public static Date getDateOfLastWeek(Date date, int dayOfWeek) { + Calendar cal = Calendar.getInstance(); + cal.setTime(getDateOfThisWeek(date, dayOfWeek)); + cal.add(Calendar.DATE, -7); + return cal.getTime(); + } + + /** + * 获取指定时区的凌晨零点 + * @param timeZoneId + * @return + */ + public static Date getDayBegin(Date date, String timeZoneId) { + SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_001); + sdf.setLenient(false); + sdf.setTimeZone(TimeZone.getTimeZone(timeZoneId)); + String dateString = sdf.format(date); + try { + return sdf.parse(dateString); + } catch (ParseException e) { + return null; + } + } + + /** + * 获取n天前 + * @param days + * @return + */ + public static Date getDaysBefore(Date date, int days) { + Calendar cal = Calendar.getInstance(); + cal.setTime(date); + cal.add(Calendar.DATE, - days); + return cal.getTime(); + } + + /** + * 带时区解析日期 结果为服务器时区时间 + * @param date yyyy-MM-dd + * @param zoneId + * @return + */ + public static Date parserWithZone(String date, String zoneId) { + SimpleDateFormat simpleDateFormat = new SimpleDateFormat(DATE_FORMAT_001); + simpleDateFormat.setLenient(false); + simpleDateFormat.setTimeZone(TimeZone.getTimeZone(zoneId)); + try { + return simpleDateFormat.parse(date); + } catch (ParseException e) { + return null; + } + } + + + // ---------------------------------------- Private 函数 ------------------------------------------ + + /** + * Add Date并且返回一个新的日历对象 + */ + private static Date addDate(Date date, int calendarField, int amount) { + if (date == null) { + throw new IllegalArgumentException("The date must not be null"); + } + + Calendar c = Calendar.getInstance(); + c.setTime(date); + c.add(calendarField, amount); + return c.getTime(); + } +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/log/DigestValue.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/log/DigestValue.java new file mode 100644 index 0000000..8e31fce --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/log/DigestValue.java @@ -0,0 +1,30 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package electromagnetic.data.framework.share.log; + +import java.lang.annotation.*; + +/** + * @author wsk + * @version $Id: DigestValue.java, v 0.1 2024-10-20 18:47 wsk + */ +@Documented +@Target({ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +public @interface DigestValue { + + /** + * 顺序号(默认0,表示不指定顺序,按字段顺序排序) + * + * @return + */ + int value() default 0; + + /** + * 脱敏类型 + * + * @return + */ + Class shieldType() default Shield.class; +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/log/LogDigestBaseInfo.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/log/LogDigestBaseInfo.java new file mode 100644 index 0000000..21c299b --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/log/LogDigestBaseInfo.java @@ -0,0 +1,157 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package electromagnetic.data.framework.share.log; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.util.Date; + +/** + * @author wsk + * @version $Id: LogDigestBaseInfo.java, v 0.1 2024-10-20 18:45 wsk + */ +public class LogDigestBaseInfo { + + /** 服务门面 */ + private String facadeName; + + /** 服务方法 */ + private String methodName; + + /** 调用方应用名 */ + private String appName; + + /** 调用方主机ip */ + private String hostIp; + + /** traceId */ + private String traceId; + + /** 服务开始时间 */ + private final long startTime; + + /** + * 默认构造函数 + */ + public LogDigestBaseInfo() { + this.startTime = System.currentTimeMillis(); + } + + /** + * @see Object#toString() + */ + @Override + public String toString() { + return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE); + } + + /** + * 获取yyyyMMddHHmmssSSS格式的开始时间字符串 + * + * @return + */ + public String getStartDateFormat() { + return DateUtil.getFormatDate(new Date(startTime), "yyyyMMddHHmmssSSS"); + } + + /** + * Getter method for property facadeName. + * + * @return property value of facadeName + */ + public String getFacadeName() { + return facadeName; + } + + /** + * Setter method for property facadeName. + * + * @param facadeName value to be assigned to property facadeName + */ + public void setFacadeName(String facadeName) { + this.facadeName = facadeName; + } + + /** + * Getter method for property methodName. + * + * @return property value of methodName + */ + public String getMethodName() { + return methodName; + } + + /** + * Setter method for property methodName. + * + * @param methodName value to be assigned to property methodName + */ + public void setMethodName(String methodName) { + this.methodName = methodName; + } + + /** + * Getter method for property appName. + * + * @return property value of appName + */ + public String getAppName() { + return appName; + } + + /** + * Setter method for property appName. + * + * @param appName value to be assigned to property appName + */ + public void setAppName(String appName) { + this.appName = appName; + } + + /** + * Getter method for property hostIp. + * + * @return property value of hostIp + */ + public String getHostIp() { + return hostIp; + } + + /** + * Setter method for property hostIp. + * + * @param hostIp value to be assigned to property hostIp + */ + public void setHostIp(String hostIp) { + this.hostIp = hostIp; + } + + /** + * Getter method for property traceId. + * + * @return property value of traceId + */ + public String getTraceId() { + return traceId; + } + + /** + * Setter method for property traceId. + * + * @param traceId value to be assigned to property traceId + */ + public void setTraceId(String traceId) { + this.traceId = traceId; + } + + /** + * Getter method for property startTime. + * + * @return property value of startTime + */ + public long getStartTime() { + return startTime; + } +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/log/LogUtils.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/log/LogUtils.java new file mode 100644 index 0000000..bd3f1e4 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/log/LogUtils.java @@ -0,0 +1,455 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package electromagnetic.data.framework.share.log; + +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.builder.ReflectionToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import org.apache.commons.lang3.reflect.FieldUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.lang.reflect.Field; +import java.text.DateFormat; +import java.text.MessageFormat; +import java.text.SimpleDateFormat; +import java.util.*; + +/** + * @author wsk + * @version $Id: LogUtils.java, v 0.1 2024-10-20 18:37 wsk + */ +@Slf4j +public class LogUtils { + + /** 资产交换报文日志 */ + private static final Logger LOGGER = LoggerFactory.getLogger(LogUtils.class); + + /** 摘要日志的内容分隔符 */ + public static final String SEP = ","; + + /** 修饰符 */ + private static final char RIGHT_TAG = ']'; + + /** 修饰符 */ + private static final char LEFT_TAG = '['; + + + /** 全日志模式 */ + private static boolean printAllMode = false; + + /** 格式化开始符号 */ + public static final String FMT_BEGIN = "[("; + + /** 格式化中间符号 */ + public static final String FMT_MIDDLE = ")("; + + /** 格式化结束符号 */ + public static final String FMT_END = ")]"; + + /** 数组开始符号 */ + public static final String ARR_BEGIN = "["; + + /** 数组结束符号 */ + public static final String ARR_END = "]"; + + /** 毫秒 */ + public static final String MS = "ms"; + + /** 没有值时日志上以-替代 */ + public static final String NONE = "-"; + + /** 逗号 */ + public static final String COMMA = ","; + + /** 点号 */ + public static final String DOT = "."; + + /** 业务成功标识 */ + public static final String YES = "Y"; + + /** 业务失败标识 */ + public static final String NO = "N"; + + /** 下划线 */ + public static final String UNDERLINE = "_"; + + /** 未知错误 */ + public static final String UNKNOW_ERROR = "UNKNOW_ERROR"; + + /** 完整日期格式 */ + private final static String FULL_DATE_FORMAT = "yyyy-MM-dd HH:mm:ss"; + + /** + * 屏蔽构造函数 + */ + private LogUtils() {} + + /** + *

+ * 生成通知级别日志 + *

+ *

+ * 根据带参数的日志模板和参数集合,生成info级别日志 + * 带参数的日志模板中以{数字}表示待替换为变量的日志点,如a={0},表示用参数集合中index为0的参数替换{0}处 + *

+ * + * @param logger logger引用 + * @param model 带参数的日志模板 + * @param parameters 参数集合 + */ + public static void info(Logger logger, String model, Object... parameters) { + if (logger.isInfoEnabled()) { + logger.info(MessageFormat.format(model,parameters)); + } + } + + /** + * 打印info级别日志信息(适用于没有参数场景下) + * + * @param logger logger引用 + * @param message 日志信息 + */ + public static void info(Logger logger, String message) { + logger.info(message); + } + + /** + *

+ * 生成调试级别日志 + *

+ *

+ * 根据带参数的日志模板和参数集合,生成debug级别日志 + * 带参数的日志模板中以{数字}表示待替换为变量的日志点,如a={0},表示用参数集合中index为0的参数替换{0}处 + *

+ * + * @param logger logger引用 + * @param model 带参数的日志模板 + * @param parameters 参数集合 + */ + public static void debug(Logger logger, String model, Object... parameters) { + if (logger.isDebugEnabled()) { + logger.debug(MessageFormat.format(model,parameters)); + } + } + + /** + *

+ * 生成警告级别日志 + *

+ *

+ * 根据带参数的日志模板和参数集合,生成warn级别日志 + * 带参数的日志模板中以{数字}表示待替换为变量的日志点,如a={0},表示用参数集合中index为0的参数替换{0}处 + *

+ * + * @param logger logger引用 + * @param model 带参数的日志模板 + * @param parameters 参数集合 + */ + public static void warn(Logger logger, String model, Object... parameters) { + if (logger.isWarnEnabled()) { + logger.warn(MessageFormat.format(model,parameters)); + } + } + + /** + *

+ * 生成警告级别日志 + *

+ *

+ * 带异常堆栈 + *

+ * + * @param e + * @param logger + * @param template + * @param parameters + */ + public static void warn(Throwable e, Logger logger, String template, Object... parameters) { + if (logger.isWarnEnabled()) { + logger.warn(MessageFormat.format(template,parameters),e); + } + } + + /** + *

+ * 生成错误级别日志 + *

+ *

+ * 根据带参数的日志模板和参数集合,生成error级别日志 + * 带参数的日志模板中以{数字}表示待替换为变量的日志点,如a={0},表示用参数集合中index为0的参数替换{0}处 + *

+ * + * @param e 错误异常堆栈 + * @param logger logger引用 + * @param template 带参数的日志模板 + * @param parameters 参数集合 + */ + public static void error(Throwable e, Logger logger, String template, Object... parameters) { + if (logger.isErrorEnabled()) { + logger.error(MessageFormat.format(template,parameters),e); + } + } + + /** + *

+ * 生成错误级别日志 + *

+ *

+ * 根据带参数的日志模板和参数集合,生成error级别日志 + * 带参数的日志模板中以{数字}表示待替换为变量的日志点,如a={0},表示用参数集合中index为0的参数替换{0}处 + *

+ * + * @param logger logger引用 + * @param model 带参数的日志模板 + * @param parameters 参数集合 + */ + public static void error(Logger logger, String model, Object... parameters) { + if (logger.isErrorEnabled()) { + logger.error(MessageFormat.format(model,parameters)); + } + } + + /** + * 打印error日志。 + * + * ERROR日志记录尽量使用{@link },避免日志的重复记录 + * + * @param logger 日志对象 + * @param e 异常信息 + * @param objs 任意个要输出到日志的参数 + */ + public static void error(Logger logger, Throwable e, Object... objs) { + logger.error(getLogString(objs), e); + } + + /** + * 生成输出到日志的字符串 + * + * @param objs 任意个要输出到日志的参数 + * @return 日志字符串 + */ + public static String getLogString(Object... objs) { + StringBuilder log = new StringBuilder(); + log.append(LEFT_TAG); +// log.append(fetchInvokeId()).append(SEP); +// log.append(fetchLoadTestStamp()).append(SEP); +// log.append(fetchTntInstId()).append(SEP); + // 预留扩展位 + log.append(SEP).append(RIGHT_TAG); + + if (objs != null) { + for (Object o : objs) { + log.append(o); + } + } + return log.toString(); + } + + /** + * 全日志模式日志输出 + * + * @param object 待输出日志对象 + * @return 输出日志 + */ + public static String objectToLog(Object object) { + if (object == null) { + return null; + } + + if (printAllMode) { + return ReflectionToStringBuilder.toString(object, ToStringStyle.SHORT_PREFIX_STYLE); + } + + return object.toString(); + } + + /** + * 生成用于唯一标识一次业务调用流程的uuid + * + *

调用场景只有两处: + *

  • 外部接口入口处 + *
  • 异步任务入口处 + * + * + * @param pdSeqNo 业务流水号 + * @return uuid + */ + public static String generateBusinessFlowUUID(String pdSeqNo) { + return String.format("%s-%s", pdSeqNo, UUID.randomUUID().toString()); + } + + + /** + * 对dal-digest日志进行格式化: [(tracerId)(dsId,call.method,Y,1ms)] + * @param dsId 数据源id + * @param method 方法 + * @param hasError 是否有异常 + * @param elapseTimeInMillis 时间in ms + * @return 格式化串 + */ + public static void logDALDigest(Logger logger, String dsId, String method, boolean hasError, + long elapseTimeInMillis, long dataSize) { + if (logger.isInfoEnabled()) { + StringBuilder sb = new StringBuilder(); + sb.append(FMT_BEGIN); + + sb.append(ifBlank(dsId)).append(COMMA).append(method).append(COMMA) + .append(hasError ? NO : YES).append(COMMA).append(elapseTimeInMillis).append(MS) + .append(COMMA).append(dataSize).append(COMMA).append(FMT_END); + logger.info(sb.toString()); + } + } + + /** + * 对第三方调用日志进行格式化: [(tracerId)(dsId,call.method,Y,1ms)] + * + * @param classMethod 方法 + * @param success 是否处理成功 + * @param errorCode 错误码 + * @param spendTime 时间in ms + * @return 格式化串 + */ + public static void logSalDigest(Logger logger, String classMethod, boolean success, String errorCode, + long spendTime, String request, String result) { + if (logger.isInfoEnabled()) { + StringBuilder sb = new StringBuilder(); + sb.append(FMT_BEGIN); + sb.append(ifBlank(classMethod)).append(COMMA).append(success ? "Y" : "N").append(COMMA) + .append(ifBlank(errorCode)).append(COMMA).append(String.valueOf(spendTime)) + .append(COMMA).append(FMT_MIDDLE); + + sb.append(ifBlank(request)).append(COMMA).append(FMT_MIDDLE); + + sb.append(ifBlank(result)).append(COMMA).append(FMT_END); + + logger.info(sb.toString()); + } + } + + /** + * 打印API-DIGEST日志 + * + * @param baseInfo + * @param success + * @param errorCode + * @param spendTime + * @param request + * @param result + */ + public static void logApiDigest(LogDigestBaseInfo baseInfo, boolean success, String errorCode, + long spendTime, String request, String result) { + if (LOGGER.isInfoEnabled()) { + StringBuilder sb = new StringBuilder(); + sb.append(FMT_BEGIN); + sb.append(ifBlank(baseInfo.getTraceId())).append(FMT_MIDDLE); + sb.append(ifBlank(baseInfo.getFacadeName())).append(DOT) + .append(ifBlank(baseInfo.getMethodName())); + sb.append(COMMA).append(success ? "Y" : "N").append(COMMA).append(ifBlank(errorCode)) + .append(COMMA).append(String.valueOf(spendTime)); + sb.append(COMMA).append(ifBlank(baseInfo.getStartDateFormat())).append(COMMA) + .append(ifBlank(baseInfo.getAppName())).append(COMMA) + .append(ifBlank(baseInfo.getHostIp())).append(COMMA).append(FMT_MIDDLE); + + sb.append(ifBlank(request)).append(COMMA).append(FMT_MIDDLE); + + sb.append(ifBlank(result)).append(COMMA).append(FMT_END); + + LOGGER.info(sb.toString()); + } + } + + /** + * 入参为null或者空串时,返回"-",否则返回自身 + * + * @param value 入参字符串 + * @return 入参为null或者空串时, 返回"-",否则返回自身 + */ + private static String ifBlank(String value) { + return StringUtils.isBlank(value) ? NONE : value; + } + + /** + * 获取摘要日志 + * + * @return + */ + public static String getDigestLog(Object obj) { + if (null == obj) { + return NONE; + } + + List> digestValueList = Lists.newArrayList(); + + Collections.sort(retrieveDigestValues(obj, obj.getClass(), digestValueList), DIGEST_VALUE_SORTER); + + Object[] digestValues = new Object[digestValueList.size()]; + int i = 0; + for (Map.Entry digestValue : digestValueList) { + digestValues[i++] = digestValue.getKey(); + } + + return getDigestLog(digestValues); + } + + /** + * 按"yyyy-MM-dd hh:mm:ss"的格式输出日期 + * + * @param date 日期对象 + * @return 格式化后的字符串 + */ + public static String toFullDateString(Date date) { + if (null == date) { + return null; + } + + DateFormat df = new SimpleDateFormat(FULL_DATE_FORMAT); + df.setLenient(false); + return df.format(date); + } + + /** + * 获取摘要日志 + * + * @return + */ + private static List> retrieveDigestValues(Object obj, Class clazz, + final List> digestValueList) { + + if (null == obj || clazz == null || clazz == Object.class) { + return digestValueList; + } + + for (Field field : clazz.getDeclaredFields()) { + DigestValue digestValueAnnotation = field.getAnnotation(DigestValue.class); + if (digestValueAnnotation != null) { + try { + digestValueList.add(Maps.immutableEntry(ShieldUtil.shieldByType(digestValueAnnotation.shieldType(), + FieldUtils.readField(field, obj, true)), + digestValueAnnotation.value())); + } catch (IllegalAccessException ex) { + LogUtils.error(LOGGER, ex, "摘要字段值获取失败,field:{0}", field.toString()); + } + } + } + + // 获取父类定义的摘要字段 + return retrieveDigestValues(obj, clazz.getSuperclass(), digestValueList); + } + + /** + * 摘要值排序器 + */ + private static final Comparator> DIGEST_VALUE_SORTER = new Comparator>() { + + @Override + public int compare(Map.Entry o1, Map.Entry o2) { + + return o1.getValue().compareTo(o2.getValue()); + } + }; +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/log/ServiceResultHandleUtil.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/log/ServiceResultHandleUtil.java new file mode 100644 index 0000000..3b00e67 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/log/ServiceResultHandleUtil.java @@ -0,0 +1,102 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package electromagnetic.data.framework.share.log; + +import electromagnetic.data.framework.share.common.ParamsConstants; +import electromagnetic.data.framework.share.enums.ElectromagneticCommonErrorEnum; +import electromagnetic.data.framework.share.enums.ElectromagneticSceneIncidentEnum; +import electromagnetic.data.framework.share.exception.BizRuntimeException; +import electromagnetic.data.framework.share.exception.ElectromagneticBizRuntimeException; +import electromagnetic.data.framework.share.model.ElectromagneticPaginationResult; +import electromagnetic.data.framework.share.model.ElectromagneticResult; +import electromagnetic.data.framework.share.model.PageModel; +import electromagnetic.data.framework.share.result.CallbackResult; +import electromagnetic.data.framework.share.exception.IllegalParameterException; + +import javax.xml.bind.ValidationException; +import java.util.Optional; + +/** + * @author wsk + * @version $Id: ServiceResultHandleUtil.java, v 0.1 2024-10-20 19:01 wsk + */ +public class ServiceResultHandleUtil { + + public static ElectromagneticResult serviceError(Throwable t) { + ElectromagneticResult result = new ElectromagneticResult<>(); + result.setSuccess(Boolean.FALSE); + if (t instanceof ValidationException) { + result.setErrorCode(ElectromagneticBizRuntimeException.of(ElectromagneticSceneIncidentEnum.GENERAL_ILLEGAL_PARAMS, ElectromagneticCommonErrorEnum.ILLEGAL_PARAMS).getErrorCode()); + result.setErrorMessage(t.getCause().getMessage()); + } else if (t instanceof IllegalParameterException) { + result.setErrorCode(ElectromagneticBizRuntimeException.of(ElectromagneticSceneIncidentEnum.GENERAL_ILLEGAL_PARAMS, ElectromagneticCommonErrorEnum.ILLEGAL_PARAMS).getErrorCode()); + result.setErrorMessage(ElectromagneticCommonErrorEnum.ILLEGAL_PARAMS.getErrorDesc() + "@" + t.getLocalizedMessage()); + } else if (t instanceof BizRuntimeException) { + result.setErrorCode(((BizRuntimeException) t).getErrorCode()); + result.setErrorMessage((t).getMessage()); + } else { + result.setErrorCode(ElectromagneticBizRuntimeException.of(ElectromagneticSceneIncidentEnum.GENERAL_SYSTEM_ERROR, ElectromagneticCommonErrorEnum.SYSTEM_ERROR).getErrorCode()); + result.setErrorMessage(ElectromagneticCommonErrorEnum.SYSTEM_ERROR.getErrorDesc() + "@" + t.getLocalizedMessage()); + } + return result; + } + + public static ElectromagneticPaginationResult servicePageError(Throwable t) { + ElectromagneticPaginationResult result = new ElectromagneticPaginationResult<>(); + result.setSuccess(Boolean.FALSE); + result.setPageIndex(ParamsConstants.NUM_ONE); + result.setPageSize(ParamsConstants.NUM_ONE); + result.setTotalCount(ParamsConstants.NUM_ONE); + if (t instanceof IllegalParameterException) { + result.setErrorCode(ElectromagneticBizRuntimeException.of(ElectromagneticSceneIncidentEnum.GENERAL_ILLEGAL_PARAMS, ElectromagneticCommonErrorEnum.ILLEGAL_PARAMS).getErrorCode()); + result.setErrorMessage(ElectromagneticCommonErrorEnum.ILLEGAL_PARAMS.getErrorDesc() + "@" + t.getLocalizedMessage()); + } else if (t instanceof BizRuntimeException) { + result.setErrorCode(((BizRuntimeException) t).getErrorCode()); + result.setErrorMessage((t).getMessage()); + } else { + result.setErrorCode(ElectromagneticBizRuntimeException.of(ElectromagneticSceneIncidentEnum.GENERAL_SYSTEM_ERROR, ElectromagneticCommonErrorEnum.SYSTEM_ERROR).getErrorCode()); + result.setErrorMessage(ElectromagneticCommonErrorEnum.SYSTEM_ERROR.getErrorDesc() + "@" + t.getLocalizedMessage()); + } + return result; + } + + + public static ElectromagneticResult convertDomainResult2ServiceResult(CallbackResult domainResult) { + ElectromagneticResult serviceResult = new ElectromagneticResult<>(); + serviceResult.setData(domainResult.getBusinessObject()); + serviceResult.setSuccess(domainResult.isSuccess()); + serviceResult.setErrorCode(domainResult.getResultCode()); + serviceResult.setErrorMessage(domainResult.getResultMessage()); + return serviceResult; + } + + public static ElectromagneticPaginationResult convertDomainResult2ServicePageResult(CallbackResult> domainResult) { + ElectromagneticPaginationResult serviceResult = new ElectromagneticPaginationResult<>(); + serviceResult.setSuccess(domainResult.isSuccess()); + if (domainResult.getBusinessObject() != null) { + Optional.ofNullable(domainResult.getBusinessObject()).ifPresent(v -> serviceResult.setData(v.getModel())); + Optional.ofNullable(domainResult.getBusinessObject()).ifPresent(v -> serviceResult.setPageIndex((v.getPageIndex()))); + Optional.ofNullable(domainResult.getBusinessObject()).ifPresent(v -> serviceResult.setPageSize((v.getPageSize()))); + Optional.ofNullable(domainResult.getBusinessObject()).ifPresent(v -> serviceResult.setTotalCount((v.getTotalCount()))); + } else { + serviceResult.setPageIndex(1); + serviceResult.setTotalCount(0); + serviceResult.setPageSize(10); + + } + serviceResult.setErrorCode(domainResult.getResultCode()); + serviceResult.setErrorMessage(domainResult.getResultMessage()); + return serviceResult; + } + + + public static ElectromagneticResult convertDomainPageResult2ServiceResult(CallbackResult> domainResult) { + ElectromagneticResult serviceResult = new ElectromagneticResult<>(); + serviceResult.setSuccess(domainResult.isSuccess()); + Optional.ofNullable(domainResult.getBusinessObject()).ifPresent(v -> serviceResult.setData(v.getModel())); + serviceResult.setErrorCode(domainResult.getResultCode()); + serviceResult.setErrorMessage(domainResult.getResultMessage()); + return serviceResult; + } +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/log/Shield.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/log/Shield.java new file mode 100644 index 0000000..309ce26 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/log/Shield.java @@ -0,0 +1,31 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package electromagnetic.data.framework.share.log; + +/** + * 屏蔽器接口 + * @author wsk + * @version $Id: Shield.java, v 0.1 2024-10-20 18:47 wsk + */ +public interface Shield { + + /** + * 隐藏符 + */ + public static final char SHIELD_CHAR = '*'; + + /** + * 隐藏敏感信息 + * + * @param fieldValue 需要屏蔽的值,一般是字符串 + * @return + */ + public String shield(Object fieldValue, String[] addition); + + /** + * 是否返回空串 + * @return + */ + public boolean isClean(); +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/log/ShieldUtil.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/log/ShieldUtil.java new file mode 100644 index 0000000..d6ba1f1 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/log/ShieldUtil.java @@ -0,0 +1,37 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package electromagnetic.data.framework.share.log; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * @author wsk + * @version $Id: ShieldUtil.java, v 0.1 2024-10-20 18:48 wsk + */ +public class ShieldUtil { + + private static final Logger LOGGER = LoggerFactory.getLogger(ShieldUtil.class); + /** + * 按指定类型进行脱敏 + * + * @param type + * @param data + * @return + */ + public static final Object shieldByType(Class type, Object data) { + try { + if (type == Shield.class || data == null || type.isInterface()) { + return data; + } + + Shield shield = type.getDeclaredConstructor().newInstance(); + return shield.shield(data, null); + } catch (Exception e) { + LOGGER.error("脱敏类型配置错误,无法创建实例!" + type.getName(), e); + } + + return data; + } +} diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/model/BaseRequest.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/model/BaseRequest.java new file mode 100644 index 0000000..5b2b098 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/model/BaseRequest.java @@ -0,0 +1,56 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package electromagnetic.data.framework.share.model; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @author wsk + * @version $Id: BaseRequest.java, v 0.1 2024-10-18 18:46 wsk + */ +@Data +public class BaseRequest implements Serializable { + + private static final long serialVersionUID = -9017146892952264211L; + + /** + * 操作用户id + */ + private String userId; + + /** + * 用户部门 + */ + private String department; + + /** + * 用户名 + */ + private String userName; + + /** + * 调用服务ip + */ + private String ip; + + /** + * 调用服务app name + */ + private String appName; + /** + *人员编码 + */ + private String personNo; + /** + *人员姓名 + */ + private String personName; + /** + * 权限码 + */ + private String permissionCode; + +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/model/ElectromagneticPaginationInfo.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/model/ElectromagneticPaginationInfo.java new file mode 100644 index 0000000..71b2816 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/model/ElectromagneticPaginationInfo.java @@ -0,0 +1,145 @@ +/** + * Copyright (c) 2004-2020 All Rights Reserved. + */ +package electromagnetic.data.framework.share.model; + +/** + * 分页对象 + * + * @author + * @version $Id: DataplatformPaginationInfo.java, v 0.1 2020-12-25 16:54 Exp $$ + */ +public class ElectromagneticPaginationInfo { + /** + * 数据对象传给前台的json + */ + private T data; + /** + * 当前页数 + */ + private Integer pageIndex; + /** + * 每页显示多少记录数 + */ + private Integer PageSize; + /** + * 总记录数量 + */ + private Integer pageTotal; + + /** + * 总页数 + */ + private Integer PageCount; + + public ElectromagneticPaginationInfo(T data, Integer pageIndex, Integer pageSize, Integer pageTotal, Integer pageCount) { + this.data = data; + this.pageIndex = pageIndex; + PageSize = pageSize; + this.pageTotal = pageTotal; + PageCount = pageCount; + } + + public ElectromagneticPaginationInfo() { + } + + /** + * Getter method for property data. + * + * @return property value of data + */ + public T getData() { + return data; + } + + /** + * Setter method for property data. + * + * @param data value to be assigned to property data + */ + public void setData(T data) { + this.data = data; + } + + /** + * Getter method for property pageIndex. + * + * @return property value of pageIndex + */ + public Integer getPageIndex() { + return pageIndex; + } + + /** + * Setter method for property pageIndex. + * + * @param pageIndex value to be assigned to property pageIndex + */ + public void setPageIndex(Integer pageIndex) { + this.pageIndex = pageIndex; + } + + /** + * Getter method for property PageSize. + * + * @return property value of PageSize + */ + public Integer getPageSize() { + return PageSize; + } + + /** + * Setter method for property PageSize. + * + * @param pageSize value to be assigned to property PageSize + */ + public void setPageSize(Integer pageSize) { + PageSize = pageSize; + } + + /** + * Getter method for property pageTotal. + * + * @return property value of pageTotal + */ + public Integer getPageTotal() { + return pageTotal; + } + + /** + * Setter method for property pageTotal. + * + * @param pageTotal value to be assigned to property pageTotal + */ + public void setPageTotal(Integer pageTotal) { + this.pageTotal = pageTotal; + } + + /** + * Getter method for property PageCount. + * + * @return property value of PageCount + */ + public Integer getPageCount() { + return PageCount; + } + + /** + * Setter method for property PageCount. + * + * @param pageCount value to be assigned to property PageCount + */ + public void setPageCount(Integer pageCount) { + PageCount = pageCount; + } + @Override + public String toString() { + return "PaginationInfo{" + + "data=" + data + + ", pageIndex=" + pageIndex + + ", PageSize=" + PageSize + + ", pageTotal=" + pageTotal + + ", PageCount=" + PageCount + + '}'; + } +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/model/ElectromagneticPaginationResult.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/model/ElectromagneticPaginationResult.java new file mode 100644 index 0000000..1613b2a --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/model/ElectromagneticPaginationResult.java @@ -0,0 +1,193 @@ +/** + * Alibaba.com Inc. Copyright (c) 2004-2020 All Rights Reserved. + */ +package electromagnetic.data.framework.share.model; + +import electromagnetic.data.framework.share.result.Message; +import electromagnetic.data.framework.share.result.ResultModel; + +import java.io.Serializable; + +/** + * 封装返回给前台数据(含分页) + * @author + * @version v 0.1 + * @Date 2020-12-25 15:03 + */ + + +public class ElectromagneticPaginationResult implements Serializable, ResultModel { + + private static final long serialVersionUID = 2918761644445008514L; + + /** + * 请求成功还是失败 + */ + private Boolean success; + + private String errorCode; + + private String errorMessage; + + private Integer totalCount; + + private Integer pageIndex; + + private Integer pageSize; + + /** + * 数据对象传给前台的json + */ + private T data; + + public ElectromagneticPaginationResult() { + } + + public ElectromagneticPaginationResult(Boolean success, String errorCode, String errorMessage, Integer totalCount, + Integer pageIndex, Integer pageSize, T data) { + this.success = success; + this.errorCode = errorCode; + this.errorMessage = errorMessage; + this.totalCount = totalCount; + this.pageIndex = pageIndex; + this.pageSize = pageSize; + this.data = data; + } + + @Override + public T getData() { + return (T) data; + } + + @Override + public int getPageIndex() { + return pageIndex; + } + + @Override + public Integer getTotalCount() { + return totalCount; + } + + @Override + public int getPageSize() { + return pageSize; + } + + /** + * Getter method for property success. + * + * @return property value of success + */ + public Boolean getSuccess() { + return success; + } + + /** + * Setter method for property success. + * + * @param success value to be assigned to property success + */ + public void setSuccess(Boolean success) { + this.success = success; + } + + + /** + * Setter method for property totalCount. + * + * @param totalCount value to be assigned to property totalCount + */ + public void setTotalCount(Integer totalCount) { + this.totalCount = totalCount; + } + + /** + * Setter method for property pageIndex. + * + * @param pageIndex value to be assigned to property pageIndex + */ + public void setPageIndex(Integer pageIndex) { + this.pageIndex = pageIndex; + } + + /** + * Getter method for property errorCode. + * + * @return property value of errorCode + */ + public String getErrorCode() { + return errorCode; + } + + /** + * Setter method for property errorCode. + * + * @param errorCode value to be assigned to property errorCode + */ + public void setErrorCode(String errorCode) { + this.errorCode = errorCode; + } + + /** + * Getter method for property errorMsg. + * + * @return property value of errorMsg + */ + public String getErrorMessage() { + return errorMessage; + } + + /** + * Setter method for property errorMsg. + * + * @param errorMessage value to be assigned to property errorMsg + */ + public void setErrorMessage(String errorMessage) { + this.errorMessage = errorMessage; + } + + /** + * Setter method for property pageSize. + * + * @param pageSize value to be assigned to property pageSize + */ + public void setPageSize(Integer pageSize) { + this.pageSize = pageSize; + } + + /** + * Setter method for property data. + * + * @param data value to be assigned to property data + */ + public void setData(T data) { + this.data = data; + } + + @Override + public Integer getStatus() { + return success ? 1 : 0; + } + + @Override + public Message getMessage() { + Message msg = new Message(this.getErrorMessage()); + //页面展示时,防止出现null状况 + msg.setCode(""); + return msg; + } + + @Override + public String toString() { + return "PaginationResult{" + + "success=" + success + + ", errorCode='" + errorCode + '\'' + + ", errorMessage='" + errorMessage + '\'' + + ", totalCount=" + totalCount + + ", pageIndex=" + pageIndex + + ", pageSize=" + pageSize + + ", data=" + data + + '}'; + } +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/model/ElectromagneticRequest.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/model/ElectromagneticRequest.java new file mode 100644 index 0000000..846c382 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/model/ElectromagneticRequest.java @@ -0,0 +1,186 @@ +/** + * Alibaba.com Inc. Copyright (c) 2004-2020 All Rights Reserved. + */ +package electromagnetic.data.framework.share.model; + +import java.io.Serializable; + +/** + * 用于存储页面请求带过来的用户相关信息 + * @author + * @version v 0.1 + * @Date 2020-12-25 14:56 + */ + +public class ElectromagneticRequest implements Serializable { + + private static final long serialVersionUID = -9017146892952264211L; + + /** + * 操作用户id + */ + private String userId; + + /** + * 用户部门 + */ + private String department; + + /** + * 用户名 + */ + private String userName; + + /** + * 调用服务ip + */ + private String ip; + + /** + * 调用服务app name + */ + private String appName; + /** + *人员编码 + */ + private String personNo; + /** + *人员姓名 + */ + private String personName; + /** + * 權限嗎 + */ + private String permissionCode; + + + + + public ElectromagneticRequest(String userId, String department, String userName, String ip, String appName, String personNo, String personName, String permissionCode) { + this.userId = userId; + this.department = department; + this.userName = userName; + this.ip = ip; + this.appName = appName; + this.personNo = personNo; + this.personName = personName; + this.permissionCode = permissionCode; + } + + public ElectromagneticRequest() { + + } + public String getPersonNo() { + return personNo; + } + + public void setPersonNo(String personNo) { + this.personNo = personNo; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + /** + * Getter method for property userId. + * + * @return property value of userId + */ + public String getUserId() { + return userId; + } + + /** + * Setter method for property userId. + * + * @param userId value to be assigned to property userId + */ + public void setUserId(String userId) { + this.userId = userId; + } + + /** + * Getter method for property department. + * + * @return property value of department + */ + public String getDepartment() { + return department; + } + + /** + * Setter method for property department. + * + * @param department value to be assigned to property department + */ + public void setDepartment(String department) { + this.department = department; + } + + /** + * Getter method for property userName. + * + * @return property value of userName + */ + public String getUserName() { + return userName; + } + + /** + * Setter method for property userName. + * + * @param userName value to be assigned to property userName + */ + public void setUserName(String userName) { + this.userName = userName; + } + + /** + * Getter method for property ip. + * + * @return property value of ip + */ + public String getIp() { + return ip; + } + + /** + * Setter method for property ip. + * + * @param ip value to be assigned to property ip + */ + public void setIp(String ip) { + this.ip = ip; + } + + /** + * Getter method for property appName. + * + * @return property value of appName + */ + public String getAppName() { + return appName; + } + + /** + * Setter method for property appName. + * + * @param appName value to be assigned to property appName + */ + public void setAppName(String appName) { + this.appName = appName; + } + + + public String getPermissionCode() { + return permissionCode; + } + + public void setPermissionCode(String permissionCode) { + this.permissionCode = permissionCode; + } +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/model/ElectromagneticResult.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/model/ElectromagneticResult.java new file mode 100644 index 0000000..b0d3637 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/model/ElectromagneticResult.java @@ -0,0 +1,135 @@ +/** + * Copyright (c) 2004-2021 All Rights Reserved. + */ +package electromagnetic.data.framework.share.model; + +import electromagnetic.data.framework.share.result.Message; +import electromagnetic.data.framework.share.result.Result; + +import java.io.Serializable; + +/** + * 封装给返回前台数据(无分页) + * + * @author + */ +public class ElectromagneticResult implements Serializable, Result { + + private static final long serialVersionUID = -6408526187818056594L; + /** + * 请求成功还是失败 + */ + private Boolean success; + + /** + * 错误码 + */ + private String errorCode; + + /** + * 错误消息 + */ + private String errorMessage; + + /** + * 数据对象传给前台的json + */ + private T data; + + public ElectromagneticResult() { + + } + + public ElectromagneticResult(Boolean success, String errorCode, String errorMessage, T data) { + this.success = success; + this.errorCode = errorCode; + this.errorMessage = errorMessage; + this.data = data; + } + + /** + * Getter method for property success. + * + * @return property value of success + */ + public Boolean getSuccess() { + return success; + } + + /** + * Setter method for property success. + * + * @param success value to be assigned to property success + */ + public void setSuccess(Boolean success) { + this.success = success; + } + + + /** + * Getter method for property data. + * + * @return property value of data + */ + public T getData() { + return data; + } + + /** + * Setter method for property data. + * + * @param data value to be assigned to property data + */ + public void setData(T data) { + this.data = data; + } + + @Override + public Integer getStatus() { + return success ? 1 : 0; + } + + /** + * Getter method for property errorCode. + * + * @return property value of errorCode + */ + public String getErrorCode() { + return errorCode; + } + + /** + * Setter method for property errorCode. + * + * @param errorCode value to be assigned to property errorCode + */ + public void setErrorCode(String errorCode) { + this.errorCode = errorCode; + } + + /** + * Getter method for property errorMsg. + * + * @return property value of errorMsg + */ + public String getErrorMessage() { + return errorMessage; + } + + /** + * Setter method for property errorMsg. + * + * @param errorMessage value to be assigned to property errorMsg + */ + public void setErrorMessage(String errorMessage) { + this.errorMessage = errorMessage; + } + + @Override + public Message getMessage() { + Message msg = new Message(this.getErrorMessage()); + //页面展示时,防止出现null状况 + msg.setCode(""); + return msg; + } +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/model/ElectromagneticResultMessage.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/model/ElectromagneticResultMessage.java new file mode 100644 index 0000000..039bb9d --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/model/ElectromagneticResultMessage.java @@ -0,0 +1,79 @@ +/** + * Copyright (c) 2004-2020 All Rights Reserved. + */ +package electromagnetic.data.framework.share.model; + +/** + * 前端错误信息 + * + * @author + * @version $Id: ElectromagneticResultMessage.java, v 0.1 2020-12-31 10:35 Exp $$ + */ +public class ElectromagneticResultMessage { + private Integer code; + private String message; + private String description; + + public ElectromagneticResultMessage(){ + + } + public ElectromagneticResultMessage(Integer code, String message, String description) { + this.code = code; + this.message = message; + this.description = description; + } + + /** + * Getter method for property code. + * + * @return property value of code + */ + public Integer getCode() { + return code; + } + + /** + * Setter method for property code. + * + * @param code value to be assigned to property code + */ + public void setCode(Integer code) { + this.code = code; + } + + /** + * Getter method for property message. + * + * @return property value of message + */ + public String getMessage() { + return message; + } + + /** + * Setter method for property message. + * + * @param message value to be assigned to property message + */ + public void setMessage(String message) { + this.message = message; + } + + /** + * Getter method for property description. + * + * @return property value of description + */ + public String getDescription() { + return description; + } + + /** + * Setter method for property description. + * + * @param description value to be assigned to property description + */ + public void setDescription(String description) { + this.description = description; + } +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/model/ElectromagneticResultUtil.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/model/ElectromagneticResultUtil.java new file mode 100644 index 0000000..e34cd86 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/model/ElectromagneticResultUtil.java @@ -0,0 +1,69 @@ +/** + * Copyright (c) 2004-2021 All Rights Reserved. + */ +package electromagnetic.data.framework.share.model; + + +import electromagnetic.data.framework.share.enums.ErrorEnum; +import electromagnetic.data.framework.share.result.CallbackResult; + +/** + * 返回结果转换工具类 + * + * @version $Id: DataCenterResultUtil.java, v 0.1 2021-01-11 16:57 Exp $$ + */ +public class ElectromagneticResultUtil { + + public static ElectromagneticResult convertToResult(CallbackResult callbackResult) { + ElectromagneticResult electromagneticResult = new ElectromagneticResult<>(); + electromagneticResult.setSuccess(callbackResult.isSuccess()); + electromagneticResult.setData(callbackResult.getBusinessObject()); + electromagneticResult.setErrorCode(callbackResult.getResultCode()); + electromagneticResult.setErrorMessage(callbackResult.getResultMessage()); + return electromagneticResult; + } + + public static ElectromagneticPaginationResult convertToPaginationResult(CallbackResult> callbackResult) { + ElectromagneticPaginationResult electromagneticPaginationResult = new ElectromagneticPaginationResult<>(); + ElectromagneticPaginationInfo electromagneticPaginationInfo = callbackResult.getBusinessObject(); + + electromagneticPaginationResult.setSuccess(callbackResult.isSuccess()); + if (callbackResult.isFailure()) { + electromagneticPaginationResult.setErrorCode(callbackResult.getResultCode()); + electromagneticPaginationResult.setErrorMessage(callbackResult.getResultMessage()); + return electromagneticPaginationResult; + } + if (electromagneticPaginationInfo != null) { + electromagneticPaginationResult.setData(electromagneticPaginationInfo.getData()); + electromagneticPaginationResult.setPageIndex(electromagneticPaginationInfo.getPageIndex()); + electromagneticPaginationResult.setPageSize(electromagneticPaginationInfo.getPageSize()); + electromagneticPaginationResult.setTotalCount(electromagneticPaginationInfo.getPageTotal()); + } + + return electromagneticPaginationResult; + } + + public static ElectromagneticResult success(T data){ + ElectromagneticResult electromagneticResult = new ElectromagneticResult<>(); + electromagneticResult.setSuccess(true); + electromagneticResult.setData(data); + return electromagneticResult; + } + + + public static ElectromagneticResult fail(String code , String msg){ + ElectromagneticResult electromagneticResult = new ElectromagneticResult<>(); + electromagneticResult.setSuccess(false); + electromagneticResult.setErrorCode(code); + electromagneticResult.setErrorMessage(msg); + return electromagneticResult; + } + + public static ElectromagneticResult fail(ErrorEnum errorEnum){ + ElectromagneticResult electromagneticResult = new ElectromagneticResult<>(); + electromagneticResult.setSuccess(false); + electromagneticResult.setErrorCode(errorEnum.getCode()); + electromagneticResult.setErrorMessage(errorEnum.getErrorMessage()); + return electromagneticResult; + } +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/model/PageModel.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/model/PageModel.java new file mode 100644 index 0000000..8584470 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/model/PageModel.java @@ -0,0 +1,80 @@ +/** + * Alibaba.com Inc. Copyright (c) 2004-2021 All Rights Reserved. + */ +package electromagnetic.data.framework.share.model; + +/** + * @author + * @version v 0.1 + * @Date 2021-01-08 15:28 + */ + +public class PageModel { + + private static final int DEFAULT_SIZE = 20; + + private int totalCount = 0; + + private int pageIndex = 1; + + private int pageSize = DEFAULT_SIZE; + + private T model; + + /** + * Getter method for property model. + * + * @return property value of model + */ + public T getModel() { + return model; + } + + /** + * Setter method for property model. + * + * @param model value to be assigned to property model + */ + public void setModel(T model) { + this.model = model; + } + + + + public static int getFromIndex(int pIndex, int pSize) { + pIndex = pIndex <= 1 ? 1 : pIndex; + pSize = pSize <= 1 ? 1 : pSize; + return (pIndex - 1) * pSize; + } + + public static int getEndIndex(int pIndex, int pSize, int totalCount) { + pIndex = pIndex <= 1 ? 1 : pIndex; + pSize = pSize <= 1 ? 1 : pSize; + return (pIndex - 1) * pSize + pSize <= totalCount ? (pIndex - 1) * pSize + pSize : totalCount; + } + + public int getTotalCount() { + return totalCount; + } + + public void setTotalCount(int totalCount) { + this.totalCount = totalCount; + } + + public int getPageIndex() { + return pageIndex; + } + + public void setPageIndex(int pageIndex) { + this.pageIndex = pageIndex; + } + + public int getPageSize() { + return pageSize; + } + + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/monitor/MonitorLogModel.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/monitor/MonitorLogModel.java new file mode 100644 index 0000000..1aad122 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/monitor/MonitorLogModel.java @@ -0,0 +1,24 @@ +package electromagnetic.data.framework.share.monitor; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * + * @date:2023/4/3 + * @description: + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class MonitorLogModel { + private Long cost; + private String method; + private Boolean success; + private String errorCode; + private String errorMsg; + private String data; + private Object[] args; + +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/monitor/MonitorLogUtil.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/monitor/MonitorLogUtil.java new file mode 100644 index 0000000..969df4d --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/monitor/MonitorLogUtil.java @@ -0,0 +1,53 @@ +package electromagnetic.data.framework.share.monitor; + +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * + * @date:2023/4/3 + * @description: + */ +public class MonitorLogUtil { + private static Logger LOGGER = LoggerFactory.getLogger("COMMON-MONITOR"); + private static final String SEPARATOR = "|"; + private static final String DEFAULT_IDENTITY = "MONITOR_LOG_PATTERN"; + + public static void infoLog(MonitorLogModel model) { + LOGGER.info("|MONITOR_LOG_PATTERN|{}|",buildeLogModel(model)); + } + + public static void errorLog(MonitorLogModel model, Throwable throwable) { + LOGGER.error("|MONITOR_LOG_PATTERN|{}|||",buildeLogModel(model),throwable); } + + public static void monitorLog(MonitorLogModel model,String identity, String ... args) { + StringBuilder sb = new StringBuilder(buildeLogModel(model)); + if (args != null && args.length != 0 ) { + for (int i = 0; i < args.length; i++) { + sb.append(SEPARATOR).append(args[i]); + } + } + LOGGER.info("|{}|{}|",identity,sb); + } + + private static String buildeLogModel(MonitorLogModel model) { + Object[] args = model.getArgs(); + StringBuilder params = new StringBuilder(); + if (args != null && args.length != 0 ) { + for (int i = 0; i < args.length; i++) { + params.append(StringUtils.trimToEmpty(String.valueOf(args[i]))); + params.append(","); + } + } + StringBuilder sb = new StringBuilder(); + sb.append(model.getCost()).append(SEPARATOR) + .append(StringUtils.isNotEmpty(model.getMethod()) ? model.getMethod() : "null").append(SEPARATOR) + .append(model.getSuccess()).append(SEPARATOR) + .append(StringUtils.isNotEmpty(model.getErrorCode()) ? model.getErrorCode() : "null").append(SEPARATOR) + .append(StringUtils.isNotEmpty(model.getErrorMsg()) ? model.getErrorMsg() : "null").append(SEPARATOR) + .append(StringUtils.isNotEmpty(model.getData()) ? model.getData() : "null").append(SEPARATOR) + .append(StringUtils.isNotEmpty(params.toString()) ? params.toString() : "null"); + return sb.toString(); + } +} diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/result/CallbackResult.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/result/CallbackResult.java new file mode 100644 index 0000000..954938e --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/result/CallbackResult.java @@ -0,0 +1,209 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package electromagnetic.data.framework.share.result; + +import java.io.Serializable; + +/** + * @author wsk + * @version $Id: CallbackResult.java, v 0.1 2024-10-17 18:00 wsk + */ +public class CallbackResult implements Serializable { + private static final long serialVersionUID = -604009540188492829L; + + /** + * 可以继续执行,或者提交事务 + */ + public final static int SUCCESS = 1; + + /** + * 不能继续执行,或者回滚事务 + */ + public final static int FAILURE = -1; + + /** + * 表征事务状态,默认事务提交 + */ + private int statusCode = SUCCESS; + + /** + * 代表业务语义的结果代码,主要用在发生回滚,进行异常throw的场景 + */ + private String resultCode; + /** + * 代表业务语义的结果描述,主要用在发生回滚,进行异常throw的场景 + */ + private String resultMessage; + /** + * 发生的异常信息 + */ + private Throwable throwable; + + /** + * 与该结果关联的业务主体 + */ + private T businessObject; + /** + * 是否幂等 + */ + private boolean isIdempotent = false; + + public int getStatusCode() { + return statusCode; + } + + public void setStatusCode(int statusCode) { + this.statusCode = statusCode; + } + + public String getResultCode() { + return resultCode; + } + + public void setResultCode(String resultCode) { + this.resultCode = resultCode; + } + + public String getResultMessage() { + return resultMessage; + } + + public void setResultMessage(String resultMessage) { + this.resultMessage = resultMessage; + } + + public Throwable getThrowable() { + return throwable; + } + + public void setThrowable(Throwable throwable) { + this.throwable = throwable; + } + + public T getBusinessObject() { + return businessObject; + } + + public void setBusinessObject(T businessObject) { + this.businessObject = businessObject; + } + + public boolean isIdempotent() { + return isIdempotent; + } + + public void setIdempotent(boolean idempotent) { + isIdempotent = idempotent; + } + + /** + * 禁止用户直接构造该对象,必须通过业务方法构造 + */ + private CallbackResult(int statusCode, String resultCode, String resultMessage, Throwable throwable, T businessObject) { + this.statusCode = statusCode; + this.resultMessage = resultMessage; + this.resultCode = resultCode; + this.throwable = throwable; + this.businessObject = businessObject; + } + + // ------------------ 辅助方法 -------------------------------------- + + /** + * 直接构造成功状况下的回调结果对象 + */ + public static CallbackResult success() { + return success(null); + } + + /** + * 直接构造成功状况下的回调结果对象,同时设置业务代码 + * + * @param + * + * + * @return + */ + public static CallbackResult success(T businessObject) { + return success(null, businessObject); + } + + /** + * 直接构造成功状况下的回调结果对象,同时设置业务代码 + * + * @param resultCode + * @return + */ + public static CallbackResult success(String resultCode, T businessObject) { + return success(resultCode, null, businessObject); + } + /** + * 直接构造成功状况下的回调结果对象,同时设置业务代码、业务对象 + * + * @param resultCode + * @return + */ + public static CallbackResult success(String resultCode, String resultMessage, T businessObject) { + return new CallbackResult(SUCCESS, resultCode, resultMessage, null, businessObject); + } + + /** + * 直接构造失败状况下的回调结果对象,同时设置业务代码 + * + * @param resultCode + * @return + */ + public static CallbackResult failure(String resultCode, String resultMessage) { + return failure(resultCode, resultMessage, null, null); + } + + /** + * 直接构造失败状况下的回调结果对象,同时设置业务代码、异常 + * + * @param resultCode + * @return + */ + public static CallbackResult failure(String resultCode, String resultMessage, Throwable throwable) { + return failure(resultCode, resultMessage, throwable, null); + } + + /** + * 直接构造失败状况下的回调结果对象,同时设置业务代码、异常、业务对象 + * + * @param resultCode + * @return + */ + public static CallbackResult failure(String resultCode, String resultMessage, Throwable throwable, T businessObject) { + return new CallbackResult(FAILURE, resultCode, resultMessage, throwable, businessObject); + } + + /** + * 检查服务处理是否成功 + * + * @return 成功返回true,否则返回false + */ + public boolean isSuccess() { + return statusCode == SUCCESS; + } + + /** + * 检查服务处理是否失败 + * + * @return 失败返回true,否则返回false + */ + public boolean isFailure() { + return statusCode == FAILURE; + } + + /** + * 检查业务对象是否为NULL,以便于外部方法判断是否进行其它处理 + * + * @return + */ + public boolean isNullBusinessObject() { + return null == this.businessObject; + } + + +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/result/CommonError.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/result/CommonError.java new file mode 100644 index 0000000..9c2f9ee --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/result/CommonError.java @@ -0,0 +1,124 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package electromagnetic.data.framework.share.result; + +import java.io.Serializable; + +/** + * @author wsk + * @version $Id: CommonError.java, v 0.1 2024-10-17 18:16 wsk + */ +public class CommonError implements Serializable { + + /** 序列ID */ + private static final long serialVersionUID = -1995797200806571697L; + + /** 错误编码 */ + private ResultCode errorCode; + + /** 错误描述 */ + private String errorMsg; + + /** 错误发生系统 */ + private String location; + + // ~~~ 构造方法 + + /** + * 默认构造方法 + */ + public CommonError() { + } + + /** + * 构造方法 + * + * @param code + * @param msg + */ + public CommonError(ResultCode code, String msg, String location) { + this.errorCode = code; + this.errorMsg = msg; + this.location = location; + } + + // ~~~ 公共方法 + + /** + * 转化为简单字符串表示。 + * + * @return + */ + public String toDigest() { + + return errorCode + "@" + location; + } + + // ~~~ 重写方法 + + /** + * @see Object#toString() + */ + @Override + public String toString() { + + return errorCode + "@" + location + "::" + errorMsg; + } + + // ~~~ bean方法 + + /** + * Getter method for property errorCode. + * + * @return property value of errorCode + */ + public ResultCode getErrorCode() { + return errorCode; + } + + /** + * Setter method for property errorCode. + * + * @param errorCode value to be assigned to property errorCode + */ + public void setErrorCode(ResultCode errorCode) { + this.errorCode = errorCode; + } + + /** + * Getter method for property errorMsg. + * + * @return property value of errorMsg + */ + public String getErrorMsg() { + return errorMsg; + } + + /** + * Setter method for property errorMsg. + * + * @param errorMsg value to be assigned to property errorMsg + */ + public void setErrorMsg(String errorMsg) { + this.errorMsg = errorMsg; + } + + /** + * Getter method for property location. + * + * @return property value of location + */ + public String getLocation() { + return location; + } + + /** + * Setter method for property location. + * + * @param location value to be assigned to property location + */ + public void setLocation(String location) { + this.location = location; + } +} diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/result/ErrorContext.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/result/ErrorContext.java new file mode 100644 index 0000000..94fcbd7 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/result/ErrorContext.java @@ -0,0 +1,264 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package electromagnetic.data.framework.share.result; + +/** + * @author wsk + * @version $Id: ErrorContext.java, v 0.1 2024-10-17 17:27 wsk + */ + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 错误上下文对象 + *

    错误上下文对象包含标准错误对象的堆栈,和第三方错误信息。 + * + * @author + * @version $Id: ErrorContext.java, v 0.1 2020-12-02 6:18 PM Exp $$ + */ +public class ErrorContext implements Serializable { + + /** 序列ID */ + private static final long serialVersionUID = 3939009139641299179L; + + /** 默认分隔符 */ + private static final String SPLIT = "|"; + + /** 错误堆栈集合 */ + private List errorStack = new ArrayList(); + + /** 第三方错误原始信息 */ + private String thirdPartyError; + + /** 错误变量映射 */ + private Map errorVariableMap = new HashMap(); + + /** + * 默认构造方法。 + */ + public ErrorContext() { + // 默认构造方法 + } + + /** + * 构造方法。 + * + * @param errorCode 错误码。 + */ + public ErrorContext(ResultCode errorCode) { + this.addError(errorCode); + } + + /** + * 构造方法。 + * + * @param thirdPartyError 第三方错误。 + */ + public ErrorContext(String thirdPartyError) { + this.thirdPartyError = thirdPartyError; + } + + /** + * 获取错误变量值映射Map + * + * @return 错误变量值映射Map + */ + public Map fetchErrorVarMap() { + return errorVariableMap; + } + + /** + * 设置错误变量的变量值,变量名和变量值是K-V映射,故后set的会覆盖先前set的同名变量 + * + * @param variableName + * 错误变量名 + * @param variableValue + * 错误变量值 + */ + public void setErrorVariable(String variableName, String variableValue) { + errorVariableMap.put(variableName, variableValue); + } + + + /** + * 获取当前错误对象。 + * + * @return 当前错误码对象 + */ + public ResultCode fetchCurrentError() { + if (errorStack != null && errorStack.size() > 0) { + return errorStack.get(errorStack.size() - 1); + } + + return null; + } + + /** + * 获取当前错误码。 + * + * @return 当前错误码字符串 + */ + public String fetchCurrentErrorCode() { + ResultCode resultCode = fetchCurrentError(); + return (resultCode == null) ? null : resultCode.fetchResultCode(); + } + + /** + * 获取原始错误对象。 + * + * @return 原始错误码对象 + */ + public ResultCode fetchRootError() { + if (errorStack != null && errorStack.size() > 0) { + return errorStack.get(0); + } + + return null; + } + + /** + * 向堆栈中添加错误对象。 + * + * @param error 错误码 + */ + public void addError(ResultCode error) { + if (errorStack == null) { + errorStack = new ArrayList(); + } + + errorStack.add(error); + } + + /** + * 向堆栈中添加错误对象。 + * + * @param error 错误码 + */ + public void addError(CommonError error) { + if (errorStack == null) { + errorStack = new ArrayList(); + } + + errorStack.add(error.getErrorCode()); + } + + /** + * 获取字符串形式的错误码堆栈 + * + * @return 错误码堆栈 + */ + @Deprecated + public String fetchErrorCodeStack() { + StringBuffer sb = new StringBuffer(); + for (int i = errorStack.size(); i > 0; i--) { + if (i == errorStack.size()) { + sb.append(errorStack.get(i - 1)); + } else { + sb.append(SPLIT).append(errorStack.get(i - 1)); + } + } + + return sb.toString(); + } + + /** + * 获取字符串形式的错误码堆栈digest + * + * @return 错误码堆栈 + */ + public String fetchErrorCodeStackDigest() { + StringBuffer sb = new StringBuffer(); + for (int i = errorStack.size(); i > 0; i--) { + if (i == errorStack.size()) { + sb.append(errorStack.get(i - 1)); + } else { + sb.append(SPLIT).append(errorStack.get(i - 1)); + } + } + + return sb.toString(); + } + + /** + * 构建错误上下文digest输出。 + * + * @return 错误摘要日志 + */ + public String toDigest() { + + StringBuffer sb = new StringBuffer(); + + //错误堆栈 + sb.append(fetchErrorCodeStackDigest()); + + //第三方错误 +// if (StringUtils.isNotBlank(thirdPartyError)) { +// sb.append("#"); +// sb.append(thirdPartyError); +// } + + return sb.toString(); + } + + /** + * Getter method for property errorStack. + * + * @return property value of errorStack + */ + public List getErrorStack() { + return errorStack; + } + + /** + * Setter method for property errorStack. + * + * @param errorStack value to be assigned to property errorStack + */ + public void setErrorStack(List errorStack) { + this.errorStack = errorStack; + } + + /** + * Getter method for property thirdPartyError. + * + * @return property value of thirdPartyError + */ + public String getThirdPartyError() { + return thirdPartyError; + } + + /** + * Setter method for property thirdPartyError. + * + * @param thirdPartyError value to be assigned to property thirdPartyError + */ + public void setThirdPartyError(String thirdPartyError) { + this.thirdPartyError = thirdPartyError; + } + + /** + * @see java.lang.Object#toString() + */ + @Override + public String toString() { + StringBuffer sb = new StringBuffer(); + + //错误堆栈 + sb.append("errorStack=["); + sb.append(fetchErrorCodeStackDigest()); + sb.append("],"); + + //第三方错误 + sb.append("thirdPartyError=["); + sb.append(thirdPartyError); + sb.append("]"); + + return sb.toString(); + } + +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/result/ErrorContextUtil.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/result/ErrorContextUtil.java new file mode 100644 index 0000000..9327f63 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/result/ErrorContextUtil.java @@ -0,0 +1,70 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package electromagnetic.data.framework.share.result; + +/** + * @author wsk + * @version $Id: ErrorContextUtil.java, v 0.1 2024-10-17 18:20 wsk + */ +public class ErrorContextUtil { + + /** 系统名称 */ + private static String systemName; + + /** + *

    将构造好的标准错误对象放入一个现有的错误上下文,并返回这个现有的错误上下文,如果现有的上下文为空,则构建一个新的错误上下文返回。 + *

    会自动添加当前系统名至标准错误对象中。 + * + * @param errorContext 错误上下文 + * @param resultCode 标准错误对象 + * @return 错误上下文 + */ + public static ErrorContext addErrorContext(ErrorContext errorContext, ResultCode resultCode) { + + if (null == errorContext) { + errorContext = new ErrorContext(); + } + + if (resultCode == null) { + return errorContext; + } + + resultCode.setSystemName(systemName); + + errorContext.addError(resultCode); + + return errorContext; + } + + /** + *

    根据错误码和错误英文简称,构建标准错误对象,并放入错误上下文,如果现有的上下文为空,则构建一个新的错误上下文返回。 + *

    会自动添加当前系统名至标准错误对象中。 + * + * @param errorContext 错误上下文 + * @param errorCode 错误码 + * @param errorName 错误英文名称 + * @param description 错误描述 + * @return 错误上下文 + */ + @Deprecated + public static ErrorContext addErrorContext(ErrorContext errorContext, String errorCode, + String errorName, String description) { + + ResultCode resultCode = new ResultCode(errorCode, errorName, description); + + return addErrorContext(errorContext, resultCode); + } + + // ~~~ bean方法 + + /** + * Setter method for property systemName. + * + * @param systemName value to be assigned to property systemName + */ + public void setSystemName(String systemName) { + ErrorContextUtil.systemName = systemName; + } + +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/result/Message.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/result/Message.java new file mode 100644 index 0000000..8a9cdf7 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/result/Message.java @@ -0,0 +1,104 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package electromagnetic.data.framework.share.result; + +import electromagnetic.data.framework.share.enums.ResultCodeEnum; + +/** + * @author wsk + * @version $Id: Message.java, v 0.1 2024-10-17 17:24 wsk + */ +public class Message { + /** + * 返回结果码 + */ + private String code; + /** + * 返回结果信息 + */ + private String message; + /** + * 返回错误明细 + */ + private ErrorContext errorContext; + + public Message(String messageStr) { + this.message = messageStr; + } + + public Message(ResultCodeEnum resultCodeEnum) { + this.message = resultCodeEnum.getResultMsg(); + this.code = resultCodeEnum.getResultCode(); + } + + public Message(ResultCodeEnum resultCodeEnum, ErrorContext errorContext) { + this.message = resultCodeEnum.getResultMsg(); + this.code = resultCodeEnum.getResultCode(); + this.errorContext = errorContext; + } + + public String getCode() { + return code; + } + + public Message setCode(String code) { + this.code = code; + return this; + } + + public String getMessage() { + return message; + } + + public Message setMessage(String message) { + this.message = message; + return this; + } + + /** + * Getter method for property errorContext. + * + * @return property value of errorContext + */ + public ErrorContext getErrorContext() { + return errorContext; + } + + /** + * Setter method for property errorContext. + * + * @param errorContext value to be assigned to property errorContext + */ + public void setErrorContext(ErrorContext errorContext) { + this.errorContext = errorContext; + } + + /** + * 增加一个错误码。 + * + * @param errorCode 错误码。 + */ + public void addErrorCode(ResultCode errorCode) { + ErrorContextUtil.addErrorContext(errorContext, errorCode); + } + + /** + * @see java.lang.Object#toString() + */ + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + builder.append("code = "); + builder.append(code); + builder.append(", message = "); + builder.append(message); + builder.append(", "); + builder.append("BaseResult ["); + builder.append("errorContext="); + builder.append(errorContext); + builder.append("]"); + return builder.toString(); + } + +} diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/result/Result.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/result/Result.java new file mode 100644 index 0000000..56359ba --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/result/Result.java @@ -0,0 +1,27 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package electromagnetic.data.framework.share.result; + +/** + * @author wsk + * @version $Id: Result.java, v 0.1 2024-10-17 17:23 wsk + */ +public interface Result { + + /** + * 返回状态 + * + * @return + */ + Integer getStatus(); + + /** + * 返回消息 + * + * @return + */ + Message getMessage(); + + +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/result/ResultCode.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/result/ResultCode.java new file mode 100644 index 0000000..c471164 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/result/ResultCode.java @@ -0,0 +1,403 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package electromagnetic.data.framework.share.result; + +import java.io.Serializable; + +/** + * @author wsk + * @version $Id: ResultCode.java, v 0.1 2024-10-17 17:29 wsk + */ +public class ResultCode implements Serializable { + + /** 序列ID */ + private static final long serialVersionUID = 3951948353107763580L; + + /** 结果码固定前缀 */ + protected static final String PREFIX = "CE"; + + /** 结果码版本 */ + private String version; + + /** 结果码级别[第9位],INFO-1,WARN-3,ERROR-5,FATAL-7,参见ResultCodeLevel定义 */ + private String codeLevel; + + /** 结果码类型[第10位],SUCCESS-0,BIZ_ERROR-1,SYS_ERROR-2,THIRD_ERROR-3,参见ResultCodeType定义 */ + private String codeType; + + /** 系统编号[第11-13位],见SystemCode定义 */ + private String systemCode; + + /** 系统名称 */ + private String systemName; + + /** 具体结果码[第14-17位] */ + private String errorSpecific; + + /** 错误英文简称 */ + private String errorName; + + /** 结果码信息描述,可空 */ + private String description; + + // ~~~ 构造方法 + + /** + * 默认构造方法。 + */ + public ResultCode() { + // 默认构造方法。 + } + + /** + * 构造方法。 + * + * @param resultCode 结果码字符串 + */ + public ResultCode(String resultCode) { + + //结果码长度检查 + checkStringLength(resultCode, 16); + + //拆分结果码 + spliteResultCode(resultCode); + } + + /** + * 构造方法。 + * + * @param resultCode 结果码字符串 + * @param errorName 错误码英文简称 + */ + public ResultCode(String resultCode, String errorName) { + this(resultCode); + this.errorName = errorName; + } + + /** + * 构造方法。 + * + * @param resultCode 结果码字符串 + * @param errorName 错误码英文简称 + * @param description 结果码信息描述 + */ + public ResultCode(String resultCode, String errorName, String description) { + this(resultCode); + this.errorName = errorName; + this.description = description; + } + + /** + * 构造方法。 + * + * @param version 版本 + * @param codeLevel 结果码级别 + * @param codeType 结果码类型 + * @param systemCode 系统编号 + * @param errorSpecific 具体错误码 + */ + public ResultCode(String version, String codeLevel, String codeType, String systemCode, String errorSpecific) { + this.version = version; + this.codeLevel = codeLevel; + this.codeType = codeType; + this.systemCode = systemCode; + this.errorSpecific = errorSpecific; + } + + /** + * 构造方法。 + * + * @param version 版本 + * @param codeLevel 结果码级别 + * @param codeType 结果码类型 + * @param systemCode 系统编号 + * @param errorSpecific 具体错误码 + * @param errorName 错误码英文简称 + */ + public ResultCode(String version, String codeLevel, String codeType, String systemCode, String errorSpecific, + String errorName) { + this(version, codeLevel, codeType, systemCode, errorSpecific); + this.errorName = errorName; + } + + // ~~~ 公有方法 + + /** + * 组装返回码字符串。 + * + * @return 返回码字符串 + */ + public String fetchResultCode() { + StringBuffer sb = new StringBuffer(); + + sb.append(PREFIX); + sb.append(version); + sb.append(codeLevel); + sb.append(codeType); + sb.append(systemCode); + sb.append(errorSpecific); + + return sb.toString(); + } + + /** + * 组装返回码字符串。 解决enum 单利线程安全问题 + * + * @param eventCode + * @return 返回码字符串 + */ + public String fetchResultCode(String eventCode) { + StringBuffer sb = new StringBuffer(); + + sb.append(PREFIX); + sb.append(version); + sb.append(codeLevel); + sb.append(codeType); + sb.append(eventCode); + sb.append(errorSpecific); + + return sb.toString(); + } + + /** + * 构建错误对象digest + * + * @return 错误码摘要日志 + */ +// public String toDigest() { +// +// //组装结果码字符串 +// String resultCode = fetchResultCode(); +// +// if (StringUtils.isNotBlank(errorName)) { +// resultCode = resultCode + "@" + errorName; +// } else { +// resultCode = resultCode + "@"; +// } +// +// if (StringUtils.isNotBlank(systemName)) { +// resultCode = resultCode + "@" + systemName; +// } else { +// resultCode = resultCode + "@"; +// } +// +// return resultCode; +// } + + // ~~~ 重写方法 + + /** + * @see java.lang.Object#toString() + */ + @Override + public String toString() { + + //错误完整性检查 + checkStringLength(this.version, 1); + checkStringLength(this.codeLevel, 1); + checkStringLength(this.codeType, 1); + checkStringLength(this.systemCode, 8); + checkStringLength(this.errorSpecific, 3); + + //组装结果码字符串 + String resultCode = fetchResultCode(); + +// if (StringUtils.isNotBlank(errorName)) { +// resultCode = resultCode + "@" + errorName; +// } + + return resultCode; + } + + /** + * @see java.lang.Object#hashCode() + */ + @Override + public int hashCode() { + return this.fetchResultCode().hashCode(); + } + + /** + * @see java.lang.Object#equals(java.lang.Object) + */ + @Override + public boolean equals(Object obj) { + + if (obj == this) { + return true; + } + + if (obj == null) { + return false; + } + return false; + +// return StringUtils.equals(this.fetchResultCode(), (((ResultCode) obj).fetchResultCode())); + } + + // ~~~ 内部方法 + + /** + * 解析和拆分结果码。 + * + * @param resultCode 结果码字符串 + */ + private void spliteResultCode(String resultCode) { + if (!resultCode.startsWith(PREFIX)) { + throw new IllegalArgumentException(); + } + + char[] chars = resultCode.toCharArray(); + + // 旧:CIC_RS_100000200 + // 新:CE15112000201001 + + this.version = "" + chars[2]; + this.codeLevel = "" + chars[3]; + this.codeType = "" + chars[4]; + this.systemCode = "" + chars[5] + chars[6] + chars[7] + chars[8] + chars[9] + chars[10] + chars[11] + chars[12]; + this.errorSpecific = "" + chars[13] + chars[14] + chars[15]; + } + + /** + * 字符串长度检查。 + * + * @param resultCode 结果码字符串 + * @param length 长度 + */ + private void checkStringLength(String resultCode, int length) { + if (resultCode == null || resultCode.length() != length) { + throw new IllegalArgumentException(); + } + } + + // ~~~ bean方法 + + /** + * Getter method for property codeLevel. + * + * @return property value of codeLevel + */ + public String getCodeLevel() { + return codeLevel; + } + + /** + * Setter method for property codeLevel. + * + * @param codeLevel value to be assigned to property codeLevel + */ + public void setCodeLevel(String codeLevel) { + this.codeLevel = codeLevel; + } + + /** + * Getter method for property codeType. + * + * @return property value of codeType + */ + public String getCodeType() { + return codeType; + } + + /** + * Setter method for property codeType. + * + * @param codeType value to be assigned to property codeType + */ + public void setCodeType(String codeType) { + this.codeType = codeType; + } + + /** + * Getter method for property systemCode. + * + * @return property value of systemCode + */ + public String getSystemCode() { + return systemCode; + } + + /** + * Setter method for property systemCode. + * + * @param systemCode value to be assigned to property systemCode + */ + public void setSystemCode(String systemCode) { + this.systemCode = systemCode; + } + + /** + * Getter method for property errorSpecific. + * + * @return property value of errorSpecific + */ + public String getErrorSpecific() { + return errorSpecific; + } + + /** + * Setter method for property errorSpecific. + * + * @param errorSpecific value to be assigned to property errorSpecific + */ + public void setErrorSpecific(String errorSpecific) { + this.errorSpecific = errorSpecific; + } + + /** + * Getter method for property description. + * + * @return property value of description + */ + public String getDescription() { + return description; + } + + /** + * Setter method for property description. + * + * @param description value to be assigned to property description + */ + public void setDescription(String description) { + this.description = description; + } + + /** + * Getter method for property systemName. + * + * @return property value of systemName + */ + public String getSystemName() { + return systemName; + } + + /** + * Setter method for property systemName. + * + * @param systemName value to be assigned to property systemName + */ + public void setSystemName(String systemName) { + this.systemName = systemName; + } + + /** + * Getter method for property errorName. + * + * @return property value of errorName + */ + public String getErrorName() { + return errorName; + } + + /** + * Setter method for property errorName. + * + * @param errorName value to be assigned to property errorName + */ + public void setErrorName(String errorName) { + this.errorName = errorName; + } + +} diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/result/ResultModel.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/result/ResultModel.java new file mode 100644 index 0000000..660f08d --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/result/ResultModel.java @@ -0,0 +1,41 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package electromagnetic.data.framework.share.result; + +/** + * @author wsk + * @version $Id: ResultModel.java, v 0.1 2024-10-17 17:23 wsk + */ +public interface ResultModel extends Result { + /** + * 返回结果模型 + * + * @return + */ + T getData(); + + /** + * 页面编码,从1开始 + * + * @return + */ + int getPageIndex(); + + /** + * 记录总数量 + *

    +     *     有时可能只要分页数据,不要总数
    +     * 
    + * + * @return + */ + Integer getTotalCount(); + + /** + * 每页大小 + * + * @return + */ + int getPageSize(); +} diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/sign/AESUtils.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/sign/AESUtils.java new file mode 100644 index 0000000..480e5b6 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/sign/AESUtils.java @@ -0,0 +1,134 @@ +/** + * Copyright (c) 2004-2022 All Rights Reserved. + */ +package electromagnetic.data.framework.share.sign; + +/** + * @author wsk + * @version $Id: AESUtils.java, v 0.1 2022-07-06 14:57 wsk.pt Exp $$ + */ + +import javax.crypto.*; +import javax.crypto.spec.SecretKeySpec; +import java.io.UnsupportedEncodingException; +import java.security.InvalidKeyException; +import java.security.NoSuchAlgorithmException; +import java.security.SecureRandom; + +/** + *

    Description: [AES对称加密和解密]

    + * @description: + * @author: + * @create: 2022/07/06 10:52 + */ +public class AESUtils { + + /** + *

    Discription:[加密]

    + * Created on 2022/07/06 10:52 + * @param content 明文 用JSON.toJSONString(Map map)转换的json字符串 + * @param key 加解密规则 访客系统提供key + * @return String 密文 + */ + public static String ecodes(String content, String key) { + if (content == null || content.length() < 1) { + return null; + } + try { + KeyGenerator kgen = KeyGenerator.getInstance("AES"); + SecureRandom random= SecureRandom.getInstance("SHA1PRNG"); + random.setSeed(key.getBytes()); + kgen.init(128, random); + SecretKey secretKey = kgen.generateKey(); + byte[] enCodeFormat = secretKey.getEncoded(); + SecretKeySpec secretKeySpec = new SecretKeySpec(enCodeFormat, "AES"); + Cipher cipher = Cipher.getInstance("AES"); + byte[] byteContent = content.getBytes("utf-8"); + cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec); + byte[] byteRresult = cipher.doFinal(byteContent); + StringBuffer sb = new StringBuffer(); + for (int i = 0; i < byteRresult.length; i++) { + String hex = Integer.toHexString(byteRresult[i] & 0xFF); + if (hex.length() == 1) { + hex = '0' + hex; + } + sb.append(hex.toUpperCase()); + } + return sb.toString(); + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } catch (NoSuchPaddingException e) { + e.printStackTrace(); + } catch (InvalidKeyException e) { + e.printStackTrace(); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } catch (IllegalBlockSizeException e) { + e.printStackTrace(); + } catch (BadPaddingException e) { + e.printStackTrace(); + } + return null; + } + + /** + *

    Discription:[解密]

    + * Created on 2022/07/06 10:52 + * @param content 密文 + * @param key 加解密规则 + * @return String 明文 + */ + public static String dcodes(String content, String key) { + if (content == null || content.length() < 1) { + return null; + } + if (content.trim().length() < 19) { + return content; + } + byte[] byteRresult = new byte[content.length() / 2]; + for (int i = 0; i < content.length() / 2; i++) { + int high = Integer.parseInt(content.substring(i * 2, i * 2 + 1), 16); + int low = Integer.parseInt(content.substring(i * 2 + 1, i * 2 + 2), 16); + byteRresult[i] = (byte) (high * 16 + low); + } + try { + KeyGenerator kgen = KeyGenerator.getInstance("AES"); + SecureRandom random=SecureRandom.getInstance("SHA1PRNG"); + random.setSeed(key.getBytes()); + kgen.init(128, random); + SecretKey secretKey = kgen.generateKey(); + byte[] enCodeFormat = secretKey.getEncoded(); + SecretKeySpec secretKeySpec = new SecretKeySpec(enCodeFormat, "AES"); + Cipher cipher = Cipher.getInstance("AES"); + cipher.init(Cipher.DECRYPT_MODE, secretKeySpec); + byte[] result = cipher.doFinal(byteRresult); + return new String(result); + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } catch (NoSuchPaddingException e) { + e.printStackTrace(); + } catch (InvalidKeyException e) { + e.printStackTrace(); + } catch (IllegalBlockSizeException e) { + e.printStackTrace(); + } catch (BadPaddingException e) { + e.printStackTrace(); + } + return null; + } + +// public static void main(String[] args) { +// try { +// +// String miwen = AESUtils.ecodes("{\"id\":1759,\"reservationId\":1511867174251,\"visitingPurpose\":1,\"officeBuildingId\":1,\"officeBuildingName\":\"1\",\"cityId\":1,\"cityName\":\"1\",\"reservationStatus\":1,\"visitorName\":\"1 \",\"visitorAreaCode\":\"1\",\"visitorPhone\":\"1\",\"visitorEmail\":null,\"remark\":null,\"visitingTime\":1,\"visitorNum\":1,\"visitingUnit\":null,\"messageNum\":null,\"photoUrl\":null,\"receptionUserName\":\"1\",\"receptionUserDomainAccount\":\"1\",\"visitingInvitationCode\":null,\"createUser\":\"1\",\"createTime\":1,\"createUserDomainAccount\":null,\"updateTime\":null,\"signTime\":null,\"alreadySignedInNum\":null,\"alreadySignedOutNum\":null,\"accompanyPersons\":null,\"visitingReason\":null,\"field1\":null,\"field2\":null,\"field3\":null,\"field4\":null,\"field5\":null,\"approveStatus\":1,\"levelOneName\":null,\"levelTwoName\":null,\"createPlatform\":1}", +// "555"); +// System.out.println("miwen : " + miwen); +// +// String mingwen = AESUtils.dcodes(miwen, "555"); +// System.out.println("mingwen : " + mingwen); +// +// } catch (Exception e) { +// e.printStackTrace(); +// } +// } +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/sign/SingHelper.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/sign/SingHelper.java new file mode 100644 index 0000000..dc286c1 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/sign/SingHelper.java @@ -0,0 +1,148 @@ +package electromagnetic.data.framework.share.sign; + + +import java.security.MessageDigest; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; + +/** + * 加密工具 + * + * @author wsk + * @version $Id: SingHelper.java, v 0.1 2022-07-01 11:44 wsk.pt Exp $$ + */ +public class SingHelper { + /** + * 检验参数签名 + * + * @param params 调用者传入的参数 + * @param secret 签名的secret + * @param ,格式为secret+(参数名+参数值. + * ..)+secret的大写md5值 + * @return + */ + @SuppressWarnings({"unchecked", "rawtypes"}) + public static String createSign(Map params, String secret) { + //按参数名asscic码排序 + List names = new ArrayList(); + Set keyset = params.keySet(); + for (Object key : keyset) { + names.add(String.valueOf(key)); + } + Collections.sort(names); + String strSign = secret; + for (String name : names) { + strSign += name + getString(params, name, ""); + } + strSign += secret; + String newSign = md5(strSign).toUpperCase(); + return newSign; + } + + public static char[] hexDigits ={'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C','D', 'E', 'F'}; + + public static String md5(String string) { + try { + MessageDigest md5 = MessageDigest.getInstance("MD5"); + byte[] bytes = md5.digest(string.getBytes("utf-8")); + char[] chars = new char[bytes.length * 2]; + + for (int i = 0; i < bytes.length; ++i) { + int b = bytes[i]; + chars[i * 2] = hexDigits[(b & 240) >> 4]; + chars[i * 2 + 1] = hexDigits[b & 15]; + } + return new String(chars); + } catch (Exception var6) { + return null; + } + } + + public static String getString(Map params, String key, String + defaultValue) { + String temp = null; + if (params.get(key) == null) { + return defaultValue; + } else if (params.get(key).getClass().isArray()) { + temp = getArray(params, key)[0]; + } else { + temp = params.get(key).toString(); + } + if (temp != null) { + temp = temp.replaceAll("%", "\\%"); + } + if (temp == null) { + return defaultValue; + } + return temp; + } + + public static String getString(Map params, String key) { + return getString(params, key, null); + } + + public static String[] getArray(Map params, String key) { + return getArray(params, key, null); + } + + public static String[] getArray(Map params, String + key, String[] defaultValue) { + if (params == null) { + return defaultValue; + } + if (params.get(key) == null) { + return defaultValue; + } + try { + String[] values = (String[]) params.get(key); + return values; + } catch (ClassCastException e) { + return defaultValue; + + } + } + + public static Date signDate(String date, String format) { + if (date == null || date.equals("")) { + return null; + } + if (format == null || format.equals("")) { + format = "yyyy-MM-dd HH:mm:ss"; + } + try { + return new SimpleDateFormat(format).parse(date); + } catch (ParseException e) { + return null; + } + } + +// public static void main(String[] args) { +// Map m = new HashMap<>(); +// m.put("cid",null); +// m.put("certType","identificationCard"); +// m.put("certId","610113197202030463"); +// //必传参数 +// m.put("appId", "BST21543866410458361856"); +// //必传参数 +// m.put("timestamp", System.currentTimeMillis()+""); +// /** +// * secret 是根据appid获取的 +// */ +// String sign =createSign(m,"A8AD975B86D364E302946E68A1910EABCE54DC457A34E623"); +// System.out.println("Test.main-----:"+sign); +// m.put("sign", sign); +// System.out.println(sign); +// StringBuffer url=new StringBuffer(); +// +// url.append("http://platform.cic.inter/cic-pc-dataplatform-tagservice/tag/newPersonPortrait?"); +// url.append("cid="+m.get("cid")); +// url.append("&certType="+m.get("certType")); +// url.append("&certId="+m.get("certId")); +// url.append("&appId="+m.get("appId")); +// url.append("×tamp="+m.get("timestamp")); +// url.append("&sign="+m.get("sign")); +// System.out.println(url); +// } + +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/spi/ProxyUtils.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/spi/ProxyUtils.java new file mode 100644 index 0000000..bcab3b0 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/spi/ProxyUtils.java @@ -0,0 +1,29 @@ +/** + * Copyright (c) 2004-2021 All Rights Reserved. + */ +package electromagnetic.data.framework.share.spi; + +import org.springframework.aop.TargetSource; +import org.springframework.aop.framework.Advised; +import org.springframework.aop.support.AopUtils; + +/** + * @version $Id: A.java, v 0.1 2021-06-17 10:14 Exp $$ + */ +public class ProxyUtils { + public static T getProxyTarget(Object proxy) { + if (!AopUtils.isAopProxy(proxy)) { + throw new IllegalStateException("Target must be a proxy"); + } + TargetSource targetSource = ((Advised) proxy).getTargetSource(); + return getTarget(targetSource); + } + + private static T getTarget(TargetSource targetSource) { + try { + return (T) targetSource.getTarget(); + } catch (Exception e) { + throw new IllegalStateException(e); + } + } +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/spi/ServiceLoaderUtil.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/spi/ServiceLoaderUtil.java new file mode 100644 index 0000000..83e16ad --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/spi/ServiceLoaderUtil.java @@ -0,0 +1,42 @@ +/** + * Copyright (c) 2004-2021 All Rights Reserved. + */ +package electromagnetic.data.framework.share.spi; + + +import com.google.common.collect.Maps; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.ServiceLoader; + +/** + * @version $Id: ServiceLoaderUtil.java, v 0.1 2021-06-15 10:20 Exp $$ + */ +public class ServiceLoaderUtil { + + static Map> mapList = Maps.newConcurrentMap(); + + public static T getspi(Class cla){ + if(mapList.get(cla.getClass().getName())!=null&&mapList.get(cla.getClass().getName()).size()>0){ + return (T)mapList.get(cla.getClass().getName()).get(0); + }else { + List list = new ArrayList<>(); + for (T nameInterface: ServiceLoader.load(cla + )) { + //加入容器,且赋值 + list.add(nameInterface); + } + //将list中的进行排序 +// list.sort((o1, o2) -> { +// Integer x = o1.order(); +// Integer y = o2.order(); +// return x.compareTo(y); +// }); + mapList.put(cla.getClass().getName(),list); + return (T)list.get(0); + } + }; + +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/spi/SpiListener.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/spi/SpiListener.java new file mode 100644 index 0000000..db23b8b --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/spi/SpiListener.java @@ -0,0 +1,94 @@ +/** + * Copyright (c) 2004-2021 All Rights Reserved. + */ +package electromagnetic.data.framework.share.spi; + +import electromagnetic.data.framework.share.spi.annotation.SpiAttributeFind; +import electromagnetic.data.framework.share.spi.annotation.SpiClassFind; +import electromagnetic.data.framework.share.spi.annotation.SpiInjecte; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.aop.support.AopUtils; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationListener; +import org.springframework.context.event.ContextRefreshedEvent; + +import java.lang.reflect.Field; +import java.util.Map; + +/** + * 启动加载spi接口信息 + * + * @version $Id: SpiListener.java, v 0.1 2021-06-15 10:31 Exp $$ + */ +public class SpiListener implements ApplicationListener { + + private static final Logger LOGGER = LoggerFactory.getLogger(SpiListener.class); + + @Override + public void onApplicationEvent(ContextRefreshedEvent contextRefreshedEvent) { + ApplicationContext applicationContext = contextRefreshedEvent.getApplicationContext(); + + //第一步 找到所有使用到spi的大类 + Map spiClassMaps =applicationContext.getBeansWithAnnotation(SpiClassFind.class); + for (Map.Entry entry : spiClassMaps.entrySet()) { + LOGGER.info("spi find class:" + entry); + //第二步 找到所有注入spi的属性,取值 + Class aClass= null; + if (AopUtils.isCglibProxy(entry.getValue())){ + aClass= entry.getValue().getClass().getSuperclass(); + }else { + aClass=entry.getValue().getClass(); + } + + + Field[] spiFields =aClass.getDeclaredFields(); + for (Field field2:spiFields){ + SpiAttributeFind spiAttributeFind = field2.getAnnotation(SpiAttributeFind.class); + if (spiAttributeFind==null){ + continue; + } + Class attributeClass =spiAttributeFind.classclz(); + Object object=ServiceLoaderUtil.getspi(attributeClass); + Field[] fields =object.getClass().getDeclaredFields(); + for (Field field:fields){ + SpiInjecte spiInjecte = field.getAnnotation(SpiInjecte.class); + if (spiInjecte==null){ + continue; + } + Object instance = applicationContext.getBean(spiInjecte.clz()); + Class instanceClazz = instance.getClass(); + for(Field property : fields){ + if(!property.getType().isAssignableFrom(instanceClazz)){ + continue; + } + try { + field.setAccessible(true); + property.set(object, instance); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } + } + try { + //将object赋值给 + if(!field2.getType().isAssignableFrom(object.getClass())){ + continue; + } + + field2.setAccessible(true); + Object ob=applicationContext.getBean(entry.getKey()); + if (AopUtils.isAopProxy(ob)){ + //当是代理类时需要修改target的内容 + field2.set(ProxyUtils.getProxyTarget(applicationContext.getBean(entry.getKey())),object); + } + field2.set(applicationContext.getBean(entry.getKey()),object); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + + } + + } + } +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/spi/annotation/SpiAttributeFind.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/spi/annotation/SpiAttributeFind.java new file mode 100644 index 0000000..ba85fb3 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/spi/annotation/SpiAttributeFind.java @@ -0,0 +1,22 @@ +/** + * Copyright (c) 2004-2021 All Rights Reserved. + */ +package electromagnetic.data.framework.share.spi.annotation; + + +import java.lang.annotation.*; + +/** + * @version $Id: Spi.java, v 0.1 2021-06-17 10:11 Exp $$ + */ +@Documented +@Target({ElementType.METHOD,ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +public @interface SpiAttributeFind { + + /** + * 使用spi类需要注入的类信息 + * @return + */ + Class classclz(); +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/spi/annotation/SpiClassFind.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/spi/annotation/SpiClassFind.java new file mode 100644 index 0000000..a4cc58b --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/spi/annotation/SpiClassFind.java @@ -0,0 +1,22 @@ +/** + * Copyright (c) 2004-2021 All Rights Reserved. + */ +package electromagnetic.data.framework.share.spi.annotation; + +import java.lang.annotation.*; + + +/** + * @version $Id: Spi2.java, v 0.1 2021-06-17 10:11 Exp $$ + */ +@Documented +@Target({ElementType.TYPE,ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +public @interface SpiClassFind { + /** + * 使用spi类的信息 + * @return + */ + Class classclz(); + +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/spi/annotation/SpiInjecte.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/spi/annotation/SpiInjecte.java new file mode 100644 index 0000000..7cf6b05 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/spi/annotation/SpiInjecte.java @@ -0,0 +1,20 @@ +/** + * Copyright (c) 2004-2021 All Rights Reserved. + */ +package electromagnetic.data.framework.share.spi.annotation; + +/** + * @version $Id: A.java, v 0.1 2021-06-15 10:17 Exp $$ + */ + + +import java.lang.annotation.*; + +@Documented +@Target(ElementType.FIELD) +@Retention(RetentionPolicy.RUNTIME) +public @interface SpiInjecte { + String name(); + + Class clz(); +} diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/spi/config/SpiFindConfiguration.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/spi/config/SpiFindConfiguration.java new file mode 100644 index 0000000..10afda8 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/spi/config/SpiFindConfiguration.java @@ -0,0 +1,20 @@ +/** + * Copyright (c) 2004-2021 All Rights Reserved. + */ +package electromagnetic.data.framework.share.spi.config; + +import electromagnetic.data.framework.share.spi.SpiListener; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * @version $Id: SpiFindConfiguration.java, v 0.1 2021-06-17 10:58 Exp $$ + */ +@Configuration +public class SpiFindConfiguration { + + @Bean + public SpiListener getSpiListener(){ + return new SpiListener(); + } +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/CoUtils.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/CoUtils.java new file mode 100644 index 0000000..62f4fc9 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/CoUtils.java @@ -0,0 +1,191 @@ +package electromagnetic.data.framework.share.util; + +import java.util.*; +import java.util.function.Function; +import java.util.function.Predicate; +import java.util.stream.Collectors; + +/** + * @author wangmin + * @version 1.0 + * @description 集合工具类 + * @date 2024/7/30 15:35 + */ +public class CoUtils { + + /** + * 返回空如果传入集合为null + * + * @param list 集合 + * @param 任意类型 + * @return 空集合或者原集合 + */ + public static List returnEmptyIfNull(List list) { + return Optional.ofNullable(list).orElse(Collections.emptyList()); + } + + /** + * 从集合中获取被映射的元素 + */ + public static R get(T t, Collection mapping, Function rMapper) { + // 顺序查找可优化 + for (R r : mapping) { + T rm = rMapper.apply(r); + if (t.equals(rm)) { + return r; + } + } + return null; + } + + /** + * 从集合中获取被映射的元素 + */ + public static R getNullIf(T t, Collection mapping, Function rMapper) { + for (R r : mapping) { + T rm = rMapper.apply(r); + if (t.equals(rm)) { + return r; + } + } + return null; + } + + /** + * 单个元素转换为(可修改的)集合 + * + * @param t 转换的元素 + * @param List的泛型 + * @return 集合 + */ + public static List singletonNewList(T t) { + return new ArrayList<>(Collections.singletonList(t)); + } + + /** + * 将集合中每个元素的属性转换为另外一个集合(Stream.map) + * + * @param src 源集合 + * @param rMapper 取元素的什么属性 + * @param 源集合泛型 + * @param 目标集合泛型 + * @return 目标集合 + */ + public static List streamMapList(List src, Function rMapper) { + return returnEmptyIfNull(src).stream()// + .map(rMapper)// + .distinct().collect(Collectors.toList()); + } + + /** + * 将集合中每个元素的属性转换为另外一个集合(Stream.map),过滤空值 + */ + public static List streamMapListFilterNull(List src, Function rMapper) { + return returnEmptyIfNull(src).stream()// + .filter(Objects::nonNull)// + .map(rMapper)// + .filter(Objects::nonNull)// + .distinct().collect(Collectors.toList()); + } + + /** + * 将集合转化为Map + * + * @param list 集合 + * @param keyFunction key生成函数 + * @param valueFunction value生成函数 + * @param 集合泛型 + * @param key泛型 + * @param value泛型 + * @return hashMap + */ + public static Map toHashMap(List list, Function keyFunction, + Function valueFunction) { + HashMap map = new HashMap<>(); + for (T t : list) { + map.put(keyFunction.apply(t), valueFunction.apply(t)); + } + return map; + } + + /** + * 将集合转化为Map + * + * @param list 集合 + * @param keyFunction key生成函数 + * @param filterPredicate list项中过滤函数 + * @param valueFunction value生成函数 + * @param 集合泛型 + * @param key泛型 + * @param value泛型 + * @return hashMap + */ + public static Map toMap(List list, Function keyFunction, + Predicate filterPredicate, + Function valueFunction) { + if (list == null || list.isEmpty()) { + return Collections.emptyMap(); + } + Map map = new HashMap<>(list.size()); + for (T t : list) { + K apply = keyFunction.apply(t); + if (filterPredicate.test(t)) { + map.put(apply, valueFunction.apply(t)); + } + } + return map; + } + + /** + * 对map根据条件判断value过滤并处理key + * @param map map + * @param keyFunction key处理函数 + * @param valueFilterPredicate value过滤函数 + * @param 集合范性 + * @param key + * @param value + * @return 集合 + */ + public static List toList(Map map, + Function keyFunction, + Predicate valueFilterPredicate) { + if (map == null || map.isEmpty()) { + return Collections.emptyList(); + } + List list = new ArrayList<>(map.size()); + map.forEach((k, v) -> { + if (valueFilterPredicate.test(v)) { + list.add(keyFunction.apply(k)); + } + }); + return list; + } + + /** + * 去除集合重复元素 + * + * @param list 集合 + * @param 集合泛型 + */ + public static void removeDuplicate(List list) { + HashSet distinct = new HashSet<>(list); + list.clear(); + list.addAll(distinct); + } + + public static List convertList(List list, Function valueMapper) { + if (list == null || list.isEmpty()) { + return Collections.emptyList(); + } + return list.stream().filter(Objects::nonNull).map(valueMapper).collect(Collectors.toList()); + } + + public static Set convertSet(List list, Function valueMapper) { + if (list == null || list.isEmpty()) { + return Collections.emptySet(); + } + return list.stream().filter(Objects::nonNull).map(valueMapper).collect(Collectors.toSet()); + } + + private CoUtils() { } +} diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/CommonConvertUtil.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/CommonConvertUtil.java new file mode 100644 index 0000000..89970f8 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/CommonConvertUtil.java @@ -0,0 +1,45 @@ +package electromagnetic.data.framework.share.util;///** +// // * Copyright (c) 2004-2022 All Rights Reserved. +// */ +//package com.aliyun.fsi.insurance.dataplatform.share.util; +// +// +//import com.aliyun.fsi.insurance.aaas.dto.response.AbossPersonnelBasicInfoResDTO; +// +//import java.util.ArrayList; +//import java.util.List; +// +///** +// * 通用转换 工具类 +// * @author liyl.pt +// * @version $Id: CommonConvertUtil.java, v 0.1 2022-08-17 15:11 liyl.pt Exp $$ +// */ +//public class CommonConvertUtil { +// +// /** +// * 获取用户账号 str +// * @param personnelList +// * @return +// */ +// public static String getAccIdStr(List personnelList){ +// StringBuffer sb=new StringBuffer(); +// for (AbossPersonnelBasicInfoResDTO bean: personnelList) { +// String perCode = bean.getPerCode(); +// sb.append(perCode); +// } +// return sb.toString(); +// } +// /** +// * 获取用户账号 list +// * @param personnelList +// * @return +// */ +// public static List getAccIdList(List personnelList){ +// List list=new ArrayList<>(); +// for (AbossPersonnelBasicInfoResDTO bean: personnelList) { +// String perCode = bean.getPerCode(); +// list.add(perCode); +// } +// return list; +// } +//} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/ContrastDateUtils.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/ContrastDateUtils.java new file mode 100644 index 0000000..5646de8 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/ContrastDateUtils.java @@ -0,0 +1,29 @@ +/** + * Copyright (c) 2004-2021 All Rights Reserved. + */ +package electromagnetic.data.framework.share.util; + +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.util.Date; + +/** + * 时间比对工具 + * + * @author + * @version $Id: ContrastDateUtiles.java, v 0.1 2021-06-21 20:18 Exp $$ + */ +public class ContrastDateUtils { + + /** + * + * 比当前时间大返回ture否则返回false + * */ + public static Boolean dateContrast(Date date) { + ZoneId zoneId = ZoneId.systemDefault(); + LocalDateTime targetDate = date.toInstant().atZone(zoneId).toLocalDateTime(); + LocalDateTime today = LocalDateTime.now(); + return today.isBefore(targetDate); + } + +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/DefaultSimpleValidationTool.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/DefaultSimpleValidationTool.java new file mode 100644 index 0000000..96ea2bb --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/DefaultSimpleValidationTool.java @@ -0,0 +1,30 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package electromagnetic.data.framework.share.util; + +import electromagnetic.data.framework.share.validation.SimpleValidationTool; +import electromagnetic.data.framework.share.validation.ValidationTool; +import electromagnetic.data.framework.share.exception.IllegalParameterException; + +/** + * @author wsk + * @version $Id: DefaultSimpleValidationTool.java, v 0.1 2024-10-20 19:37 wsk + */ +public class DefaultSimpleValidationTool implements SimpleValidationTool { + + private static final String CONCAT_STR = System.getProperty("com.aliyun.fsi.insurance.shared.validation-concat-str", + "#"); + + private ValidationTool validationTool; + + public DefaultSimpleValidationTool(ValidationTool validationTool) { + this.validationTool = validationTool; + } + + @Override + public void validate(ParameterType parameter) { + validationTool.validate(parameter, + (p, f) -> new IllegalParameterException(f.getContent() + CONCAT_STR + f.getConstraint())); + } +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/DefaultValidationResult.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/DefaultValidationResult.java new file mode 100644 index 0000000..5217aec --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/DefaultValidationResult.java @@ -0,0 +1,39 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package electromagnetic.data.framework.share.util; + +import lombok.Data; + +/** + * 默认验证结果的实现 + * + * 具备了是否通过,以及不通过的消息和内容 + * @author wsk + * @version $Id: DefaultValidationResult.java, v 0.1 2024-10-20 19:17 wsk + */ +@Data +public class DefaultValidationResult implements Failed { + + /** + * 是否通过 + */ + private boolean pass; + /** + * 未通过的message + */ + private String message; + /** + * 未通过处理的结果,如果是异常将会抛出 + */ + private Object result; + /** + * 未通过的内容,一般是字段 + */ + private String content; + /** + * 验证约束 + */ + private String constraint; + +} diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/Failed.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/Failed.java new file mode 100644 index 0000000..afc2afa --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/Failed.java @@ -0,0 +1,60 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package electromagnetic.data.framework.share.util; + +import electromagnetic.data.framework.share.validation.ValidationResult; + +/** + * 验证失败结果,也是一个验证结果,但主要承担的是表达验证失败的内容 + * @author wsk + * @version $Id: Failed.java, v 0.1 2024-10-20 19:10 wsk + */ +public interface Failed extends ValidationResult { + + /** + *
    +     * 验证失败的内容
    +     *
    +     * 一般是失败的字段名称,比如:
    +     *
    +     * class Param {
    +     *     @NotNull
    +     *     private String name;
    +     * }
    +     *
    +     * 如果验证失败,则{@link #getContent()}返回name。
    +     * 
    + * + * @return 失败内容,一般是失败的字段名 + */ + String getContent(); + + /** + *
    +     * 验证失败的消息
    +     *
    +     * 由JSR303实现完成了本地化的错误提示,可以用,也可以不用
    +     * 
    + * + * @return 验证失败的消息 + */ + String getMessage(); + + /** + *
    +     * 验证失败的约束
    +     *
    +     * class Param {
    +     *     @NotNull
    +     *     private String name;
    +     * }
    +     *
    +     * 验证失败,则返回NotNull
    +     *
    +     * 
    + * + * @return 验证约束 + */ + String getConstraint(); +} diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/Functions.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/Functions.java new file mode 100644 index 0000000..d169210 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/Functions.java @@ -0,0 +1,31 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package electromagnetic.data.framework.share.util; + +import java.util.function.BiFunction; +import java.util.function.Consumer; + +/** + * @author wsk + * @version $Id: Functions.java, v 0.1 2024-10-20 19:23 wsk + */ +public class Functions { + + private static final Consumer DUMMY_CONSUMER = t -> { + }; + + private static final BiFunction DUMMY_BI_FUNCTION = (o, o2) -> null; + + + @SuppressWarnings("all") + public static Consumer getDummyConsumer() { + return (Consumer) DUMMY_CONSUMER; + } + + @SuppressWarnings("all") + public static BiFunction getDummyBiFunction() { + return (BiFunction) DUMMY_BI_FUNCTION; + } + +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/NumberConversionUtil.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/NumberConversionUtil.java new file mode 100644 index 0000000..1d2f066 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/NumberConversionUtil.java @@ -0,0 +1,23 @@ +/** + * Copyright (c) 2004-2021 All Rights Reserved. + */ +package electromagnetic.data.framework.share.util; + +/** + * @author + * @version $Id: NumberConversionUtil.java, v 0.1 2021-03-09 16:27 .pt Exp $$ + */ +public class NumberConversionUtil { + public static String numberConvertToString(Long num,int digt){ + StringBuffer sb=new StringBuffer(); + if(null==num){ + return null; + } + int count=String.valueOf(num).length(); + sb.append(num); + for(int i=count;i { + + private Map paramMap; + + private ParamsBuilder(){ + this.paramMap = Maps.newHashMap(); + } + + public static ParamsBuilder of(Key key, Param param){ + return new ParamsBuilder().addParam(key,param); + } + + public ParamsBuilder addParam(Key key, Param param){ + paramMap.put(key, param); + return this; + } + + public static ParamsBuilder buildEmptyParams(){ + return new ParamsBuilder(); + } + + public Map getValue(){ + return paramMap; + } + +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/Results.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/Results.java new file mode 100644 index 0000000..e225e56 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/Results.java @@ -0,0 +1,61 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package electromagnetic.data.framework.share.util; + +import javax.validation.ConstraintViolation; + +/** + * @author wsk + * @version $Id: Results.java, v 0.1 2024-10-20 19:22 wsk + */ +public class Results { + + /** + * 验证成功 + * + * @return 成功参数 + */ + public static DefaultValidationResult successResult() { + DefaultValidationResult result = new DefaultValidationResult(); + result.setPass(true); + + return result; + } + + /** + * 返回验证失败的结果 + * + * @param constraintViolation 约束 + * @param 类型 + * @return 验证结果 + */ + public static DefaultValidationResult failResult(ConstraintViolation constraintViolation) { + DefaultValidationResult result = new DefaultValidationResult(); + result.setPass(false); + result.setMessage(constraintViolation.getMessage()); + result.setContent(constraintViolation.getPropertyPath().toString()); + result.setConstraint( + constraintViolation.getConstraintDescriptor().getAnnotation().annotationType().getSimpleName()); + + return result; + } + + /** + * 返回验证失败的结果 + * + * @param errorContent 失败的内容 + * @param errorMessage 错误消息 + * @param constraint 约束 + * @return 验证结果 + */ + public static DefaultValidationResult failResult(String errorContent, String errorMessage, String constraint) { + DefaultValidationResult result = new DefaultValidationResult(); + result.setPass(false); + result.setMessage(errorMessage); + result.setContent(errorContent); + result.setConstraint(constraint); + + return result; + } +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/SignHelper.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/SignHelper.java new file mode 100644 index 0000000..e9ce20b --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/SignHelper.java @@ -0,0 +1,56 @@ +/** + * Copyright (c) 2004-2023 All Rights Reserved. + */ +package electromagnetic.data.framework.share.util; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Map; + + +/** + * @author wsk + * @version $Id: SignHelper.java, v 0.1 2023-02-17 11:09 wsk.pt Exp $$ + */ +public class SignHelper { + + /*签名标识*/ + public final static String VER_SIGN="sign"; + /*加密特殊标识*/ + public final static String SIGN_FLAG="flag"; + /** + * 验证参数 + * + * @param secret + * @param sign 客方传过来的加密串,格式为secret+(参数名+参数值...)+secret的大写md5值 + * @return + */ + @SuppressWarnings({"unchecked", "rawtypes"}) + public static Boolean verifySign(Map params, String secret, String sign) { + return SignUtils.equals(sign(params,secret), sign); + } + /** + * 检验参数签名 + * + * @param params 客方传过来的加密串,格式为secret+(参数名+参数值...)+secret的大写md5值 + * @param secret + * + * @return + */ + public static String sign(Map params, String secret){ + //按参数名asscic码排序 + List names = new ArrayList(); + for (String key : params.keySet()){ + names.add(key); + } + Collections.sort(names); + String strSign = secret; + for (String name : names) { + strSign += name + SignUtils.getString(params, name, ""); + } + strSign += secret; + return SignUtils.md5(strSign).toUpperCase(); + } + +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/SignUtils.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/SignUtils.java new file mode 100644 index 0000000..4d89bf8 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/SignUtils.java @@ -0,0 +1,171 @@ +package electromagnetic.data.framework.share.util; + +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import static electromagnetic.data.framework.share.sign.SingHelper.getArray; + +public class SignUtils { + + public static char[] hexDigits = + {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}; + + public static String md5(String string) { + try { + MessageDigest md5 = MessageDigest.getInstance("MD5"); + byte[] bytes = md5.digest(string.getBytes("utf-8")); + char[] chars = new char[bytes.length * 2]; + + for (int i = 0; i < bytes.length; ++i) { + int b = bytes[i]; + chars[i * 2] = hexDigits[(b & 240) >> 4]; + chars[i * 2 + 1] = hexDigits[b & 15]; + } + + return new String(chars); + } catch (Exception var6) { + var6.printStackTrace(); + return null; + } + } + + /** + * 获取MD5加密后的字符串 + * + * @param str 加密前的字符串 + * @return + */ + public static String MD5(String str) { + try { + MessageDigest md = MessageDigest.getInstance("MD5"); + md.reset(); + md.update(str.getBytes("UTF-8")); + byte[] byteArray = md.digest(); + StringBuffer md5StrBuff = new StringBuffer(); + for (int i = 0; i < byteArray.length; i++) { + if (Integer.toHexString(0xFF & byteArray[i]).length() == 1) { + md5StrBuff.append("0").append(Integer.toHexString(0xFF & byteArray[i])); + } else { + md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i])); + } + } + return md5StrBuff.toString(); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + /** + * 获取加密字符串 + * + * @param param + * @return + */ + public static String MD5ForInteger(Integer param) { + return MD5(param.toString()); + } + + public static String MD52(String str) { + try { + String key = str.substring(6, 15); + key = MD5(key); + key = MD5(key); + String p = str.substring(0, 5); + String e = str.substring(15, str.length() - 1); + str = p + e + key; + MessageDigest md = MessageDigest.getInstance("MD5"); + md.reset(); + md.update(str.getBytes("UTF-8")); + byte[] byteArray = md.digest(); + StringBuffer md5StrBuff = new StringBuffer(); + for (int i = 0; i < byteArray.length; i++) { + if (Integer.toHexString(0xFF & byteArray[i]).length() == 1) { + md5StrBuff.append("0").append(Integer.toHexString(0xFF & byteArray[i])); + } else { + md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i])); + } + } + return md5StrBuff.toString(); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + /** + * Get the MD5 32 and 16 coding. + * + * @param str String MD5 Type + * @return String or Null + * @author He Daoyuan + * @version 2016-04-01 + */ + public static String MD5(String str, int type) { + try { + MessageDigest md = MessageDigest.getInstance("MD5"); + md.update(str.getBytes()); + byte b[] = md.digest(); + int i; + StringBuffer buf = new StringBuffer(""); + for (int offset = 0; offset < b.length; offset++) { + i = b[offset]; + if (i < 0) + i += 256; + if (i < 16) + buf.append("0"); + buf.append(Integer.toHexString(i)); + } + if (32 == type) { + return buf.toString(); + } + if (16 == type) { + return buf.toString().substring(8, 24); + } + } catch (NoSuchAlgorithmException e) { + System.out.println(e); + } + + return null; + } + + public static Boolean equals(String v1, String v2) { + if (v1 == null && v2 == null) + { + return true; + } + if (v1 != null && v2 != null && v1.equals(v2)) + { + return true; + } + else + { + return false; + } + } + + public static String getString(Map params, String key, String defaultValue){ + String temp = null; + if(params.get(key)==null){ + return defaultValue; + } + + else if(params.get(key).getClass().isArray()) + { + temp = getArray(params,key)[0]; + } + else + { + temp = params.get(key).toString(); + } + if(temp != null){ + temp = temp.replaceAll("%", "\\%"); + } + if(temp==null) + { + return defaultValue; + } + return temp; + } +} diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/SpringUtils.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/SpringUtils.java new file mode 100644 index 0000000..ae61296 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/SpringUtils.java @@ -0,0 +1,52 @@ +package electromagnetic.data.framework.share.util; + +import lombok.Getter; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.DisposableBean; +import org.springframework.beans.factory.config.BeanPostProcessor; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Component; + +import javax.annotation.Nonnull; + +/** + * @author wangmin + * @version 1.0 + * @description spring 上下文获取 + * @date 2024/4/3 14:03 + */ +@Component +public class SpringUtils implements ApplicationContextAware, BeanPostProcessor, DisposableBean { + /** + * 获取spring上下文 + */ + @Getter + private static ApplicationContext applicationContext; + + @Override + public void setApplicationContext(@Nonnull ApplicationContext applicationContext) throws BeansException { + if (SpringUtils.applicationContext == null) { + SpringUtils.applicationContext = applicationContext; + } + } + + /** + * 通过name,以及Clazz返回指定的Bean + */ + public static T getBean(String name, Class clazz) { + return getApplicationContext().getBean(name, clazz); + } + + /** + * 通过class获取Bean + */ + public static T getBean(Class clazz) { + return getApplicationContext().getBean(clazz); + } + + @Override + public void destroy() { + applicationContext = null; + } +} diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/validation/ElectromagneticSimpleValidationTool.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/validation/ElectromagneticSimpleValidationTool.java new file mode 100644 index 0000000..9bff635 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/validation/ElectromagneticSimpleValidationTool.java @@ -0,0 +1,11 @@ +/** + * Copyright (c) 2004-2021 All Rights Reserved. + */ +package electromagnetic.data.framework.share.validation; + + +/** + */ +public interface ElectromagneticSimpleValidationTool extends SimpleValidationTool { + +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/validation/SimpleValidationTool.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/validation/SimpleValidationTool.java new file mode 100644 index 0000000..94a0afb --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/validation/SimpleValidationTool.java @@ -0,0 +1,44 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package electromagnetic.data.framework.share.validation; + +/** + * @author wsk + * @version $Id: SimpleValidationTool.java, v 0.1 2024-10-20 19:07 wsk + */ +/** + *
    + * 简单的验证工具,相比{@link ValidationTool}的多种验证支持,该工具只是简单的将处理的结果进行异常抛出
    + *
    + * 该工具简化了验证过程,如果偏向异常返回的可以使用该工具
    + * 
    + * + * @author weipeng2k 2019年04月02日 下午20:03:50 + */ +public interface SimpleValidationTool { + + /** + *
    +     * 直接验证参数,如果参数违反BeanValidation的约束,将抛出{@link IllegalParameterException}
    +     *
    +     * 其中errorcode为"ILLEGAL_PARAM"
    +     *
    +     * 而errormessage默认为  字段#约束
    +     *
    +     * 例如:
    +     *
    +     * class Param {
    +     *     @NotNull
    +     *     private String name;
    +     * }
    +     *
    +     * 如果参数Param#name为空,则errormessage为 name#NotNull
    +     *
    +     * 
    + * + * @param parameter 参数 + * @param 参数类型 + */ + void validate(ParameterType parameter); +} diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/validation/ValidationResult.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/validation/ValidationResult.java new file mode 100644 index 0000000..4618e52 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/validation/ValidationResult.java @@ -0,0 +1,31 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package electromagnetic.data.framework.share.validation; + +/** + * 验证结果 + * @author wsk + * @version $Id: ValidationResult.java, v 0.1 2024-10-20 19:09 wsk + */ +public interface ValidationResult { + + /** + * 是否通过验证 + * + * @return true表示已经通过验证 + */ + boolean isPass(); + + /** + *
    +     * 经过验证处理后的内容
    +     *
    +     * 如果验证通过,一般返回null,而失败后可以选择进行自定义的内容返回
    +     *
    +     * 
    + * + * @return 返回内容 + */ + T getResult(); +} diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/validation/ValidationTool.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/validation/ValidationTool.java new file mode 100644 index 0000000..7b0d952 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/validation/ValidationTool.java @@ -0,0 +1,81 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package electromagnetic.data.framework.share.validation; + +import electromagnetic.data.framework.share.util.Failed; + +import java.util.function.BiFunction; +import java.util.function.Consumer; + +/** + * 验证工具服务 + * 该服务能够提供对验证结果的处理,基于Function风格的验证处理回调 + * @author wsk + * @version $Id: ValidationTool.java, v 0.1 2024-10-20 19:08 wsk + */ +public interface ValidationTool { + + /** + *
    +     * 验证参数,如果通过验证,将会使用successFunc来进行处理,如果验证失败将会使用failFunc来处理。
    +     *
    +     * 例如:对于验证通过的参数进行打印,对于验证失败的参数进行处理,返回Error
    +     *
    +     *  ValidationResult validate = validationTool.validate(p1, System.out::println, (param1, fail) -> "Error");
    +     *
    +     * 如果failFunc经过运算返回的对象为{@link BizRuntimeException}或者子类实例,则会直接抛出异常,而不会返回{@link ValidationResult}
    +     *
    +     * validationTool.validate(p1, System.out::println, (param1, fail) -> new BizRuntimeException(fail.getMessage()));
    +     *
    +     * 而抛出异常为{@link IllegalParameterException}会更加简单,因为它是{@link BizRuntimeException}的子类,因此代码可以简化为:
    +     *
    +     * validationTool.validate(p1, System.out::println, (param1, fail) -> new IllegalParameterException());
    +     *
    +     * 
    + * + * @param param 参数,不能为空 + * @param successFunc 验证成功函数 + * @param failFunc 验证失败函数 + * @param 参数类型 + * @param 返回类型 + * @return 验证结果,不会为空 + */ + ValidationResult validate(ParameterType param, + Consumer successFunc, + BiFunction failFunc); + + /** + *
    +     * 验证参数,如果验证失败将会使用failFunc来处理。
    +     *
    +     * 如果failFunc经过运算返回的对象为{@link BizRuntimeException}或者子类实例,则会直接抛出异常,而不会返回{@link ValidationResult}
    +     *
    +     * validationTool.validate(p1, (param1, fail) -> new BizRuntimeException(fail.getMessage()));
    +     *
    +     * 而抛出异常为{@link IllegalParameterException}会更加简单,因为它是{@link BizRuntimeException}的子类,因此代码可以简化为:
    +     *
    +     * validationTool.validate(p1, (param1, fail) -> new IllegalParameterException());
    +     *
    +     * 
    + * + * @param param 参数,不能为空 + * @param failFunc 验证失败函数 + * @param 参数类型 + * @param 返回类型 + * @return 验证结果,不会为空 + */ + ValidationResult validate(ParameterType param, + BiFunction failFunc); + + /** + *
    +     * 验证参数,返回验证结果
    +     * 
    + * + * @param param 参数 + * @param 参数类型 + * @return 验证结果,根据{@link ValidationResult#isPass()}进行判断 + */ + ValidationResult validate(ParameterType param); +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/validation/config/ElectromagneticValidationToolAutoConfiguration.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/validation/config/ElectromagneticValidationToolAutoConfiguration.java new file mode 100644 index 0000000..1520074 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/validation/config/ElectromagneticValidationToolAutoConfiguration.java @@ -0,0 +1,39 @@ +/** + * Copyright (c) 2004-2021 All Rights Reserved. + */ +package electromagnetic.data.framework.share.validation.config; + + +import electromagnetic.data.framework.share.validation.ValidationTool; +import electromagnetic.data.framework.share.config.DefaultValidationTool; +import electromagnetic.data.framework.share.config.ValidationToolAutoConfiguration; +import electromagnetic.data.framework.share.validation.ElectromagneticSimpleValidationTool; +import electromagnetic.data.framework.share.validation.impl.ElectromagneticSimpleValidationToolImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + */ +@Configuration +@ConditionalOnClass({ValidationToolAutoConfiguration.class, ElectromagneticSimpleValidationToolImpl.class}) +public class ElectromagneticValidationToolAutoConfiguration { + + @Bean("validationTool") + @ConditionalOnMissingBean + public ValidationTool validationTool() { + return new DefaultValidationTool(); + } + + @Bean("dataplatformSimpleValidationTool") + @ConditionalOnMissingBean + public ElectromagneticSimpleValidationTool electromagneticSimpleValidationTool( + @Autowired @Qualifier("validationTool") ValidationTool validationTool) { + return new ElectromagneticSimpleValidationToolImpl(validationTool); + } + + +} \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/validation/impl/ElectromagneticSimpleValidationToolImpl.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/validation/impl/ElectromagneticSimpleValidationToolImpl.java new file mode 100644 index 0000000..3ec8c75 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/validation/impl/ElectromagneticSimpleValidationToolImpl.java @@ -0,0 +1,31 @@ +/** + * Copyright (c) 2004-2021 All Rights Reserved. + */ +package electromagnetic.data.framework.share.validation.impl; + + +import electromagnetic.data.framework.share.validation.ValidationTool; +import electromagnetic.data.framework.share.exception.IllegalParameterException; +import electromagnetic.data.framework.share.validation.ElectromagneticSimpleValidationTool; + +/** + */ + +public class ElectromagneticSimpleValidationToolImpl implements ElectromagneticSimpleValidationTool { + + private static final String CONCAT_STR = System.getProperty("com.aliyun.fsi.insurance.shared.validation-concat-str", + "#"); + + private ValidationTool validationTool; + + public ElectromagneticSimpleValidationToolImpl(ValidationTool validationTool) { + this.validationTool = validationTool; + } + + @Override + public void validate(ParameterType parameter) { + validationTool.validate(parameter, + (p, f) -> new IllegalParameterException(f.getMessage())); + } + +} \ No newline at end of file diff --git a/facade/facade.iml b/facade/facade.iml new file mode 100644 index 0000000..8aef661 --- /dev/null +++ b/facade/facade.iml @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/facade/pom.xml b/facade/pom.xml new file mode 100644 index 0000000..7bac92f --- /dev/null +++ b/facade/pom.xml @@ -0,0 +1,44 @@ + + + + 4.0.0 + + com.electromagnetic.data + electromagnetic-data + 1.0.0-SNAPSHOT + + com.electromagnetic.data + facade + + + + + com.electromagnetic.data + electromagnetic-framework + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + none + execute + + + + + repackage + + + + + + + + diff --git a/facade/src/main/java/com/electromagnetic/industry/software/data/manage/base/DataplatformDataServiceResult.java b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/base/DataplatformDataServiceResult.java new file mode 100644 index 0000000..3d2c550 --- /dev/null +++ b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/base/DataplatformDataServiceResult.java @@ -0,0 +1,26 @@ +package com.electromagnetic.industry.software.data.manage.base; + +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * 数据服务 数据查询返回结果 + * + * @author liyl.pt + * @version $Id: DataServiceBaseQryServiceImpl.java, v 0.1 2022-03-09 16:46 liyl.pt Exp $$ + */ +@Data +@NoArgsConstructor +public class DataplatformDataServiceResult implements Serializable { + private static final long serialVersionUID = 2918761644445008514L; + private Boolean success; + private String errorCode; + private String errorMessage; + private Integer totalCount; + private Integer pageIndex; + private Integer pageSize; + private String batchNo; + private T data; +} diff --git a/facade/src/main/java/com/electromagnetic/industry/software/data/manage/common/ElectromagneticErrorEnum.java b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/common/ElectromagneticErrorEnum.java new file mode 100644 index 0000000..2890365 --- /dev/null +++ b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/common/ElectromagneticErrorEnum.java @@ -0,0 +1,213 @@ +/** + * Copyright (c) 2004-2022 All Rights Reserved. + */ +package com.electromagnetic.industry.software.data.manage.common; + + + +import electromagnetic.data.framework.share.enums.ErrorEnum; +import electromagnetic.data.framework.share.enums.ErrorLevels; +import electromagnetic.data.framework.share.enums.ErrorTypes; +import lombok.Getter; + +/** + * enum + * + */ +@Getter +public enum ElectromagneticErrorEnum implements ErrorEnum { + /** + * 系统 + */ + SYSTEM_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "000", "SYSTEM_ERROR", "系统异常"), + PARAMS_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "001", "PARAMS_ERROR", "参数异常"), + /*****************业务级*****************/ + + + //111 + INPUT_PARAMETER_IS_EMPTY(ErrorLevels.ERROR, ErrorTypes.BIZ, "53001", "INPUT_PARAMETER_IS_EMPTY", "入参为空"), + NAME_IS_EMPTY(ErrorLevels.ERROR, ErrorTypes.BIZ, "53002", "NAME_IS_EMPTY", "名字为空"), + CREATOR_IS_EMPTY(ErrorLevels.ERROR, ErrorTypes.BIZ, "53003", "CREATOR_IS_EMPTY", "创建人不能为空"), + NAME_IS_REPEAT(ErrorLevels.ERROR, ErrorTypes.BIZ, "53004", "NAME_IS_REPEAT", "名字重复"), + NAME_FORM_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53005", "NAME_FORM_ERROR", "名字格式不正确"), + PARENT_CATEGORY_NOT_EXIST(ErrorLevels.ERROR, ErrorTypes.BIZ, "53006", "PARENT_CATEGORY_NOT_EXIST", "父类目不存在"), + DEPT_NOT_EXIST(ErrorLevels.ERROR, ErrorTypes.BIZ, "53007", "DEPT_NOT_EXIST", "属主部门不存在"), + + CATEGORY_BUILD_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53008", "CATEGORY_BUILD_ERROR", "类目代码生成失败"), + CATEGORY_INSERT_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53009", "CATEGORY_INSERT_ERROR", "类目新增异常"), + CATEGORY_NOT_EXIST_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53010", "CATEGORY_NOT_EXIST_ERROR", "类目不存在"), + CATEGORY_DELETE_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53011", "CATEGORY_DELETE_ERROR", "类目删除异常"), + REPORT_STATUS_CREATE(ErrorLevels.ERROR, ErrorTypes.BIZ, "53012", "REPORT_STATUS_CREATE", "新建状态可以编辑"), + REPORT_STATUS_DELETE(ErrorLevels.ERROR, ErrorTypes.BIZ, "53013", "REPORT_STATUS_CREATE", "新建状态可以删除"), + REPORT_DELETE(ErrorLevels.ERROR, ErrorTypes.BIZ, "53014", "REPORT_DELETE", "删除失败"), + REPORT_UPDATE(ErrorLevels.ERROR, ErrorTypes.BIZ, "53015", "REPORT_UPDATE", "更新失败"), + REPORT_CREATE(ErrorLevels.ERROR, ErrorTypes.BIZ, "53016", "REPORT_CREATE", "创建失败"), + REPORT_STATUS(ErrorLevels.ERROR, ErrorTypes.BIZ, "53017", "REPORT_STATUS", + "传入对应更新状态:●状态为“新增”,可操作“上架:3”;●状态为“使用中”,可传入“下架:4”;●状态为“将下架”,可操作“取消下架:6”"), + REPORT_GINSENG_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53018", "REPORT_GINSENG_NULL", "入参为空"), + REPORT_CHECK_NAME(ErrorLevels.ERROR, ErrorTypes.BIZ, "53019", "REPORT_GINSENG_NULL", "名称重复,请重新输入"), + GETSEQUENCEID_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53020", "GETSEQUENCEID_ERROR", "序列化ID生成错误"), + GET_DEPT_CODE_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53020", "GET_DEPT_CODE_ERROR", "部门编码获取异常"), + REPORT_NO_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53021", "REPORT_NO_ERROR", "ID生成不能为空"), + DEPT_INSERT_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53022", "DEPT_INSERT_ERROR", "新增异常"), + DEPT_EXIST(ErrorLevels.ERROR, ErrorTypes.BIZ, "53023", "DEPT_EXIST", "属主部门已存在"), + DEPT_ENUM_NOT_EXIST(ErrorLevels.ERROR, ErrorTypes.BIZ, "53024", "DEPT_ENUM_NOT_EXIST", "属主部门枚举映射不存在"), + DEPT_DELETE_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53025", "DEPT_DELETE_ERROR", "部门删除异常"), + REPORT_UN_SHELVE_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53026", "REPORT_UN_SHELVE_ERROR", "下架數據为空"), + + REPORT_ID_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53027", "REPORT_ID_NULL", "ID对应数据不存在"), + REPORT_UN_SHELVE_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53028", "REPORT_ID_NULL", "沒有下架數據"), + REPORT_CATEOGRYLV1_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53029", "REPORT_ID_NULL", "一級類目为空"), + REPORT_CATEOGRYLV2_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53030", "REPORT_ID_NULL", "二級類目为空"), + CATEGORY_EXIST(ErrorLevels.ERROR, ErrorTypes.BIZ, "53031", "CATEGORY_EXIST", "类目已存在"), + CATEGORY_EXIST_REPORT(ErrorLevels.ERROR, ErrorTypes.BIZ, "53032", "CATEGORY_EXIST_REPORT", "类目下已挂在数据"), + REPORT_URL_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53033", "REPORT_URL_ERROR", "FR报表地址错误"), + REPORT_OFF_DESC_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53034", "REPORT_URL_ERROR", "下架原因不能为空"), + REPORT_CANCEL_OFF_DESC_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53035", "REPORT_URL_ERROR", "取消下架原因不能为空"), + DEPT_EXIST_REPORT(ErrorLevels.ERROR, ErrorTypes.BIZ, "53036", "DEPT_EXIST_REPORT", "部门下已挂在数据"), + FINE_CREATE_USER_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53037", "FINE_CREATE_USER_ERROR", "帆软创建用户失败"), + FINE_CONNECT_LIST_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53038", "FINE_CONNECT_LIST_ERROR", "获取finebi数据库连接列表错误"), + FINE_CONNECT_TABLE_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53039", "FINE_CONNECT_TABLE_ERROR", "获取finebi数据库对应表列表错误"), + FINE_ADD_GROUP_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53040", "FINE_ADD_GROUP_ERROR", "添加分组报错"), + FINE_ADD_PACK_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53041", "FINE_ADD_PACK_ERROR", "添加业务包报错"), + FINE_DELETE_USER_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53042", "FINE_DELETE_USER_ERROR", "帆软删除用户失败"), + FINE_ADD_DB_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53043", "FINE_ADD_DB_ERROR", "数据集已存在,请不要重复添加"), + FINE_GET_TABLE_INFO_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53044", "FINE_GET_TABLE_INFO_ERROR", "数据集表信息错误"), + LABEL_OBJNAME_IS_CHINESE(ErrorLevels.ERROR, ErrorTypes.BIZ, "53045", "LABEL_OSS_ANALYSIS_FAIL", "名称不能包含特殊字符(下划线,横杠,加号 除外)"), + MEASURE_EXCEL_READ_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53046", "MEASURE_EXCEL_READ_ERROR", "文件读取失败,请按照模板重新上传!(是否有空值或重复数据或数据超过指定长度)"), + MEASURE_UPDATE_STATUS_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53047", "MEASURE_UPDATE_STATUS_ERROR", "当前状态不允许更新指标"), + FINE_ADD_TABLE_ROW_AUTHORITY_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53048", "FINE_ADD_TABLE_ROW_AUTHORITY_ERROR", "数据集添加行权限错误"), + FINE_GET_ENTRY_TREE_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53049", "fine_get_entry_tree_error", "bi获取目录报错"), + FINE_ENTRY_AUTH_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53050", "FINE_ENTRY_AUTH_ERROR", "目录授权失败"), + OAR_ORG_AUTH_LIST_REPEAT(ErrorLevels.ERROR, ErrorTypes.BIZ, "53051", "oar_org_auth_list_repeat", "适用机构重复"), + + ACCOUNT_INFO_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "630005", "ACCOUNT_INFO_BY_ACC_ID_NULL", "调用运营支撑域获取信息为空"), + ROLE_CODE_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "630005", "ACCOUNT_INFO_BY_ACC_ID_NULL", "用户对应角色为空"), + ROLE_ORG_CODE_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "630005", "ACCOUNT_INFO_BY_ACC_ID_NULL", "工作组对应組员为空"), + USER_ROLE_ORG_CODE_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "630008", "ACCOUNT_INFO_BY_ACC_ID_NULL", "角色对应机构为空"), + OSS_ANALYSIS_FAIL(ErrorLevels.ERROR, ErrorTypes.BIZ, "50", "OSS_ANALYSIS_FAIL", "excel不能为空"), + OAR_OFFLINE_CONFIG_NAME_REPEAT(ErrorLevels.ERROR, ErrorTypes.BIZ, "630009", "OAR_OFFLINE_CONFIG_NAME_REPEAT", "名称重复"), + OAR_OFFLINE_CONFIG_DIMENSION_MEASURE_ERROR1(ErrorLevels.ERROR, ErrorTypes.BIZ, "630009", "OAR_OFFLINE_CONFIG_DIMENSION_MEASURE_ERROR1", "统计报表维度和度量不能为空"), + OAR_OFFLINE_CONFIG_DIMENSION_MEASURE_ERROR2(ErrorLevels.ERROR, ErrorTypes.BIZ, "630009", "OAR_OFFLINE_CONFIG_DIMENSION_MEASURE_ERROR2", "清单报表维度和度量至少一个不能为空"), + OAR_OFFLINE_CONFIG_CONDITION_VALUE_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "6300010", "OAR_OFFLINE_CONFIG_CONDITION_VALUE_NULL", "筛选条件值不能为空"), + OAR_OFFLINE_CONFIG_NAME_NOT_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "630006", "OAR_OFFLINE_CONFIG_NAME_NOT_NULL", "任务名称不能为空"), + OAR_OFFLINET_SQL_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "6300013", "OAR_OFFLINET_SQL_ERROR", "离线任务运行报错"), + + OFFLINE_ERRORL(ErrorLevels.ERROR, ErrorTypes.BIZ, "630011", "OFFLINE_ERRORL", "更新失敗"), + SEND_MESSAGE(ErrorLevels.ERROR, ErrorTypes.BIZ, "630012", "SEND_MESSAGE", "获取对应wrapper 异常"), + OAR_OFFLINE_CONFIG_DETAIL_REPEAT(ErrorLevels.ERROR, ErrorTypes.BIZ, "630014", "oar_offline_config_detail_repeat", "该模板所选字段并无更改,请通过原模板 \"离线取数\" 功能提交离线任务!"), + + EXCEL_TYPE_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "100", "EXCEL_TYPE_ERROR", "报表类型不正确"), + EXCEL_DELETE(ErrorLevels.ERROR, ErrorTypes.BIZ, "101", "EXCEL_DELETE", "行业数据删除失败"), + DATA_EXCEL_DELETE(ErrorLevels.ERROR, ErrorTypes.BIZ, "102", "DATA_EXCEL_DELETE", "业务数据删除失败"), + IMPORT_DATA_EXCEL(ErrorLevels.ERROR, ErrorTypes.BIZ, "103", "IMPORT_DATA_EXCEL", "业务数据导入失败"), + UPDATE_DATA_EXCEL(ErrorLevels.ERROR, ErrorTypes.BIZ, "104", "UPDATE_DATA_EXCEL", "业务数据更新失败"), + INSTITUTION_CODE_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "105", "INSTITUTION_CODE_ERROR", "行机构编码错误!"), + DATA_EMPTY(ErrorLevels.ERROR, ErrorTypes.BIZ, "106", "DATA_EMPTY", "模板存在空值,请检查并补充完整;"), + NUMBER_EMPTY(ErrorLevels.ERROR, ErrorTypes.BIZ, "107", "NUMBER_EMPTY", "电融(万元)&网销(万元)&车商(万元)&线下(万元)&中介(万元)&重客(万元)总和不等于该行合计值"), + DATA_EXIST(ErrorLevels.ERROR, ErrorTypes.BIZ, "108", "DATA_EXIST", "模板存在重复项,请检查更新!"), + VELOCITY_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "109", "VELOCITY_ERROR", "模板转换失败"), + PLAN_TYPE_DATE(ErrorLevels.ERROR, ErrorTypes.BIZ, "110", "PLAN_TYPE_DATE", "计划周期格式错误!"), + WEEK_XUN_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "111", "WEEK_XUN_ERROR", "你所传的文件不是周旬报"), + TOPIC_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "112", "TOPIC_ERROR", "主题不匹配"), + CALIBER_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "113", "CALIBER_ERROR", "指标口径不匹配"), + DATA_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "114", "DATA_ERROR", "报表缺失月份数据"), + DATA_IS_EXIST(ErrorLevels.ERROR, ErrorTypes.BIZ, "115", "DATA_IS_EXIST", "数据已存在"), + + DEPT_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53049", "DEPT_NULL", "当前该账户尚未授权,请联系管理员申请权限!"), + MEMBER_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53050", "MEMBER_NULL", "对应组员为空"), + ORG_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53050", "MEMBER_NULL", "用戶对应机构权限为空"), + DATA_AUTHRIZATION(ErrorLevels.ERROR, ErrorTypes.BIZ, "53051", "DATA_AUTHRIZATION", "数据集授权"), + GROUP_FLAG(ErrorLevels.ERROR, ErrorTypes.BIZ, "53052", "DATA_AUTHRIZATION", "工作组失效"), + DATA_USER_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53053", "DATA_AUTHRIZATION", "数据为空"), + DATA_UPDATE_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53054", "DATA_AUTHRIZATION", "数据为空。"), + DATA_COLLECT_AUTH_IS(ErrorLevels.ERROR, ErrorTypes.BIZ, "53055", "DATA_COLLECT_AUTH_IS", "对应数据集和仪表板已经授权完成"), + DATA_COLLECT_AUTH_IS_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53056", "DATA_COLLECT_AUTH_IS_NULL", "对应数据为空"), + DATA_PRODUCT_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53057", "DATA_PRODUCT_NULL", "产品权限为空"), + IMPORT_DATA_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53058", "IMPORT_DATA_NULL", "导入数据为空"), + IMPORT_DATA_IS_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53059", "IMPORT_DATA_IS_NULL", "对应数据为空"), + IMPORT_REPEAT_DATA(ErrorLevels.ERROR, ErrorTypes.BIZ, "53060", "IMPORT_REPEAT_DATA", "重复数据"), + DATA_IS_INVALID(ErrorLevels.ERROR, ErrorTypes.BIZ, "53061", "DATA_IS_INVALID", "对应清单失效,请创建新的模板"), + DATA_AUTH_USER_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53062", "data_auth_user_null", "用户组没有匹配到有权限的数据集"), + FILE_NOT_EXIST(ErrorLevels.ERROR, ErrorTypes.BIZ, "53063", "FILE_NOT_EXIST", "字段文件下载失败"), + EXCEL_FIELD_ANALYTICS_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53066", "EXCEL_FIELD_ANALYTICS_ERROR", "excel解析异常,请检查内容"), + TASK_TIME_ROLE(ErrorLevels.ERROR, ErrorTypes.BIZ, "53067", "TASK_TIME_ROLE", "请设置定时任务日期滚动规则后再提交"), + TASK_TEMPLATE_CREATE(ErrorLevels.ERROR, ErrorTypes.BIZ, "53067", "TASK_TIME_ROLE", "支持1~50个字符!"), + IMPORT_DATA_LENGTH(ErrorLevels.ERROR, ErrorTypes.BIZ, "53068", "IMPORT_DATA_LENGTH", "字段说明长度支持100个字符!"), + FILE_NAME_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53069", "FILE_NAME_ERROR", "文件命名错误"), + FILE_NAME_REPEAT(ErrorLevels.ERROR, ErrorTypes.BIZ, "53070", "FILE_NAME_REPEAT", "存在相同命名的文件,请检查后重更新上传!"), + INDICATORCARD_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53071", "INDICATORCARD_NULL", "指标卡为空!"), + INDICATORCARD_DATA_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53072", "INDICATORCARD_DATA_ERROR", "指标数据请求异常!"), + ANALYSISITEMPLATE_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53073", "ANALYSISITEMPLATE_ERROR", "模板创建DB失败!"), + INDICATORCARD_DB_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53074", "INDICATORCARD_DB_ERROR", "指标卡DB操作异常!"), + INDICATORCARD_WARNING_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53075", "INDICATORCARD_WARNING_NULL", "预警已存在!"), + RESOURCE_NO_GENERATE_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53076", "RESOURCE_NO_GENERATE_ERROR", "业务编码生成异常,请联系管理员"), + INDICATOR_DATASERVICE_NO_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53077", "INDICATOR_DATASERVICE_NO_NULL", "服务编码不能为空!"), + INDICATOR_DT_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53078", "INDICATOR_DT_NULL", "指标数据DT时间为空!"), + INDICATOR_HOST_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53079", "INDICATOR_HOST_NULL", "主指标不能为空!"), + INDICATOR_CARD_NO_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53080", "INDICATOR_CARD_NO_NULL", "指标卡编码不能为空!"), + INDICATOR_CARD_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53081", "INDICATOR_CARD_NULL", "无匹配的指标卡!"), + INDICATOR_DATAFILE_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53082", "INDICATOR_DATAFILE_NULL", "返回数据中没有指标字段!"), + INDICATOR_DT_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53083", "INDICATOR_DT_ERROR", "请选择正确的DT或者服务编码!"), + DRILLINGCONFIG_INDICATOR_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53084", "DRILLINGCONFIG_INDICATOR_NULL", "下钻配置字段未匹配到指标字段!"), + DUTIES_UPDATE_IDS_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53085", "DUTIES_UPDATE_IDS_ERROR", "入参ids不能为空"), + DUTIES_MEASURES_UPDATE_LIST_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53086", "DUTIES_MEASURES_UPDATE_LIST_ERROR", "举措信息不能为空"), + INDICATOR_WARN_CREATE_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53087", "INDICATOR_WARN_CREATE_ERROR", "保存指标预警规则失败"), + INDICATOR_WARN_UPDATE_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53088", "INDICATOR_WARN_UPDATE_ERROR", "指标预警规则更新失败"), + INDICATOR_WARN_RESULT_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53089", "INDICATOR_WARN_RESULT_ERROR", "指标预警结果查询失败"), + INDICATOR_WARN_DEL_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53090", "INDICATOR_WARN_DEL_ERROR", "指标预警删除失败"), + INDICATOR_WARN_NULL_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53091", "INDICATOR_WARN_NULL_ERROR", "请求预警中心参数为空"), + MESSAGE_DING_PUSH_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53092", "MESSAGE_DING_PUSH_ERROR", "钉钉消息推送失败"), + INDICATORCARD_UPDATESTATUSOREFFECT_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53093", "INDICATORCARD_UPDATESTATUSOREFFECT_ERROR", "指标卡状态更新或删除失败"), + INDICATORCARD_INVALID_OPERATION(ErrorLevels.ERROR, ErrorTypes.BIZ, "53094", "INDICATORCARD_INVALID_OPERATION", "指标卡状态更新或删除无效的操作"), + DUTIES_CREATE_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53095", "DUTIES_CREATE_ERROR", "一键通知失败!"), + DUTIES_MEASURES_SOLVETIME_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53096", "DUTIES_MEASURES_SOLVETIME_ERROR", "请选择正确的举措时间"), + USER_INFO_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53097", "USER_INFO_NULL", "用户信息不能为空!"), + EXIST_GOAL_CONFIG(ErrorLevels.ERROR, ErrorTypes.BIZ, "53098", "EXIST_GOAL_CONFIG", "已存在该年度的目标计划!"), + DATASERVICE_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53099", "DATASERVICE_NULL", "数据服务不存在!"), + DATASERVICE_NO_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53100", "DATASERVICE_NO_NULL", "服务编码不存在!"), + ANALYSISTEMPLATE_NO_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53101", "ANALYSISTEMPLATE_NO_NULL", "模板不存在!"), + INDICATORCARWRAINGONE(ErrorLevels.ERROR, ErrorTypes.BIZ, "53102", "INDICATORCARWRAINGONE", "一个指标卡只支持一个预警指标!"), + TESTDRILLINGDATA_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53103", "TESTDRILLINGDATA_ERROR", "下钻服务测试失败!"), + DRILLINGCONFIG_ORGLEVE_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53104", " DRILLINGCONFIG_ORGLEVE_ERROR", "下钻机构权限勾选不正确!"), + BRANCH_ORGANIZATION_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53105", "BRANCH_ORGANIZATION_ERROR", "获取用户配置机构信息!"), + ; + + + private String codeType; + + private String codeLevel; + + private String code; + + private String errorMessage; + + private String errorDesc; + + /** + * DataplatformLabelErrorEnum + * + * @param codeLevel + * @param codeType + * @param code + * @param errorMessage + * @param errorDesc + */ + ElectromagneticErrorEnum(String codeLevel, String codeType, String code, String errorMessage, String errorDesc) { + + this.codeType = codeType; + this.codeLevel = codeLevel; + this.code = code; + this.errorMessage = errorMessage; + this.errorDesc = errorDesc; + } + + public void setErrorDesc(String errorDesc) { + this.errorDesc = errorDesc; + } + + public ElectromagneticErrorEnum changeErrorDesc(String str) { + this.setErrorDesc(str); + return this; + } +} diff --git a/facade/src/main/java/com/electromagnetic/industry/software/data/manage/common/MotorcycleOrTractorEnum.java b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/common/MotorcycleOrTractorEnum.java new file mode 100644 index 0000000..564bbca --- /dev/null +++ b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/common/MotorcycleOrTractorEnum.java @@ -0,0 +1,38 @@ +package com.electromagnetic.industry.software.data.manage.common; + +import cn.hutool.core.util.ObjectUtil; +import lombok.Getter; + +import java.util.Objects; + +/** + * @author : + * @date : 2024/2/21 11:25 + */ +@Getter +public enum MotorcycleOrTractorEnum { + /*逗号*/ + MOTORCYCLE_OR_TRACTOR_YES(1,"是"), + MOTORCYCLE_OR_TRACTOR_NO(2,"否"), + ; + /*编码*/ + private Integer code; + /*描述*/ + private String desc; + MotorcycleOrTractorEnum(Integer code, String desc) { + this.code = code; + this.desc = desc; + } + + public static MotorcycleOrTractorEnum ofCode(Integer code){ + if (Objects.isNull(code)){ + return null; + } + for (MotorcycleOrTractorEnum value : MotorcycleOrTractorEnum.values()){ + if (ObjectUtil.equal(value.code, code)){ + return value; + } + } + return null; + } +} diff --git a/facade/src/main/java/com/electromagnetic/industry/software/data/manage/common/NewEnergyInsuranceEnum.java b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/common/NewEnergyInsuranceEnum.java new file mode 100644 index 0000000..cf924d6 --- /dev/null +++ b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/common/NewEnergyInsuranceEnum.java @@ -0,0 +1,44 @@ +/** + * Copyright (c) 2004-2023 All Rights Reserved. + */ +package com.electromagnetic.industry.software.data.manage.common; + +import cn.hutool.core.util.ObjectUtil; +import lombok.Getter; + +import java.util.Objects; + +/** + * 是否新能源商业险 + * @author + * @version $Id: SymbolEnum.java, v 0.1 2024-01-05 17:15 + */ +@Getter +public enum NewEnergyInsuranceEnum { + /*逗号*/ + NEW_ENERGY_YES(1,"是"), + NEW_ENERGY_NO(2,"否"), + ALL(3,"合计") + + ; + /*编码*/ + private Integer code; + /*描述*/ + private String desc; + NewEnergyInsuranceEnum(Integer code, String desc) { + this.code = code; + this.desc = desc; + } + + public static NewEnergyInsuranceEnum ofCode(Integer code){ + if (Objects.isNull(code)){ + return null; + } + for (NewEnergyInsuranceEnum value : NewEnergyInsuranceEnum.values()){ + if (ObjectUtil.equal(value.code, code)){ + return value; + } + } + return null; + } +} diff --git a/facade/src/main/java/com/electromagnetic/industry/software/data/manage/common/PageEnum.java b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/common/PageEnum.java new file mode 100644 index 0000000..b4dd204 --- /dev/null +++ b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/common/PageEnum.java @@ -0,0 +1,32 @@ +/** + * Copyright (c) 2004-2023 All Rights Reserved. + */ +package com.electromagnetic.industry.software.data.manage.common; + +import lombok.Getter; + +/** + * @author jiangfengrui.pt + * @version $Id: SymbolEnum.java, v 0.1 2023-02-21 17:15 rongbei.pt Exp $$ + */ +@Getter +public enum PageEnum { + /*逗号*/ + ONE(1,5000), + TWO(2,10000), + ThREE(3,12), + FOUR(4,2), + FIVE(5,4), + SIX(6,5), + SEVEN(7,6), + ; + /*编码*/ + private Integer code; + /*描述*/ + private Integer desc; + PageEnum(Integer code, Integer desc) { + this.code = code; + this.desc = desc; + } + +} diff --git a/facade/src/main/java/com/electromagnetic/industry/software/data/manage/facade/IndicatorCardFacade.java b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/facade/IndicatorCardFacade.java new file mode 100644 index 0000000..41b5348 --- /dev/null +++ b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/facade/IndicatorCardFacade.java @@ -0,0 +1,85 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package com.electromagnetic.industry.software.data.manage.facade; + + + +import electromagnetic.data.framework.share.model.ElectromagneticResult; +import com.electromagnetic.industry.software.data.manage.request.indicator.IndicatorCardRequest; +import com.electromagnetic.industry.software.data.manage.request.indicator.IndicatorDataRequest; +import com.electromagnetic.industry.software.data.manage.response.indicator.IndicatorCardDetailReponse; +import com.electromagnetic.industry.software.data.manage.response.indicator.IndicatorCardPageResponse; + +import java.util.List; +import java.util.Map; + +/** + * 指标卡管理 + * @author + * @version $Id: IndicatorCardFacade.java, v 0.1 2024-07-26 18:33 + */ +public interface IndicatorCardFacade { + + /** + * 获取中支指标配置列表 + * @param request + * @return + */ + ElectromagneticResult getIndicatorCardListConfig(IndicatorCardRequest request); + /** + * 获取中支指标数据 + * @param request + * @return + */ + ElectromagneticResult>> getIndicatorsData(IndicatorDataRequest request); + /** + * 测试中支指标数据 + * @param request + * @return + */ + ElectromagneticResult>> testIndicatorsData(IndicatorDataRequest request); + /** + * 获取首页指标卡配置列表 + * @param request + * @return + */ + ElectromagneticResult getHomeIndicatorListConfig(IndicatorCardRequest request); + + /** + * 创建指标卡 + * @param request + * @return + */ + ElectromagneticResult createIndicatorCard(IndicatorCardRequest request); + + /** + * 修改指标卡 + * @param request + * @return + */ + ElectromagneticResult updateIndicatorCard(IndicatorCardRequest request); + + /** + * 获取指标卡详情 + * @param request + * @return + */ + ElectromagneticResult getIndicatorCardDetail(IndicatorCardRequest request); + + /** + * 修改指标卡顺序 + * @param requests + * @return + */ + ElectromagneticResult updateIndicatorCardOrder(List requests); + + /** + * 指标卡状态更新和删除 + * @param request + * @return + */ + ElectromagneticResult updateStatusOrEffect(IndicatorCardRequest request); + + +} \ No newline at end of file diff --git a/facade/src/main/java/com/electromagnetic/industry/software/data/manage/request/indicator/IndicatorCardRequest.java b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/request/indicator/IndicatorCardRequest.java new file mode 100644 index 0000000..11286a3 --- /dev/null +++ b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/request/indicator/IndicatorCardRequest.java @@ -0,0 +1,116 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package com.electromagnetic.industry.software.data.manage.request.indicator; + +import electromagnetic.data.framework.share.model.BaseRequest; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @author + * @version $Id: IndicatorCardRequest.java, v 0.1 2024-07-29 16:30 + */ +@Data +public class IndicatorCardRequest extends BaseRequest implements Serializable { + private static final long serialVersionUID = 8717292719122744818L; + + /** + * 当前页 + */ + private Integer pageIndex = 1; + /** + * 每页数据 + */ + private Integer pageSize = 10; + /** + * 指标卡编码 + */ + private String indicatorCardNo; + /** + * 指标卡名称 + */ + private String indicatorCardName; + /** + * 指标卡类型 + */ + private String indicatorCardType; + /** + * 数据服务编码 + */ + private String dataserviceNo; + /** + * 数据服务名称 + */ + private String dataserviceName; + /** + * 默认显示顺序 + */ + private Integer indicatorCardOrder; + /** + * 权限控制 + */ + private String accessControl; + /** + * 首页是否显示,display显示,hide隐藏 + */ + private String homeDisplay; + /** + * 支持预警:是correct,否deny + */ + private String warningFlag; + /** + * 模板编码 + */ + private String templateNos; + /** + * 指标卡状态 + */ + private String cardStatus; + /** + * 指标编码 + */ + private String indicatorNo; + /** + * 指标类型:主指标host,关联指标association + */ + private String indicatorType; + /** + * 指标名称 + */ + private String indicatorName; + /** + * 指标字段 + */ + private String standardField; + /** + * 数据标准编码 + */ + private String standardNo; + /** + * 指标单位 + */ + private String indicatorUnit; + /** + * 指标定义 + */ + private String indicatorDefine; + /** + * 首页配置 + */ + private String home; + /** + * 告警配置 + */ + private String warning; + /** + * 指标配置 + */ + private List indicatorRequests; + /** + * 是否有效:0-无效 1-有效 + */ + private Integer effectFlag; +} \ No newline at end of file diff --git a/facade/src/main/java/com/electromagnetic/industry/software/data/manage/request/indicator/IndicatorDataRequest.java b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/request/indicator/IndicatorDataRequest.java new file mode 100644 index 0000000..ec416bc --- /dev/null +++ b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/request/indicator/IndicatorDataRequest.java @@ -0,0 +1,35 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package com.electromagnetic.industry.software.data.manage.request.indicator; + +import electromagnetic.data.framework.share.model.BaseRequest; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @author + * @version $Id: IndicatorRequest.java, v 0.1 2024-07-30 16:39 + */ +@Data +public class IndicatorDataRequest extends BaseRequest implements Serializable { + private static final long serialVersionUID = -1281310534649406705L; + /** + * 指标卡编码 + */ + private String indicatorCardNo; + /** + * 服务编码(服务测试使用) + */ + private String dataserviceNo; + /** + * 统计日期 + */ + private String dt; + /** + * 指标配置 + */ + private List indicatorList; +} \ No newline at end of file diff --git a/facade/src/main/java/com/electromagnetic/industry/software/data/manage/request/indicator/IndicatorOrgConfigRequest.java b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/request/indicator/IndicatorOrgConfigRequest.java new file mode 100644 index 0000000..ca75634 --- /dev/null +++ b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/request/indicator/IndicatorOrgConfigRequest.java @@ -0,0 +1,48 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package com.electromagnetic.industry.software.data.manage.request.indicator; + +import electromagnetic.data.framework.share.model.BaseRequest; +import lombok.Data; + +import java.util.List; + +/** + * @author + * @version $Id: IndicatorOrgConfigRequest.java, v 0.1 2024-08-09 15:45 + */ +@Data +public class IndicatorOrgConfigRequest extends BaseRequest { + + /** + * 指标编码 + */ + private String indicatorNo; + /** + * 指标编码集合 + */ + private List indicatorNos; + /** + * 指标卡编码 + */ + private String indicatorCardNo; + /** + * 中支编码 + */ + private String orgCode; + /** + * 类型:首页home,预警warning + */ + private String configType; + /** + * 状态:已设置finish,未设置notSet + */ + private String configStatus; + + /** + * 预警规则 + */ + private String ruleObj; + +} \ No newline at end of file diff --git a/facade/src/main/java/com/electromagnetic/industry/software/data/manage/request/indicator/IndicatorRequest.java b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/request/indicator/IndicatorRequest.java new file mode 100644 index 0000000..60a1ec2 --- /dev/null +++ b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/request/indicator/IndicatorRequest.java @@ -0,0 +1,61 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package com.electromagnetic.industry.software.data.manage.request.indicator; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @author + * @version $Id: IndicatorRequest.java, v 0.1 2024-08-08 10:03 + */ +@Data +public class IndicatorRequest implements Serializable { + private static final long serialVersionUID = 7570851736146699522L; + /** + * 主键ID + */ + private Long id; + /** + * 指标卡编码 + */ + private String indicatorCardNo; + /** + * 指标编码 + */ + private String indicatorNo; + /** + * 指标类型:主指标host,关联指标association + */ + private String indicatorType; + /** + * 指标名称 + */ + private String indicatorName; + /** + * 指标字段 + */ + private String standardField; + /** + * 数据标准编码 + */ + private String standardNo; + /** + * 指标单位 + */ + private String indicatorUnit; + /** + * 指标定义 + */ + private String indicatorDefine; + /** + * 数据更新类型:实时real,T+1 yester + */ + private String renewType="yester"; + /** + * 是否支持预警:是correct,否deny' + */ + private String warningIndicator; +} \ No newline at end of file diff --git a/facade/src/main/java/com/electromagnetic/industry/software/data/manage/request/indicator/IndicatorWarnResultRequest.java b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/request/indicator/IndicatorWarnResultRequest.java new file mode 100644 index 0000000..3685220 --- /dev/null +++ b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/request/indicator/IndicatorWarnResultRequest.java @@ -0,0 +1,25 @@ +package com.electromagnetic.industry.software.data.manage.request.indicator; + +import electromagnetic.data.framework.share.model.BaseRequest; +import lombok.Data; + +import java.util.List; + +/** + * + * @date 2024/8/14 14:40 + */ +@Data +public class IndicatorWarnResultRequest extends BaseRequest { + + /** + * 时间 + */ + private String triggerDate; + + /** + * 指标编码 + */ + private List indicatorNos; + +} diff --git a/facade/src/main/java/com/electromagnetic/industry/software/data/manage/response/indicator/IndicatorCardDetailReponse.java b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/response/indicator/IndicatorCardDetailReponse.java new file mode 100644 index 0000000..af14caa --- /dev/null +++ b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/response/indicator/IndicatorCardDetailReponse.java @@ -0,0 +1,29 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package com.electromagnetic.industry.software.data.manage.response.indicator; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * 指标卡详情Reponse + * @author + * @version $Id: IndicatorCardDetail.java, v 0.1 2024-08-14 10:37 + */ +@Data +public class IndicatorCardDetailReponse implements Serializable { + private static final long serialVersionUID = -7475233976453471059L; + /** + * 指标卡 + */ + private IndicatorCardResponse indicatorCard; + /** + * 指标 + */ + private List indicatorList; + + +} \ No newline at end of file diff --git a/facade/src/main/java/com/electromagnetic/industry/software/data/manage/response/indicator/IndicatorCardExtendResponse.java b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/response/indicator/IndicatorCardExtendResponse.java new file mode 100644 index 0000000..9f02e2f --- /dev/null +++ b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/response/indicator/IndicatorCardExtendResponse.java @@ -0,0 +1,82 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package com.electromagnetic.industry.software.data.manage.response.indicator; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 指标卡扩展模型返回 + * @author + * @version $Id: IndicatorCardResponse.java, v 0.1 2024-07-29 16:40 + */ +@Data +public class IndicatorCardExtendResponse implements Serializable{ + private static final long serialVersionUID = 6118078196173436186L; + /** + * 主键ID + */ + private Long id; + /** + * 指标卡编码 + */ + private String indicatorCardNo; + /** + * 指标卡名称 + */ + private String indicatorCardName; + /** + * 指标卡类型 + */ + private String indicatorCardType; + /** + * 数据服务编码 + */ + private String dataserviceNo; + /** + * 数据服务名称 + */ + private String dataserviceName; + /** + * 默认显示顺序 + */ + private Integer indicatorCardOrder; + /** + * 权限控制 + */ + private String accessControl; + /** + * 首页是否显示,display显示,hide隐藏 + */ + private String homeDisplay; + /** + * 支持预警:是correct,否deny + */ + private String warningFlag; + /** + * 模板编码 + */ + private String templateNos; + /** + * 指标卡状态 + */ + private String cardStatus; + /** + * 指标编码 + */ + private String indicatorNo; + /** + * 指标类型:主指标host,关联指标association + */ + private String indicatorType; + /** + * 首页配置 + */ + private String home; + /** + * 告警配置 + */ + private String warning; +} \ No newline at end of file diff --git a/facade/src/main/java/com/electromagnetic/industry/software/data/manage/response/indicator/IndicatorCardPageResponse.java b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/response/indicator/IndicatorCardPageResponse.java new file mode 100644 index 0000000..a87311f --- /dev/null +++ b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/response/indicator/IndicatorCardPageResponse.java @@ -0,0 +1,31 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package com.electromagnetic.industry.software.data.manage.response.indicator; + +import com.github.pagehelper.PageInfo; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @author + * @version $Id: IndicatorCardpageResponse.java, v 0.1 2024-08-14 17:36 + */ +@Data +public class IndicatorCardPageResponse implements Serializable { + private static final long serialVersionUID = 3464355768912308150L; + /** + * 指标卡 + */ + private PageInfo indicatorCardExtends; + /** + * 指标 + */ + private List indicators; + /** + * 下钻配置 + */ + private List drillingConfigExtends; +} \ No newline at end of file diff --git a/facade/src/main/java/com/electromagnetic/industry/software/data/manage/response/indicator/IndicatorCardResponse.java b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/response/indicator/IndicatorCardResponse.java new file mode 100644 index 0000000..774ef8b --- /dev/null +++ b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/response/indicator/IndicatorCardResponse.java @@ -0,0 +1,112 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package com.electromagnetic.industry.software.data.manage.response.indicator; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 指标卡Response + * @author + * @version $Id: IndicatorCardResponse.java, v 0.1 2024-08-14 11:23 + */ +@Data +public class IndicatorCardResponse implements Serializable { + + private static final long serialVersionUID = -4835122199589863011L; + /** + * 主键ID + */ + private Long id; + /** + * 指标卡编码 + */ + private String indicatorCardNo; + /** + * 指标卡名称 + */ + private String indicatorCardName; + /** + * 指标卡类型 + */ + private String indicatorCardType; + /** + * 数据服务编码 + */ + private String dataserviceNo; + /** + * 数据服务名称 + */ + private String dataserviceName; + /** + * 默认显示顺序 + */ + private Integer indicatorCardOrder; + /** + * 权限控制 + */ + private String accessControl; + /** + * 首页是否显示,display显示,hide隐藏 + */ + private String homeDisplay; + /** + * 支持预警:是correct,否deny + */ + private String warningFlag; + /** + * 模板编码 + */ + private String templateNos; + /** + * 首页配置 + */ + private String home; + /** + * 告警配置 + */ + private String warning; + /** + * 指标卡状态 + */ + private String cardStatus; + /** + * 数据更新类型:实时real,T+1 yester + */ + private String renewType; + /** + * 是否支持预警:是correct,否deny' + */ + private String warningIndicator; + /** + * 创建人 + */ + private String creator; + /** + * 创建人姓名 + */ + private String creatorName; + /** + * 创建时间 + */ + private Date gmtCreate; + /** + * 更新人 + */ + private String modifier; + /** + * 更新人姓名 + */ + private String modifierName; + /** + * 更新时间 + */ + private Date gmtModified; + /** + * 是否有效:0-无效 1-有效 + */ + private Integer effectFlag; +} \ No newline at end of file diff --git a/facade/src/main/java/com/electromagnetic/industry/software/data/manage/response/indicator/IndicatorOrgConfigResponse.java b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/response/indicator/IndicatorOrgConfigResponse.java new file mode 100644 index 0000000..59bba11 --- /dev/null +++ b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/response/indicator/IndicatorOrgConfigResponse.java @@ -0,0 +1,25 @@ +package com.electromagnetic.industry.software.data.manage.response.indicator; + +import lombok.Data; + +import java.io.Serializable; + +/** + * + * @date 2024/8/19 10:14 + */ +@Data +public class IndicatorOrgConfigResponse implements Serializable { + private static final long serialVersionUID = 6040712251705016102L; + + /** + * 指标编码 + */ + private String indicatorNo; + + + /** + * 预警规则 + */ + private String ruleObj; +} diff --git a/facade/src/main/java/com/electromagnetic/industry/software/data/manage/response/indicator/IndicatorResponse.java b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/response/indicator/IndicatorResponse.java new file mode 100644 index 0000000..d7a2b23 --- /dev/null +++ b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/response/indicator/IndicatorResponse.java @@ -0,0 +1,92 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package com.electromagnetic.industry.software.data.manage.response.indicator; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 指标Response + * @author + * @version $Id: IndicatorReponse.java, v 0.1 2024-08-14 11:20 + */ +@Data +public class IndicatorResponse implements Serializable { + + private static final long serialVersionUID = 2687196496140115819L; + /** + * 主键ID + */ + private Long id; + /** + * 指标编码 + */ + private String indicatorNo; + /** + * 指标卡编码 + */ + private String indicatorCardNo; + /** + * 指标类型:主指标host,关联指标association + */ + private String indicatorType; + /** + * 指标名称 + */ + private String indicatorName; + /** + * 指标字段 + */ + private String standardField; + /** + * 数据标准编码 + */ + private String standardNo; + /** + * 指标单位 + */ + private String indicatorUnit; + /** + * 指标定义 + */ + private String indicatorDefine; + /** + * 数据更新类型:实时real,T+1 yester + */ + private String renewType; + /** + * 是否支持预警:是correct,否deny' + */ + private String warningIndicator; + /** + * 创建人 + */ + private String creator; + /** + * 创建人姓名 + */ + private String creatorName; + /** + * 创建时间 + */ + private Date gmtCreate; + /** + * 更新人 + */ + private String modifier; + /** + * 更新人姓名 + */ + private String modifierName; + /** + * 更新时间 + */ + private Date gmtModified; + /** + * 是否有效:0-无效 1-有效 + */ + private Integer effectFlag; +} \ No newline at end of file diff --git a/facade/src/main/java/com/electromagnetic/industry/software/data/manage/response/indicator/IndicatorWarnResultResponse.java b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/response/indicator/IndicatorWarnResultResponse.java new file mode 100644 index 0000000..b35db17 --- /dev/null +++ b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/response/indicator/IndicatorWarnResultResponse.java @@ -0,0 +1,28 @@ +package com.electromagnetic.industry.software.data.manage.response.indicator; + +import lombok.Data; + +import java.io.Serializable; + +/** + * + * @date 2024/8/20 16:31 + */ +@Data +public class IndicatorWarnResultResponse implements Serializable { + + + private static final long serialVersionUID = 6286666725314665211L; + + + /** + * 指标编号 + */ + private String indicatorNo; + + + /** + * 告警状态 + */ + private String warnStatus ; +} diff --git a/infrastructure/common/common.iml b/infrastructure/common/common.iml new file mode 100644 index 0000000..3298bcd --- /dev/null +++ b/infrastructure/common/common.iml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/infrastructure/common/pom.xml b/infrastructure/common/pom.xml new file mode 100644 index 0000000..2ddd92f --- /dev/null +++ b/infrastructure/common/pom.xml @@ -0,0 +1,66 @@ + + + + 4.0.0 + + com.electromagnetic.data + infrastructure + 1.0.0-SNAPSHOT + + com.electromagnetic.data + common + + + + com.electromagnetic.data + domain + + + + org.springframework.boot + spring-boot-starter + + + com.github.pagehelper + pagehelper-spring-boot-starter + + + mysql + mysql-connector-java + + + org.mybatis + mybatis + + + org.mybatis + mybatis-spring + + + org.springframework + spring-jdbc + + + org.projectlombok + lombok + compile + + + com.github.pagehelper + pagehelper + + + + junit + junit + test + + + + + + + + \ No newline at end of file diff --git a/infrastructure/common/src/main/java/com/electromagnetic/industry/software/data/manage/repository/MysqlMybatisConfig.java b/infrastructure/common/src/main/java/com/electromagnetic/industry/software/data/manage/repository/MysqlMybatisConfig.java new file mode 100644 index 0000000..a73d324 --- /dev/null +++ b/infrastructure/common/src/main/java/com/electromagnetic/industry/software/data/manage/repository/MysqlMybatisConfig.java @@ -0,0 +1,59 @@ +/** + * cic.com Inc. + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package com.electromagnetic.industry.software.data.manage.repository; + +import org.apache.ibatis.session.SqlSessionFactory; +import org.mybatis.spring.SqlSessionFactoryBean; +import org.mybatis.spring.SqlSessionTemplate; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.io.Resource; +import org.springframework.core.io.support.PathMatchingResourcePatternResolver; +import org.springframework.jdbc.datasource.DataSourceTransactionManager; +import org.springframework.transaction.support.TransactionTemplate; + +import javax.sql.DataSource; + +/** + * @author wsk + * @version $Id: MysqlMybatisConfig.java, v 0.1 2024-10-22 9:39 wsk + */ +@Configuration +public class MysqlMybatisConfig { + + @Bean(name = "sqlSessionFactory") + public SqlSessionFactory sqlSessionFactory( + @Qualifier("dataSource") DataSource dataSource, + @Value("classpath:mybatis-wisdom-decision-config.xml") Resource configLocation) throws Exception { + SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean(); + sqlSessionFactoryBean.setDataSource(dataSource); + sqlSessionFactoryBean.setConfigLocation(configLocation); + + PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); + sqlSessionFactoryBean.setMapperLocations(resolver.getResources("classpath*:/sqlmapper/*.xml")); + + return sqlSessionFactoryBean.getObject(); + } + + @Bean(name = "sqlSessionTemplate") + public SqlSessionTemplate taskInstanceSessionTemplate( + @Qualifier("sqlSessionFactory") SqlSessionFactory sqlSessionFactory) { + return new SqlSessionTemplate(sqlSessionFactory); + } + + /** + * 事务模板 + * + * @param dataSource 数据源 + * @return 事务模板 + */ + @Bean("transactionTemplate") + public TransactionTemplate taskTransactionTemplate(@Qualifier("dataSource") DataSource dataSource) { + return new TransactionTemplate(new DataSourceTransactionManager(dataSource)); + } + +} \ No newline at end of file diff --git a/infrastructure/common/src/main/java/com/electromagnetic/industry/software/data/manage/repository/ObMybatisConfig.java b/infrastructure/common/src/main/java/com/electromagnetic/industry/software/data/manage/repository/ObMybatisConfig.java new file mode 100644 index 0000000..688131a --- /dev/null +++ b/infrastructure/common/src/main/java/com/electromagnetic/industry/software/data/manage/repository/ObMybatisConfig.java @@ -0,0 +1,89 @@ +/** + * Copyright (c) 2004-2021 All Rights Reserved. + */ +package com.electromagnetic.industry.software.data.manage.repository; + +import org.apache.ibatis.session.SqlSessionFactory; +import org.mybatis.spring.SqlSessionFactoryBean; +import org.mybatis.spring.SqlSessionTemplate; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.boot.jdbc.DataSourceBuilder; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.io.Resource; +import org.springframework.core.io.support.PathMatchingResourcePatternResolver; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.jdbc.datasource.DataSourceTransactionManager; +import org.springframework.transaction.support.TransactionTemplate; + +import javax.sql.DataSource; + +/** + * ob数据库直连配置 + * @author + */ +public class ObMybatisConfig { + + /** + * getDateSource2 + * @return + */ + @Bean(name = "obDataSource") + @ConfigurationProperties(prefix = "spring.datasource.ob") + public DataSource getDateSource2() { + return DataSourceBuilder.create().build(); + } + + /** + * jdbcTemplateOne + * @param dsOne + * @return + */ + @Bean(name = "obJdbcTemplate") + public JdbcTemplate jdbcTemplateOne(@Qualifier("obDataSource") DataSource dsOne) { + return new JdbcTemplate(dsOne); + } + + /** + * sqlSessionFactory + * @param obDataSource + * @param configLocation + * @return + * @throws Exception + */ + @Bean(name = "sqlSessionFactory") + public SqlSessionFactory sqlSessionFactory(@Qualifier("obDataSource") DataSource obDataSource, + @Value("classpath:mybatis-wisdom-decision-config.xml") Resource configLocation) throws Exception{ + SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean(); + sqlSessionFactoryBean.setDataSource(obDataSource); + sqlSessionFactoryBean.setConfigLocation(configLocation); + + PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); + sqlSessionFactoryBean.setMapperLocations(resolver.getResources("classpath*:/sqlmapper/*.xml")); + return sqlSessionFactoryBean.getObject(); + } + + /** + * taskInstanceSessionTemplate + * @param sqlSessionFactory + * @return + */ + @Bean(name = "sqlSessionTemplate") + public SqlSessionTemplate taskInstanceSessionTemplate( + @Qualifier("sqlSessionFactory") SqlSessionFactory sqlSessionFactory) { + return new SqlSessionTemplate(sqlSessionFactory); + } + + /** + * 事务模板 + * @param promotionBenefitDataSource 数据源 + * @return 事务模板 + */ + @Bean("transactionTemplate") + public TransactionTemplate taskTransactionTemplate(@Qualifier("obDataSource") DataSource promotionBenefitDataSource) { + return new TransactionTemplate(new DataSourceTransactionManager(promotionBenefitDataSource)); + } + +} \ No newline at end of file diff --git a/infrastructure/common/src/main/resources/mybatis-wisdom-decision-config.xml b/infrastructure/common/src/main/resources/mybatis-wisdom-decision-config.xml new file mode 100644 index 0000000..8a17063 --- /dev/null +++ b/infrastructure/common/src/main/resources/mybatis-wisdom-decision-config.xml @@ -0,0 +1,28 @@ + + + + + + + + + + diff --git a/infrastructure/infrastructure.iml b/infrastructure/infrastructure.iml new file mode 100644 index 0000000..f409c0e --- /dev/null +++ b/infrastructure/infrastructure.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/infrastructure/pom.xml b/infrastructure/pom.xml new file mode 100644 index 0000000..ed2ab67 --- /dev/null +++ b/infrastructure/pom.xml @@ -0,0 +1,21 @@ + + + + 4.0.0 + + com.electromagnetic.data + electromagnetic-data + 1.0.0-SNAPSHOT + + infrastructure + 1.0.0-SNAPSHOT + pom + + + wraper + repository + common + + \ No newline at end of file diff --git a/infrastructure/repository/pom.xml b/infrastructure/repository/pom.xml new file mode 100644 index 0000000..b8174f1 --- /dev/null +++ b/infrastructure/repository/pom.xml @@ -0,0 +1,98 @@ + + + 4.0.0 + + com.electromagnetic.data + infrastructure + 1.0.0-SNAPSHOT + + com.electromagnetic.data + repository + + + + + com.alibaba + druid-spring-boot-starter + + + org.mybatis + mybatis + + + com.electromagnetic.data + domain + + + org.mybatis + mybatis-spring + + + org.springframework + spring-jdbc + + + com.github.pagehelper + pagehelper + + + + org.springframework + spring-tx + test + + + org.springframework + spring-test + test + + + junit + junit + test + + + com.github.jsonzou + jmockdata + test + + + com.alibaba + druid + test + + + mysql + mysql-connector-java + test + + + org.springframework.boot + spring-boot-autoconfigure + test + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + none + execute + + + + + repackage + + + + + + + + \ No newline at end of file diff --git a/infrastructure/repository/repository.iml b/infrastructure/repository/repository.iml new file mode 100644 index 0000000..4111b61 --- /dev/null +++ b/infrastructure/repository/repository.iml @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/dao/IndicatorCardMapper.java b/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/dao/IndicatorCardMapper.java new file mode 100644 index 0000000..5ea5a06 --- /dev/null +++ b/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/dao/IndicatorCardMapper.java @@ -0,0 +1,57 @@ +package com.electromagnetic.industry.software.data.manage.repository.dao; + +import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.model.IndicatorCard; +import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.model.IndicatorCardExtend; +import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.parames.IndicatorCardParams; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface IndicatorCardMapper { + /** + * 插入 + * @param record + * @return + */ + int insert(IndicatorCard record); + /** + * 根据indicatorCardNo获取指标卡 + * @param indicatorCardNo + * @return + */ + IndicatorCard selectByPrimaryKey(String indicatorCardNo); + + /** + * 获取指标卡最新顺序 + * @param parames + * @return + */ + IndicatorCard getIndicatorCardOrder(IndicatorCardParams parames); + /** + * 参数判断更新 + * @param record + * @return + */ + int updateByPrimaryKeySelective(IndicatorCard record); + + /** + * 获取中支指标配置列表 + * @return + */ + List getIndicatorCardListConfig(IndicatorCardParams parames); + + /** + * 指标卡状态更新和删除 + * @param indicatorCard + * @return + */ + int updateStatusOrEffect(IndicatorCard indicatorCard); + + /** + * 修改指标卡顺序 + * @param list + * @return + */ + int updateIndicatorCardOrder(List list); +} \ No newline at end of file diff --git a/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/impl/IndicatorCardRepositoryImpl.java b/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/impl/IndicatorCardRepositoryImpl.java new file mode 100644 index 0000000..5e297c5 --- /dev/null +++ b/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/impl/IndicatorCardRepositoryImpl.java @@ -0,0 +1,98 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package com.electromagnetic.industry.software.data.manage.repository.impl; + +import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.model.IndicatorCard; +import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.model.IndicatorCardExtend; +import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.parames.IndicatorCardParams; +import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.repository.IndicatorCardRepository; +import com.electromagnetic.industry.software.data.manage.repository.dao.IndicatorCardMapper; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import org.springframework.stereotype.Repository; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @author + * @version $Id: IndicatorCardRepositoryImpl.java, v 0.1 2024-07-29 19:04 + */ +@Repository +public class IndicatorCardRepositoryImpl implements IndicatorCardRepository { + + @Resource + private IndicatorCardMapper indicatorCardMapper; + + /** + * 获取中支指标配置列表 + * @param parames + * @return + */ + @Override + public PageInfo getIndicatorCardListConfig(IndicatorCardParams parames) { + PageHelper.startPage(parames.getPageIndex(), parames.getPageSize()); + List indicatorCardExtends=indicatorCardMapper.getIndicatorCardListConfig(parames); + return new PageInfo<>(indicatorCardExtends); + } + + /** + * 根据indicatorCardNo获取指标卡 + * @param indicatorCardNo + * @return + */ + @Override + public IndicatorCard getIndicatorCard(String indicatorCardNo) { + return indicatorCardMapper.selectByPrimaryKey(indicatorCardNo); + } + + /** + * 获取指标卡最新顺序 + * @return + */ + @Override + public IndicatorCard getIndicatorCardOrder() { + return indicatorCardMapper.getIndicatorCardOrder(null); + } + + /** + * 指标卡插入 + * @param indicatorCard + * @return + */ + @Override + public int insert(IndicatorCard indicatorCard) { + return indicatorCardMapper.insert(indicatorCard); + } + + /** + * 指标卡更新 + * @param indicatorCard + * @return + */ + @Override + public int update(IndicatorCard indicatorCard) { + return indicatorCardMapper.updateByPrimaryKeySelective(indicatorCard); + } + + /** + * 指标卡状态更新和删除 + * @param indicatorCard + * @return + */ + @Override + public int updateStatusOrEffect(IndicatorCard indicatorCard) { + return indicatorCardMapper.updateStatusOrEffect(indicatorCard); + } + + /** + * 修改指标卡顺序 + * @param list + * @return + */ + @Override + public int updateIndicatorCardOrder(List list) { + return indicatorCardMapper.updateIndicatorCardOrder(list); + } +} \ No newline at end of file diff --git a/infrastructure/repository/src/main/resources/sqlmapper/IndicatorCardMapper.xml b/infrastructure/repository/src/main/resources/sqlmapper/IndicatorCardMapper.xml new file mode 100644 index 0000000..dc2bda4 --- /dev/null +++ b/infrastructure/repository/src/main/resources/sqlmapper/IndicatorCardMapper.xml @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, indicator_card_no, indicator_card_name, indicator_card_type, dataservice_no, + dataservice_name, indicator_card_order, access_control,home_display, warning_flag, + template_nos,card_status, creator, creator_name, gmt_create, modifier, modifier_name, gmt_modified, + effect_flag + + + + + + + SELECT LAST_INSERT_ID() + + insert into dataplatform_wisdom_indicator_card (indicator_card_no, indicator_card_name, + indicator_card_type, dataservice_no, dataservice_name, + indicator_card_order, access_control, + home_display,warning_flag, template_nos, creator, + creator_name, gmt_create, modifier, + modifier_name, gmt_modified, effect_flag + ) + values (#{indicatorCardNo,jdbcType=VARCHAR}, #{indicatorCardName,jdbcType=VARCHAR}, + #{indicatorCardType,jdbcType=VARCHAR}, #{dataserviceNo,jdbcType=VARCHAR}, #{dataserviceName,jdbcType=VARCHAR}, + #{indicatorCardOrder,jdbcType=VARCHAR}, #{accessControl,jdbcType=VARCHAR}, + #{homeDisplay,jdbcType=VARCHAR},#{warningFlag,jdbcType=VARCHAR}, #{templateNos,jdbcType=VARCHAR}, #{creator,jdbcType=VARCHAR}, + #{creatorName,jdbcType=VARCHAR}, now(), #{modifier,jdbcType=VARCHAR}, + #{modifierName,jdbcType=VARCHAR},now(),1 + ) + + + update dataplatform_wisdom_indicator_card + + + indicator_card_name = #{indicatorCardName,jdbcType=VARCHAR}, + + + indicator_card_type = #{indicatorCardType,jdbcType=VARCHAR}, + + + dataservice_no = #{dataserviceNo,jdbcType=VARCHAR}, + + + dataservice_name = #{dataserviceName,jdbcType=VARCHAR}, + + + indicator_card_order = #{indicatorCardOrder,jdbcType=INTEGER}, + + + access_control = #{accessControl,jdbcType=VARCHAR}, + + + home_display = #{homeDisplay,jdbcType=VARCHAR}, + + + warning_flag = #{warningFlag,jdbcType=VARCHAR}, + + + template_nos = #{templateNos,jdbcType=VARCHAR}, + + + modifier = #{modifier,jdbcType=VARCHAR}, + + + modifier_name = #{modifierName,jdbcType=VARCHAR}, + + gmt_modified = now() + + where indicator_card_no = #{indicatorCardNo,jdbcType=VARCHAR} and effect_flag = 1 + + + + update dataplatform_wisdom_indicator_card + + + card_status = #{cardStatus,jdbcType=VARCHAR}, + + + effect_flag = #{effectFlag,jdbcType=VARCHAR}, + + gmt_modified = now() + + where indicator_card_no = #{indicatorCardNo,jdbcType=VARCHAR} and effect_flag = 1 + + + + + update dataplatform_wisdom_indicator_card + set indicator_card_order = #{item.indicatorCardOrder,jdbcType=INTEGER} + where indicator_card_no = #{item.indicatorCardNo,jdbcType=VARCHAR} and effect_flag = 1 + + + \ No newline at end of file diff --git a/infrastructure/wraper/pom.xml b/infrastructure/wraper/pom.xml new file mode 100644 index 0000000..137b8ae --- /dev/null +++ b/infrastructure/wraper/pom.xml @@ -0,0 +1,16 @@ + + + + 4.0.0 + + com.electromagnetic.data + infrastructure + 1.0.0-SNAPSHOT + + com.electromagnetic.data + wraper + + + diff --git a/infrastructure/wraper/wraper.iml b/infrastructure/wraper/wraper.iml new file mode 100644 index 0000000..bb03ec3 --- /dev/null +++ b/infrastructure/wraper/wraper.iml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..c914ac9 --- /dev/null +++ b/pom.xml @@ -0,0 +1,333 @@ + + + 4.0.0 + + + org.springframework.boot + spring-boot-starter-parent + 2.1.13.RELEASE + + + com.electromagnetic.data + electromagnetic-data + 1.0.0-SNAPSHOT + pom + electromagnetic-data + + + 1.8 + 1.0.0-SNAPSHOT + UTF-8 + UTF-8 + 2.1.13.RELEASE + 3.5.7 + 1.3.2 + 1.1.10 + 3.6.0 + 4.3.0 + 1.4.1.Final + 5.1.2 + 1.3.0 + 3.8.0 + 5.0.3.RELEASE + ${project.basedir} + 3.4.2 + 5.8.4 + 28.2-jre + 3.11 + 1.2.3 + 2.0.1.Final + 6.0.18.Final + 1.0.2.1-SNAPSHOT + + + + domain + service + facade + infrastructure + bootstrap + electromagnetic-framework + + + + + + org.springframework.boot + spring-boot-starter + ${spring.boot.version} + + + org.springframework.boot + spring-boot-starter-web + ${spring.boot.version} + + + org.springframework.boot + spring-boot-starter-aop + ${spring.boot.version} + + + org.springframework.boot + spring-boot-starter-test + ${spring.boot.version} + test + + + org.springframework.boot + spring-boot-autoconfigure + ${spring.boot.version} + + + com.alibaba + log4j2-spring-boot-starter + 1.2.4-BETA + + + + + com.lmax + disruptor + 3.4.2 + + + + org.springframework.boot + spring-boot-dependencies + ${spring.boot.version} + pom + import + + + org.springframework.boot + spring-boot-starter-logging + + + + + com.electromagnetic.data + wraper + ${project.version} + + + com.electromagnetic.data + domain + ${project.version} + + + com.electromagnetic.data + common + ${project.version} + + + com.electromagnetic.data + facade + ${project.version} + + + + com.electromagnetic.data + service + ${project.version} + + + com.electromagnetic.data + electromagnetic-framework + ${framework.version} + + + + com.electromagnetic.data + repository + ${project.version} + + + com.alibaba + fastjson + ${fastjson.version} + + + org.slf4j + slf4j-api + ${slf4j.version} + + + + org.mybatis + mybatis + ${mybatis.version} + + + org.mybatis + mybatis-spring + ${mybatis-spring.version} + + + org.mockito + mockito-core + ${mockito-core.version} + + + com.github.jsonzou + jmockdata + ${jmockdata.version} + + + com.alibaba + druid-spring-boot-starter + ${druid.version} + + + com.alibaba + druid + ${druid.version} + + + org.mapstruct + mapstruct-processor + ${mapstruct.version} + + + org.mapstruct + mapstruct + ${mapstruct.version} + + + com.github.pagehelper + pagehelper + ${pagehelper-version} + + + com.github.pagehelper + pagehelper-spring-boot-starter + ${pagehelper-starter-version} + + + org.springframework + spring-jdbc + ${spring-jdbc-version} + + + org.springframework + spring-tx + ${spring-jdbc-version} + + + org.apache.commons + commons-lang3 + ${commons-lang3.version} + + + + cn.hutool + hutool-all + ${hutool-all-version} + + + com.google.guava + guava + ${guava-version} + + + javax.validation + validation-api + ${validation.version} + + + org.hibernate.validator + hibernate-validator + ${hibernate.validator.version} + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + true + + none + execute + + + + + repackage + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.6.2 + + ${java.version} + ${java.version} + ${project.build.sourceEncoding} + + + + + + + + maven-resources-plugin + 2.5 + + UTF-8 + + + + + + + /usr/src/target + + + + + + + maven-source-plugin + 2.2.1 + + + attach-sources + + jar-no-fork + + + + + + org.codehaus.mojo + cobertura-maven-plugin + 2.7 + + + + **/*DO.class + **/*Config.class + **/*Param.class + **/*Enum.class + + + + + + + + + + + \ No newline at end of file diff --git a/service/pom.xml b/service/pom.xml new file mode 100644 index 0000000..413ddd2 --- /dev/null +++ b/service/pom.xml @@ -0,0 +1,46 @@ + + + + 4.0.0 + + + com.electromagnetic.data + electromagnetic-data + 1.0.0-SNAPSHOT + + + com.electromagnetic.data + service + + + + org.springframework.boot + spring-boot-starter + + + + com.electromagnetic.data + facade + + + com.electromagnetic.data + domain + + + com.github.pagehelper + pagehelper + + + + com.electromagnetic.data + electromagnetic-framework + + + org.apache.commons + commons-lang3 + + + + diff --git a/service/service.iml b/service/service.iml new file mode 100644 index 0000000..a7aa07a --- /dev/null +++ b/service/service.iml @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/service/src/main/java/com/electromagnetic/industry/software/data/manage/service/aop/CommonLogAspect.java b/service/src/main/java/com/electromagnetic/industry/software/data/manage/service/aop/CommonLogAspect.java new file mode 100644 index 0000000..121ae1a --- /dev/null +++ b/service/src/main/java/com/electromagnetic/industry/software/data/manage/service/aop/CommonLogAspect.java @@ -0,0 +1,61 @@ +package com.electromagnetic.industry.software.data.manage.service.aop; + + +import com.alibaba.fastjson.JSON; +import electromagnetic.data.framework.share.model.ElectromagneticPaginationResult; +import electromagnetic.data.framework.share.model.ElectromagneticResult; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.springframework.stereotype.Component; + +/** + * facade层通用日志切面 + * 基于此配置监控 + * + * @author 265257535401315980 + */ +@Component +@Aspect +public class CommonLogAspect { + + @Around("execution(* com.aliyun.fsi.insurance.dataplatform.wisdomdecision.service.facade..*.*(..))") + public Object around(ProceedingJoinPoint point) throws Throwable { + Object result = null; + long beginTime = System.currentTimeMillis(); + String targetClassName = point.getTarget().getClass().getSimpleName(); + String methodName = point.getSignature().getName(); + String methodFullName = targetClassName + "." + methodName; + Object[] args = point.getArgs(); + MonitorLogModel monitorLogModel = new MonitorLogModel(); + monitorLogModel.setArgs(args); + monitorLogModel.setMethod(methodFullName); + try { + //执行方法 + result = point.proceed(); + long endTime = System.currentTimeMillis(); + long cost = endTime - beginTime; + monitorLogModel.setCost(cost); + + if (result instanceof ElectromagneticResult) { + ElectromagneticResult electromagneticResult = (ElectromagneticResult) result; + monitorLogModel.setData(JSON.toJSONString(electromagneticResult.getData())); + monitorLogModel.setSuccess(electromagneticResult.getSuccess()); + monitorLogModel.setErrorCode(electromagneticResult.getErrorCode()); + monitorLogModel.setErrorMsg(electromagneticResult.getErrorMessage()); + } + if (result instanceof ElectromagneticPaginationResult) { + ElectromagneticPaginationResult electromagneticResult = (ElectromagneticPaginationResult) result; + monitorLogModel.setData(JSON.toJSONString(electromagneticResult.getData())); + monitorLogModel.setSuccess(electromagneticResult.getSuccess()); + monitorLogModel.setErrorCode(electromagneticResult.getErrorCode()); + monitorLogModel.setErrorMsg(electromagneticResult.getErrorMessage()); + } + MonitorLogUtil.infoLog(monitorLogModel); + } catch (RuntimeException e) { + MonitorLogUtil.errorLog(monitorLogModel, e); + throw new RuntimeException(e); + } + return result; + } +} diff --git a/service/src/main/java/com/electromagnetic/industry/software/data/manage/service/aop/MonitorLogModel.java b/service/src/main/java/com/electromagnetic/industry/software/data/manage/service/aop/MonitorLogModel.java new file mode 100644 index 0000000..5181656 --- /dev/null +++ b/service/src/main/java/com/electromagnetic/industry/software/data/manage/service/aop/MonitorLogModel.java @@ -0,0 +1,18 @@ +package com.electromagnetic.industry.software.data.manage.service.aop; + +import lombok.Data; +import lombok.extern.slf4j.Slf4j; + +@Data +@Slf4j +public class MonitorLogModel { + private Long cost; + private String method; + private Boolean success; + private String errorCode; + private String errorMsg; + private String data; + private Object[] args; + + +} diff --git a/service/src/main/java/com/electromagnetic/industry/software/data/manage/service/aop/MonitorLogUtil.java b/service/src/main/java/com/electromagnetic/industry/software/data/manage/service/aop/MonitorLogUtil.java new file mode 100644 index 0000000..883d07c --- /dev/null +++ b/service/src/main/java/com/electromagnetic/industry/software/data/manage/service/aop/MonitorLogUtil.java @@ -0,0 +1,51 @@ +package com.electromagnetic.industry.software.data.manage.service.aop; + +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * @author 265257535401315980 + */ +public class MonitorLogUtil { + private static Logger LOGGER = LoggerFactory.getLogger("COMMON-MONITOR"); + private static final String SEPARATOR = "|"; + + public static void infoLog(MonitorLogModel model) { + LOGGER.info("|MONITOR_LOG_PATTERN|{}",buildLogModel(model)); + } + + public static void errorLog(MonitorLogModel model, Throwable throwable) { + LOGGER.error("|MONITOR_LOG_PATTERN|{}",buildLogModel(model),throwable); + } + + public static void monitorLog(MonitorLogModel model, String ... args) { + StringBuilder sb = new StringBuilder(buildLogModel(model)); + if (args != null && args.length != 0) { + for (int i = 0; i < args.length; i++) { + sb.append(SEPARATOR).append(args[i]); + } + } + LOGGER.info("|MONITOR_LOG_PATTERN|{}", sb); + } + + private static String buildLogModel(MonitorLogModel model) { + Object[] args = model.getArgs(); + StringBuilder params = new StringBuilder(); + if (args != null && args.length != 0) { + for (int i = 0; i < args.length; i++) { + params.append(StringUtils.trimToEmpty(String.valueOf(args[i]))); + params.append(","); + } + } + StringBuilder sb = new StringBuilder(); + sb.append(model.getCost()).append(SEPARATOR) + .append(StringUtils.isNotEmpty(model.getMethod()) ? model.getMethod() : "null").append(SEPARATOR) + .append(model.getSuccess()).append(SEPARATOR) + .append(StringUtils.isNotEmpty(model.getErrorCode()) ? model.getErrorCode() : "null").append(SEPARATOR) + .append(StringUtils.isNotEmpty(model.getErrorMsg()) ? model.getErrorMsg() : "null").append(SEPARATOR) + .append(StringUtils.isNotEmpty(model.getData()) ? model.getData() : "null").append(SEPARATOR) + .append(StringUtils.isNotEmpty(params.toString()) ? params.toString() : "null"); + return sb.toString(); + } +} diff --git a/service/src/main/java/com/electromagnetic/industry/software/data/manage/service/aop/ServiceAspect.java b/service/src/main/java/com/electromagnetic/industry/software/data/manage/service/aop/ServiceAspect.java new file mode 100644 index 0000000..a7538c7 --- /dev/null +++ b/service/src/main/java/com/electromagnetic/industry/software/data/manage/service/aop/ServiceAspect.java @@ -0,0 +1,53 @@ +package com.electromagnetic.industry.software.data.manage.service.aop; + +import com.alibaba.fastjson.JSON; +import electromagnetic.data.framework.share.exception.LoggerConstant; +import electromagnetic.data.framework.share.log.LogUtils; +import electromagnetic.data.framework.share.log.ServiceResultHandleUtil; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.Signature; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; + + +/** + * service 通用日志切面 + * + * @author wanghu.pt + * @version $Id: ServiceAspect.java, v 0.1 2022-06-07 10:24 wanghu.pt Exp $$ + */ +@Aspect +@Component +public class ServiceAspect { + + private static final Logger LOGGER = LoggerFactory.getLogger(LoggerConstant.DOMAIN_SERVICE); + + /** + * 日志切面 + */ + @Around("execution(* com.electromagnetic.industry.software.data.manage.facade..*.*(..)))") + public Object logAspect(ProceedingJoinPoint pjd) { + long startTime = System.currentTimeMillis(); + Object[] args = pjd.getArgs(); + Object arg = args.length < 1 ? "" : args[0]; + Signature signature = pjd.getSignature(); + String declaringTypeName = signature.getDeclaringTypeName(); + String logPattern = declaringTypeName.substring(declaringTypeName.lastIndexOf(".") + 1) + "@" + signature.getName() + " request={0}, response={1}, cost={2}ms"; + Object proceed = null; + try { + proceed = pjd.proceed(args); + } catch (Throwable t) { + LogUtils.error(t,LOGGER, "Executing " + logPattern+",Throwable:"+t, + arg == null ? "" : JSON.toJSONString(arg), JSON.toJSONString(proceed), System.currentTimeMillis() - startTime); + return ServiceResultHandleUtil.serviceError(t); + } + + // 正常返回日志 + LogUtils.info(LOGGER, "End " + logPattern, + arg == null ? "" : JSON.toJSONString(arg), JSON.toJSONString(proceed), System.currentTimeMillis() - startTime); + return proceed; + } +} diff --git a/service/src/main/java/com/electromagnetic/industry/software/data/manage/service/facade/IndicatorCardFacadeImpl.java b/service/src/main/java/com/electromagnetic/industry/software/data/manage/service/facade/IndicatorCardFacadeImpl.java new file mode 100644 index 0000000..098e5b8 --- /dev/null +++ b/service/src/main/java/com/electromagnetic/industry/software/data/manage/service/facade/IndicatorCardFacadeImpl.java @@ -0,0 +1,180 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package com.electromagnetic.industry.software.data.manage.service.facade; + +import com.electromagnetic.industry.software.data.manage.facade.IndicatorCardFacade; +import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.model.Indicator; +import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.model.IndicatorCard; +import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.model.IndicatorCardDetial; +import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.model.IndicatorCardPage; +import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.parames.IndicatorCardParams; +import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.service.IndicatorCardService; +import com.electromagnetic.industry.software.data.manage.request.indicator.IndicatorCardRequest; +import com.electromagnetic.industry.software.data.manage.request.indicator.IndicatorDataRequest; +import com.electromagnetic.industry.software.data.manage.response.indicator.IndicatorCardDetailReponse; +import com.electromagnetic.industry.software.data.manage.response.indicator.IndicatorCardPageResponse; +import com.electromagnetic.industry.software.data.manage.service.mappers.IndicatorCardMappers; +import electromagnetic.data.framework.share.model.ElectromagneticResult; +import electromagnetic.data.framework.share.model.ElectromagneticResultUtil; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; + +/** + * 指标卡管理 + * @author + * @version $Id: IndicatorCardFacadeImpl.java, v 0.1 2024-07-26 18:39 + */ +@Service +public class IndicatorCardFacadeImpl implements IndicatorCardFacade { + + @Resource + private IndicatorCardService indicatorCardService; + + + /** + * 获取中支指标配置列表 + * WISDOM_INDICATORCARDLISTCONFIG + * /platform/api/dataplatform/wisdomdecision/indicator/card/getIndicatorCardListConfig + * @param request + * @return + */ + @Override + public ElectromagneticResult getIndicatorCardListConfig(IndicatorCardRequest request) { + IndicatorCardParams parames= IndicatorCardMappers.INSTANCE.getIndicatorCardParames(request); + //获取中支指标配置列表 + IndicatorCardPage indicatorCardExtends=indicatorCardService.getIndicatorCardListConfig(parames); + //模型转换 + IndicatorCardPageResponse indicatorCardPageResponse =IndicatorCardMappers.INSTANCE + .getIndicatorCardToModel(indicatorCardExtends); + return ElectromagneticResultUtil.success(indicatorCardPageResponse); + } + + /** + * 获取中支指标数据 + * WISDOM_GETINDICATORSDATA + * /platform/api/dataplatform/wisdomdecision/indicator/card/getIndicatorsData + * @param request + * @return + */ + @Override + public ElectromagneticResult>> getIndicatorsData(IndicatorDataRequest request) { + return null; + } + + /** + * 测试中支指标数据 + * WISDOM_TEST_INDICATORSDATA + * /platform/api/dataplatform/wisdomdecision/indicator/card/testIndicatorsData + * @param request + * @return + */ + @Override + public ElectromagneticResult>> testIndicatorsData(IndicatorDataRequest request) { + return null; + } + + /** + * 获取首页指标卡配置列表 + * WISDOM_GETHOMEINDICATORCARD + * /platform/api/dataplatform/wisdomdecision/indicator/card/getHomeIndicatorListConfig + * @param request + * @return + */ + @Override + public ElectromagneticResult getHomeIndicatorListConfig(IndicatorCardRequest request) { + IndicatorCardParams parames=IndicatorCardMappers.INSTANCE.getIndicatorCardParames(request); + //获取中支指标配置列表 + IndicatorCardPage indicatorCardPage=indicatorCardService.getHomeIndicatorListConfig(parames); + //模型转换 + IndicatorCardPageResponse indicatorCardExtendRespons =IndicatorCardMappers.INSTANCE + .getIndicatorCardToModel(indicatorCardPage); + return ElectromagneticResultUtil.success(indicatorCardExtendRespons); + } + + /** + * 创建指标卡 + * WISDOM_CREATE_INDICATORCARD + * /platform/api/dataplatform/wisdomdecision/indicator/card/createIndicatorCard + * @param request + * @return + */ + @Override + public ElectromagneticResult createIndicatorCard(IndicatorCardRequest request) { + IndicatorCard indicatorCard= IndicatorCardMappers.INSTANCE.getIndicatorCardRequestToModel(request); + indicatorCard.setCreator(request.getUserId()); + indicatorCard.setCreatorName(request.getPersonName()); + indicatorCard.setModifier(request.getUserId()); + indicatorCard.setModifierName(request.getPersonName()); + List indicators=IndicatorCardMappers.INSTANCE.getIndicatorRequestToModel(request.getIndicatorRequests()); + //创建指标卡 +// indicatorCardService.createIndicatorCard(indicatorCard,null,indicators); + return ElectromagneticResultUtil.success(Boolean.TRUE); + } + /** + * 修改指标卡 + * WISDOM_UPDATE_INDICATORCARD + * /platform/api/dataplatform/wisdomdecision/indicator/card/updateIndicatorCard + * @param request + * @return + */ + @Override + public ElectromagneticResult updateIndicatorCard(IndicatorCardRequest request) { + IndicatorCard indicatorCard=IndicatorCardMappers.INSTANCE.getIndicatorCardRequestToModel(request); + indicatorCard.setModifier(request.getUserId()); + indicatorCard.setModifierName(request.getPersonName()); + List indicators=IndicatorCardMappers.INSTANCE.getIndicatorRequestToModel(request.getIndicatorRequests()); + //更新指标卡 +// indicatorCardService.updateIndicatorCard(indicatorCard,null,indicators); + return ElectromagneticResultUtil.success(Boolean.TRUE); + } + + /** + * 获取指标卡详情 + * WISDOM_GET_INDICATORCARDDETIAL + * /platform/api/dataplatform/wisdomdecision/indicator/card/getIndicatorCardDetail + * @param request + * @return + */ + @Override + public ElectromagneticResult getIndicatorCardDetail(IndicatorCardRequest request) { + IndicatorCard card=new IndicatorCard(); + card.setIndicatorCardNo(request.getIndicatorCardNo()); + IndicatorCardDetial indicatorCardDetial=indicatorCardService.getIndicatorCardDetail(card); + IndicatorCardDetailReponse reponse=IndicatorCardMappers.INSTANCE.getIndicatorCardDetailToReponse(indicatorCardDetial); + return ElectromagneticResultUtil.success(reponse); + } + + /** + * 修改指标卡顺序 + * WISDOM_UPDATE_INDICATORCARDORDER + * /platform/api/dataplatform/wisdomdecision/indicator/card/updateIndicatorCardOrder + * @param requests + * @return + */ + @Override + public ElectromagneticResult updateIndicatorCardOrder(List requests) { + List cards=IndicatorCardMappers.INSTANCE.getIndicatorCardRequestsToModel(requests); + return ElectromagneticResultUtil.success(indicatorCardService.updateIndicatorCardOrder(cards)); + } + + /** + * 指标卡状态更新和删除 + * WISDOM_UPDATE_STATUSOREFFECT + * /platform/api/dataplatform/wisdomdecision/indicator/card/updateStatusOrEffect + * @param request + * @return + */ + @Override + public ElectromagneticResult updateStatusOrEffect(IndicatorCardRequest request) { + IndicatorCard indicatorCard=IndicatorCardMappers.INSTANCE.getIndicatorCardRequestToModel(request); + indicatorCard.setModifier(request.getUserId()); + indicatorCard.setModifierName(request.getPersonName()); + return ElectromagneticResultUtil.success(indicatorCardService.updateStatusOrEffect(indicatorCard)); + } + + +} \ No newline at end of file diff --git a/service/src/main/java/com/electromagnetic/industry/software/data/manage/service/mappers/IndicatorCardMappers.java b/service/src/main/java/com/electromagnetic/industry/software/data/manage/service/mappers/IndicatorCardMappers.java new file mode 100644 index 0000000..801e231 --- /dev/null +++ b/service/src/main/java/com/electromagnetic/industry/software/data/manage/service/mappers/IndicatorCardMappers.java @@ -0,0 +1,79 @@ +/** + * Copyright (c) 2004-2024 All Rights Reserved. + */ +package com.electromagnetic.industry.software.data.manage.service.mappers; + + +import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.model.Indicator; +import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.model.IndicatorCard; +import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.model.IndicatorCardDetial; +import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.model.IndicatorCardPage; +import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.parames.IndicatorCardParams; +import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.parames.IndicatorParams; +import com.electromagnetic.industry.software.data.manage.request.indicator.IndicatorCardRequest; +import com.electromagnetic.industry.software.data.manage.request.indicator.IndicatorDataRequest; +import com.electromagnetic.industry.software.data.manage.request.indicator.IndicatorRequest; +import com.electromagnetic.industry.software.data.manage.response.indicator.IndicatorCardDetailReponse; +import com.electromagnetic.industry.software.data.manage.response.indicator.IndicatorCardPageResponse; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +/** + * 指标卡模型转换 + * @author + * @version $Id: IndicatorCardMappers.java, v 0.1 2024-07-29 18:03 + */ +@Mapper +public interface IndicatorCardMappers { + IndicatorCardMappers INSTANCE= Mappers.getMapper(IndicatorCardMappers.class); + + /** + * 指标卡扩展模型返回 + * @param indicatorCardPage + * @return + */ + IndicatorCardPageResponse getIndicatorCardToModel(IndicatorCardPage indicatorCardPage); + + /** + * 指标卡扩展模型入参转换 + * @param request + * @return + */ + IndicatorCardParams getIndicatorCardParames(IndicatorCardRequest request); + + /** + * 指标扩展模型入参转换 + * @param request + * @return + */ + IndicatorParams getIndicatorParames(IndicatorDataRequest request); + /** + * 指标表模型入参转换 + * @param requests + * @return + */ + List getIndicatorRequestToModel(List requests); + + /** + * 指标卡request转指标卡 + * @param request + * @return + */ + IndicatorCard getIndicatorCardRequestToModel(IndicatorCardRequest request); + /** + * 指标卡转response + * @param model + * @return + */ + IndicatorCardDetailReponse getIndicatorCardDetailToReponse(IndicatorCardDetial model); + + /** + * 指标卡requestList转模型List + * @param requests + * @return + */ + List getIndicatorCardRequestsToModel(List requests); + +} \ No newline at end of file