diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..8c9324c --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..0f9ce45 --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__antlr_antlr_2_7_7.xml b/.idea/libraries/Maven__antlr_antlr_2_7_7.xml new file mode 100644 index 0000000..b8d93d8 --- /dev/null +++ b/.idea/libraries/Maven__antlr_antlr_2_7_7.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ 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__com_alibaba_fastjson_1_2_8.xml b/.idea/libraries/Maven__com_alibaba_fastjson_1_2_8.xml new file mode 100644 index 0000000..9b223e0 --- /dev/null +++ b/.idea/libraries/Maven__com_alibaba_fastjson_1_2_8.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_fasterxml_classmate_1_3_4.xml b/.idea/libraries/Maven__com_fasterxml_classmate_1_3_4.xml new file mode 100644 index 0000000..33c30b4 --- /dev/null +++ b/.idea/libraries/Maven__com_fasterxml_classmate_1_3_4.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_0.xml b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_9_0.xml new file mode 100644 index 0000000..06441f4 --- /dev/null +++ b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_9_0.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_6.xml b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_9_6.xml new file mode 100644 index 0000000..eebe10d --- /dev/null +++ b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_9_6.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_6.xml b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_9_6.xml new file mode 100644 index 0000000..51087da --- /dev/null +++ b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_9_6.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_6.xml b/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_9_6.xml new file mode 100644 index 0000000..fa50d95 --- /dev/null +++ b/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_9_6.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_6.xml b/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_9_6.xml new file mode 100644 index 0000000..7e20e35 --- /dev/null +++ b/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_9_6.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_6.xml b/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_9_6.xml new file mode 100644 index 0000000..345adf8 --- /dev/null +++ b/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_9_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_google_guava_guava_20_0.xml b/.idea/libraries/Maven__com_google_guava_guava_20_0.xml new file mode 100644 index 0000000..c5bd322 --- /dev/null +++ b/.idea/libraries/Maven__com_google_guava_guava_20_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_mchange_mchange_commons_java_0_2_11.xml b/.idea/libraries/Maven__com_mchange_mchange_commons_java_0_2_11.xml new file mode 100644 index 0000000..dbd8483 --- /dev/null +++ b/.idea/libraries/Maven__com_mchange_mchange_commons_java_0_2_11.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_rabbitmq_amqp_client_5_1_2.xml b/.idea/libraries/Maven__com_rabbitmq_amqp_client_5_1_2.xml new file mode 100644 index 0000000..ea07fce --- /dev/null +++ b/.idea/libraries/Maven__com_rabbitmq_amqp_client_5_1_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_zaxxer_HikariCP_2_7_9.xml b/.idea/libraries/Maven__com_zaxxer_HikariCP_2_7_9.xml new file mode 100644 index 0000000..6d6865c --- /dev/null +++ b/.idea/libraries/Maven__com_zaxxer_HikariCP_2_7_9.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__dom4j_dom4j_1_6_1.xml b/.idea/libraries/Maven__dom4j_dom4j_1_6_1.xml new file mode 100644 index 0000000..14681ee --- /dev/null +++ b/.idea/libraries/Maven__dom4j_dom4j_1_6_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__i3plus_platform_i3plus_platform_common_1_0_SNAPSHOT.xml b/.idea/libraries/Maven__i3plus_platform_i3plus_platform_common_1_0_SNAPSHOT.xml new file mode 100644 index 0000000..7b3d4d2 --- /dev/null +++ b/.idea/libraries/Maven__i3plus_platform_i3plus_platform_common_1_0_SNAPSHOT.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__i3plus_pojo_i3plus_pojo_base_1_0_SNAPSHOT.xml b/.idea/libraries/Maven__i3plus_pojo_i3plus_pojo_base_1_0_SNAPSHOT.xml new file mode 100644 index 0000000..1807124 --- /dev/null +++ b/.idea/libraries/Maven__i3plus_pojo_i3plus_pojo_base_1_0_SNAPSHOT.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__i3plus_pojo_i3plus_pojo_factory_1_0_SNAPSHOT.xml b/.idea/libraries/Maven__i3plus_pojo_i3plus_pojo_factory_1_0_SNAPSHOT.xml new file mode 100644 index 0000000..a8f8850 --- /dev/null +++ b/.idea/libraries/Maven__i3plus_pojo_i3plus_pojo_factory_1_0_SNAPSHOT.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__i3plus_pojo_i3plus_pojo_model_1_0_SNAPSHOT.xml b/.idea/libraries/Maven__i3plus_pojo_i3plus_pojo_model_1_0_SNAPSHOT.xml new file mode 100644 index 0000000..875e7c3 --- /dev/null +++ b/.idea/libraries/Maven__i3plus_pojo_i3plus_pojo_model_1_0_SNAPSHOT.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__i3plus_pojo_i3plus_pojo_wms_1_0_SNAPSHOT.xml b/.idea/libraries/Maven__i3plus_pojo_i3plus_pojo_wms_1_0_SNAPSHOT.xml new file mode 100644 index 0000000..c6cd544 --- /dev/null +++ b/.idea/libraries/Maven__i3plus_pojo_i3plus_pojo_wms_1_0_SNAPSHOT.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__impp_framework_impp_framework_boot_1_0_SNAPSHOT.xml b/.idea/libraries/Maven__impp_framework_impp_framework_boot_1_0_SNAPSHOT.xml new file mode 100644 index 0000000..c5ed4d7 --- /dev/null +++ b/.idea/libraries/Maven__impp_framework_impp_framework_boot_1_0_SNAPSHOT.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_lettuce_lettuce_core_5_0_4_RELEASE.xml b/.idea/libraries/Maven__io_lettuce_lettuce_core_5_0_4_RELEASE.xml new file mode 100644 index 0000000..4b5e592 --- /dev/null +++ b/.idea/libraries/Maven__io_lettuce_lettuce_core_5_0_4_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_buffer_4_1_25_Final.xml b/.idea/libraries/Maven__io_netty_netty_buffer_4_1_25_Final.xml new file mode 100644 index 0000000..8174ce4 --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_buffer_4_1_25_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_codec_4_1_25_Final.xml b/.idea/libraries/Maven__io_netty_netty_codec_4_1_25_Final.xml new file mode 100644 index 0000000..72440e7 --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_codec_4_1_25_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_common_4_1_25_Final.xml b/.idea/libraries/Maven__io_netty_netty_common_4_1_25_Final.xml new file mode 100644 index 0000000..9bf4c51 --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_common_4_1_25_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_handler_4_1_25_Final.xml b/.idea/libraries/Maven__io_netty_netty_handler_4_1_25_Final.xml new file mode 100644 index 0000000..747450b --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_handler_4_1_25_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_resolver_4_1_25_Final.xml b/.idea/libraries/Maven__io_netty_netty_resolver_4_1_25_Final.xml new file mode 100644 index 0000000..34d4fb3 --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_resolver_4_1_25_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_transport_4_1_25_Final.xml b/.idea/libraries/Maven__io_netty_netty_transport_4_1_25_Final.xml new file mode 100644 index 0000000..2a0e6a1 --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_transport_4_1_25_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_projectreactor_reactor_core_3_1_8_RELEASE.xml b/.idea/libraries/Maven__io_projectreactor_reactor_core_3_1_8_RELEASE.xml new file mode 100644 index 0000000..683cbec --- /dev/null +++ b/.idea/libraries/Maven__io_projectreactor_reactor_core_3_1_8_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_springfox_springfox_core_2_9_2.xml b/.idea/libraries/Maven__io_springfox_springfox_core_2_9_2.xml new file mode 100644 index 0000000..03588dc --- /dev/null +++ b/.idea/libraries/Maven__io_springfox_springfox_core_2_9_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_springfox_springfox_schema_2_9_2.xml b/.idea/libraries/Maven__io_springfox_springfox_schema_2_9_2.xml new file mode 100644 index 0000000..4a47148 --- /dev/null +++ b/.idea/libraries/Maven__io_springfox_springfox_schema_2_9_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_springfox_springfox_spi_2_9_2.xml b/.idea/libraries/Maven__io_springfox_springfox_spi_2_9_2.xml new file mode 100644 index 0000000..f934649 --- /dev/null +++ b/.idea/libraries/Maven__io_springfox_springfox_spi_2_9_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_springfox_springfox_spring_web_2_9_2.xml b/.idea/libraries/Maven__io_springfox_springfox_spring_web_2_9_2.xml new file mode 100644 index 0000000..7898a19 --- /dev/null +++ b/.idea/libraries/Maven__io_springfox_springfox_spring_web_2_9_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_springfox_springfox_swagger2_2_9_2.xml b/.idea/libraries/Maven__io_springfox_springfox_swagger2_2_9_2.xml new file mode 100644 index 0000000..4ed7d0d --- /dev/null +++ b/.idea/libraries/Maven__io_springfox_springfox_swagger2_2_9_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_springfox_springfox_swagger_common_2_9_2.xml b/.idea/libraries/Maven__io_springfox_springfox_swagger_common_2_9_2.xml new file mode 100644 index 0000000..c40ef9f --- /dev/null +++ b/.idea/libraries/Maven__io_springfox_springfox_swagger_common_2_9_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_springfox_springfox_swagger_ui_2_9_2.xml b/.idea/libraries/Maven__io_springfox_springfox_swagger_ui_2_9_2.xml new file mode 100644 index 0000000..0700f01 --- /dev/null +++ b/.idea/libraries/Maven__io_springfox_springfox_swagger_ui_2_9_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_swagger_swagger_annotations_1_5_20.xml b/.idea/libraries/Maven__io_swagger_swagger_annotations_1_5_20.xml new file mode 100644 index 0000000..1c4a621 --- /dev/null +++ b/.idea/libraries/Maven__io_swagger_swagger_annotations_1_5_20.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_swagger_swagger_models_1_5_20.xml b/.idea/libraries/Maven__io_swagger_swagger_models_1_5_20.xml new file mode 100644 index 0000000..395508f --- /dev/null +++ b/.idea/libraries/Maven__io_swagger_swagger_models_1_5_20.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_transaction_javax_transaction_api_1_2.xml b/.idea/libraries/Maven__javax_transaction_javax_transaction_api_1_2.xml new file mode 100644 index 0000000..5f032d2 --- /dev/null +++ b/.idea/libraries/Maven__javax_transaction_javax_transaction_api_1_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__mysql_mysql_connector_java_5_1_39.xml b/.idea/libraries/Maven__mysql_mysql_connector_java_5_1_39.xml new file mode 100644 index 0000000..18e6ec9 --- /dev/null +++ b/.idea/libraries/Maven__mysql_mysql_connector_java_5_1_39.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_7_11.xml b/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_7_11.xml new file mode 100644 index 0000000..ee623f1 --- /dev/null +++ b/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_7_11.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_commons_commons_pool2_2_5_0.xml b/.idea/libraries/Maven__org_apache_commons_commons_pool2_2_5_0.xml new file mode 100644 index 0000000..440e770 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_commons_commons_pool2_2_5_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_10_0.xml b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_10_0.xml new file mode 100644 index 0000000..cbe5ca7 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_10_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_logging_log4j_log4j_core_2_10_0.xml b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_core_2_10_0.xml new file mode 100644 index 0000000..f061a60 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_core_2_10_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_logging_log4j_log4j_jul_2_10_0.xml b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_jul_2_10_0.xml new file mode 100644 index 0000000..b6e0a9e --- /dev/null +++ b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_jul_2_10_0.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_10_0.xml b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_slf4j_impl_2_10_0.xml new file mode 100644 index 0000000..9a53275 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_slf4j_impl_2_10_0.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_10_0.xml b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_10_0.xml new file mode 100644 index 0000000..1407c58 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_10_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_8_5_31.xml b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_8_5_31.xml new file mode 100644 index 0000000..a6693a2 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_8_5_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_8_5_31.xml b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_8_5_31.xml new file mode 100644 index 0000000..bc00163 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_8_5_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_8_5_31.xml b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_8_5_31.xml new file mode 100644 index 0000000..a47a3be --- /dev/null +++ b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_8_5_31.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_aspectj_aspectjweaver_1_8_13.xml b/.idea/libraries/Maven__org_aspectj_aspectjweaver_1_8_13.xml new file mode 100644 index 0000000..d46e30a --- /dev/null +++ b/.idea/libraries/Maven__org_aspectj_aspectjweaver_1_8_13.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_csource_fastdfs_client_java_1_27.xml b/.idea/libraries/Maven__org_csource_fastdfs_client_java_1_27.xml new file mode 100644 index 0000000..976841b --- /dev/null +++ b/.idea/libraries/Maven__org_csource_fastdfs_client_java_1_27.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_hibernate_common_hibernate_commons_annotations_5_0_1_Final.xml b/.idea/libraries/Maven__org_hibernate_common_hibernate_commons_annotations_5_0_1_Final.xml new file mode 100644 index 0000000..ce34f42 --- /dev/null +++ b/.idea/libraries/Maven__org_hibernate_common_hibernate_commons_annotations_5_0_1_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_hibernate_hibernate_core_5_2_17_Final.xml b/.idea/libraries/Maven__org_hibernate_hibernate_core_5_2_17_Final.xml new file mode 100644 index 0000000..4f3cc1a --- /dev/null +++ b/.idea/libraries/Maven__org_hibernate_hibernate_core_5_2_17_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_hibernate_javax_persistence_hibernate_jpa_2_1_api_1_0_2_Final.xml b/.idea/libraries/Maven__org_hibernate_javax_persistence_hibernate_jpa_2_1_api_1_0_2_Final.xml new file mode 100644 index 0000000..1d8ce40 --- /dev/null +++ b/.idea/libraries/Maven__org_hibernate_javax_persistence_hibernate_jpa_2_1_api_1_0_2_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_0_10_Final.xml b/.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_0_10_Final.xml new file mode 100644 index 0000000..1e98da0 --- /dev/null +++ b/.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_0_10_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_javassist_javassist_3_22_0_GA.xml b/.idea/libraries/Maven__org_javassist_javassist_3_22_0_GA.xml new file mode 100644 index 0000000..ad65915 --- /dev/null +++ b/.idea/libraries/Maven__org_javassist_javassist_3_22_0_GA.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_jandex_2_0_3_Final.xml b/.idea/libraries/Maven__org_jboss_jandex_2_0_3_Final.xml new file mode 100644 index 0000000..b841e21 --- /dev/null +++ b/.idea/libraries/Maven__org_jboss_jandex_2_0_3_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_3_2_Final.xml b/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_3_2_Final.xml new file mode 100644 index 0000000..5f7dd01 --- /dev/null +++ b/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_3_2_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_mapstruct_mapstruct_1_2_0_Final.xml b/.idea/libraries/Maven__org_mapstruct_mapstruct_1_2_0_Final.xml new file mode 100644 index 0000000..87cb599 --- /dev/null +++ b/.idea/libraries/Maven__org_mapstruct_mapstruct_1_2_0_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_quartz_scheduler_quartz_2_3_0.xml b/.idea/libraries/Maven__org_quartz_scheduler_quartz_2_3_0.xml new file mode 100644 index 0000000..678f5ce --- /dev/null +++ b/.idea/libraries/Maven__org_quartz_scheduler_quartz_2_3_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_quartz_scheduler_quartz_jobs_2_3_0.xml b/.idea/libraries/Maven__org_quartz_scheduler_quartz_jobs_2_3_0.xml new file mode 100644 index 0000000..79cda67 --- /dev/null +++ b/.idea/libraries/Maven__org_quartz_scheduler_quartz_jobs_2_3_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_reactivestreams_reactive_streams_1_0_2.xml b/.idea/libraries/Maven__org_reactivestreams_reactive_streams_1_0_2.xml new file mode 100644 index 0000000..457c7b7 --- /dev/null +++ b/.idea/libraries/Maven__org_reactivestreams_reactive_streams_1_0_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_25.xml b/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_25.xml new file mode 100644 index 0000000..6073e53 --- /dev/null +++ b/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_25.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_25.xml b/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_25.xml new file mode 100644 index 0000000..20e8163 --- /dev/null +++ b/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_25.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_amqp_spring_amqp_2_0_4_RELEASE.xml b/.idea/libraries/Maven__org_springframework_amqp_spring_amqp_2_0_4_RELEASE.xml new file mode 100644 index 0000000..1b88378 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_amqp_spring_amqp_2_0_4_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_amqp_spring_rabbit_2_0_4_RELEASE.xml b/.idea/libraries/Maven__org_springframework_amqp_spring_rabbit_2_0_4_RELEASE.xml new file mode 100644 index 0000000..85633b0 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_amqp_spring_rabbit_2_0_4_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_0_3_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_0_3_RELEASE.xml new file mode 100644 index 0000000..c1bd1b7 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_0_3_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_0_3_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_0_3_RELEASE.xml new file mode 100644 index 0000000..aef774c --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_0_3_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_0_3_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_0_3_RELEASE.xml new file mode 100644 index 0000000..f4db168 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_0_3_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_amqp_2_0_3_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_amqp_2_0_3_RELEASE.xml new file mode 100644 index 0000000..a1f8d87 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_amqp_2_0_3_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_0_3_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_aop_2_0_3_RELEASE.xml new file mode 100644 index 0000000..c155662 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_aop_2_0_3_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_jpa_2_0_3_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_jpa_2_0_3_RELEASE.xml new file mode 100644 index 0000000..aef3a3b --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_jpa_2_0_3_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_redis_2_0_3_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_redis_2_0_3_RELEASE.xml new file mode 100644 index 0000000..de4a803 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_redis_2_0_3_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_0_3_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_0_3_RELEASE.xml new file mode 100644 index 0000000..52f6b1b --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_0_3_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_0_3_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_0_3_RELEASE.xml new file mode 100644 index 0000000..42841e5 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_0_3_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_log4j2_2_0_3_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_log4j2_2_0_3_RELEASE.xml new file mode 100644 index 0000000..7258373 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_log4j2_2_0_3_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_0_3_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_0_3_RELEASE.xml new file mode 100644 index 0000000..0f25bb3 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_0_3_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_0_3_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_0_3_RELEASE.xml new file mode 100644 index 0000000..f6daaf6 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_0_3_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_0_3_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_0_3_RELEASE.xml new file mode 100644 index 0000000..614aadf --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_0_3_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_data_spring_data_commons_2_0_8_RELEASE.xml b/.idea/libraries/Maven__org_springframework_data_spring_data_commons_2_0_8_RELEASE.xml new file mode 100644 index 0000000..b56afb7 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_data_spring_data_commons_2_0_8_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_data_spring_data_jpa_2_0_8_RELEASE.xml b/.idea/libraries/Maven__org_springframework_data_spring_data_jpa_2_0_8_RELEASE.xml new file mode 100644 index 0000000..fb677d1 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_data_spring_data_jpa_2_0_8_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_data_spring_data_keyvalue_2_0_8_RELEASE.xml b/.idea/libraries/Maven__org_springframework_data_spring_data_keyvalue_2_0_8_RELEASE.xml new file mode 100644 index 0000000..c2324f8 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_data_spring_data_keyvalue_2_0_8_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_data_spring_data_redis_2_0_8_RELEASE.xml b/.idea/libraries/Maven__org_springframework_data_spring_data_redis_2_0_8_RELEASE.xml new file mode 100644 index 0000000..dae62ec --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_data_spring_data_redis_2_0_8_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_retry_spring_retry_1_2_2_RELEASE.xml b/.idea/libraries/Maven__org_springframework_retry_spring_retry_1_2_2_RELEASE.xml new file mode 100644 index 0000000..1b2836b --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_retry_spring_retry_1_2_2_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_aop_5_0_7_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_aop_5_0_7_RELEASE.xml new file mode 100644 index 0000000..290a80e --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_aop_5_0_7_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_aspects_5_0_7_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_aspects_5_0_7_RELEASE.xml new file mode 100644 index 0000000..001bcb6 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_aspects_5_0_7_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_beans_5_0_7_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_beans_5_0_7_RELEASE.xml new file mode 100644 index 0000000..6a2d57b --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_beans_5_0_7_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_context_5_0_7_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_context_5_0_7_RELEASE.xml new file mode 100644 index 0000000..56b0f1f --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_context_5_0_7_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_context_support_5_0_7_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_context_support_5_0_7_RELEASE.xml new file mode 100644 index 0000000..62ed4fa --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_context_support_5_0_7_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_core_5_0_7_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_core_5_0_7_RELEASE.xml new file mode 100644 index 0000000..3b157db --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_core_5_0_7_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_expression_5_0_7_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_expression_5_0_7_RELEASE.xml new file mode 100644 index 0000000..aaef8a8 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_expression_5_0_7_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_jcl_5_0_7_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_jcl_5_0_7_RELEASE.xml new file mode 100644 index 0000000..b5651f7 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_jcl_5_0_7_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_jdbc_5_0_7_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_jdbc_5_0_7_RELEASE.xml new file mode 100644 index 0000000..2b485a8 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_jdbc_5_0_7_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_messaging_5_0_7_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_messaging_5_0_7_RELEASE.xml new file mode 100644 index 0000000..4348e5e --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_messaging_5_0_7_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_orm_5_0_7_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_orm_5_0_7_RELEASE.xml new file mode 100644 index 0000000..879f168 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_orm_5_0_7_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_oxm_5_0_7_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_oxm_5_0_7_RELEASE.xml new file mode 100644 index 0000000..233390a --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_oxm_5_0_7_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_tx_5_0_7_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_tx_5_0_7_RELEASE.xml new file mode 100644 index 0000000..1f348ed --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_tx_5_0_7_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_web_5_0_7_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_web_5_0_7_RELEASE.xml new file mode 100644 index 0000000..816c219 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_web_5_0_7_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_webmvc_5_0_7_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_webmvc_5_0_7_RELEASE.xml new file mode 100644 index 0000000..d4df107 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_webmvc_5_0_7_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_websocket_5_0_7_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_websocket_5_0_7_RELEASE.xml new file mode 100644 index 0000000..e6b5115 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_websocket_5_0_7_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_yaml_snakeyaml_1_19.xml b/.idea/libraries/Maven__org_yaml_snakeyaml_1_19.xml new file mode 100644 index 0000000..33ccf19 --- /dev/null +++ b/.idea/libraries/Maven__org_yaml_snakeyaml_1_19.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__redis_clients_jedis_2_9_0.xml b/.idea/libraries/Maven__redis_clients_jedis_2_9_0.xml new file mode 100644 index 0000000..77144ff --- /dev/null +++ b/.idea/libraries/Maven__redis_clients_jedis_2_9_0.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..d077d81 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..2041e86 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 0000000..af93aa8 --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + + true + DEFINITION_ORDER + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1538274878308 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 32jdk1.8 + + + + + + + + \ No newline at end of file diff --git a/i3plus-core.iml b/i3plus-core.iml new file mode 100644 index 0000000..14eb81e --- /dev/null +++ b/i3plus-core.iml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/i3plus-core-api/i3plus-core-api.iml b/modules/i3plus-core-api/i3plus-core-api.iml new file mode 100644 index 0000000..fda6d1f --- /dev/null +++ b/modules/i3plus-core-api/i3plus-core-api.iml @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/i3plus-core-api/pom.xml b/modules/i3plus-core-api/pom.xml new file mode 100644 index 0000000..5b737d8 --- /dev/null +++ b/modules/i3plus-core-api/pom.xml @@ -0,0 +1,30 @@ + + + + i3plus-core + i3plus.core + 1.0-SNAPSHOT + ../../pom.xml + + 4.0.0 + + i3plus-core-api + jar + + + i3plus.pojo + i3plus-pojo-platform + 1.0-SNAPSHOT + compile + + + + + org.apache.shiro + shiro-core + + + + \ No newline at end of file diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/IDataSimpleService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/IDataSimpleService.java new file mode 100644 index 0000000..7d692eb --- /dev/null +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/IDataSimpleService.java @@ -0,0 +1,48 @@ +package cn.estsh.i3plus.core.api.iservice.base; + +import cn.estsh.i3plus.pojo.factory.bean.MachineFactory; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + + +/** + * @Description : service服务,根据方法名自动添加事务 + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2018-09-04 16:57 + * @Modify: + **/ +public interface IDataSimpleService { + + void saveMachineFactory(MachineFactory machineFactory); + + @Transactional + void updateMachineFactoryNameById(long id, String factoryName); + + @Transactional + void deleteMachineFactoryById(long id); + + /** + * 根据工厂名称查询 + * @param factoryName + * @return + */ + @Transactional(readOnly = true) + List findMachineFactoryByFactoryName(String factoryName); + + /** + * 根据code查询 + * @param factoryCode + * @return + */ + @Transactional(readOnly = true) + List findMachineFactoryByFactoryCode(String factoryCode); + + /** + * 特殊查询 + * @return + */ + @Transactional(readOnly = true) + List findMachineFactorySpecial(); +} diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/IDataMoreService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/IDataMoreService.java new file mode 100644 index 0000000..a302cba --- /dev/null +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/IDataMoreService.java @@ -0,0 +1,26 @@ +package cn.estsh.i3plus.core.api.iservice.busi; + +import cn.estsh.i3plus.pojo.wms.bean.FactoryStore; + +import java.util.List; + +/** + * @Description : + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2018-09-04 16:57 + * @Modify: + **/ +public interface IDataMoreService { + + /** + * 对象数据服务 + * @param factoryStore + * @return + */ + FactoryStore insertFactory(FactoryStore factoryStore); + + List listFactoryStore(); + + List listFactoryStoreMore(); +} diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISystemResourceService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISystemResourceService.java new file mode 100644 index 0000000..cdec74b --- /dev/null +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISystemResourceService.java @@ -0,0 +1,39 @@ +package cn.estsh.i3plus.core.api.iservice.busi; + +import cn.estsh.i3plus.pojo.model.common.Pager; +import cn.estsh.i3plus.pojo.platform.bean.SysLocaleLanguage; +import cn.estsh.i3plus.pojo.platform.bean.SysLocaleResource; + +import java.util.List; + +/** + * @Description : 系统资源相关服务,所有sys开头的对象都可在此服务中处理 + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2018-10-11 16:59 + * @Modify: + **/ +public interface ISystemResourceService { + + SysLocaleLanguage saveSysLocaleLanguage(SysLocaleLanguage lang); + + SysLocaleLanguage updateSysLocaleLanguage(SysLocaleLanguage lang); + + void deleteSysLocaleLanguageById(long id); + + List listSysLocaleLanguage(SysLocaleLanguage lang); + + List listSysLocaleLanguageByPager(SysLocaleLanguage lang,Pager pager); + + SysLocaleResource saveSysLocaleResource(SysLocaleResource res); + + SysLocaleResource updateSysLocaleResource(SysLocaleResource res); + + void deleteSysLocaleResourceById(long id); + + List listSysLocaleResourceByPager(SysLocaleResource res,Pager pager); + + List listSysLocaleResource(SysLocaleResource res); + + SysLocaleResource getSysLocaleResourceByLanguage(int resourceType,String langCode,String langKey); +} diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISystemUserService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISystemUserService.java new file mode 100644 index 0000000..02e3a87 --- /dev/null +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISystemUserService.java @@ -0,0 +1,31 @@ +package cn.estsh.i3plus.core.api.iservice.busi; + +import cn.estsh.i3plus.core.api.token.AdminToken; +import cn.estsh.i3plus.core.api.token.SaAdminToken; +import cn.estsh.i3plus.core.api.token.UserToken; +import cn.estsh.i3plus.pojo.model.common.Pager; +import cn.estsh.i3plus.pojo.platform.bean.SessionUser; +import cn.estsh.i3plus.pojo.platform.bean.SysLocaleLanguage; +import cn.estsh.i3plus.pojo.platform.bean.SysLocaleResource; + +import java.util.List; + +/** + * @Description : 用户功能方法,包含权限、角色等 + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2018-10-11 16:59 + * @Modify: + **/ +public interface ISystemUserService { + + SessionUser userLogin(String loginName, String s, String languageCode); + + SessionUser adminLogin(String loginName, String s, String languageCode); + + SessionUser checkUserLogin(UserToken authenticationToken); + + SessionUser checkAdminLogin(AdminToken authenticationToken); + + SessionUser checkSaAdminLogin(SaAdminToken authenticationToken); +} diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/token/AdminToken.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/token/AdminToken.java new file mode 100644 index 0000000..18b36da --- /dev/null +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/token/AdminToken.java @@ -0,0 +1,15 @@ +package cn.estsh.i3plus.core.api.token; + +/** + * @Description : 管理员token + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2018-10-13 18:00 + * @Modify: + **/ +public class AdminToken extends BaseToken { + + public AdminToken(String loginName, String loginPwd, String languageCode) { + super(loginName, loginPwd, languageCode); + } +} diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/token/BaseToken.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/token/BaseToken.java new file mode 100644 index 0000000..35f057f --- /dev/null +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/token/BaseToken.java @@ -0,0 +1,59 @@ +package cn.estsh.i3plus.core.api.token; + +import org.apache.shiro.authc.AuthenticationToken; + +/** + * @Description : 基本验证类 + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2018-10-13 18:00 + * @Modify: + **/ +public class BaseToken implements AuthenticationToken { + + private String loginName; + private String loginPwd; + private String languageCode; + + public BaseToken(String loginName, String loginPwd, String languageCode) { + this.loginName = loginName; + this.loginPwd = loginPwd; + this.languageCode = languageCode; + } + + //身份 + @Override + public Object getPrincipal() { + return this.loginName; + } + + //验证 + @Override + public Object getCredentials() { + return this.loginPwd; + } + + public String getLoginName() { + return loginName; + } + + public void setLoginName(String loginName) { + this.loginName = loginName; + } + + public String getLoginPwd() { + return loginPwd; + } + + public void setLoginPwd(String loginPwd) { + this.loginPwd = loginPwd; + } + + public String getLanguageCode() { + return languageCode; + } + + public void setLanguageCode(String languageCode) { + this.languageCode = languageCode; + } +} diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/token/SaAdminToken.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/token/SaAdminToken.java new file mode 100644 index 0000000..c850f1f --- /dev/null +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/token/SaAdminToken.java @@ -0,0 +1,15 @@ +package cn.estsh.i3plus.core.api.token; + +/** + * @Description : 超级管理员token + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2018-10-13 18:00 + * @Modify: + **/ +public class SaAdminToken extends BaseToken { + + public SaAdminToken(String loginName, String loginPwd, String languageCode) { + super(loginName, loginPwd, languageCode); + } +} diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/token/UserToken.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/token/UserToken.java new file mode 100644 index 0000000..89cc732 --- /dev/null +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/token/UserToken.java @@ -0,0 +1,15 @@ +package cn.estsh.i3plus.core.api.token; + +/** + * @Description : 普通用户token + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2018-10-13 18:00 + * @Modify: + **/ +public class UserToken extends BaseToken { + + public UserToken(String loginName, String loginPwd, String languageCode) { + super(loginName, loginPwd, languageCode); + } +} diff --git a/modules/i3plus-core-api/target/classes/cn/estsh/i3plus/core/api/iservice/base/IDataSimpleService.class b/modules/i3plus-core-api/target/classes/cn/estsh/i3plus/core/api/iservice/base/IDataSimpleService.class new file mode 100644 index 0000000..d7c9b13 Binary files /dev/null and b/modules/i3plus-core-api/target/classes/cn/estsh/i3plus/core/api/iservice/base/IDataSimpleService.class differ diff --git a/modules/i3plus-core-api/target/classes/cn/estsh/i3plus/core/api/iservice/busi/IDataMoreService.class b/modules/i3plus-core-api/target/classes/cn/estsh/i3plus/core/api/iservice/busi/IDataMoreService.class new file mode 100644 index 0000000..cd70fe9 Binary files /dev/null and b/modules/i3plus-core-api/target/classes/cn/estsh/i3plus/core/api/iservice/busi/IDataMoreService.class differ diff --git a/modules/i3plus-core-api/target/classes/cn/estsh/i3plus/core/api/iservice/busi/ISystemResourceService.class b/modules/i3plus-core-api/target/classes/cn/estsh/i3plus/core/api/iservice/busi/ISystemResourceService.class new file mode 100644 index 0000000..6a0eba7 Binary files /dev/null and b/modules/i3plus-core-api/target/classes/cn/estsh/i3plus/core/api/iservice/busi/ISystemResourceService.class differ diff --git a/modules/i3plus-core-api/target/classes/cn/estsh/i3plus/core/api/iservice/busi/ISystemUserService.class b/modules/i3plus-core-api/target/classes/cn/estsh/i3plus/core/api/iservice/busi/ISystemUserService.class new file mode 100644 index 0000000..d9ef57c Binary files /dev/null and b/modules/i3plus-core-api/target/classes/cn/estsh/i3plus/core/api/iservice/busi/ISystemUserService.class differ diff --git a/modules/i3plus-core-api/target/classes/cn/estsh/i3plus/core/api/token/AdminToken.class b/modules/i3plus-core-api/target/classes/cn/estsh/i3plus/core/api/token/AdminToken.class new file mode 100644 index 0000000..562f3c8 Binary files /dev/null and b/modules/i3plus-core-api/target/classes/cn/estsh/i3plus/core/api/token/AdminToken.class differ diff --git a/modules/i3plus-core-api/target/classes/cn/estsh/i3plus/core/api/token/BaseToken.class b/modules/i3plus-core-api/target/classes/cn/estsh/i3plus/core/api/token/BaseToken.class new file mode 100644 index 0000000..61743c7 Binary files /dev/null and b/modules/i3plus-core-api/target/classes/cn/estsh/i3plus/core/api/token/BaseToken.class differ diff --git a/modules/i3plus-core-api/target/classes/cn/estsh/i3plus/core/api/token/SaAdminToken.class b/modules/i3plus-core-api/target/classes/cn/estsh/i3plus/core/api/token/SaAdminToken.class new file mode 100644 index 0000000..0dd2fea Binary files /dev/null and b/modules/i3plus-core-api/target/classes/cn/estsh/i3plus/core/api/token/SaAdminToken.class differ diff --git a/modules/i3plus-core-api/target/classes/cn/estsh/i3plus/core/api/token/UserToken.class b/modules/i3plus-core-api/target/classes/cn/estsh/i3plus/core/api/token/UserToken.class new file mode 100644 index 0000000..5e7bcac Binary files /dev/null and b/modules/i3plus-core-api/target/classes/cn/estsh/i3plus/core/api/token/UserToken.class differ diff --git a/modules/i3plus-core-api/target/i3plus-core-api-1.0-SNAPSHOT.jar b/modules/i3plus-core-api/target/i3plus-core-api-1.0-SNAPSHOT.jar new file mode 100644 index 0000000..4a81a49 Binary files /dev/null and b/modules/i3plus-core-api/target/i3plus-core-api-1.0-SNAPSHOT.jar differ diff --git a/modules/i3plus-core-api/target/maven-archiver/pom.properties b/modules/i3plus-core-api/target/maven-archiver/pom.properties new file mode 100644 index 0000000..7396c0b --- /dev/null +++ b/modules/i3plus-core-api/target/maven-archiver/pom.properties @@ -0,0 +1,5 @@ +#Generated by Apache Maven +#Sun Sep 30 10:24:52 CST 2018 +version=1.0-SNAPSHOT +groupId=i3plus.core +artifactId=i3plus-core-api diff --git a/modules/i3plus-core-apiservice/i3plus-core-apiservice.iml b/modules/i3plus-core-apiservice/i3plus-core-apiservice.iml new file mode 100644 index 0000000..09ebf16 --- /dev/null +++ b/modules/i3plus-core-apiservice/i3plus-core-apiservice.iml @@ -0,0 +1,164 @@ + + + + + + + file://$MODULE_DIR$/src/main/java/cn/estsh/i3plus/core/apiservice/mq/I3CoreQueue.java + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/i3plus-core-apiservice/pom.xml b/modules/i3plus-core-apiservice/pom.xml new file mode 100644 index 0000000..0e3d45b --- /dev/null +++ b/modules/i3plus-core-apiservice/pom.xml @@ -0,0 +1,115 @@ + + + + i3plus-core + i3plus.core + 1.0-SNAPSHOT + ../../pom.xml + + 4.0.0 + + i3plus-core-apiservice + jar + + + + + i3plus.core + i3plus-core-api + + + + + impp.framework + impp-framework-boot + + + i3plus.platform + i3plus-platform-common + + + + + mysql + mysql-connector-java + + + + + org.apache.tomcat.embed + tomcat-embed-jasper + + + + org.apache.commons + commons-lang3 + + + + + org.apache.shiro + shiro-core + + + org.apache.shiro + shiro-spring + + + org.apache.shiro + shiro-web + + + + + com.alibaba + fastjson + + + + + net.sf.ehcache + ehcache-core + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + cn.estsh.impp.framework.boot.core.ImppGo + JAR + + + + + repackage + + + + + + + maven-resources-plugin + + utf-8 + true + + + + + src/main/java + src/test/java + + + src/main/resources + true + + + + + \ No newline at end of file diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/AuthUtil.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/AuthUtil.java new file mode 100644 index 0000000..744b8d3 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/AuthUtil.java @@ -0,0 +1,97 @@ +package cn.estsh.i3plus.core.apiservice.auth; + +import cn.estsh.i3plus.platform.common.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.platform.common.util.CommonConstWords; +import cn.estsh.i3plus.pojo.platform.bean.SessionUser; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.math.NumberUtils; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.authc.AuthenticationToken; +import org.apache.shiro.session.Session; +import org.apache.shiro.subject.Subject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.servlet.http.HttpServletRequest; + +/** + * @Description : 授权会话工具类 + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2018-10-13 13:21 + * @Modify: + **/ +public class AuthUtil { + public static final Logger LOGGER = LoggerFactory.getLogger(AuthUtil.class); + + //登陆,保存会话对象 + public static SessionUser login(AuthenticationToken token){ + Subject subject = SecurityUtils.getSubject(); + subject.login(token); + + SessionUser sessionUser = (SessionUser) subject.getPrincipal(); + if(sessionUser != null){ + setSessionUser(sessionUser.getUserType(),sessionUser); + } + + return sessionUser; + } + + /** + * 退出,移除会话中对象 + * @param CONST_USER CommonConstWords.SESSION_USER,SESSION_ADMIN,SESSION_SA + */ + public static void logout(String CONST_USER){ + Session session = SecurityUtils.getSubject().getSession(false); + if(session != null) { + session.removeAttribute(CONST_USER); + } + } + + /** + * 保存会话中用户 + * @param key CommonConstWords.SESSION_USER,SESSION_ADMIN,SESSION_SA + * @param user + * @return + */ + public static void setSessionUser(String key,SessionUser user){ + SecurityUtils.getSubject().getSession(true).setAttribute(key,user); + } + /** + * 获取会话中用户 + * @param key + * @return + */ + public static SessionUser getSessionUser(String key){ + Session session = SecurityUtils.getSubject().getSession(false); + if(session != null){ + return (SessionUser) session.getAttribute(key); + }else{ + return null; + } + } + + /** + * 保存会话中对象 + * @param key 键 + * @param obj 值 + * @return + */ + public static void setSessionObject(String key,Object obj){ + SecurityUtils.getSubject().getSession(true).setAttribute(key,obj); + } + + /** + * 获取会话中对象 + * @param key + * @return + */ + public static Object getSessionAttribute(String key){ + Session session = SecurityUtils.getSubject().getSession(false); + if(session != null){ + return (Object) session.getAttribute(key); + }else{ + return null; + } + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/ShiroEhCacheImpl.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/ShiroEhCacheImpl.java new file mode 100644 index 0000000..74f49a5 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/ShiroEhCacheImpl.java @@ -0,0 +1,88 @@ +package cn.estsh.i3plus.core.apiservice.auth; + +import cn.estsh.i3plus.platform.common.util.CommonConstWords; +import cn.estsh.impp.framework.boot.util.ImppRedis; +import org.apache.shiro.cache.Cache; +import org.apache.shiro.cache.CacheException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Set; + +/** + * @Description : + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2018-10-16 11:24 + * @Modify: + **/ +@Service +public class ShiroEhCacheImpl implements Cache { + public static final Logger LOGGER = LoggerFactory.getLogger(ShiroEhCacheImpl.class); + + /** + * 缓存 + */ + @Autowired + @Qualifier("redisSession") + private ImppRedis imppRedis; + + @Override + public V get(K o) throws CacheException { + System.out.println("================"+imppRedis); + LOGGER.info("【ehcache获取】{}",o); + return (V) imppRedis.getObject(o); + } + + @Override + public V put(K key, V value) throws CacheException { + LOGGER.info("【ehcache放入】{}:{}",key,value); + V oldObj = get(key); + imppRedis.putObject(key.toString(),value, 18000); + return oldObj; + } + + @Override + public V remove(K o) throws CacheException { + V oldObj = get(o); + //删除 + imppRedis.deleteKey(o.toString()); + + return oldObj; + } + + @Override + public void clear() throws CacheException { + Set keySet = keys(); + for(String key : keySet){ + imppRedis.deleteKey(key); + } + } + + @Override + public int size() { + return keys().size(); + } + + @Override + public Set keys() { + return imppRedis.getKeysSet(CommonConstWords.CACHE_SESSION_PREFX + "*"); + } + + @Override + public Collection values() { + List list = new ArrayList<>(); + Set keySet = keys(); + for (K s : keySet) { + list.add(get(s)); + } + return list; + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/ShiroRedisCacheImpl.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/ShiroRedisCacheImpl.java new file mode 100644 index 0000000..93eeddf --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/ShiroRedisCacheImpl.java @@ -0,0 +1,84 @@ +package cn.estsh.i3plus.core.apiservice.auth; + +import cn.estsh.i3plus.platform.common.util.CommonConstWords; +import cn.estsh.impp.framework.boot.util.ImppRedis; +import org.apache.shiro.cache.Cache; +import org.apache.shiro.cache.CacheException; +import org.apache.shiro.session.mgt.SimpleSession; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Set; + +/** + * @Description : + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2018-10-16 11:24 + * @Modify: + **/ +@Service +public class ShiroRedisCacheImpl implements Cache { + public static final Logger LOGGER = LoggerFactory.getLogger(ShiroRedisCacheImpl.class); + + /** + * 缓存 + */ + @Resource(name="redisSession") + private ImppRedis imppRedis; + + @Override + public V get(K o) throws CacheException { + return (V) imppRedis.getObject(o); + } + + @Override + public V put(K key, V value) throws CacheException { + V oldObj = get(key); + imppRedis.putObject(key.toString(),value, 18000); + return oldObj; + } + + @Override + public V remove(K o) throws CacheException { + V oldObj = get(o); + //删除 + imppRedis.deleteKey(o.toString()); + + return oldObj; + } + + @Override + public void clear() throws CacheException { + Set keySet = keys(); + for(String key : keySet){ + imppRedis.deleteKey(key); + } + } + + @Override + public int size() { + return keys().size(); + } + + @Override + public Set keys() { + return imppRedis.getKeysSet(CommonConstWords.CACHE_SESSION_PREFX + "*"); + } + + @Override + public Collection values() { + List list = new ArrayList<>(); + Set keySet = keys(); + for (K s : keySet) { + list.add(get(s)); + } + return list; + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/ShiroRedisCacheManager.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/ShiroRedisCacheManager.java new file mode 100644 index 0000000..03ca692 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/ShiroRedisCacheManager.java @@ -0,0 +1,29 @@ +package cn.estsh.i3plus.core.apiservice.auth; + +import cn.estsh.impp.framework.boot.util.ImppRedis; +import org.apache.shiro.cache.Cache; +import org.apache.shiro.cache.CacheException; +import org.apache.shiro.cache.CacheManager; +import org.springframework.beans.factory.annotation.Autowired; + +/** + * @Description : 授权缓存管理 + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2018-10-16 13:26 + * @Modify: + **/ +public class ShiroRedisCacheManager implements CacheManager { + + @Autowired + private ShiroRedisCacheImpl redisCacheImpl; + + @Autowired + private ShiroRedisCacheImpl ehCacheImpl; + + @Override + public Cache getCache(String s) throws CacheException { + //return redisCacheImpl; + return ehCacheImpl; + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/ShiroSessionRedisDao.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/ShiroSessionRedisDao.java new file mode 100644 index 0000000..0f1eaea --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/ShiroSessionRedisDao.java @@ -0,0 +1,99 @@ +package cn.estsh.i3plus.core.apiservice.auth; + +import cn.estsh.i3plus.platform.common.util.CommonConstWords; +import cn.estsh.impp.framework.boot.util.ImppRedis; +import com.alibaba.fastjson.JSONObject; +import org.apache.shiro.session.Session; +import org.apache.shiro.session.UnknownSessionException; +import org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAO; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; + +import javax.annotation.Resource; +import java.io.Serializable; +import java.util.Collection; +import java.util.HashSet; +import java.util.Set; + +/** + * @Description : redisshiro保存会话 + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2018-10-16 10:28 + * @Modify: + **/ +public class ShiroSessionRedisDao extends EnterpriseCacheSessionDAO { + public static final Logger LOGGER = LoggerFactory.getLogger(ShiroSessionRedisDao.class); + public static final int EXPIRE_TIME = 1800; //会话保存时间 + + /** + * 缓存 + */ + @Resource(name="redisSession") + private ImppRedis imppRedis; + + @Override + public void update(Session session) throws UnknownSessionException { + this.saveSession(session); + } + + private void saveSession(Session session) { + if (session == null) { + LOGGER.info("要存入的session为空"); + return; + }else { + LOGGER.info("【保存session至redis:{}】",CommonConstWords.CACHE_SESSION_PREFX + session.getId()); + //设置会话过期时间 + imppRedis.putObject(CommonConstWords.CACHE_SESSION_PREFX + session.getId(),session,EXPIRE_TIME); + } + } + + @Override + public void delete(Session session) { + if (session == null) { + LOGGER.error("删除的session为空"); + return; + }else { + LOGGER.error("【删除session-redis:{}】",CommonConstWords.CACHE_SESSION_PREFX + session.getId()); + //设置会话过期时间 + imppRedis.deleteKey(CommonConstWords.CACHE_SESSION_PREFX + session.getId().toString()); + } + } + + @Override + protected Serializable doCreate(Session session) { + Serializable sessionId = this.generateSessionId(session); + this.assignSessionId(session, sessionId); + this.saveSession(session); + return sessionId; + } + + @Override + protected Session doReadSession(Serializable sessionId) { + if(sessionId == null){ + LOGGER.error("【session不存在:{}】",sessionId); + return null; + } + Object obj = imppRedis.getObject(CommonConstWords.CACHE_SESSION_PREFX + sessionId.toString()); + if(obj == null){ + return null; + }else { + return (Session) obj; + } + } + + /** + * 获取存活的sessions + */ + @Override + public Collection getActiveSessions() { + Set sessions = new HashSet<>(); + Set keys = imppRedis.getKeysSet(CommonConstWords.CACHE_SESSION_PREFX + "*"); + LOGGER.info("【所有活动的key:{}】",keys.size()); + for(String key:keys){ + sessions.add((Session)imppRedis.getObject(key)); + } + return sessions; + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/filter/AdminFilter.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/filter/AdminFilter.java new file mode 100644 index 0000000..667b10a --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/filter/AdminFilter.java @@ -0,0 +1,65 @@ +package cn.estsh.i3plus.core.apiservice.auth.filter; + +import cn.estsh.i3plus.core.apiservice.auth.AuthUtil; +import cn.estsh.i3plus.core.apiservice.configuration.ShiroAuthConfiguration; +import cn.estsh.i3plus.platform.common.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.platform.common.util.CommonConstWords; +import cn.estsh.i3plus.pojo.model.busi.ResultBean; +import com.alibaba.fastjson.JSONObject; +import org.apache.shiro.web.filter.AccessControlFilter; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; + +/** + * @Description : 管理员授权路径过滤 + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2018-10-13 19:17 + * @Modify: + **/ +public class AdminFilter extends AccessControlFilter { + public static final Logger LOGGER = LoggerFactory.getLogger(AdminFilter.class); + + @Override + protected boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object mappedValue) throws Exception { + return AuthUtil.getSessionUser(CommonConstWords.SESSION_ADMIN) != null; + } + + @Override + protected boolean onAccessDenied(ServletRequest request, ServletResponse response) throws Exception { + if (response instanceof HttpServletResponse) { + HttpServletResponse httpServletResponse = (HttpServletResponse)response; + + httpServletResponse.setHeader("Content-Type", "application/json;charset=UTF-8"); + httpServletResponse.setContentType("application/json;charset=UTF-8"); + PrintWriter out = null; + + try { + ResultBean result = new ResultBean(); + result.setSuccess(false); + result.setErrorMsg("未登录"); + result.setCode("need-login"); + result.setUrl(ShiroAuthConfiguration.ADMIN_LOGIN_URI); + + out = response.getWriter(); + out.print(JSONObject.toJSONString(result)); + out.flush(); + } catch (IOException var11) { + LOGGER.error(var11.getMessage(), var11); + } finally { + if (out != null) { + out.close(); + } + + } + } + + return false; + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/filter/SaAdminFilter.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/filter/SaAdminFilter.java new file mode 100644 index 0000000..40238fb --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/filter/SaAdminFilter.java @@ -0,0 +1,64 @@ +package cn.estsh.i3plus.core.apiservice.auth.filter; + +import cn.estsh.i3plus.core.apiservice.auth.AuthUtil; +import cn.estsh.i3plus.core.apiservice.configuration.ShiroAuthConfiguration; +import cn.estsh.i3plus.platform.common.util.CommonConstWords; +import cn.estsh.i3plus.pojo.model.busi.ResultBean; +import com.alibaba.fastjson.JSONObject; +import org.apache.shiro.web.filter.AccessControlFilter; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; + +/** + * @Description : 超级管理员授权路径过滤 + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2018-10-13 19:17 + * @Modify: + **/ +public class SaAdminFilter extends AccessControlFilter { + public static final Logger LOGGER = LoggerFactory.getLogger(SaAdminFilter.class); + + @Override + protected boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object mappedValue) throws Exception { + return AuthUtil.getSessionUser(CommonConstWords.SESSION_ADMIN) != null; + } + + @Override + protected boolean onAccessDenied(ServletRequest request, ServletResponse response) throws Exception { + if (response instanceof HttpServletResponse) { + HttpServletResponse httpServletResponse = (HttpServletResponse)response; + + httpServletResponse.setHeader("Content-Type", "application/json;charset=UTF-8"); + httpServletResponse.setContentType("application/json;charset=UTF-8"); + PrintWriter out = null; + + try { + ResultBean result = new ResultBean(); + result.setSuccess(false); + result.setErrorMsg("未登录"); + result.setCode("need-login"); + result.setUrl(ShiroAuthConfiguration.SAADMIN_LOGIN_URI); + + out = response.getWriter(); + out.print(JSONObject.toJSONString(result)); + out.flush(); + } catch (IOException var11) { + LOGGER.error(var11.getMessage(), var11); + } finally { + if (out != null) { + out.close(); + } + + } + } + + return false; + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/filter/UserFilter.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/filter/UserFilter.java new file mode 100644 index 0000000..c9a2f6d --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/filter/UserFilter.java @@ -0,0 +1,75 @@ +package cn.estsh.i3plus.core.apiservice.auth.filter; + +import cn.estsh.i3plus.core.apiservice.auth.AuthUtil; +import cn.estsh.i3plus.core.apiservice.configuration.ShiroAuthConfiguration; +import cn.estsh.i3plus.platform.common.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.platform.common.util.CommonConstWords; +import cn.estsh.i3plus.pojo.model.busi.ResultBean; +import cn.estsh.i3plus.pojo.platform.bean.SessionUser; +import com.alibaba.fastjson.JSONObject; +import org.apache.shiro.web.filter.AccessControlFilter; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; + +/** + * @Description : 用户授权路径过滤 + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2018-10-13 19:17 + * @Modify: + **/ +public class UserFilter extends AccessControlFilter { + public static final Logger LOGGER = LoggerFactory.getLogger(UserFilter.class); + + @Override + protected boolean isAccessAllowed(ServletRequest servletRequest, ServletResponse response, Object mappedValue) throws Exception { + SessionUser sessionUser = AuthUtil.getSessionUser(CommonEnumUtil.USER_TYPE.USER.getCode()); + if (sessionUser != null) { + LOGGER.info("===用户已授权==={}",sessionUser); + return true; + } else { + LOGGER.info("===用户未授权==={}",sessionUser); + return false; + } + } + + @Override + protected boolean onAccessDenied(ServletRequest request, ServletResponse response) throws Exception { + if (response instanceof HttpServletResponse) { + LOGGER.info("===请求拒绝===请求路径:{}",((HttpServletRequest)request).getRequestURL()); + HttpServletResponse httpServletResponse = (HttpServletResponse)response; + + httpServletResponse.setHeader("Content-Type", "application/json;charset=UTF-8"); + httpServletResponse.setContentType("application/json;charset=UTF-8"); + PrintWriter out = null; + + try { + ResultBean result = new ResultBean(); + result.setSuccess(false); + result.setErrorMsg("未登录"); + result.setCode("need-login"); + result.setUrl(ShiroAuthConfiguration.USER_LOGIN_URI); + + out = response.getWriter(); + out.print(JSONObject.toJSONString(result)); + out.flush(); + } catch (IOException var11) { + LOGGER.error(var11.getMessage(), var11); + } finally { + if (out != null) { + out.close(); + } + + } + } + + return false; + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/AdminAuthRealm.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/AdminAuthRealm.java new file mode 100644 index 0000000..aa31e58 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/AdminAuthRealm.java @@ -0,0 +1,52 @@ +package cn.estsh.i3plus.core.apiservice.auth.realm; + +import cn.estsh.i3plus.core.api.iservice.busi.ISystemUserService; +import cn.estsh.i3plus.core.api.token.AdminToken; +import cn.estsh.i3plus.core.api.token.SaAdminToken; +import cn.estsh.i3plus.core.api.token.UserToken; +import cn.estsh.i3plus.pojo.platform.bean.SessionUser; +import org.apache.shiro.authc.AuthenticationException; +import org.apache.shiro.authc.AuthenticationInfo; +import org.apache.shiro.authc.AuthenticationToken; +import org.apache.shiro.authc.SimpleAuthenticationInfo; +import org.apache.shiro.authz.AuthorizationInfo; +import org.apache.shiro.authz.SimpleAuthorizationInfo; +import org.apache.shiro.realm.AuthorizingRealm; +import org.apache.shiro.subject.PrincipalCollection; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; + +/** + * @Description : 验证规则 + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2018-10-13 14:04 + * @Modify: + **/ +public class AdminAuthRealm extends AuthorizingRealm { + public static final Logger LOGGER = LoggerFactory.getLogger(AdminAuthRealm.class); + + @Autowired + private ISystemUserService systemUserService; + + public AdminAuthRealm(){ + //添加支持的token + this.setAuthenticationTokenClass(AdminToken.class); + } + + //权限验证 + @Override + protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) { + return new SimpleAuthorizationInfo(); + } + + //令牌确认 + @Override + protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException { + //管理员令牌 + SessionUser sessionUser = systemUserService.checkAdminLogin((AdminToken) authenticationToken); + LOGGER.info("管理员令牌验证:{}",sessionUser); + return new SimpleAuthenticationInfo(sessionUser,((AdminToken) authenticationToken).getLoginPwd(),this.getName()); + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/DefaultModularRealm.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/DefaultModularRealm.java new file mode 100644 index 0000000..cb03454 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/DefaultModularRealm.java @@ -0,0 +1,71 @@ +package cn.estsh.i3plus.core.apiservice.auth.realm; + +import cn.estsh.i3plus.core.api.token.AdminToken; +import cn.estsh.i3plus.core.api.token.SaAdminToken; +import cn.estsh.i3plus.core.api.token.UserToken; +import cn.estsh.i3plus.core.apiservice.controller.DemoAuthController; +import cn.estsh.i3plus.platform.common.enumutil.CommonEnumUtil; +import org.apache.shiro.authc.AuthenticationException; +import org.apache.shiro.authc.AuthenticationInfo; +import org.apache.shiro.authc.AuthenticationToken; +import org.apache.shiro.authc.pam.ModularRealmAuthenticator; +import org.apache.shiro.realm.Realm; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.Collection; +import java.util.Map; + +/** + * @Description : 验证规则模块封装 + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2018-10-13 18:37 + * @Modify: + **/ +public class DefaultModularRealm extends ModularRealmAuthenticator { + private static final Logger LOGGER = LoggerFactory.getLogger(DemoAuthController.class); + private Map definedRealms; + + public DefaultModularRealm(Map definedRealms) { + this.definedRealms = definedRealms; + } + + protected AuthenticationInfo doMultiRealmAuthentication(Collection realms, AuthenticationToken token) { + return super.doMultiRealmAuthentication(realms, token); + } + + public Map getDefinedRealms() { + return this.definedRealms; + } + + public void setDefinedRealms(Map definedRealms) { + this.definedRealms = definedRealms; + } + + protected AuthenticationInfo doAuthenticate(AuthenticationToken token) throws AuthenticationException { + Realm realm; + if (token instanceof SaAdminToken) { + //超级管理员 + realm = (Realm)this.definedRealms.get(CommonEnumUtil.USER_TYPE.SA.getCode()); + } else if (token instanceof AdminToken) { + //管理员 + realm = (Realm)this.definedRealms.get(CommonEnumUtil.USER_TYPE.ADMIN.getCode()); + } else if (token instanceof UserToken) { + //用户 + realm = (Realm)this.definedRealms.get(CommonEnumUtil.USER_TYPE.USER.getCode()); + } else { + throw new AuthenticationException("不存在TOKEN,请联系管理员("+token+")"); + } + + return this.doSingleRealmAuthentication(realm, token); + } + + protected AuthenticationInfo doSingleRealmAuthentication(Realm realm, AuthenticationToken token) { + if (!realm.supports(token)) { + throw new AuthenticationException("TOKEN类型异常,请联系管理员"); + } else { + return realm.getAuthenticationInfo(token); + } + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/SaAuthRealm.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/SaAuthRealm.java new file mode 100644 index 0000000..d0c30df --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/SaAuthRealm.java @@ -0,0 +1,51 @@ +package cn.estsh.i3plus.core.apiservice.auth.realm; + +import cn.estsh.i3plus.core.api.iservice.busi.ISystemUserService; +import cn.estsh.i3plus.core.api.token.SaAdminToken; +import cn.estsh.i3plus.core.api.token.UserToken; +import cn.estsh.i3plus.pojo.platform.bean.SessionUser; +import org.apache.shiro.authc.AuthenticationException; +import org.apache.shiro.authc.AuthenticationInfo; +import org.apache.shiro.authc.AuthenticationToken; +import org.apache.shiro.authc.SimpleAuthenticationInfo; +import org.apache.shiro.authz.AuthorizationInfo; +import org.apache.shiro.authz.SimpleAuthorizationInfo; +import org.apache.shiro.realm.AuthorizingRealm; +import org.apache.shiro.subject.PrincipalCollection; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; + +/** + * @Description : 验证规则 + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2018-10-13 14:04 + * @Modify: + **/ +public class SaAuthRealm extends AuthorizingRealm { + public static final Logger LOGGER = LoggerFactory.getLogger(SaAuthRealm.class); + + @Autowired + private ISystemUserService systemUserService; + + public SaAuthRealm(){ + //添加支持的token + this.setAuthenticationTokenClass(SaAdminToken.class); + } + + //权限验证 + @Override + protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) { + return new SimpleAuthorizationInfo(); + } + + //令牌确认 + @Override + protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException { + //管理员令牌 + SessionUser sessionUser = systemUserService.checkSaAdminLogin((SaAdminToken) authenticationToken); + LOGGER.info("超级管理员令牌验证:{}",sessionUser); + return new SimpleAuthenticationInfo(sessionUser,((SaAdminToken) authenticationToken).getLoginPwd(),this.getName()); + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/UserAuthRealm.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/UserAuthRealm.java new file mode 100644 index 0000000..e2b8b36 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/UserAuthRealm.java @@ -0,0 +1,50 @@ +package cn.estsh.i3plus.core.apiservice.auth.realm; + +import cn.estsh.i3plus.core.api.iservice.busi.ISystemUserService; +import cn.estsh.i3plus.core.api.token.UserToken; +import cn.estsh.i3plus.pojo.platform.bean.SessionUser; +import org.apache.shiro.authc.AuthenticationException; +import org.apache.shiro.authc.AuthenticationInfo; +import org.apache.shiro.authc.AuthenticationToken; +import org.apache.shiro.authc.SimpleAuthenticationInfo; +import org.apache.shiro.authz.AuthorizationInfo; +import org.apache.shiro.authz.SimpleAuthorizationInfo; +import org.apache.shiro.realm.AuthorizingRealm; +import org.apache.shiro.subject.PrincipalCollection; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; + +/** + * @Description : 验证规则 + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2018-10-13 14:04 + * @Modify: + **/ +public class UserAuthRealm extends AuthorizingRealm { + public static final Logger LOGGER = LoggerFactory.getLogger(UserAuthRealm.class); + + @Autowired + private ISystemUserService systemUserService; + + public UserAuthRealm(){ + //添加支持的token + this.setAuthenticationTokenClass(UserToken.class); + } + + //权限验证 + @Override + protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) { + return new SimpleAuthorizationInfo(); + } + + //令牌确认 + @Override + protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException { + //管理员令牌 + SessionUser sessionUser = systemUserService.checkUserLogin((UserToken) authenticationToken); + LOGGER.info("用户令牌验证:{}",sessionUser); + return new SimpleAuthenticationInfo(sessionUser,((UserToken) authenticationToken).getLoginPwd(),this.getName()); + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/configuration/ShiroAuthConfiguration.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/configuration/ShiroAuthConfiguration.java new file mode 100644 index 0000000..e2d76d5 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/configuration/ShiroAuthConfiguration.java @@ -0,0 +1,216 @@ +package cn.estsh.i3plus.core.apiservice.configuration; + +import cn.estsh.i3plus.core.apiservice.auth.ShiroRedisCacheManager; +import cn.estsh.i3plus.core.apiservice.auth.ShiroSessionRedisDao; +import cn.estsh.i3plus.core.apiservice.auth.filter.AdminFilter; +import cn.estsh.i3plus.core.apiservice.auth.filter.SaAdminFilter; +import cn.estsh.i3plus.core.apiservice.auth.filter.UserFilter; +import cn.estsh.i3plus.core.apiservice.auth.realm.AdminAuthRealm; +import cn.estsh.i3plus.core.apiservice.auth.realm.DefaultModularRealm; +import cn.estsh.i3plus.core.apiservice.auth.realm.SaAuthRealm; +import cn.estsh.i3plus.core.apiservice.auth.realm.UserAuthRealm; +import cn.estsh.i3plus.platform.common.enumutil.CommonEnumUtil; +import cn.estsh.impp.framework.boot.configuration.RedisConfig; +import org.apache.shiro.authc.pam.ModularRealmAuthenticator; +import org.apache.shiro.cache.CacheManager; +import org.apache.shiro.cache.ehcache.EhCacheManager; +import org.apache.shiro.codec.Base64; +import org.apache.shiro.realm.Realm; +import org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler; +import org.apache.shiro.spring.web.ShiroFilterFactoryBean; +import org.apache.shiro.web.mgt.CookieRememberMeManager; +import org.apache.shiro.web.mgt.DefaultWebSecurityManager; +import org.apache.shiro.mgt.SecurityManager; +import org.apache.shiro.web.servlet.SimpleCookie; +import org.apache.shiro.web.session.mgt.DefaultWebSessionManager; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.boot.autoconfigure.AutoConfigureAfter; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.DependsOn; +import org.springframework.core.annotation.Order; + +import javax.crypto.KeyGenerator; +import javax.crypto.SecretKey; +import javax.servlet.Filter; +import java.security.NoSuchAlgorithmException; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.Map; + +/** + * @Description : shiro权限配置 + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2018-10-13 18:25 + * @Modify: + **/ +@Configuration +@AutoConfigureAfter(RedisConfig.class) //2类配置,延后加载 +public class ShiroAuthConfiguration { + public static final Logger LOGGER = LoggerFactory.getLogger(ShiroAuthConfiguration.class); + + //三种登陆请求 + public static String USER_LOGIN_URI = "/login"; + public static String ADMIN_LOGIN_URI = "/adlogin"; + public static String SAADMIN_LOGIN_URI = "/salogin"; + + @Bean + public AdminAuthRealm adminAuthRealm(){ + return new AdminAuthRealm(); + } + + @Bean + public SaAuthRealm saAuthRealm(){ + return new SaAuthRealm(); + } + + @Bean + public UserAuthRealm userAuthRealm(){ + return new UserAuthRealm(); + } + + public Map supportRealmMap(){ + //支持的授权规则 + Map realms = new HashMap(); + realms.put(CommonEnumUtil.USER_TYPE.USER.getCode(),userAuthRealm()); + realms.put(CommonEnumUtil.USER_TYPE.ADMIN.getCode(),adminAuthRealm()); + realms.put(CommonEnumUtil.USER_TYPE.SA.getCode(),saAuthRealm()); + + return realms; + } + + @Bean + public ModularRealmAuthenticator modularRealmAuthenticator(){ + return new DefaultModularRealm(supportRealmMap()); + } + + @Bean + //@DependsOn("redisUtil") + public SecurityManager securityManager(){ + LOGGER.info("【shiro-加载securityManager】"); + DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager(); + securityManager.setAuthenticator(modularRealmAuthenticator()); + securityManager.setRealms(supportRealmMap().values()); + securityManager.setCacheManager(getEhCacheManage()); //缓存管理 + securityManager.setSessionManager(getSessionManage()); //会话管理 + //securityManager.setRememberMeManager(getRememberManager()); + return securityManager; + } + + /*@Bean + public CookieRememberMeManager getRememberManager(){ + //rememberme cookie加密的密钥 建议每个项目都不一样 默认AES算法 密钥长度(128 256 512 位),通过以下代码可以获取 + //KeyGenerator keygen = KeyGenerator.getInstance("AES"); + //SecretKey deskey = keygen.generateKey(); + //System.out.println(Base64.encodeToString(deskey.getEncoded())); + CookieRememberMeManager meManager = new CookieRememberMeManager(); + meManager.setCipherKey(Base64.decode("+vCeyY0qiyO1NdpOX9zX7w==")); + meManager.setCookie(rememberMeCookie()); + return meManager; + } + + *//** + * 获取CipherKey + *//* + public static void main(String[] args){ + KeyGenerator keygen = null; + try { + keygen = KeyGenerator.getInstance("AES"); + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + SecretKey deskey = keygen.generateKey(); + System.out.println(Base64.encodeToString(deskey.getEncoded())); + } + + @Bean + public SimpleCookie rememberMeCookie(){ + //这个参数是cookie的名称,对应前端的checkbox的name = rememberMe + SimpleCookie simpleCookie = new SimpleCookie("impp_remember_me"); + //如果httyOnly设置为true,则客户端不会暴露给客户端脚本代码,使用HttpOnly cookie有助于减少某些类型的跨站点脚本攻击; + simpleCookie.setHttpOnly(true); + //记住我cookie生效时间,默认30天 ,单位秒:60 * 60 * 24 * 30 + simpleCookie.setMaxAge(259200); + + return simpleCookie; + }*/ + + @Bean + public ShiroFilterFactoryBean shirFilter(SecurityManager securityManager) { + ShiroFilterFactoryBean factoryBean = new ShiroFilterFactoryBean(); + factoryBean.setSecurityManager(securityManager); + + Map filterMap = new HashMap(); + filterMap.put("user_filter", new UserFilter()); + filterMap.put("admin_filter", new AdminFilter()); + filterMap.put("saadmin_filter", new SaAdminFilter()); + factoryBean.setFilters(filterMap); + + Map filterChain = new LinkedHashMap(); + //不需要过滤的路径,直接通过 + filterChain.put(USER_LOGIN_URI, "anon"); + filterChain.put(ADMIN_LOGIN_URI, "anon"); + filterChain.put(SAADMIN_LOGIN_URI, "anon"); + factoryBean.setFilterChainDefinitionMap(filterChain); + + LOGGER.info("【shiro过滤】加载完成..."); + return factoryBean; + } + + /** + * 缓存管理 + * @return + */ + @Bean(name = "cacheShiroManager") + public CacheManager getEhCacheManage() { + LOGGER.info("【shiro-加载缓存cacheManager】"); + EhCacheManager em = new EhCacheManager(); + em.setCacheManagerConfigFile("classpath:cache_session.xml"); + return em; + } + + @Bean(name = "sessionManager") + public DefaultWebSessionManager getSessionManage() { + LOGGER.info("【shiro-加载sessionManager】"); + DefaultWebSessionManager sessionManager = new DefaultWebSessionManager(); + sessionManager.setGlobalSessionTimeout(1800000); + sessionManager.setSessionValidationScheduler(getExecutorServiceSessionValidationScheduler()); + sessionManager.setSessionValidationSchedulerEnabled(true); + sessionManager.setDeleteInvalidSessions(true); + sessionManager.setSessionIdCookieEnabled(true); + sessionManager.setSessionIdCookie(getSessionIdCookie()); + sessionManager.setSessionDAO(shiroSessionRedisDao()); + + // 可以添加session 创建、删除的监听器 + return sessionManager; + } + + @Bean + public ShiroSessionRedisDao shiroSessionRedisDao(){ + ShiroSessionRedisDao shiroSessionRedisDao = new ShiroSessionRedisDao(); + return shiroSessionRedisDao; + } + + /** + * 授权验证监听任务 + * @return + */ + @Bean(name = "sessionValidationScheduler") + public ExecutorServiceSessionValidationScheduler getExecutorServiceSessionValidationScheduler() { + LOGGER.info("【shiro-加载sessionValidationScheduler】"); + ExecutorServiceSessionValidationScheduler scheduler = new ExecutorServiceSessionValidationScheduler(); + scheduler.setInterval(900000); + return scheduler; + } + + @Bean(name = "sessionIdCookie") + public SimpleCookie getSessionIdCookie() { + LOGGER.info("【shiro-加载sessionIdCookie】"); + SimpleCookie cookie = new SimpleCookie("sid"); + cookie.setHttpOnly(true); + cookie.setMaxAge(-1); + return cookie; + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/configuration/i3PlusCoreConfig.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/configuration/i3PlusCoreConfig.java new file mode 100644 index 0000000..cf85915 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/configuration/i3PlusCoreConfig.java @@ -0,0 +1,21 @@ +package cn.estsh.i3plus.core.apiservice.configuration; + +import cn.estsh.i3plus.core.apiservice.listener.SysResourceBindleListener; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * @Description : 资源配置文件绑定 + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2018-10-12 18:41 + * @Modify: + **/ +@Configuration +public class i3PlusCoreConfig { + @Bean + //资源绑定监听 + public SysResourceBindleListener messageConvertListener(){ + return new SysResourceBindleListener(); + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoAuthController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoAuthController.java new file mode 100644 index 0000000..9949a18 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoAuthController.java @@ -0,0 +1,92 @@ +package cn.estsh.i3plus.core.apiservice.controller; + +import cn.estsh.i3plus.core.api.iservice.busi.ISystemUserService; +import cn.estsh.i3plus.platform.common.tool.EncryptTool; +import cn.estsh.i3plus.pojo.factory.bean.MachineFactory; +import cn.estsh.i3plus.pojo.model.busi.ResultBean; +import cn.estsh.impp.framework.boot.util.ImppRedis; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.io.UnsupportedEncodingException; +import java.security.NoSuchAlgorithmException; + +/** + * @Description : + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2018-10-13 18:17 + * @Modify: + **/ +@RestController +@Api(description="登陆授权demo") +public class DemoAuthController { + private static final Logger LOGGER = LoggerFactory.getLogger(DemoAuthController.class); + @Autowired + private ISystemUserService systemUserService; + /** + * 缓存 + */ + @Resource(name="redisUtil") + private ImppRedis imppRedis; + + @GetMapping(value="/login") + @ApiOperation(value="登陆",notes="登陆") + public ResultBean login(String loginName,String loginPwd,String languageCode){ + LOGGER.info("用户登陆:{},{},{}",loginName,loginPwd,languageCode); + try { + systemUserService.userLogin(loginName,EncryptTool.hexMD5(loginPwd),languageCode); + + return new ResultBean(true,""); + } catch (Exception e) { + e.printStackTrace(); + return new ResultBean(true,""); + } + } + + @GetMapping(value="/adlogin") + @ApiOperation(value="管理员登陆",notes="管理员登陆") + public ResultBean adlogin(String loginName,String loginPwd,String languageCode){ + LOGGER.info("管理员登陆:{},{},{}",loginName,loginPwd,languageCode); + + try { + systemUserService.adminLogin(loginName,EncryptTool.hexMD5(loginPwd),languageCode); + + return new ResultBean(true,""); + } catch (Exception e) { + e.printStackTrace(); + return new ResultBean(true,""); + } + } + + @GetMapping(value="/operate/index") + @ApiOperation(value="用户方法",notes="") + public ResultBean userIndex(){ + LOGGER.info("用户方法"); + + return new ResultBean(true,""); + } + + @GetMapping(value="/manager/index") + @ApiOperation(value="管理员方法",notes="") + public ResultBean adminIndex(){ + LOGGER.info("管理员方法"); + + return new ResultBean(true,""); + } + + @GetMapping(value="/samanager/index") + @ApiOperation(value="超级管理员方法",notes="") + public ResultBean saIndex(){ + LOGGER.info("超级管理员方法"); + + return new ResultBean(true,""); + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoController.java new file mode 100644 index 0000000..9fb17c6 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoController.java @@ -0,0 +1,67 @@ +package cn.estsh.i3plus.core.apiservice.controller; + +import cn.estsh.impp.framework.boot.fastdfs.FastDFSClient; +import io.swagger.annotations.Api; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +/** + * @Description : + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2018-09-28 11:20 + * @Modify: + **/ +@Controller +@RequestMapping("/upload_demo") +@Api(description="复杂对象服务demo") +public class DemoController { + private static final Logger LOGGER = LoggerFactory.getLogger(DemoController.class); + + /********************** 文件上传 ***********************/ + + @Autowired + private FastDFSClient dfsClient; + + @GetMapping("/") + public String index() { + return "/index"; + } + + @GetMapping("/index") + public String indexAgain() { + return "/index"; + } + + @GetMapping("/upfile") + public String indexUpload() { + return "/upload"; + } + + @GetMapping("/uploadStatus") + public String uploadStatus() { + return "/upload_status"; + } + + @PostMapping("/upload") + public String singleFileUpload(@RequestParam("file") MultipartFile file, RedirectAttributes redirectAttributes) { + if (file.isEmpty()) { + redirectAttributes.addFlashAttribute("message", "请选择需要上传的文件。"); + return "redirect:/upload_demo/uploadStatus"; + } + try { + // Get the file and save it somewhere + String path = dfsClient.saveFile(file); + redirectAttributes.addFlashAttribute("message","文件上传成功 '" + file.getOriginalFilename() + "'"); + redirectAttributes.addFlashAttribute("path","url路径 '" + path + "'"); + } catch (Exception e) { + LOGGER.error("upload file failed",e); + } + return "redirect:/upload_demo/uploadStatus"; + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoRestController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoRestController.java new file mode 100644 index 0000000..dfb8f86 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoRestController.java @@ -0,0 +1,243 @@ +package cn.estsh.i3plus.core.apiservice.controller; + +import cn.estsh.i3plus.core.apiservice.mq.I3CoreQueue; +import cn.estsh.i3plus.platform.common.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.factory.bean.MachineFactory; +import cn.estsh.i3plus.pojo.model.busi.ResultBean; +import cn.estsh.impp.framework.base.BaseImppException; +import cn.estsh.impp.framework.boot.exception.ImppBusiException; +import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; +import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum; +import cn.estsh.impp.framework.boot.fastdfs.FastDFSClient; +import cn.estsh.impp.framework.boot.quartz.ScheduleTool; +import cn.estsh.impp.framework.boot.quartz.TaskInfo; +import cn.estsh.impp.framework.boot.util.ImppRedis; +import com.rabbitmq.client.Channel; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.amqp.core.Message; +import org.springframework.amqp.rabbit.connection.CachingConnectionFactory; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.MessageSource; +import org.springframework.context.i18n.LocaleContextHolder; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.List; +import java.util.Locale; +import java.util.concurrent.TimeoutException; + +/** + * @Description : + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2018-09-26 10:34 + * @Modify: + **/ +@RestController +@RequestMapping("/demo") +@Api(description="复杂对象服务demo") +public class DemoRestController { + private static final Logger LOGGER = LoggerFactory.getLogger(DemoRestController.class); + + /** + * 缓存 + */ + @Resource(name="redisUtil") + private ImppRedis imppRedis; + + /** + * rabbitMQ队列 + */ + //@Autowired + //private AmqpTemplate rabbitTemplate; + @Autowired + private RabbitTemplate rabbitTemplate; + + /** + * mq工厂,用于生产ack消息 + */ + @Autowired + private CachingConnectionFactory mqFactory; + + @GetMapping(value="/put-cache") + @ApiOperation(value="缓存",notes="放入数据") + public ResultBean putCache(){ + //放入缓存 + imppRedis.putObject("machineFactory",new MachineFactory("111","nnnn")); + imppRedis.putObject("wms","123123123"); + + return new ResultBean(true,"已放入缓存"); + } + + @GetMapping(value="/get-cache") + @ApiOperation(value="缓存",notes="获取数据") + public ResultBean getCache(){ + MachineFactory mf = (MachineFactory) imppRedis.getObject("machineFactory"); + System.out.println("1===== " + mf); + System.out.println("2===== " + imppRedis.getObject("wms")); + + return new ResultBean(true,mf); + } + + @GetMapping(value="/send-mq") + @ApiOperation(value="队列",notes="发送") + public ResultBean sendMQ(String data){ + String context = "hello : " + data; + + System.out.println("发送DEMO_STR_QUEUE数据 : " + context); + this.rabbitTemplate.convertAndSend(I3CoreQueue.DEMO_STR_QUEUE, context); + + System.out.println("发送DEMO_HANDLE_QUEUE数据 : " + context); + this.rabbitTemplate.convertAndSend(I3CoreQueue.DEMO_HANDLE_QUEUE, context); + + System.out.println("发送Object数据 : " + context); + this.rabbitTemplate.convertAndSend(I3CoreQueue.DEMO_OBJ_QUEUE, new MachineFactory("111mq","rabbit")); + + return new ResultBean(true,"操作成功"); + } + + @GetMapping(value="/get-mq-handle") + @ApiOperation(value="手动获取队列",notes="接收队列") + public ResultBean getHandleMQ(){ + Object data = this.rabbitTemplate.receiveAndConvert(I3CoreQueue.DEMO_HANDLE_QUEUE); + if(data != null) { + LOGGER.info("获取队列数据:" + data); + } + + Object message = this.rabbitTemplate.receiveAndConvert(I3CoreQueue.DEMO_STR_QUEUE); + if(message != null){ + LOGGER.info("获取str数据:" + data); + } + + message = this.rabbitTemplate.receiveAndConvert(I3CoreQueue.DEMO_OBJ_QUEUE); + if(message != null){ + LOGGER.info("获取obj数据:" + data); + } + + return new ResultBean(true,""); + } + + /** + * 有确认或返回的队列 + * @param type + * @param data + * @return + * @throws IOException + * @throws TimeoutException + */ + @GetMapping(value="/send-returnmsg") + @ApiOperation(value="队列返回信息",notes="发送") + public ResultBean sendReturnMQ(int type,String data) throws IOException, TimeoutException { + if(type == 1) { + System.out.println("===== in confirm ========"); + rabbitTemplate.setConfirmCallback((correlationData, ack, cause) -> { + System.out.println("===ReturnSenderDemo ack==="+ack); + if (ack) { + System.out.println("ReturnSenderDemo:消息发送成功 "); + } else { + System.out.println("ReturnSenderDemo:" + cause + correlationData.toString()); + } + }); + }else{ + System.out.println("===== in return ========"); + rabbitTemplate.setReturnCallback((Message message, int i, String s, String s1, String s2) -> { + System.out.println("===ConfirmSenderDemo ack==="+message); + System.out.println("i=" + i + ",s=" + s + ",s1=" + s1 + ",s2=" + s2); + }); + } + String returnMsg = (String) rabbitTemplate.convertSendAndReceive(I3CoreQueue.DEMO_RETURN_QUEUE, data); + System.out.println("===返回数据==="+returnMsg); + return new ResultBean(true,"操作成功"); + } + + /** + * 如果需要进行ack操作,需要添加RabbitListener方法 + * @param data + * @return + * @throws IOException + * @throws TimeoutException + */ + @GetMapping(value="/send-ackmsg") + @ApiOperation(value="ack队列",notes="发送") + public ResultBean sendAckMQ(String data) throws IOException, TimeoutException { + System.out.println("发送ack数据 : " + data); + this.rabbitTemplate.convertAndSend(I3CoreQueue.DEMO_ACK_QUEUE, data); + + return new ResultBean(true,"操作成功"); + } + + @GetMapping(value="/get-ackmsg") + @ApiOperation(value="getack队列",notes="接收") + public ResultBean getAckMQ() throws IOException, TimeoutException { + Channel channel = this.rabbitTemplate.getConnectionFactory().createConnection().createChannel(false); + System.out.println("1====" + channel); + String str = (String) rabbitTemplate.receiveAndConvert(I3CoreQueue.DEMO_ACK_QUEUE); + System.out.println("2=============="+str); + + Message message = rabbitTemplate.receive(I3CoreQueue.DEMO_ACK_QUEUE); + System.out.println("3=============="+message); + try { + /*String data = (String) this.rabbitTemplate.receiveAndConvert(I3CoreQueue.DEMO_ACK_QUEUE); + System.out.println("【client】数据接收成功:" + data); + + if("ack".equals(data)){ + System.out.println("【client】数据抛出异常"); + throw new RuntimeException("【队列抛出异常】" + data); + }*/ + + String data = (String) this.rabbitTemplate.receiveAndConvert(I3CoreQueue.DEMO_ACK_QUEUE); + System.out.println("【client】数据接收成功:" + data); + + if("ackack".equals(data)){ + System.out.println("【client】数据抛出异常"); + throw new RuntimeException("【队列抛出异常】" + data); + } + + //在队列删掉 不会再发了 否则消息服务器以为这条消息没处理掉 后续还会在发 + channel.basicAck(message.getMessageProperties().getDeliveryTag(),false); + } catch (IOException e) { + e.printStackTrace(); + //丢弃这条消息 + // channel.basicNack(message.getMessageProperties().getDeliveryTag(), false,false); + // System.out.println("receiver fail"); + try { + channel.basicNack(message.getMessageProperties().getDeliveryTag(),false,true); + } catch (IOException e1) { + e1.printStackTrace(); + } + } + return new ResultBean(true,"操作成功"); + } + + @GetMapping(value="/exception-demo") + @ApiOperation(value="异常demo",notes="异常demo") + public ResultBean exceptionDemp() throws IOException, TimeoutException { + String data = "true"; + + if("true".equals(data)) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.WMS.getCode()) + .setErrorCode(ImppExceptionEnum.BUSINESS_EXCEPTION_DATA_ERROR.getCode()) + .setErrorDetail("aaa操作数据出错") + .setErrorSolution("检查数据完整性") + .build(); + } + return new ResultBean(true,"操作成功"); + } + + @GetMapping(value="/international") + @ApiOperation(value="国际化处理",notes="资源配置文件及国际化") + public ResultBean international() { + Locale locale = LocaleContextHolder.getLocale(); + System.out.println(locale.getLanguage() + " " + locale.getCountry()); + + return new ResultBean(true,"操作成功 : " + locale.getLanguage() + " " + locale.getCountry()); + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoScheduleController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoScheduleController.java new file mode 100644 index 0000000..702471d --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoScheduleController.java @@ -0,0 +1,113 @@ +package cn.estsh.i3plus.core.apiservice.controller; + +import cn.estsh.i3plus.core.apiservice.mq.I3CoreQueue; +import cn.estsh.i3plus.pojo.factory.bean.MachineFactory; +import cn.estsh.i3plus.pojo.model.busi.ResultBean; +import cn.estsh.impp.framework.boot.quartz.ScheduleTool; +import cn.estsh.impp.framework.boot.quartz.TaskInfo; +import cn.estsh.impp.framework.boot.util.ImppRedis; +import com.rabbitmq.client.Channel; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.amqp.core.Message; +import org.springframework.amqp.rabbit.connection.CachingConnectionFactory; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.io.IOException; +import java.util.List; +import java.util.concurrent.TimeoutException; + +/** + * @Description : + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2018-09-26 10:34 + * @Modify: + **/ +@RestController +@RequestMapping("/schedule") +@Api(description="定时任务demo") +public class DemoScheduleController { + private static final Logger LOGGER = LoggerFactory.getLogger(DemoScheduleController.class); + + /************ 定时任务demo *********/ + @Autowired + private ScheduleTool scheduleTool; + + @GetMapping(value="/list-task") + @ApiOperation(value="查询定时任务",notes="查询所有定时任务") + public ResultBean listTask(){ + List taskList = scheduleTool.queryJobList(); + for(TaskInfo ti : taskList){ + System.out.println(ti); + } + + return new ResultBean(true,""); + } + + @GetMapping(value="/add-task") + @ApiOperation(value="添加定时任务",notes="添加定时任务") + public ResultBean addTask(String packageName,String className,String jobName,String jobGroup,String cronExpression){ + //String packageName = "cn.estsh.impp.framework.boot.quartz.job"; + //String className = "ImppJob"; + + scheduleTool.addJob(new TaskInfo(packageName,className,jobName,jobGroup,cronExpression,"测试任务")); + + return new ResultBean(true,""); + } + + @GetMapping(value="/delete-task") + @ApiOperation(value="删除定时任务",notes="删除定时任务") + public ResultBean deleteTask(String jobName,String jobGroup){ + scheduleTool.deleteJob(jobName,jobGroup); + + return new ResultBean(true,""); + } + + @GetMapping(value="/pause-task") + @ApiOperation(value="暂停定时任务",notes="暂停定时任务") + public ResultBean pauseJob(String jobName,String jobGroup){ + scheduleTool.pauseJob(jobName,jobGroup); + + return new ResultBean(true,""); + } + + @GetMapping(value="/resume-task") + @ApiOperation(value="继续定时任务",notes="继续定时任务") + public ResultBean resumeJob(String jobName,String jobGroup){ + scheduleTool.resumeJob(jobName,jobGroup); + + return new ResultBean(true,""); + } + + @GetMapping(value="/exceute-task") + @ApiOperation(value="立即执行定时任务",notes="立即执行定时任务") + public ResultBean excuteJob(String jobName,String jobGroup){ + scheduleTool.executeJob(jobName,jobGroup); + + return new ResultBean(true,""); + } + + @GetMapping(value="/stand-by-schedule") + @ApiOperation(value="定时器待机",notes="定时器待机") + public ResultBean restartJob(String jobName,String jobGroup){ + scheduleTool.standBySchedule(); + + return new ResultBean(true,""); + } + + + @GetMapping(value="/start-schedule") + @ApiOperation(value="启动定时器",notes="启动定时器") + public ResultBean startSchedule(String jobName,String jobGroup){ + scheduleTool.startSchedule(); + + return new ResultBean(true,""); + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoSystemController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoSystemController.java new file mode 100644 index 0000000..e59d0f3 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoSystemController.java @@ -0,0 +1,99 @@ +package cn.estsh.i3plus.core.apiservice.controller; + +import cn.estsh.i3plus.core.api.iservice.busi.ISystemResourceService; +import cn.estsh.i3plus.core.apiservice.mq.I3CoreQueue; +import cn.estsh.i3plus.platform.common.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.factory.bean.MachineFactory; +import cn.estsh.i3plus.pojo.model.busi.ResultBean; +import cn.estsh.i3plus.pojo.platform.bean.SysLocaleLanguage; +import cn.estsh.i3plus.pojo.platform.bean.SysLocaleResource; +import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; +import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum; +import cn.estsh.impp.framework.boot.util.ImppRedis; +import com.rabbitmq.client.Channel; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.amqp.core.Message; +import org.springframework.amqp.rabbit.connection.CachingConnectionFactory; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.i18n.LocaleContextHolder; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.Locale; +import java.util.concurrent.TimeoutException; + +/** + * @Description : + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2018-09-26 10:34 + * @Modify: + **/ +@RestController +@RequestMapping("/demo-system") +@Api(description="系统服务demo") +public class DemoSystemController { + private static final Logger LOGGER = LoggerFactory.getLogger(DemoSystemController.class); + + /** + * 缓存 + */ + @Resource(name="redisUtil") + private ImppRedis imppRedis; + + /** + * rabbitMQ队列 + */ + @Autowired + private RabbitTemplate rabbitTemplate; + + @Autowired + private ISystemResourceService systemResourceService; + + @PutMapping(value="/addlanguage") + @ApiOperation(value="添加语言") + public ResultBean addlanguage(SysLocaleLanguage lang) { + systemResourceService.saveSysLocaleLanguage(lang); + return new ResultBean(true,"操作成功"); + } + + @PutMapping(value="/listlang") + @ApiOperation(value="查询语言") + public ResultBean listlang(SysLocaleLanguage lang) { + return new ResultBean(true,"操作成功",systemResourceService.listSysLocaleLanguage(lang)); + } + + @PutMapping(value="/addres") + @ApiOperation(value="添加资源") + public ResultBean addres(SysLocaleResource res) { + systemResourceService.saveSysLocaleResource(res); + return new ResultBean(true,"操作成功"); + } + + @PutMapping(value="/listres") + @ApiOperation(value="查询资源") + public ResultBean listres(SysLocaleResource res) { + return new ResultBean(true,"操作成功",systemResourceService.listSysLocaleResource(res)); + } + + @GetMapping(value="/getlocaleresource") + @ApiOperation(value="语言资源匹配",notes="资源配置文件及国际化") + public ResultBean getlocaleresource(int resourceType,String langCode,String resKey) { + Locale locale = LocaleContextHolder.getLocale(); + System.out.println("当前语言:"+locale.getLanguage() + ",国家:" + locale.getCountry()); + + SysLocaleResource res = systemResourceService.getSysLocaleResourceByLanguage(resourceType,langCode,resKey); + System.out.println("获取的资源:" + res); + + return new ResultBean(true,"操作成功",res); + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/SimpleController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/SimpleController.java new file mode 100644 index 0000000..0c5ea4b --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/SimpleController.java @@ -0,0 +1,81 @@ +package cn.estsh.i3plus.core.apiservice.controller.base; + +import cn.estsh.i3plus.core.api.iservice.base.IDataSimpleService; +import cn.estsh.i3plus.pojo.factory.bean.MachineFactory; +import cn.estsh.i3plus.pojo.model.busi.ResultBean; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @Description : + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2018-09-05 16:40 + * @Modify: + **/ +@RestController +@RequestMapping("/simple-service") +@Api(tags="SimpleController",description="简单服务demo") +public class SimpleController { + private Logger LOGGER = LoggerFactory.getLogger(this.getClass()); + + @Autowired + private IDataSimpleService dataSimpleService; + + @PutMapping(value="/insert") + @ApiOperation(value="service服务",notes="返回内容添加service") + public ResultBean insertFactory(@RequestParam("name")String name, @RequestParam("code")String code){ + MachineFactory machineFactory = new MachineFactory(); + machineFactory.setFactoryName(name); + machineFactory.setFactoryCode(code); + dataSimpleService.saveMachineFactory(machineFactory); + + return new ResultBean(true,"工厂已保存"); + } + + @GetMapping(value = "/find-by-factory-name") + @ApiOperation(value="查询工厂",notes="通过工厂名称查询工厂") + public ResultBean findMachineFactoryByFactoryName(String factoryName){ + List factoryList = dataSimpleService.findMachineFactoryByFactoryName(factoryName); + + return new ResultBean(true,factoryList); + } + + @GetMapping(value = "/find-by-factory-code") + @ApiOperation(value="查询工厂",notes="通过工厂代码查询工厂") + public ResultBean findMachineFactoryByFactoryCode(String factoryCode){ + List factoryList = dataSimpleService.findMachineFactoryByFactoryCode(factoryCode); + + return new ResultBean(true,factoryList); + } + + @GetMapping(value = "/find-by-factory-special") + @ApiOperation(value="特殊查询",notes="通过工厂代码查询工厂") + public ResultBean findMachineFactorySpecial(){ + List factoryList = dataSimpleService.findMachineFactorySpecial(); + + return new ResultBean(true,factoryList); + } + + @PutMapping(value="/update") + @ApiOperation(value="service服务",notes="返回内容添加service") + public ResultBean updateFactory(long id, String name){ + dataSimpleService.updateMachineFactoryNameById(id,name); + + return new ResultBean(true,"工厂已修改"); + } + + @DeleteMapping(value="/delete") + @ApiOperation(value="service服务",notes="返回内容添加service") + public ResultBean deleteMachineFactoryById(long id){ + dataSimpleService.deleteMachineFactoryById(id); + + return new ResultBean(true,"工厂已删除"); + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/FactoryStoreController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/FactoryStoreController.java new file mode 100644 index 0000000..c509afe --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/FactoryStoreController.java @@ -0,0 +1,54 @@ +package cn.estsh.i3plus.core.apiservice.controller.busi; + +import cn.estsh.i3plus.core.api.iservice.busi.IDataMoreService; +import cn.estsh.i3plus.pojo.model.busi.ResultBean; +import cn.estsh.i3plus.pojo.wms.bean.FactoryStore; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.websocket.server.PathParam; +import java.util.List; + +/** + * @Description : + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2018-09-05 16:48 + * @Modify: + **/ +@RestController +@RequestMapping("/factory-store") +@Api(description="复杂对象服务demo") +public class FactoryStoreController { + private Logger LOGGER = LoggerFactory.getLogger(this.getClass()); + + @Autowired + private IDataMoreService dataMoreService; + + @PutMapping(value="/insert/{name}/{code}") + @ApiOperation(value="service服务",notes="返回内容添加service") + public ResultBean insertFactory(@PathParam("name")String name,@PathParam("code")String code){ + FactoryStore fs = new FactoryStore(); + fs.setStoreName(name); + fs.setStoreCode(code); + dataMoreService.insertFactory(fs); + + return new ResultBean(true,"工厂已保存"); + } + + + @GetMapping(value="/list") + @ApiOperation(value="查询服务",notes="返回列表") + public ResultBean list(){ + List fsList = dataMoreService.listFactoryStoreMore(); + + return new ResultBean(true,"查询结果:" + fsList.size(),fsList); + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/websocket/DemoWebSocket.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/websocket/DemoWebSocket.java new file mode 100644 index 0000000..47237d0 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/websocket/DemoWebSocket.java @@ -0,0 +1,116 @@ +package cn.estsh.i3plus.core.apiservice.controller.websocket; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; + +import javax.websocket.OnClose; +import javax.websocket.OnMessage; +import javax.websocket.OnOpen; +import javax.websocket.Session; +import javax.websocket.server.PathParam; +import javax.websocket.server.ServerEndpoint; +import java.io.IOException; +import java.util.concurrent.CopyOnWriteArraySet; + +/** + * @Description : + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2018-09-11 12:32 + * @Modify: + **/ +@ServerEndpoint(value="/demo_websocket/{userName}") +@Component +public class DemoWebSocket { + private static final Logger LOGGER = LoggerFactory.getLogger(DemoWebSocket.class); + + //在线连接数 + private static int onlineCount = 0; + + //concurrent线程安全集合,存放客户端websocket对象 + private static CopyOnWriteArraySet webSocketSet = new CopyOnWriteArraySet(); + + //websocket会话 + private Session session; + + @OnOpen + public void onOpen(@PathParam("userName")String userName, Session session){ + this.session = session; + webSocketSet.add(this); //加入set中 + addOnlineCount(); //在线数加1 + LOGGER.info("{}加入!当前在线人数为{}",userName,getOnlineCount()); + try { + sendMessage(userName + "加入!当前在线人数为" + getOnlineCount()); + } catch (IOException e) { + LOGGER.info("IO异常"); + } + } + + /** + * 连接关闭调用的方法 + */ + @OnClose + public void onClose() { + webSocketSet.remove(this); //从set中删除 + subOnlineCount(); //在线数减1 + LOGGER.info("有一连接关闭!当前在线人数为" + getOnlineCount()); + } + + /** + * 收到客户端消息后调用的方法 + * + * @param message 客户端发送过来的消息*/ + @OnMessage + public void onMessage(String message, Session session) { + LOGGER.info("来自客户端的消息:" + message); + + //群发消息 + for (DemoWebSocket item : webSocketSet) { + try { + item.sendMessage(message); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + /** + * 发生错误时调用 + * @OnError + */ + public void onError(Session session, Throwable error) { + LOGGER.info("发生错误"); + error.printStackTrace(); + } + + public void sendMessage(String message) throws IOException { + this.session.getBasicRemote().sendText(message); + //this.session.getAsyncRemote().sendText(message); + } + + /** + * 群发自定义消息 + * */ + public static void sendInfo(String message) throws IOException { + for (DemoWebSocket item : webSocketSet) { + try { + item.sendMessage(message); + } catch (IOException e) { + continue; + } + } + } + + public static synchronized int getOnlineCount() { + return onlineCount; + } + + public static synchronized void addOnlineCount() { + DemoWebSocket.onlineCount++; + } + + public static synchronized void subOnlineCount() { + DemoWebSocket.onlineCount--; + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/dao/IFactoryStoreDao.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/dao/IFactoryStoreDao.java new file mode 100644 index 0000000..18c2e2c --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/dao/IFactoryStoreDao.java @@ -0,0 +1,19 @@ +package cn.estsh.i3plus.core.apiservice.dao; + +import cn.estsh.i3plus.pojo.wms.bean.FactoryStore; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * @Description : + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2018-09-12 14:55 + * @Modify: + **/ +@Repository +public interface IFactoryStoreDao { + + List listFactoryStore(); +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/dao/IMachineFactoryDao.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/dao/IMachineFactoryDao.java new file mode 100644 index 0000000..abb4d11 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/dao/IMachineFactoryDao.java @@ -0,0 +1,44 @@ +package cn.estsh.i3plus.core.apiservice.dao; + +import cn.estsh.i3plus.pojo.factory.bean.MachineFactory; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.query.Param; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * @Description : 继承了crudrepository,包含了常用hql方法 + * @Reference : 如果需要执行原生sql,则添加 @Query(sql,nativeQuery=true) + * @Author : alwaysfrin + * @CreateDate : 2018-09-05 16:41 + * @Modify: + **/ +@Repository +public interface IMachineFactoryDao extends CrudRepository { + + //此处findBy开头,会自动根据属性名进行查询 + List findByFactoryName(String factoryName); + + @Modifying + @Query("update MachineFactory mf set mf.factoryName = :factoryName where mf.id = :id") + void updateMachineFactoryNameById(long id, String factoryName); + + @Modifying + @Query("delete from MachineFactory mf where id = :id") + void deleteMachineFactoryById(@Param("id") long id); + + //按位查询 + @Query("select mf from MachineFactory mf where factoryName = ?1") + List findMachineFactoryByFactoryName(String factoryName); + + //参数匹配 + @Query("from MachineFactory mf where mf.factoryCode = :factoryCode") + List findMachineFactoryByFactoryCode(@Param("factoryCode") String factoryCode); + + //自定义Hql + @Query("from MachineFactory mf where mf.createDatetime like '2018-01-01%'") + List findMachineFactorySpecial(); +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/daoimpl/FactoryStoreDaoImpl.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/daoimpl/FactoryStoreDaoImpl.java new file mode 100644 index 0000000..cb3a968 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/daoimpl/FactoryStoreDaoImpl.java @@ -0,0 +1,27 @@ +package cn.estsh.i3plus.core.apiservice.daoimpl; + +import cn.estsh.i3plus.core.apiservice.dao.IFactoryStoreDao; +import cn.estsh.i3plus.pojo.wms.bean.FactoryStore; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.persistence.EntityManager; +import java.util.List; + +/** + * @Description : 实现类留做备用demo,实际开发中并不需要 + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2018-09-12 15:35 + * @Modify: + **/ +@Service +public class FactoryStoreDaoImpl implements IFactoryStoreDao { + + @Autowired + private EntityManager entityManager; + + public List listFactoryStore(){ + return (List) entityManager.createQuery("from FactoryStore").getResultList(); + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/listener/SysResourceBindleListener.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/listener/SysResourceBindleListener.java new file mode 100644 index 0000000..52d2248 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/listener/SysResourceBindleListener.java @@ -0,0 +1,122 @@ +package cn.estsh.i3plus.core.apiservice.listener; + +import cn.estsh.i3plus.core.api.iservice.busi.ISystemResourceService; +import cn.estsh.i3plus.core.apiservice.util.ConstWords; +import cn.estsh.i3plus.platform.common.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.platform.bean.SysLocaleLanguage; +import cn.estsh.i3plus.pojo.platform.bean.SysLocaleResource; +import cn.estsh.impp.framework.boot.configuration.SwaggerConfig; +import cn.estsh.impp.framework.boot.util.ImppRedis; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationListener; +import org.springframework.context.annotation.Bean; +import org.springframework.context.event.ContextRefreshedEvent; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; + +/** + * @Description : 初始化资源配置 + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2018-10-12 18:43 + * @Modify: + **/ +public class SysResourceBindleListener implements ApplicationListener { + private static final Logger LOGGER = LoggerFactory.getLogger(SysResourceBindleListener.class); + + @Autowired + public ISystemResourceService systemResourceService; + + @Resource(name="redisUtil") + private ImppRedis imppRedis; + + @Override + public void onApplicationEvent(ContextRefreshedEvent contextRefreshedEvent) { + List langList = systemResourceService.listSysLocaleLanguage(null); + LOGGER.info("【加载平台资源】共有{}种语言。",langList.size()); + + List resourceList = null; + SysLocaleResource resource = null; + //模块集合 + HashMap> langModoleMap = new HashMap(); + //功能集合 + HashMap> langMethodMap = new HashMap(); + //按钮集合 + HashMap> langBtnMap = new HashMap(); + //信息集合 + HashMap> langMsgMap = new HashMap(); + //资源集合 + HashMap resMap; + + /************** 加载国际化 *************/ + for(SysLocaleLanguage lang : langList) { + + /************** 加载模块 *************/ + resource = new SysLocaleResource(); + resource.setResourceType(CommonEnumUtil.SYS_LOCALE_RESOURCE_TYPE.MODULE.getValue()); + resource.setLanguageCode(lang.getLanguageCode()); + resourceList = systemResourceService.listSysLocaleResource(resource); + + LOGGER.info("【{}-{},{}】共有{}个资源。",CommonEnumUtil.SYS_LOCALE_RESOURCE_TYPE.MODULE.getDescription(), + lang.getLanguageName(),lang.getLanguageCode(),resourceList.size()); + resMap = new HashMap(); + for(SysLocaleResource res : resourceList){ + resMap.put(res.getResourceKey(),res.getResourceValue()); + } + langModoleMap.put(lang.getLanguageCode(),resMap); + + /************** 加载功能 *************/ + resource = new SysLocaleResource(); + resource.setResourceType(CommonEnumUtil.SYS_LOCALE_RESOURCE_TYPE.METHOD.getValue()); + resource.setLanguageCode(lang.getLanguageCode()); + resourceList = systemResourceService.listSysLocaleResource(resource); + + LOGGER.info("【{}-{},{}】共有{}个资源。",CommonEnumUtil.SYS_LOCALE_RESOURCE_TYPE.METHOD.getDescription(), + lang.getLanguageName(),lang.getLanguageCode(),resourceList.size()); + resMap = new HashMap(); + for(SysLocaleResource res : resourceList){ + resMap.put(res.getResourceKey(),res.getResourceValue()); + } + langMethodMap.put(lang.getLanguageCode(),resMap); + + /************** 加载按钮 *************/ + resource = new SysLocaleResource(); + resource.setResourceType(CommonEnumUtil.SYS_LOCALE_RESOURCE_TYPE.BUTTON.getValue()); + resource.setLanguageCode(lang.getLanguageCode()); + resourceList = systemResourceService.listSysLocaleResource(resource); + + LOGGER.info("【{}-{},{}】共有{}个资源。",CommonEnumUtil.SYS_LOCALE_RESOURCE_TYPE.BUTTON.getDescription(), + lang.getLanguageName(),lang.getLanguageCode(),resourceList.size()); + resMap = new HashMap(); + for(SysLocaleResource res : resourceList){ + resMap.put(res.getResourceKey(),res.getResourceValue()); + } + langBtnMap.put(lang.getLanguageCode(),resMap); + + /************** 加载资源 *************/ + resource = new SysLocaleResource(); + resource.setResourceType(CommonEnumUtil.SYS_LOCALE_RESOURCE_TYPE.COMMON.getValue()); + resource.setLanguageCode(lang.getLanguageCode()); + resourceList = systemResourceService.listSysLocaleResource(resource); + + LOGGER.info("【{}-{},{}】共有{}个资源。",CommonEnumUtil.SYS_LOCALE_RESOURCE_TYPE.COMMON.getDescription(), + lang.getLanguageName(),lang.getLanguageCode(),resourceList.size()); + resMap = new HashMap(); + for(SysLocaleResource res : resourceList){ + resMap.put(res.getResourceKey(),res.getResourceValue()); + } + langMsgMap.put(lang.getLanguageCode(),resMap); + } + + imppRedis.putHashMap(ConstWords.PLAT_MODULE_PREX,langModoleMap); + imppRedis.putHashMap(ConstWords.PLAT_MODULE_METHOD_PREX,langMethodMap); + imppRedis.putHashMap(ConstWords.PLAT_MODULE_BUTTON_PREX,langBtnMap); + imppRedis.putHashMap(ConstWords.LANGUAGE_CONVERT_PREX,langMsgMap); + + LOGGER.info("【资源配置文件已全部加载】"); + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/I3CoreQueue.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/I3CoreQueue.java new file mode 100644 index 0000000..708cbb0 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/I3CoreQueue.java @@ -0,0 +1,59 @@ +package cn.estsh.i3plus.core.apiservice.mq; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.amqp.core.Queue; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * @Description : wms队列 + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2018-09-26 16:57 + * @Modify: + **/ +@Configuration +public class I3CoreQueue { + private static final Logger LOGGER = LoggerFactory.getLogger(I3CoreQueue.class); + + public static final String DEMO_STR_QUEUE = "demo_str_queue"; + + public static final String DEMO_OBJ_QUEUE = "demo_obj_queue"; + + public static final String DEMO_HANDLE_QUEUE = "demo_handle_queue"; + + public static final String DEMO_ACK_QUEUE = "ack_queue"; + + public static final String DEMO_RETURN_QUEUE = "return_queue"; + + @Bean + public Queue getStrQueue() { + LOGGER.info("【DEMO_STR_QUEUE队列】"); + return new Queue(DEMO_STR_QUEUE); + } + + @Bean + public Queue getObjQueue() throws Exception { + LOGGER.info("【DEMO_OBJ_QUEUE队列】"); + return new Queue(DEMO_OBJ_QUEUE); + } + + @Bean + public Queue getHandleQueue() throws Exception { + LOGGER.info("【DEMO_HANDLE_QUEUE队列】"); + return new Queue(DEMO_HANDLE_QUEUE); + } + + @Bean + public Queue getReturnQueue() throws Exception { + LOGGER.info("【DEMO_RETURN_QUEUE队列】"); + return new Queue(DEMO_RETURN_QUEUE); + } + + @Bean + public Queue getAckQueue() throws Exception { + LOGGER.info("【DEMO_ACK_QUEUE队列】"); + return new Queue(DEMO_ACK_QUEUE); + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/I3CoreQueueReceiver.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/I3CoreQueueReceiver.java new file mode 100644 index 0000000..b89469a --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/I3CoreQueueReceiver.java @@ -0,0 +1,84 @@ +package cn.estsh.i3plus.core.apiservice.mq; + +import com.rabbitmq.client.Channel; +import org.springframework.amqp.core.Message; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +import java.io.IOException; + +/** + * @Description : 获取队列信息后处理 + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2018-09-26 10:40 + * @Modify: + **/ +@Component +public class I3CoreQueueReceiver { + + /*@RabbitListener(queues = I3CoreQueue.DEMO_STR_QUEUE) + public void getObjQueue(String data) { + System.out.println("接收数据 : " + data.toString()); + } + + @RabbitListener(queues = I3CoreQueue.DEMO_OBJ_QUEUE) + public void getStrQueue(MachineFactory data) { + System.out.println("强转对象:" + data); + }*/ + + @RabbitListener(queues = I3CoreQueue.DEMO_RETURN_QUEUE) + public Message processReturn(String data, Channel channel, Message message) { + try { + System.out.println("【client】数据接收成功:" + data); + Thread.sleep(1000); + + //告诉服务器收到这条消息 已经被我消费了 可以在队列删掉 这样以后就不会再发了 否则消息服务器以为这条消息没处理掉 后续还会在发 + //消息的标识,false只确认当前一个消息收到,true确认所有consumer获得的消息 + + channel.basicAck(message.getMessageProperties().getDeliveryTag(),false); + } catch (Exception e) { + System.out.println("出现异常:" + e.getMessage()); + // 错误反馈 + // val1 = 是否批量.true:将一次性拒绝所有小于deliveryTag的消息。 + // val2 = 被拒绝的是否重新列入队列 + try { + channel.basicNack(message.getMessageProperties().getDeliveryTag(), false,true); + } catch (IOException e1) { + e1.printStackTrace(); + } + //拒绝,同basicNack,只是没有批量这个属性 + //channel.basicReject(message.getMessageProperties().getDeliveryTag(),true); + } + Message returnMsg = null; + try { + returnMsg = new Message("---返回数据---".getBytes("UTF-8"), message.getMessageProperties()); + }catch(Exception e){ + e.printStackTrace(); + } + return message; + } + + @RabbitListener(queues = I3CoreQueue.DEMO_ACK_QUEUE) + public void processAck(String data, Channel channel, Message message) { + try { + System.out.println("【client】数据接收成功:" + data); + + /*if(data.startsWith("ack")){ + System.out.println("【client】数据抛出异常"); + throw new RuntimeException("【队列抛出异常】" + data); + }*/ + //在队列删掉 不会再发了 否则消息服务器以为这条消息没处理掉 后续还会在发 + channel.basicAck(message.getMessageProperties().getDeliveryTag(),false); + } catch (IOException e) { + e.printStackTrace(); //丢弃这条消息 + // channel.basicNack(message.getMessageProperties().getDeliveryTag(), false,false); + // System.out.println("receiver fail"); + try { + channel.basicNack(message.getMessageProperties().getDeliveryTag(),false,true); + } catch (IOException e1) { + e1.printStackTrace(); + } + } + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/schedulejob/DemoJob.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/schedulejob/DemoJob.java new file mode 100644 index 0000000..edf8b84 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/schedulejob/DemoJob.java @@ -0,0 +1,30 @@ +package cn.estsh.i3plus.core.apiservice.schedulejob; + +import cn.estsh.impp.framework.boot.core.ApplicationProperties; +import cn.estsh.impp.framework.boot.quartz.job.ImppJob; +import org.quartz.Job; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; + +/** + * @Description : + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2018-09-30 13:25 + * @Modify: + **/ +public class DemoJob implements Job { + public static final Logger LOGGER = LoggerFactory.getLogger(DemoJob.class); + + @Autowired + public ApplicationProperties applicationProperties; + + public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { + + LOGGER.info("projectName:{},port:{}",applicationProperties.getApplicationName(),applicationProperties.getServerPort()); + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/DataSimpleServiceImpl.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/DataSimpleServiceImpl.java new file mode 100644 index 0000000..0080be6 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/DataSimpleServiceImpl.java @@ -0,0 +1,63 @@ +package cn.estsh.i3plus.core.apiservice.serviceimpl.base; + +import cn.estsh.i3plus.core.api.iservice.base.IDataSimpleService; +import cn.estsh.i3plus.core.apiservice.dao.IMachineFactoryDao; +import cn.estsh.i3plus.platform.common.idtool.SnowflakeIdMaker; +import cn.estsh.i3plus.pojo.factory.bean.MachineFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.sql.DataSource; +import java.util.List; + +/** + * @Description : + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2018-09-04 17:03 + * @Modify: + **/ +@Service +public class DataSimpleServiceImpl implements IDataSimpleService { + private Logger LOGGER = LoggerFactory.getLogger(this.getClass()); + + @Autowired + private IMachineFactoryDao machineFactoryDao; + + @Override + public void saveMachineFactory(MachineFactory machineFactory) { + //生成主键 + machineFactory.setId(new SnowflakeIdMaker().nextId()); + machineFactoryDao.save(machineFactory); + } + + @Override + public void updateMachineFactoryNameById(long id, String factoryName) { + machineFactoryDao.updateMachineFactoryNameById(id,factoryName); + } + + @Override + public void deleteMachineFactoryById(long id) { + machineFactoryDao.deleteMachineFactoryById(id); + } + + @Autowired + private DataSource ds; + + @Override + public List findMachineFactoryByFactoryName(String factoryName) { + return machineFactoryDao.findMachineFactoryByFactoryName(factoryName); + } + + @Override + public List findMachineFactoryByFactoryCode(String factoryCode) { + return machineFactoryDao.findMachineFactoryByFactoryCode(factoryCode); + } + + @Override + public List findMachineFactorySpecial() { + return machineFactoryDao.findMachineFactorySpecial(); + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/DataMoreServiceImpl.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/DataMoreServiceImpl.java new file mode 100644 index 0000000..1b59cf4 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/DataMoreServiceImpl.java @@ -0,0 +1,69 @@ +package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; + +import cn.estsh.i3plus.core.api.iservice.busi.IDataMoreService; +import cn.estsh.i3plus.core.apiservice.dao.IFactoryStoreDao; +import cn.estsh.i3plus.pojo.wms.bean.FactoryStore; +import cn.estsh.i3plus.pojo.wms.repository.FactoryStoreRepository; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.annotation.ReadOnlyProperty; +import org.springframework.stereotype.Service; + +import javax.transaction.Transactional; +import java.util.ArrayList; +import java.util.List; + +/** + * @Description : + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2018-09-04 17:06 + * @Modify: + **/ +@Service +public class DataMoreServiceImpl implements IDataMoreService { + private Logger LOGGER = LoggerFactory.getLogger(this.getClass()); + + @Autowired + private FactoryStoreRepository factoryStoreRepository; + + @Autowired + private IFactoryStoreDao factoryStoreDao; + + @Transactional + public FactoryStore insertFactory(FactoryStore factoryStore) { + LOGGER.info(factoryStore.toString()); + factoryStoreRepository.executeUpdate(""); + return null; + } + + @Override + @ReadOnlyProperty + public List listFactoryStore() { + Iterable it = null; + + List fsList = new ArrayList(); + it.forEach(factoryStore ->{ + fsList.add(factoryStore); + }); + + return fsList; + } + + @Override + @ReadOnlyProperty + public List listFactoryStoreMore() { + List fsList = factoryStoreDao.listFactoryStore(); + for(FactoryStore fs : fsList){ + LOGGER.info(fs.toString()); + } + + fsList = factoryStoreRepository.findAll(); + for(FactoryStore fs : fsList){ + LOGGER.info(fs.toString()); + } + + return fsList; + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SystemResourceService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SystemResourceService.java new file mode 100644 index 0000000..7ecb8e8 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SystemResourceService.java @@ -0,0 +1,133 @@ +package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; + +import cn.estsh.i3plus.core.api.iservice.busi.ISystemResourceService; +import cn.estsh.i3plus.platform.common.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.model.common.Pager; +import cn.estsh.i3plus.pojo.model.common.PagerHelper; +import cn.estsh.i3plus.pojo.platform.bean.SysLocaleLanguage; +import cn.estsh.i3plus.pojo.platform.bean.SysLocaleResource; +import cn.estsh.i3plus.pojo.platform.repository.SysLocaleLanguageRepository; +import cn.estsh.i3plus.pojo.platform.repository.SysLocaleResourceRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Sort; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.List; + +/** + * @Description : 系统资源服务 + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2018-10-11 17:00 + * @Modify: + **/ +@Service +public class SystemResourceService implements ISystemResourceService { + + @Autowired + private SysLocaleLanguageRepository sysLocaleLanguageRDao; + + @Autowired + private SysLocaleResourceRepository sysLocaleResourceRDao; + + @Override + public SysLocaleLanguage saveSysLocaleLanguage(SysLocaleLanguage lang) { + return sysLocaleLanguageRDao.insert(lang); + } + + @Override + public SysLocaleLanguage updateSysLocaleLanguage(SysLocaleLanguage lang) { + return sysLocaleLanguageRDao.save(lang); + } + + @Override + public void deleteSysLocaleLanguageById(long id) { + sysLocaleLanguageRDao.deleteById(id); + } + + @Override + public List listSysLocaleLanguage(SysLocaleLanguage lang) { + if(lang == null){ + return sysLocaleLanguageRDao.list(); + }else { + return sysLocaleLanguageRDao.findByProperty( + new String[]{"languageCode", "languageName", "isDefault"}, + new Object[]{lang.getLanguageCode(), lang.getLanguageName(), lang.getIsDefault()}); + } + } + + @Override + public List listSysLocaleLanguageByPager(SysLocaleLanguage lang, Pager pager) { + if(lang == null) { + pager = PagerHelper.getPager(pager, sysLocaleLanguageRDao.listCount()); + return sysLocaleLanguageRDao.listPager(pager); + }else { + String[] params = new String[]{"languageCode", "languageName", "isDefault"}; + Object[] values = new Object[]{lang.getLanguageCode(), lang.getLanguageName(), lang.getIsDefault()}; + + pager = PagerHelper.getPager(pager, sysLocaleLanguageRDao.findByPropertyCount(params,values)); + return sysLocaleLanguageRDao.findByPropertyPage(params,values,"order by id asc",pager); + } + } + + @Override + public SysLocaleResource saveSysLocaleResource(SysLocaleResource res) { + return sysLocaleResourceRDao.insert(res); + } + + @Override + public SysLocaleResource updateSysLocaleResource(SysLocaleResource res) { + return sysLocaleResourceRDao.save(res); + } + + @Override + public void deleteSysLocaleResourceById(long id) { + sysLocaleResourceRDao.deleteById(id); + } + + @Override + public List listSysLocaleResourceByPager(SysLocaleResource res, Pager pager) { + if(res == null){ + int count = sysLocaleResourceRDao.listCount(); + pager = PagerHelper.getPager(pager,count); + return sysLocaleResourceRDao.listPager(pager); + }else { + String[] params = new String[]{"resourceType", "languageCode", "resourceKey", "resourceValue", "isSystem", "isDefault"}; + Object[] values = new Object[]{res.getResourceType(), res.getLanguageCode(), res.getResourceKey(), res.getResourceValue(), res.getIsSystem(), res.getIsDefault()}; + + pager = PagerHelper.getPager(pager,sysLocaleResourceRDao.findByPropertyCount(params,values)); + return sysLocaleResourceRDao.findByPropertyPage(params,values,"order by id asc", pager); + } + } + + @Override + public List listSysLocaleResource(SysLocaleResource res) { + if(res == null){ + return sysLocaleResourceRDao.list(); + }else { + return sysLocaleResourceRDao.findByProperty( + new String[]{"resourceType", "languageCode", "resourceKey", "resourceValue", "isSystem", "isDefault"}, + new Object[]{res.getResourceType(), res.getLanguageCode(), res.getResourceKey(), res.getResourceValue(), res.getIsSystem(), res.getIsDefault()}); + } + } + + @Override + public SysLocaleResource getSysLocaleResourceByLanguage(int resourceType,String langCode,String resKey) { + List resList = sysLocaleResourceRDao.findByProperty( + new String[]{"resourceType", "languageCode", "resourceKey"}, + new Object[]{resourceType,langCode, resKey}); + + if(CollectionUtils.isEmpty(resList)){ + //不存在,则使用默认的 + resList = sysLocaleResourceRDao.findByProperty( + new String[]{"resourceType", "resourceKey", "isDefault"}, + new Object[]{resourceType,resKey, CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()}); + } + if(resList.size() > 0) { + return resList.iterator().next(); + }else{ + return null; + } + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SystemUserService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SystemUserService.java new file mode 100644 index 0000000..4f77ad2 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SystemUserService.java @@ -0,0 +1,128 @@ +package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; + +import cn.estsh.i3plus.core.api.iservice.busi.ISystemUserService; +import cn.estsh.i3plus.core.api.token.AdminToken; +import cn.estsh.i3plus.core.api.token.SaAdminToken; +import cn.estsh.i3plus.core.api.token.UserToken; +import cn.estsh.i3plus.core.apiservice.auth.AuthUtil; +import cn.estsh.i3plus.core.apiservice.controller.DemoAuthController; +import cn.estsh.i3plus.platform.common.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.platform.bean.SessionUser; +import cn.estsh.i3plus.pojo.platform.bean.SysUser; +import cn.estsh.i3plus.pojo.platform.repository.SysUserRepository; +import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; +import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.websocket.Session; + +/** + * @Description : 用户系统方法 + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2018-10-13 17:18 + * @Modify: + **/ +@Service +public class SystemUserService implements ISystemUserService { + private static final Logger LOGGER = LoggerFactory.getLogger(SystemUserService.class); + + @Autowired + private SysUserRepository sysUserRDao; + + @Override + public SessionUser userLogin(String loginName, String loginPwd, String languageCode) { + //生成令牌 + UserToken ut = new UserToken(loginName,loginPwd,languageCode); + //token验证 + return AuthUtil.login(ut); + } + + @Override + public SessionUser adminLogin(String loginName, String loginPwd, String languageCode) { + //生成令牌 + AdminToken adminToken = new AdminToken(loginName,loginPwd,languageCode); + //token验证 + return AuthUtil.login(adminToken); + } + + @Override + public SessionUser checkUserLogin(UserToken userToken) { + //验证用户 + SysUser user = getUserLoginInfo(userToken.getLoginName(),userToken.getLoginPwd()); + //未抛异常,封装用户 + return packSessionUser(user,CommonEnumUtil.USER_TYPE.USER.getCode(),userToken.getLanguageCode()); + } + + @Override + public SessionUser checkAdminLogin(AdminToken adminToken) { + //验证用户 + SysUser user = getUserLoginInfo(adminToken.getLoginName(),adminToken.getLoginPwd()); + //未抛异常,封装用户 + return packSessionUser(user,CommonEnumUtil.USER_TYPE.ADMIN.getCode(),adminToken.getLanguageCode()); + } + + @Override + public SessionUser checkSaAdminLogin(SaAdminToken saAdminToken) { + //SysUser user = getUserLoginInfo(saAdminToken.getLoginName(),saAdminToken.getLoginPwd()); + SysUser user = null; + /** + * to do + * + * 此处外网获取sa超级管理员用户名密码 + * 或者导入加密证书生成内存超级管理员用户名密码 + */ + return packSessionUser(user,CommonEnumUtil.USER_TYPE.SA.getCode(),saAdminToken.getLanguageCode()); + } + + /** + * 根据用户名密码查询用户 + * @param loginName + * @param pwd + * @return + */ + public SysUser getUserLoginInfo(String loginName,String pwd){ + SysUser user = sysUserRDao.getByProperty("loginName",loginName); + if(user == null){ + //用户不存在 + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.IMPP.getCode()) + .setErrorCode(ImppExceptionEnum.LOGIN_EXCEPTION.getCode()) + .setErrorDetail("用户不存在") + .setErrorSolution("重新登陆") + .build(); +// }else if(!StringUtils.equals(user.getLoginPwd(),pwd)){ +// //密码不符 +// throw ImppExceptionBuilder.newInstance() +// .setSystemID(CommonEnumUtil.SOFT_TYPE.IMPP.getCode()) +// .setErrorCode(ImppExceptionEnum.LOGIN_EXCEPTION.getCode()) +// .setErrorDetail("登陆密码错误") +// .setErrorSolution("重新输入") +// .build(); + } + + return user; + } + + /** + * 封装用户登陆信息 + * @param user + * @param userType + * @param languageCode + * @return + */ + private SessionUser packSessionUser(SysUser user,String userType, String languageCode) { + SessionUser sessionUser = new SessionUser(); + sessionUser.setLanguageCode(languageCode); + sessionUser.setSiteCode(user.getFactoryCode()); + sessionUser.setUserName(user.getEmployeeNameRdd()); + sessionUser.setUserType(userType); + sessionUser.setUserCode(user.getEmployeeCodeRdd()); + + return sessionUser; + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/ConstWords.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/ConstWords.java new file mode 100644 index 0000000..4374347 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/ConstWords.java @@ -0,0 +1,22 @@ +package cn.estsh.i3plus.core.apiservice.util; + +/** + * @Description : + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2018-10-12 18:49 + * @Modify: + **/ +public class ConstWords { + //语言前缀(用于存放redis中作为key) + public static final String LANGUAGE_CONVERT_PREX = "LANGUAGE_CONVERT_PREX_"; + + //系统模块功能 + public static final String PLAT_MODULE_PREX = "PLAT_MODULE_PREX_"; + + //系统功能功能 + public static final String PLAT_MODULE_METHOD_PREX = "PLAT_MODULE_METHOD_PREX_"; + + //系统按钮功能 + public static final String PLAT_MODULE_BUTTON_PREX = "PLAT_MODULE_BUTTON_PREX_"; +} diff --git a/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties b/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties new file mode 100644 index 0000000..c5266f3 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties @@ -0,0 +1,81 @@ +################ Դ ################ +# mysql +#spring.datasource.driver-class-name=com.mysql.jdbc.Driver +#spring.datasource.url=jdbc:mysql://localhost:3306/i3wms +##Sql-server## +#spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver +#spring.datasource.url=jdbc:sqlserver://127.0.0.1:1433;databaseName=i3wms +##oracle## +#spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver +#spring.datasource.url=jdbc:oracle:thin:@127.0.0.1:1521:i3wms +#spring.datasource.username=root +#spring.datasource.password=123456 + +##Դд +#impp.write.datasource.type=com.zaxxer.hikari.HikariDataSource +impp.write.datasource.driver-class-name=com.mysql.jdbc.Driver +impp.write.datasource.jdbc-url=jdbc:mysql://localhost:3306/i3core +impp.write.datasource.username=root +impp.write.datasource.password=123456 + +##Դֻ +#impp.read.datasource.type=com.zaxxer.hikari.HikariDataSource +impp.read.datasource.driver-class-name=com.mysql.jdbc.Driver +impp.read.datasource.jdbc-url=jdbc:mysql://localhost:3306/i3core +impp.read.datasource.username=root +impp.read.datasource.password=123456 + +##############ʱ־û############## +impp.schedule.datasource.driver-class-name=com.mysql.jdbc.Driver +impp.schedule.datasource.jdbc-url=jdbc:mysql://localhost:3306/i3_schedule +impp.schedule.datasource.username=root +impp.schedule.datasource.password=123456 +impp.schedule.datasource.max-connections=20 +#ʱڷִ +impp.schedule.start.after-second=20 +#ǷȺ +impp.schedule.datasource.is-clustered=true +#ִм⣨룩崻ʱִ +impp.schedule.datasource.cluster-checkin-interval=30000 +#߳ +impp.schedule.thread-count=10 +#߳ȼ1-10ĬΪ5 +impp.schedule.thread-priority=5 + + +################ ݳ ################ +spring.datasource.maximum-pool-size=100 +spring.datasource.max-active=3 +spring.datasource.max-idle=3 +spring.datasource.min-idle=1 +spring.datasource.initial-size=1 +spring.datasource.max-wait=10000 +spring.datasource.validation-query=SELECT 1 +spring.datasource.test-on-borrow=false +spring.datasource.test-while-idle=true +spring.datasource.time-between-eviction-runs-millis=18800 + +################ JPA ################ +# mysql +spring.jpa.database=MYSQL +spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect +##Sql-server## +#spring.jpa.database=sql_server +#spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.SQLServerDialect +##oracle## +#spring.jpa.database=oracle +#spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.Oracle10gDialect + +# mysql +spring.datasource.validationQuery=SELECT 1 +##Sql-server## +# spring.datasource.validationQuery=SELECT 1 +##oracle## +# spring.datasource.validationQuery=SELECT 1 FROM DUAL + +#ImprovedNamingStrategy / physical_naming_strategy javaӳ䵽ݿֶʱ +# spring.jpa.properties.hibernate.physical_naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy/org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl +#ϵcreate,create-drop,update,validate +spring.jpa.properties.hibernate.hbm2ddl.auto=update +#Ƿʾsql +spring.jpa.show-sql=true diff --git a/modules/i3plus-core-apiservice/src/main/resources/application-prod.properties b/modules/i3plus-core-apiservice/src/main/resources/application-prod.properties new file mode 100644 index 0000000..e69de29 diff --git a/modules/i3plus-core-apiservice/src/main/resources/application-test.properties b/modules/i3plus-core-apiservice/src/main/resources/application-test.properties new file mode 100644 index 0000000..e69de29 diff --git a/modules/i3plus-core-apiservice/src/main/resources/application.properties b/modules/i3plus-core-apiservice/src/main/resources/application.properties new file mode 100644 index 0000000..15285c9 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/resources/application.properties @@ -0,0 +1,32 @@ +#Ŀ +spring.application.name=${project.name} +#Ŀ˿ +server.port=8080 + +#ʹ +spring.profiles.active=dev + +######### Զ ######### +#ĿϢswaggerʽ +desc.application.name=Intelligent Manufacturing System +#ǰĿ汾 +version=${project.version} + +#־Ĭʹlog4j2 +logging.config=classpath:log4j2.xml + +#ϴļС +spring.servlet.multipart.max-file-size=1MB +#requestȫ +spring.servlet.multipart.max-request-size=10MB +#ǷƳļtrueٽ +spring.servlet.multipart.resolve-lazily=true + +########## ҳ ######## +# +server.tomcat.uri-encoding=UTF-8 +#Spring bootͼ +spring.mvc.view.prefix=/upload_demo +spring.mvc.view.suffix=.jsp +#̬ļ +spring.resources.static-locations=/static/**,/** \ No newline at end of file diff --git a/modules/i3plus-core-apiservice/src/main/resources/log4j2.xml b/modules/i3plus-core-apiservice/src/main/resources/log4j2.xml new file mode 100644 index 0000000..75208ea --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/resources/log4j2.xml @@ -0,0 +1,46 @@ + + + + + %d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n + + + + + + + + + + + + + + + + + ${pattern} + + + + + + + ${pattern} + + + + + + + + + + + ${pattern} + + + + \ No newline at end of file diff --git a/modules/i3plus-core-apiservice/src/main/webapp/upload_demo/index.jsp b/modules/i3plus-core-apiservice/src/main/webapp/upload_demo/index.jsp new file mode 100644 index 0000000..c957814 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/webapp/upload_demo/index.jsp @@ -0,0 +1,16 @@ +<%-- + Created by IntelliJ IDEA. + User: HP + Date: 2018/9/28 + Time: 12:09 + To change this template use File | Settings | File Templates. +--%> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + welcome + + + welcome + + diff --git a/modules/i3plus-core-apiservice/src/main/webapp/upload_demo/upload.jsp b/modules/i3plus-core-apiservice/src/main/webapp/upload_demo/upload.jsp new file mode 100644 index 0000000..7f97467 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/webapp/upload_demo/upload.jsp @@ -0,0 +1,19 @@ +<%-- + Created by IntelliJ IDEA. + User: HP + Date: 2018/9/28 + Time: 12:10 + To change this template use File | Settings | File Templates. +--%> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + 上传图片 + + +
+

+ +
+ + diff --git a/modules/i3plus-core-apiservice/src/main/webapp/upload_demo/upload_status.jsp b/modules/i3plus-core-apiservice/src/main/webapp/upload_demo/upload_status.jsp new file mode 100644 index 0000000..71831f2 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/webapp/upload_demo/upload_status.jsp @@ -0,0 +1,22 @@ +<%-- + Created by IntelliJ IDEA. + User: HP + Date: 2018/9/28 + Time: 12:11 + To change this template use File | Settings | File Templates. +--%> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + 上传结果 + + +
+

${message}

+
+ +
+

${path}

+
+ + diff --git a/modules/i3plus-core-apiservice/target/classes/application-dev.properties b/modules/i3plus-core-apiservice/target/classes/application-dev.properties new file mode 100644 index 0000000..9ac50cf --- /dev/null +++ b/modules/i3plus-core-apiservice/target/classes/application-dev.properties @@ -0,0 +1,81 @@ +################ ������Դ ################ +# mysql +#spring.datasource.driver-class-name=com.mysql.jdbc.Driver +#spring.datasource.url=jdbc:mysql://localhost:3306/i3wms +##Sql-server## +#spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver +#spring.datasource.url=jdbc:sqlserver://127.0.0.1:1433;databaseName=i3wms +##oracle## +#spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver +#spring.datasource.url=jdbc:oracle:thin:@127.0.0.1:1521:i3wms +#spring.datasource.username=root +#spring.datasource.password=123456 + +##������Դ����д +#impp.write.datasource.type=com.zaxxer.hikari.HikariDataSource +impp.write.datasource.driver-class-name=com.mysql.jdbc.Driver +impp.write.datasource.jdbc-url=jdbc:mysql://localhost:3306/i3core +impp.write.datasource.username=root +impp.write.datasource.password=123456 + +##������Դ��ֻ�� +#impp.read.datasource.type=com.zaxxer.hikari.HikariDataSource +impp.read.datasource.driver-class-name=com.mysql.jdbc.Driver +impp.read.datasource.jdbc-url=jdbc:mysql://localhost:3306/i3core +impp.read.datasource.username=root +impp.read.datasource.password=123456 + +##############��ʱ����־û�############## +impp.schedule.datasource.driver-class-name=com.mysql.jdbc.Driver +impp.schedule.datasource.jdbc-url=jdbc:mysql://localhost:3306/i3_schedule +impp.schedule.datasource.username=root +impp.schedule.datasource.password=123456 +impp.schedule.datasource.max-connections=20 +#��ʱ�����ڷ��������������ִ�� +impp.schedule.start.after-second=20 +#�Ƿ�Ⱥ���� +impp.schedule.datasource.is-clustered=true +#ִ�м�⣨���룩����崻���������ʱ��ִ�� +impp.schedule.datasource.cluster-checkin-interval=30000 +#�߳��� +impp.schedule.thread-count=10 +#�߳����ȼ���1-10��Ĭ��Ϊ5 +impp.schedule.thread-priority=5 + + +################ ���ݳ����� ################ +spring.datasource.maximum-pool-size=100 +spring.datasource.max-active=3 +spring.datasource.max-idle=3 +spring.datasource.min-idle=1 +spring.datasource.initial-size=1 +spring.datasource.max-wait=10000 +spring.datasource.validation-query=SELECT 1 +spring.datasource.test-on-borrow=false +spring.datasource.test-while-idle=true +spring.datasource.time-between-eviction-runs-millis=18800 + +################ JPA�������� ################ +# mysql +spring.jpa.database=MYSQL +spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect +##Sql-server## +#spring.jpa.database=sql_server +#spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.SQLServerDialect +##oracle## +#spring.jpa.database=oracle +#spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.Oracle10gDialect + +# mysql +spring.datasource.validationQuery=SELECT 1 +##Sql-server## +# spring.datasource.validationQuery=SELECT 1 +##oracle## +# spring.datasource.validationQuery=SELECT 1 FROM DUAL + +#ImprovedNamingStrategy / physical_naming_strategy java����ӳ�䵽���ݿ��ֶ�ʱ�������� +# spring.jpa.properties.hibernate.physical_naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy/org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl +#���ϵcreate,create-drop,update,validate +spring.jpa.properties.hibernate.hbm2ddl.auto=update +#�Ƿ���ʾsql +spring.jpa.show-sql=true diff --git a/modules/i3plus-core-apiservice/target/classes/application-prod.properties b/modules/i3plus-core-apiservice/target/classes/application-prod.properties new file mode 100644 index 0000000..e69de29 diff --git a/modules/i3plus-core-apiservice/target/classes/application-test.properties b/modules/i3plus-core-apiservice/target/classes/application-test.properties new file mode 100644 index 0000000..e69de29 diff --git a/modules/i3plus-core-apiservice/target/classes/application.properties b/modules/i3plus-core-apiservice/target/classes/application.properties new file mode 100644 index 0000000..653b92d --- /dev/null +++ b/modules/i3plus-core-apiservice/target/classes/application.properties @@ -0,0 +1,32 @@ +#��Ŀ���� +spring.application.name=i3plus-core +#��Ŀ�˿� +server.port=8080 + +#ʹ������ +spring.profiles.active=dev + +######### �Զ������ ######### +#��Ŀ������Ϣ��swagger����ʽ�� +desc.application.name=Intelligent Manufacturing System +#��ǰ��Ŀ�汾 +version=1.0-SNAPSHOT + +#��־Ĭ��ʹ��log4j2 +logging.config=classpath:log4j2.xml + +#�ϴ������ļ���С +spring.servlet.multipart.max-file-size=1MB +#request����ȫ������������� +spring.servlet.multipart.max-request-size=10MB +#�Ƿ��Ƴ��ļ�������true���������ٽ��� +spring.servlet.multipart.resolve-lazily=true + +########## ҳ������ ######## +#����������� +server.tomcat.uri-encoding=UTF-8 +#Spring boot��ͼ���� +spring.mvc.view.prefix=/upload_demo +spring.mvc.view.suffix=.jsp +#��̬�ļ��������� +spring.resources.static-locations=/static/**,/** \ No newline at end of file diff --git a/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/auth/AuthUtil.class b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/auth/AuthUtil.class new file mode 100644 index 0000000..dea09d0 Binary files /dev/null and b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/auth/AuthUtil.class differ diff --git a/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/auth/ShiroEhCacheImpl.class b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/auth/ShiroEhCacheImpl.class new file mode 100644 index 0000000..c8376b1 Binary files /dev/null and b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/auth/ShiroEhCacheImpl.class differ diff --git a/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/auth/ShiroRedisCacheImpl.class b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/auth/ShiroRedisCacheImpl.class new file mode 100644 index 0000000..5cb5570 Binary files /dev/null and b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/auth/ShiroRedisCacheImpl.class differ diff --git a/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/auth/ShiroRedisCacheManager.class b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/auth/ShiroRedisCacheManager.class new file mode 100644 index 0000000..9948815 Binary files /dev/null and b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/auth/ShiroRedisCacheManager.class differ diff --git a/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/auth/ShiroSessionRedisDao.class b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/auth/ShiroSessionRedisDao.class new file mode 100644 index 0000000..98576fd Binary files /dev/null and b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/auth/ShiroSessionRedisDao.class differ diff --git a/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/auth/filter/AdminFilter.class b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/auth/filter/AdminFilter.class new file mode 100644 index 0000000..4274e87 Binary files /dev/null and b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/auth/filter/AdminFilter.class differ diff --git a/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/auth/filter/SaAdminFilter.class b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/auth/filter/SaAdminFilter.class new file mode 100644 index 0000000..75d2a87 Binary files /dev/null and b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/auth/filter/SaAdminFilter.class differ diff --git a/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/auth/filter/UserFilter.class b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/auth/filter/UserFilter.class new file mode 100644 index 0000000..d34d429 Binary files /dev/null and b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/auth/filter/UserFilter.class differ diff --git a/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/auth/realm/AdminAuthRealm.class b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/auth/realm/AdminAuthRealm.class new file mode 100644 index 0000000..182e6f7 Binary files /dev/null and b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/auth/realm/AdminAuthRealm.class differ diff --git a/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/auth/realm/DefaultModularRealm.class b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/auth/realm/DefaultModularRealm.class new file mode 100644 index 0000000..c84ce1e Binary files /dev/null and b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/auth/realm/DefaultModularRealm.class differ diff --git a/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/auth/realm/SaAuthRealm.class b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/auth/realm/SaAuthRealm.class new file mode 100644 index 0000000..9c9fa6b Binary files /dev/null and b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/auth/realm/SaAuthRealm.class differ diff --git a/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/auth/realm/UserAuthRealm.class b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/auth/realm/UserAuthRealm.class new file mode 100644 index 0000000..51764e2 Binary files /dev/null and b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/auth/realm/UserAuthRealm.class differ diff --git a/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/configuration/ShiroAuthConfiguration.class b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/configuration/ShiroAuthConfiguration.class new file mode 100644 index 0000000..3898355 Binary files /dev/null and b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/configuration/ShiroAuthConfiguration.class differ diff --git a/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/configuration/i3PlusCoreConfig.class b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/configuration/i3PlusCoreConfig.class new file mode 100644 index 0000000..5111d9c Binary files /dev/null and b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/configuration/i3PlusCoreConfig.class differ diff --git a/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/controller/DemoAuthController.class b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/controller/DemoAuthController.class new file mode 100644 index 0000000..5e5b752 Binary files /dev/null and b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/controller/DemoAuthController.class differ diff --git a/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/controller/DemoController.class b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/controller/DemoController.class new file mode 100644 index 0000000..f98a6e6 Binary files /dev/null and b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/controller/DemoController.class differ diff --git a/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/controller/DemoRestController.class b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/controller/DemoRestController.class new file mode 100644 index 0000000..ba7311a Binary files /dev/null and b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/controller/DemoRestController.class differ diff --git a/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/controller/DemoScheduleController.class b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/controller/DemoScheduleController.class new file mode 100644 index 0000000..3467f3b Binary files /dev/null and b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/controller/DemoScheduleController.class differ diff --git a/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/controller/DemoSystemController.class b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/controller/DemoSystemController.class new file mode 100644 index 0000000..33c71b0 Binary files /dev/null and b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/controller/DemoSystemController.class differ diff --git a/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/controller/base/SimpleController.class b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/controller/base/SimpleController.class new file mode 100644 index 0000000..b7c3702 Binary files /dev/null and b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/controller/base/SimpleController.class differ diff --git a/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/controller/busi/FactoryStoreController.class b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/controller/busi/FactoryStoreController.class new file mode 100644 index 0000000..84daad5 Binary files /dev/null and b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/controller/busi/FactoryStoreController.class differ diff --git a/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/controller/websocket/DemoWebSocket.class b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/controller/websocket/DemoWebSocket.class new file mode 100644 index 0000000..4c553e6 Binary files /dev/null and b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/controller/websocket/DemoWebSocket.class differ diff --git a/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/dao/IFactoryStoreDao.class b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/dao/IFactoryStoreDao.class new file mode 100644 index 0000000..930d890 Binary files /dev/null and b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/dao/IFactoryStoreDao.class differ diff --git a/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/dao/IMachineFactoryDao.class b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/dao/IMachineFactoryDao.class new file mode 100644 index 0000000..bdcc782 Binary files /dev/null and b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/dao/IMachineFactoryDao.class differ diff --git a/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/daoimpl/FactoryStoreDaoImpl.class b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/daoimpl/FactoryStoreDaoImpl.class new file mode 100644 index 0000000..06c522d Binary files /dev/null and b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/daoimpl/FactoryStoreDaoImpl.class differ diff --git a/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/listener/SysResourceBindleListener.class b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/listener/SysResourceBindleListener.class new file mode 100644 index 0000000..e2cb429 Binary files /dev/null and b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/listener/SysResourceBindleListener.class differ diff --git a/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/mq/I3CoreQueue.class b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/mq/I3CoreQueue.class new file mode 100644 index 0000000..9d2330b Binary files /dev/null and b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/mq/I3CoreQueue.class differ diff --git a/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/mq/I3CoreQueueReceiver.class b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/mq/I3CoreQueueReceiver.class new file mode 100644 index 0000000..334c6c5 Binary files /dev/null and b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/mq/I3CoreQueueReceiver.class differ diff --git a/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/schedulejob/DemoJob.class b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/schedulejob/DemoJob.class new file mode 100644 index 0000000..b788ee3 Binary files /dev/null and b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/schedulejob/DemoJob.class differ diff --git a/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/serviceimpl/base/DataSimpleServiceImpl.class b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/serviceimpl/base/DataSimpleServiceImpl.class new file mode 100644 index 0000000..05fcafa Binary files /dev/null and b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/serviceimpl/base/DataSimpleServiceImpl.class differ diff --git a/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/DataMoreServiceImpl.class b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/DataMoreServiceImpl.class new file mode 100644 index 0000000..fd16374 Binary files /dev/null and b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/DataMoreServiceImpl.class differ diff --git a/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SystemResourceService.class b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SystemResourceService.class new file mode 100644 index 0000000..1cd4c89 Binary files /dev/null and b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SystemResourceService.class differ diff --git a/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SystemUserService.class b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SystemUserService.class new file mode 100644 index 0000000..6243e6e Binary files /dev/null and b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SystemUserService.class differ diff --git a/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/util/ConstWords.class b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/util/ConstWords.class new file mode 100644 index 0000000..38dc9c5 Binary files /dev/null and b/modules/i3plus-core-apiservice/target/classes/cn/estsh/i3plus/core/apiservice/util/ConstWords.class differ diff --git a/modules/i3plus-core-apiservice/target/classes/log4j2.xml b/modules/i3plus-core-apiservice/target/classes/log4j2.xml new file mode 100644 index 0000000..e75dde7 --- /dev/null +++ b/modules/i3plus-core-apiservice/target/classes/log4j2.xml @@ -0,0 +1,46 @@ + + + + + %d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n + + + + + + + + + + + + + + + + + ${pattern} + + + + + + + ${pattern} + + + + + + + + + + + ${pattern} + + + + \ No newline at end of file diff --git a/modules/i3plus-core-apiservice/target/i3plus-core-apiservice-1.0-SNAPSHOT.jar b/modules/i3plus-core-apiservice/target/i3plus-core-apiservice-1.0-SNAPSHOT.jar new file mode 100644 index 0000000..c121466 Binary files /dev/null and b/modules/i3plus-core-apiservice/target/i3plus-core-apiservice-1.0-SNAPSHOT.jar differ diff --git a/modules/i3plus-core-apiservice/target/i3plus-core-apiservice-1.0-SNAPSHOT.jar.original b/modules/i3plus-core-apiservice/target/i3plus-core-apiservice-1.0-SNAPSHOT.jar.original new file mode 100644 index 0000000..6e4c6cd Binary files /dev/null and b/modules/i3plus-core-apiservice/target/i3plus-core-apiservice-1.0-SNAPSHOT.jar.original differ diff --git a/modules/i3plus-core-apiservice/target/maven-archiver/pom.properties b/modules/i3plus-core-apiservice/target/maven-archiver/pom.properties new file mode 100644 index 0000000..30d862d --- /dev/null +++ b/modules/i3plus-core-apiservice/target/maven-archiver/pom.properties @@ -0,0 +1,5 @@ +#Generated by Apache Maven +#Sun Sep 30 10:24:52 CST 2018 +version=1.0-SNAPSHOT +groupId=i3plus.core +artifactId=i3plus-core-apiservice diff --git a/modules/i3plus-core-icloud/i3plus-core-icloud.iml b/modules/i3plus-core-icloud/i3plus-core-icloud.iml new file mode 100644 index 0000000..15b415d --- /dev/null +++ b/modules/i3plus-core-icloud/i3plus-core-icloud.iml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/i3plus-core-icloud/pom.xml b/modules/i3plus-core-icloud/pom.xml new file mode 100644 index 0000000..4c67fc3 --- /dev/null +++ b/modules/i3plus-core-icloud/pom.xml @@ -0,0 +1,16 @@ + + + + i3plus-core + i3plus.core + 1.0-SNAPSHOT + ../../pom.xml + + 4.0.0 + + i3plus-core-icloud + jar + + \ No newline at end of file diff --git a/modules/i3plus-core-icloud/target/i3plus-core-icloud-1.0-SNAPSHOT.jar b/modules/i3plus-core-icloud/target/i3plus-core-icloud-1.0-SNAPSHOT.jar new file mode 100644 index 0000000..0e09291 Binary files /dev/null and b/modules/i3plus-core-icloud/target/i3plus-core-icloud-1.0-SNAPSHOT.jar differ diff --git a/modules/i3plus-core-icloud/target/maven-archiver/pom.properties b/modules/i3plus-core-icloud/target/maven-archiver/pom.properties new file mode 100644 index 0000000..e4ff055 --- /dev/null +++ b/modules/i3plus-core-icloud/target/maven-archiver/pom.properties @@ -0,0 +1,5 @@ +#Generated by Apache Maven +#Sun Sep 30 10:24:59 CST 2018 +version=1.0-SNAPSHOT +groupId=i3plus.core +artifactId=i3plus-core-icloud diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..5a01810 --- /dev/null +++ b/pom.xml @@ -0,0 +1,176 @@ + + + 4.0.0 + + i3plus.core + i3plus-core + pom + 1.0-SNAPSHOT + + modules/i3plus-core-api + modules/i3plus-core-apiservice + modules/i3plus-core-icloud + + + + org.springframework.boot + spring-boot-starter-parent + 2.0.3.RELEASE + + + + + + i3plus-core + UTF-8 + UTF-8 + 1.8 + Finchley.RELEASE + INFO + E:/i3plus-platform-logs/${project.name} + E:/i3plus-platform-logs/${project.name}-error + E:/i3plus-platform-logs/${project.name}-controller + 2.9.1 + 2.6 + 2.1 + 2.19.1 + 2.5.3 + 1.9.5 + true + UTF-8 + 1.8 + + + + + + i3plus.pojo + i3plus-pojo-factory + ${project.version} + + + i3plus.pojo + i3plus-pojo-wms + ${project.version} + + + + + + + + impp.framework + impp-framework-boot + ${project.version} + + + + + i3plus.core + i3plus-core-api + ${project.version} + + + + i3plus.platform + i3plus-platform-common + ${project.version} + + + + + mysql + mysql-connector-java + 5.1.39 + + + + + org.apache.commons + commons-lang3 + 3.8.1 + + + + + org.apache.shiro + shiro-core + 1.4.0 + + + org.apache.shiro + shiro-web + 1.4.0 + + + org.apache.shiro + shiro-spring + 1.4.0 + + + + + com.alibaba + fastjson + 1.2.8 + + + + + net.sf.ehcache + ehcache-core + 2.6.11 + + + + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven-jar-plugin.version} + + + org.apache.maven.plugins + maven-compiler-plugin + ${maven-compiler-plugin.version} + + ${app.jdk.version} + ${app.jdk.version} + ${app.charset} + + + + org.apache.maven.plugins + maven-surefire-plugin + ${maven-surefire-plugin.version} + + ${skipTests} + + + + org.apache.maven.plugins + maven-release-plugin + ${maven-release-plugin.version} + + prod + true + http://git.evun.cn/GCDC-MES-SERVICE/PLATFORM_PROD_EXEC.git + v@{project.version} + + + + org.apache.maven.plugins + maven-scm-plugin + ${maven-scm-plugin.version} + + developerConnection + + + + + \ No newline at end of file