commit 3e52ba13db40a603afd2519d274bb76323093c20 Author: ZHANG ZENGXUAN Date: Mon May 19 21:57:31 2025 +0800 init git diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..35410ca --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# 默认忽略的文件 +/shelf/ +/workspace.xml +# 基于编辑器的 HTTP 客户端请求 +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/PoetryOfTheFourSeasons.iml b/.idea/PoetryOfTheFourSeasons.iml new file mode 100644 index 0000000..e3ee463 --- /dev/null +++ b/.idea/PoetryOfTheFourSeasons.iml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/artifacts/poetry_consumer_attention_jar.xml b/.idea/artifacts/poetry_consumer_attention_jar.xml new file mode 100644 index 0000000..e90224f --- /dev/null +++ b/.idea/artifacts/poetry_consumer_attention_jar.xml @@ -0,0 +1,183 @@ + + + $PROJECT_DIR$/out/artifacts/poetry_consumer_attention_jar + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..c45bd41 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml new file mode 100644 index 0000000..b41a5fb --- /dev/null +++ b/.idea/dataSources.xml @@ -0,0 +1,14 @@ + + + + + mysql.8 + true + com.mysql.cj.jdbc.Driver + jdbc:mysql://localhost:3306 + + + + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..495c9f2 --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..712ab9d --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__aopalliance_aopalliance_1_0.xml b/.idea/libraries/Maven__aopalliance_aopalliance_1_0.xml new file mode 100644 index 0000000..30ff5cb --- /dev/null +++ b/.idea/libraries/Maven__aopalliance_aopalliance_1_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__cglib_cglib_3_1.xml b/.idea/libraries/Maven__cglib_cglib_3_1.xml new file mode 100644 index 0000000..bd3cddd --- /dev/null +++ b/.idea/libraries/Maven__cglib_cglib_3_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_10.xml b/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_10.xml new file mode 100644 index 0000000..dbac086 --- /dev/null +++ b/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_10.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_10.xml b/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_10.xml new file mode 100644 index 0000000..ae11b75 --- /dev/null +++ b/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_10.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__cn_hutool_hutool_all_5_1_0.xml b/.idea/libraries/Maven__cn_hutool_hutool_all_5_1_0.xml new file mode 100644 index 0000000..0dbafef --- /dev/null +++ b/.idea/libraries/Maven__cn_hutool_hutool_all_5_1_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_alibaba_cloud_spring_cloud_alibaba_commons_2_2_7_RELEASE.xml b/.idea/libraries/Maven__com_alibaba_cloud_spring_cloud_alibaba_commons_2_2_7_RELEASE.xml new file mode 100644 index 0000000..532fbc6 --- /dev/null +++ b/.idea/libraries/Maven__com_alibaba_cloud_spring_cloud_alibaba_commons_2_2_7_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_alibaba_cloud_spring_cloud_alibaba_sentinel_datasource_2_2_7_RELEASE.xml b/.idea/libraries/Maven__com_alibaba_cloud_spring_cloud_alibaba_sentinel_datasource_2_2_7_RELEASE.xml new file mode 100644 index 0000000..5b20a08 --- /dev/null +++ b/.idea/libraries/Maven__com_alibaba_cloud_spring_cloud_alibaba_sentinel_datasource_2_2_7_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_alibaba_cloud_spring_cloud_circuitbreaker_sentinel_2_2_7_RELEASE.xml b/.idea/libraries/Maven__com_alibaba_cloud_spring_cloud_circuitbreaker_sentinel_2_2_7_RELEASE.xml new file mode 100644 index 0000000..57a01e2 --- /dev/null +++ b/.idea/libraries/Maven__com_alibaba_cloud_spring_cloud_circuitbreaker_sentinel_2_2_7_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_alibaba_cloud_spring_cloud_starter_alibaba_nacos_config_2_2_7_RELEASE.xml b/.idea/libraries/Maven__com_alibaba_cloud_spring_cloud_starter_alibaba_nacos_config_2_2_7_RELEASE.xml new file mode 100644 index 0000000..df7c890 --- /dev/null +++ b/.idea/libraries/Maven__com_alibaba_cloud_spring_cloud_starter_alibaba_nacos_config_2_2_7_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_alibaba_cloud_spring_cloud_starter_alibaba_nacos_discovery_2_2_7_RELEASE.xml b/.idea/libraries/Maven__com_alibaba_cloud_spring_cloud_starter_alibaba_nacos_discovery_2_2_7_RELEASE.xml new file mode 100644 index 0000000..49695fc --- /dev/null +++ b/.idea/libraries/Maven__com_alibaba_cloud_spring_cloud_starter_alibaba_nacos_discovery_2_2_7_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_alibaba_cloud_spring_cloud_starter_alibaba_sentinel_2_2_7_RELEASE.xml b/.idea/libraries/Maven__com_alibaba_cloud_spring_cloud_starter_alibaba_sentinel_2_2_7_RELEASE.xml new file mode 100644 index 0000000..25106d2 --- /dev/null +++ b/.idea/libraries/Maven__com_alibaba_cloud_spring_cloud_starter_alibaba_sentinel_2_2_7_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_alibaba_csp_sentinel_annotation_aspectj_1_8_1.xml b/.idea/libraries/Maven__com_alibaba_csp_sentinel_annotation_aspectj_1_8_1.xml new file mode 100644 index 0000000..99b9aad --- /dev/null +++ b/.idea/libraries/Maven__com_alibaba_csp_sentinel_annotation_aspectj_1_8_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_alibaba_csp_sentinel_cluster_client_default_1_8_1.xml b/.idea/libraries/Maven__com_alibaba_csp_sentinel_cluster_client_default_1_8_1.xml new file mode 100644 index 0000000..dd90a22 --- /dev/null +++ b/.idea/libraries/Maven__com_alibaba_csp_sentinel_cluster_client_default_1_8_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_alibaba_csp_sentinel_cluster_common_default_1_8_1.xml b/.idea/libraries/Maven__com_alibaba_csp_sentinel_cluster_common_default_1_8_1.xml new file mode 100644 index 0000000..0ed1627 --- /dev/null +++ b/.idea/libraries/Maven__com_alibaba_csp_sentinel_cluster_common_default_1_8_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_alibaba_csp_sentinel_cluster_server_default_1_8_1.xml b/.idea/libraries/Maven__com_alibaba_csp_sentinel_cluster_server_default_1_8_1.xml new file mode 100644 index 0000000..87f9eba --- /dev/null +++ b/.idea/libraries/Maven__com_alibaba_csp_sentinel_cluster_server_default_1_8_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_alibaba_csp_sentinel_core_1_8_1.xml b/.idea/libraries/Maven__com_alibaba_csp_sentinel_core_1_8_1.xml new file mode 100644 index 0000000..509b830 --- /dev/null +++ b/.idea/libraries/Maven__com_alibaba_csp_sentinel_core_1_8_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_alibaba_csp_sentinel_datasource_extension_1_8_1.xml b/.idea/libraries/Maven__com_alibaba_csp_sentinel_datasource_extension_1_8_1.xml new file mode 100644 index 0000000..8f0b7d7 --- /dev/null +++ b/.idea/libraries/Maven__com_alibaba_csp_sentinel_datasource_extension_1_8_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_alibaba_csp_sentinel_datasource_nacos_1_8_1.xml b/.idea/libraries/Maven__com_alibaba_csp_sentinel_datasource_nacos_1_8_1.xml new file mode 100644 index 0000000..a88b13b --- /dev/null +++ b/.idea/libraries/Maven__com_alibaba_csp_sentinel_datasource_nacos_1_8_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_alibaba_csp_sentinel_parameter_flow_control_1_8_1.xml b/.idea/libraries/Maven__com_alibaba_csp_sentinel_parameter_flow_control_1_8_1.xml new file mode 100644 index 0000000..2398c1b --- /dev/null +++ b/.idea/libraries/Maven__com_alibaba_csp_sentinel_parameter_flow_control_1_8_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_alibaba_csp_sentinel_reactor_adapter_1_8_1.xml b/.idea/libraries/Maven__com_alibaba_csp_sentinel_reactor_adapter_1_8_1.xml new file mode 100644 index 0000000..73f6277 --- /dev/null +++ b/.idea/libraries/Maven__com_alibaba_csp_sentinel_reactor_adapter_1_8_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_alibaba_csp_sentinel_spring_webflux_adapter_1_8_1.xml b/.idea/libraries/Maven__com_alibaba_csp_sentinel_spring_webflux_adapter_1_8_1.xml new file mode 100644 index 0000000..8f58f8c --- /dev/null +++ b/.idea/libraries/Maven__com_alibaba_csp_sentinel_spring_webflux_adapter_1_8_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_alibaba_csp_sentinel_spring_webmvc_adapter_1_8_1.xml b/.idea/libraries/Maven__com_alibaba_csp_sentinel_spring_webmvc_adapter_1_8_1.xml new file mode 100644 index 0000000..d8a9a25 --- /dev/null +++ b/.idea/libraries/Maven__com_alibaba_csp_sentinel_spring_webmvc_adapter_1_8_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_alibaba_csp_sentinel_transport_common_1_8_1.xml b/.idea/libraries/Maven__com_alibaba_csp_sentinel_transport_common_1_8_1.xml new file mode 100644 index 0000000..bf6b21e --- /dev/null +++ b/.idea/libraries/Maven__com_alibaba_csp_sentinel_transport_common_1_8_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_alibaba_csp_sentinel_transport_simple_http_1_8_1.xml b/.idea/libraries/Maven__com_alibaba_csp_sentinel_transport_simple_http_1_8_1.xml new file mode 100644 index 0000000..7567c92 --- /dev/null +++ b/.idea/libraries/Maven__com_alibaba_csp_sentinel_transport_simple_http_1_8_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_alibaba_druid_1_1_16.xml b/.idea/libraries/Maven__com_alibaba_druid_1_1_16.xml new file mode 100644 index 0000000..0aedc62 --- /dev/null +++ b/.idea/libraries/Maven__com_alibaba_druid_1_1_16.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_alibaba_druid_spring_boot_starter_1_1_10.xml b/.idea/libraries/Maven__com_alibaba_druid_spring_boot_starter_1_1_10.xml new file mode 100644 index 0000000..74fcd43 --- /dev/null +++ b/.idea/libraries/Maven__com_alibaba_druid_spring_boot_starter_1_1_10.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_alibaba_fastjson_1_2_60.xml b/.idea/libraries/Maven__com_alibaba_fastjson_1_2_60.xml new file mode 100644 index 0000000..567a643 --- /dev/null +++ b/.idea/libraries/Maven__com_alibaba_fastjson_1_2_60.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_alibaba_fastjson_1_2_75.xml b/.idea/libraries/Maven__com_alibaba_fastjson_1_2_75.xml new file mode 100644 index 0000000..3c0095e --- /dev/null +++ b/.idea/libraries/Maven__com_alibaba_fastjson_1_2_75.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_alibaba_nacos_nacos_api_1_4_2.xml b/.idea/libraries/Maven__com_alibaba_nacos_nacos_api_1_4_2.xml new file mode 100644 index 0000000..9086d9b --- /dev/null +++ b/.idea/libraries/Maven__com_alibaba_nacos_nacos_api_1_4_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_alibaba_nacos_nacos_client_1_4_2.xml b/.idea/libraries/Maven__com_alibaba_nacos_nacos_client_1_4_2.xml new file mode 100644 index 0000000..7244bd9 --- /dev/null +++ b/.idea/libraries/Maven__com_alibaba_nacos_nacos_client_1_4_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_alibaba_nacos_nacos_common_1_4_2.xml b/.idea/libraries/Maven__com_alibaba_nacos_nacos_common_1_4_2.xml new file mode 100644 index 0000000..75fa642 --- /dev/null +++ b/.idea/libraries/Maven__com_alibaba_nacos_nacos_common_1_4_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_alibaba_spring_spring_context_support_1_0_10.xml b/.idea/libraries/Maven__com_alibaba_spring_spring_context_support_1_0_10.xml new file mode 100644 index 0000000..694c155 --- /dev/null +++ b/.idea/libraries/Maven__com_alibaba_spring_spring_context_support_1_0_10.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_auth0_java_jwt_3_8_2.xml b/.idea/libraries/Maven__com_auth0_java_jwt_3_8_2.xml new file mode 100644 index 0000000..f4f9a4c --- /dev/null +++ b/.idea/libraries/Maven__com_auth0_java_jwt_3_8_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_13_1.xml b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_13_1.xml new file mode 100644 index 0000000..49a5bb6 --- /dev/null +++ b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_13_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_13_1.xml b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_13_1.xml new file mode 100644 index 0000000..a1987aa --- /dev/null +++ b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_13_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_13_1.xml b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_13_1.xml new file mode 100644 index 0000000..229a81b --- /dev/null +++ b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_13_1.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_13_1.xml b/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_13_1.xml new file mode 100644 index 0000000..f95653d --- /dev/null +++ b/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_13_1.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_13_1.xml b/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_13_1.xml new file mode 100644 index 0000000..903e588 --- /dev/null +++ b/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_13_1.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_13_1.xml b/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_13_1.xml new file mode 100644 index 0000000..d5d9656 --- /dev/null +++ b/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_13_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_github_ben_manes_caffeine_caffeine_2_9_3.xml b/.idea/libraries/Maven__com_github_ben_manes_caffeine_caffeine_2_9_3.xml new file mode 100644 index 0000000..8dac95d --- /dev/null +++ b/.idea/libraries/Maven__com_github_ben_manes_caffeine_caffeine_2_9_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_google_code_findbugs_jsr305_3_0_2.xml b/.idea/libraries/Maven__com_google_code_findbugs_jsr305_3_0_2.xml new file mode 100644 index 0000000..1c380d0 --- /dev/null +++ b/.idea/libraries/Maven__com_google_code_findbugs_jsr305_3_0_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_google_errorprone_error_prone_annotations_2_3_4.xml b/.idea/libraries/Maven__com_google_errorprone_error_prone_annotations_2_3_4.xml new file mode 100644 index 0000000..848cecd --- /dev/null +++ b/.idea/libraries/Maven__com_google_errorprone_error_prone_annotations_2_3_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_google_guava_failureaccess_1_0_1.xml b/.idea/libraries/Maven__com_google_guava_failureaccess_1_0_1.xml new file mode 100644 index 0000000..36e948e --- /dev/null +++ b/.idea/libraries/Maven__com_google_guava_failureaccess_1_0_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_google_guava_guava_30_1_jre.xml b/.idea/libraries/Maven__com_google_guava_guava_30_1_jre.xml new file mode 100644 index 0000000..cf17df9 --- /dev/null +++ b/.idea/libraries/Maven__com_google_guava_guava_30_1_jre.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_google_guava_listenablefuture_9999_0_empty_to_avoid_conflict_with_guava.xml b/.idea/libraries/Maven__com_google_guava_listenablefuture_9999_0_empty_to_avoid_conflict_with_guava.xml new file mode 100644 index 0000000..4e15702 --- /dev/null +++ b/.idea/libraries/Maven__com_google_guava_listenablefuture_9999_0_empty_to_avoid_conflict_with_guava.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_google_j2objc_j2objc_annotations_1_3.xml b/.idea/libraries/Maven__com_google_j2objc_j2objc_annotations_1_3.xml new file mode 100644 index 0000000..bacaa45 --- /dev/null +++ b/.idea/libraries/Maven__com_google_j2objc_j2objc_annotations_1_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_google_protobuf_protobuf_java_3_11_4.xml b/.idea/libraries/Maven__com_google_protobuf_protobuf_java_3_11_4.xml new file mode 100644 index 0000000..d60deb0 --- /dev/null +++ b/.idea/libraries/Maven__com_google_protobuf_protobuf_java_3_11_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_google_protobuf_protobuf_java_3_7_1.xml b/.idea/libraries/Maven__com_google_protobuf_protobuf_java_3_7_1.xml new file mode 100644 index 0000000..06e9230 --- /dev/null +++ b/.idea/libraries/Maven__com_google_protobuf_protobuf_java_3_7_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_googlecode_concurrentlinkedhashmap_concurrentlinkedhashmap_lru_1_4_2.xml b/.idea/libraries/Maven__com_googlecode_concurrentlinkedhashmap_concurrentlinkedhashmap_lru_1_4_2.xml new file mode 100644 index 0000000..e497bcb --- /dev/null +++ b/.idea/libraries/Maven__com_googlecode_concurrentlinkedhashmap_concurrentlinkedhashmap_lru_1_4_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_6_0.xml b/.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_6_0.xml new file mode 100644 index 0000000..3056db8 --- /dev/null +++ b/.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_6_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_netflix_archaius_archaius_core_0_4_1.xml b/.idea/libraries/Maven__com_netflix_archaius_archaius_core_0_4_1.xml new file mode 100644 index 0000000..3d02407 --- /dev/null +++ b/.idea/libraries/Maven__com_netflix_archaius_archaius_core_0_4_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_netflix_hystrix_hystrix_core_1_5_18.xml b/.idea/libraries/Maven__com_netflix_hystrix_hystrix_core_1_5_18.xml new file mode 100644 index 0000000..588dca0 --- /dev/null +++ b/.idea/libraries/Maven__com_netflix_hystrix_hystrix_core_1_5_18.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_typesafe_config_1_2_1.xml b/.idea/libraries/Maven__com_typesafe_config_1_2_1.xml new file mode 100644 index 0000000..cc78721 --- /dev/null +++ b/.idea/libraries/Maven__com_typesafe_config_1_2_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml b/.idea/libraries/Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml new file mode 100644 index 0000000..b8581a6 --- /dev/null +++ b/.idea/libraries/Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_zaxxer_HikariCP_4_0_3.xml b/.idea/libraries/Maven__com_zaxxer_HikariCP_4_0_3.xml new file mode 100644 index 0000000..9314c36 --- /dev/null +++ b/.idea/libraries/Maven__com_zaxxer_HikariCP_4_0_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__commons_codec_commons_codec_1_15.xml b/.idea/libraries/Maven__commons_codec_commons_codec_1_15.xml new file mode 100644 index 0000000..c88c2b7 --- /dev/null +++ b/.idea/libraries/Maven__commons_codec_commons_codec_1_15.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__commons_configuration_commons_configuration_1_8.xml b/.idea/libraries/Maven__commons_configuration_commons_configuration_1_8.xml new file mode 100644 index 0000000..772d6fe --- /dev/null +++ b/.idea/libraries/Maven__commons_configuration_commons_configuration_1_8.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__commons_fileupload_commons_fileupload_1_4.xml b/.idea/libraries/Maven__commons_fileupload_commons_fileupload_1_4.xml new file mode 100644 index 0000000..3b9dcc0 --- /dev/null +++ b/.idea/libraries/Maven__commons_fileupload_commons_fileupload_1_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__commons_io_commons_io_2_7.xml b/.idea/libraries/Maven__commons_io_commons_io_2_7.xml new file mode 100644 index 0000000..ded72c9 --- /dev/null +++ b/.idea/libraries/Maven__commons_io_commons_io_2_7.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__commons_lang_commons_lang_2_6.xml b/.idea/libraries/Maven__commons_lang_commons_lang_2_6.xml new file mode 100644 index 0000000..2ec8376 --- /dev/null +++ b/.idea/libraries/Maven__commons_lang_commons_lang_2_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__commons_logging_commons_logging_1_1_1.xml b/.idea/libraries/Maven__commons_logging_commons_logging_1_1_1.xml new file mode 100644 index 0000000..b770f56 --- /dev/null +++ b/.idea/libraries/Maven__commons_logging_commons_logging_1_1_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__commons_pool_commons_pool_1_6.xml b/.idea/libraries/Maven__commons_pool_commons_pool_1_6.xml new file mode 100644 index 0000000..8393648 --- /dev/null +++ b/.idea/libraries/Maven__commons_pool_commons_pool_1_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_github_openfeign_feign_core_11_8.xml b/.idea/libraries/Maven__io_github_openfeign_feign_core_11_8.xml new file mode 100644 index 0000000..9887584 --- /dev/null +++ b/.idea/libraries/Maven__io_github_openfeign_feign_core_11_8.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_github_openfeign_feign_hystrix_11_8.xml b/.idea/libraries/Maven__io_github_openfeign_feign_hystrix_11_8.xml new file mode 100644 index 0000000..236f961 --- /dev/null +++ b/.idea/libraries/Maven__io_github_openfeign_feign_hystrix_11_8.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_github_openfeign_feign_slf4j_11_8.xml b/.idea/libraries/Maven__io_github_openfeign_feign_slf4j_11_8.xml new file mode 100644 index 0000000..ff0cd76 --- /dev/null +++ b/.idea/libraries/Maven__io_github_openfeign_feign_slf4j_11_8.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_github_openfeign_form_feign_form_3_8_0.xml b/.idea/libraries/Maven__io_github_openfeign_form_feign_form_3_8_0.xml new file mode 100644 index 0000000..0534476 --- /dev/null +++ b/.idea/libraries/Maven__io_github_openfeign_form_feign_form_3_8_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_github_openfeign_form_feign_form_spring_3_8_0.xml b/.idea/libraries/Maven__io_github_openfeign_form_feign_form_spring_3_8_0.xml new file mode 100644 index 0000000..47e101e --- /dev/null +++ b/.idea/libraries/Maven__io_github_openfeign_form_feign_form_spring_3_8_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_micrometer_micrometer_core_1_8_3.xml b/.idea/libraries/Maven__io_micrometer_micrometer_core_1_8_3.xml new file mode 100644 index 0000000..92c9f4e --- /dev/null +++ b/.idea/libraries/Maven__io_micrometer_micrometer_core_1_8_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_all_4_1_74_Final.xml b/.idea/libraries/Maven__io_netty_netty_all_4_1_74_Final.xml new file mode 100644 index 0000000..afe6177 --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_all_4_1_74_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_buffer_4_1_74_Final.xml b/.idea/libraries/Maven__io_netty_netty_buffer_4_1_74_Final.xml new file mode 100644 index 0000000..408bf6b --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_buffer_4_1_74_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_codec_4_1_74_Final.xml b/.idea/libraries/Maven__io_netty_netty_codec_4_1_74_Final.xml new file mode 100644 index 0000000..cb3f70b --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_codec_4_1_74_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_codec_dns_4_1_74_Final.xml b/.idea/libraries/Maven__io_netty_netty_codec_dns_4_1_74_Final.xml new file mode 100644 index 0000000..454a2cf --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_codec_dns_4_1_74_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_codec_haproxy_4_1_74_Final.xml b/.idea/libraries/Maven__io_netty_netty_codec_haproxy_4_1_74_Final.xml new file mode 100644 index 0000000..6f19a81 --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_codec_haproxy_4_1_74_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_codec_http2_4_1_74_Final.xml b/.idea/libraries/Maven__io_netty_netty_codec_http2_4_1_74_Final.xml new file mode 100644 index 0000000..0b7b7d4 --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_codec_http2_4_1_74_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_codec_http_4_1_74_Final.xml b/.idea/libraries/Maven__io_netty_netty_codec_http_4_1_74_Final.xml new file mode 100644 index 0000000..5553d55 --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_codec_http_4_1_74_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_codec_memcache_4_1_74_Final.xml b/.idea/libraries/Maven__io_netty_netty_codec_memcache_4_1_74_Final.xml new file mode 100644 index 0000000..f0dc74b --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_codec_memcache_4_1_74_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_codec_mqtt_4_1_74_Final.xml b/.idea/libraries/Maven__io_netty_netty_codec_mqtt_4_1_74_Final.xml new file mode 100644 index 0000000..a70b54b --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_codec_mqtt_4_1_74_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_codec_redis_4_1_74_Final.xml b/.idea/libraries/Maven__io_netty_netty_codec_redis_4_1_74_Final.xml new file mode 100644 index 0000000..a6aa856 --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_codec_redis_4_1_74_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_codec_smtp_4_1_74_Final.xml b/.idea/libraries/Maven__io_netty_netty_codec_smtp_4_1_74_Final.xml new file mode 100644 index 0000000..b3dfbdf --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_codec_smtp_4_1_74_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_codec_socks_4_1_74_Final.xml b/.idea/libraries/Maven__io_netty_netty_codec_socks_4_1_74_Final.xml new file mode 100644 index 0000000..8996bb1 --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_codec_socks_4_1_74_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_codec_stomp_4_1_74_Final.xml b/.idea/libraries/Maven__io_netty_netty_codec_stomp_4_1_74_Final.xml new file mode 100644 index 0000000..f570e9f --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_codec_stomp_4_1_74_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_codec_xml_4_1_74_Final.xml b/.idea/libraries/Maven__io_netty_netty_codec_xml_4_1_74_Final.xml new file mode 100644 index 0000000..515e8ea --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_codec_xml_4_1_74_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_common_4_1_74_Final.xml b/.idea/libraries/Maven__io_netty_netty_common_4_1_74_Final.xml new file mode 100644 index 0000000..0b52791 --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_common_4_1_74_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_handler_4_1_74_Final.xml b/.idea/libraries/Maven__io_netty_netty_handler_4_1_74_Final.xml new file mode 100644 index 0000000..e2fccfb --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_handler_4_1_74_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_handler_proxy_4_1_74_Final.xml b/.idea/libraries/Maven__io_netty_netty_handler_proxy_4_1_74_Final.xml new file mode 100644 index 0000000..594315f --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_handler_proxy_4_1_74_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_resolver_4_1_74_Final.xml b/.idea/libraries/Maven__io_netty_netty_resolver_4_1_74_Final.xml new file mode 100644 index 0000000..2abcf37 --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_resolver_4_1_74_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_resolver_dns_4_1_74_Final.xml b/.idea/libraries/Maven__io_netty_netty_resolver_dns_4_1_74_Final.xml new file mode 100644 index 0000000..f8bc661 --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_resolver_dns_4_1_74_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_resolver_dns_classes_macos_4_1_74_Final.xml b/.idea/libraries/Maven__io_netty_netty_resolver_dns_classes_macos_4_1_74_Final.xml new file mode 100644 index 0000000..5168bec --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_resolver_dns_classes_macos_4_1_74_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_resolver_dns_native_macos_osx_aarch_64_4_1_74_Final.xml b/.idea/libraries/Maven__io_netty_netty_resolver_dns_native_macos_osx_aarch_64_4_1_74_Final.xml new file mode 100644 index 0000000..1ee6c64 --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_resolver_dns_native_macos_osx_aarch_64_4_1_74_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_resolver_dns_native_macos_osx_x86_64_4_1_74_Final.xml b/.idea/libraries/Maven__io_netty_netty_resolver_dns_native_macos_osx_x86_64_4_1_74_Final.xml new file mode 100644 index 0000000..073db74 --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_resolver_dns_native_macos_osx_x86_64_4_1_74_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_tcnative_classes_2_0_48_Final.xml b/.idea/libraries/Maven__io_netty_netty_tcnative_classes_2_0_48_Final.xml new file mode 100644 index 0000000..6f8a539 --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_tcnative_classes_2_0_48_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_transport_4_1_74_Final.xml b/.idea/libraries/Maven__io_netty_netty_transport_4_1_74_Final.xml new file mode 100644 index 0000000..492b828 --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_transport_4_1_74_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_transport_classes_epoll_4_1_74_Final.xml b/.idea/libraries/Maven__io_netty_netty_transport_classes_epoll_4_1_74_Final.xml new file mode 100644 index 0000000..88c5b90 --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_transport_classes_epoll_4_1_74_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_transport_classes_kqueue_4_1_74_Final.xml b/.idea/libraries/Maven__io_netty_netty_transport_classes_kqueue_4_1_74_Final.xml new file mode 100644 index 0000000..45c1d5e --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_transport_classes_kqueue_4_1_74_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_transport_native_epoll_linux_aarch_64_4_1_74_Final.xml b/.idea/libraries/Maven__io_netty_netty_transport_native_epoll_linux_aarch_64_4_1_74_Final.xml new file mode 100644 index 0000000..34ddd73 --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_transport_native_epoll_linux_aarch_64_4_1_74_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_transport_native_epoll_linux_x86_64_4_1_74_Final.xml b/.idea/libraries/Maven__io_netty_netty_transport_native_epoll_linux_x86_64_4_1_74_Final.xml new file mode 100644 index 0000000..3fa0351 --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_transport_native_epoll_linux_x86_64_4_1_74_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_transport_native_kqueue_osx_aarch_64_4_1_74_Final.xml b/.idea/libraries/Maven__io_netty_netty_transport_native_kqueue_osx_aarch_64_4_1_74_Final.xml new file mode 100644 index 0000000..c300d0b --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_transport_native_kqueue_osx_aarch_64_4_1_74_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_transport_native_kqueue_osx_x86_64_4_1_74_Final.xml b/.idea/libraries/Maven__io_netty_netty_transport_native_kqueue_osx_x86_64_4_1_74_Final.xml new file mode 100644 index 0000000..fa1a295 --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_transport_native_kqueue_osx_x86_64_4_1_74_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_transport_native_unix_common_4_1_74_Final.xml b/.idea/libraries/Maven__io_netty_netty_transport_native_unix_common_4_1_74_Final.xml new file mode 100644 index 0000000..6dbbcba --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_transport_native_unix_common_4_1_74_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_transport_rxtx_4_1_74_Final.xml b/.idea/libraries/Maven__io_netty_netty_transport_rxtx_4_1_74_Final.xml new file mode 100644 index 0000000..e1fae78 --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_transport_rxtx_4_1_74_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_transport_sctp_4_1_74_Final.xml b/.idea/libraries/Maven__io_netty_netty_transport_sctp_4_1_74_Final.xml new file mode 100644 index 0000000..4a8e60e --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_transport_sctp_4_1_74_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_transport_udt_4_1_74_Final.xml b/.idea/libraries/Maven__io_netty_netty_transport_udt_4_1_74_Final.xml new file mode 100644 index 0000000..6b8825f --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_transport_udt_4_1_74_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_projectreactor_addons_reactor_extra_3_4_6.xml b/.idea/libraries/Maven__io_projectreactor_addons_reactor_extra_3_4_6.xml new file mode 100644 index 0000000..4be1e04 --- /dev/null +++ b/.idea/libraries/Maven__io_projectreactor_addons_reactor_extra_3_4_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_projectreactor_reactor_core_3_4_15.xml b/.idea/libraries/Maven__io_projectreactor_reactor_core_3_4_15.xml new file mode 100644 index 0000000..92afad3 --- /dev/null +++ b/.idea/libraries/Maven__io_projectreactor_reactor_core_3_4_15.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_prometheus_simpleclient_0_12_0.xml b/.idea/libraries/Maven__io_prometheus_simpleclient_0_12_0.xml new file mode 100644 index 0000000..517124b --- /dev/null +++ b/.idea/libraries/Maven__io_prometheus_simpleclient_0_12_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_prometheus_simpleclient_tracer_common_0_12_0.xml b/.idea/libraries/Maven__io_prometheus_simpleclient_tracer_common_0_12_0.xml new file mode 100644 index 0000000..cd1b812 --- /dev/null +++ b/.idea/libraries/Maven__io_prometheus_simpleclient_tracer_common_0_12_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_prometheus_simpleclient_tracer_otel_0_12_0.xml b/.idea/libraries/Maven__io_prometheus_simpleclient_tracer_otel_0_12_0.xml new file mode 100644 index 0000000..c33ce7a --- /dev/null +++ b/.idea/libraries/Maven__io_prometheus_simpleclient_tracer_otel_0_12_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_prometheus_simpleclient_tracer_otel_agent_0_12_0.xml b/.idea/libraries/Maven__io_prometheus_simpleclient_tracer_otel_agent_0_12_0.xml new file mode 100644 index 0000000..f48c838 --- /dev/null +++ b/.idea/libraries/Maven__io_prometheus_simpleclient_tracer_otel_agent_0_12_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_reactivex_rxjava_1_3_8.xml b/.idea/libraries/Maven__io_reactivex_rxjava_1_3_8.xml new file mode 100644 index 0000000..cda742b --- /dev/null +++ b/.idea/libraries/Maven__io_reactivex_rxjava_1_3_8.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_seata_seata_all_1_3_0.xml b/.idea/libraries/Maven__io_seata_seata_all_1_3_0.xml new file mode 100644 index 0000000..ddd3a97 --- /dev/null +++ b/.idea/libraries/Maven__io_seata_seata_all_1_3_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_seata_seata_spring_boot_starter_1_3_0.xml b/.idea/libraries/Maven__io_seata_seata_spring_boot_starter_1_3_0.xml new file mode 100644 index 0000000..57e454a --- /dev/null +++ b/.idea/libraries/Maven__io_seata_seata_spring_boot_starter_1_3_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__jakarta_activation_jakarta_activation_api_1_2_2.xml b/.idea/libraries/Maven__jakarta_activation_jakarta_activation_api_1_2_2.xml new file mode 100644 index 0000000..be90656 --- /dev/null +++ b/.idea/libraries/Maven__jakarta_activation_jakarta_activation_api_1_2_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml b/.idea/libraries/Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml new file mode 100644 index 0000000..cba9dd2 --- /dev/null +++ b/.idea/libraries/Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__jakarta_xml_bind_jakarta_xml_bind_api_2_3_3.xml b/.idea/libraries/Maven__jakarta_xml_bind_jakarta_xml_bind_api_2_3_3.xml new file mode 100644 index 0000000..04213f7 --- /dev/null +++ b/.idea/libraries/Maven__jakarta_xml_bind_jakarta_xml_bind_api_2_3_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__mysql_mysql_connector_java_5_1_47.xml b/.idea/libraries/Maven__mysql_mysql_connector_java_5_1_47.xml new file mode 100644 index 0000000..8ed561b --- /dev/null +++ b/.idea/libraries/Maven__mysql_mysql_connector_java_5_1_47.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__mysql_mysql_connector_java_8_0_27.xml b/.idea/libraries/Maven__mysql_mysql_connector_java_8_0_27.xml new file mode 100644 index 0000000..5c1fc59 --- /dev/null +++ b/.idea/libraries/Maven__mysql_mysql_connector_java_8_0_27.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_11_22.xml b/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_11_22.xml new file mode 100644 index 0000000..c957e32 --- /dev/null +++ b/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_11_22.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__net_bytebuddy_byte_buddy_agent_1_11_22.xml b/.idea/libraries/Maven__net_bytebuddy_byte_buddy_agent_1_11_22.xml new file mode 100644 index 0000000..b67ac50 --- /dev/null +++ b/.idea/libraries/Maven__net_bytebuddy_byte_buddy_agent_1_11_22.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__net_minidev_accessors_smart_2_4_8.xml b/.idea/libraries/Maven__net_minidev_accessors_smart_2_4_8.xml new file mode 100644 index 0000000..6b7b59a --- /dev/null +++ b/.idea/libraries/Maven__net_minidev_accessors_smart_2_4_8.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__net_minidev_json_smart_2_4_8.xml b/.idea/libraries/Maven__net_minidev_json_smart_2_4_8.xml new file mode 100644 index 0000000..7479a40 --- /dev/null +++ b/.idea/libraries/Maven__net_minidev_json_smart_2_4_8.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_commons_commons_pool2_2_11_1.xml b/.idea/libraries/Maven__org_apache_commons_commons_pool2_2_11_1.xml new file mode 100644 index 0000000..3983bb9 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_commons_commons_pool2_2_11_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_httpcomponents_httpasyncclient_4_1_5.xml b/.idea/libraries/Maven__org_apache_httpcomponents_httpasyncclient_4_1_5.xml new file mode 100644 index 0000000..5ce73d8 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_httpcomponents_httpasyncclient_4_1_5.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_httpcomponents_httpclient_4_5_13.xml b/.idea/libraries/Maven__org_apache_httpcomponents_httpclient_4_5_13.xml new file mode 100644 index 0000000..63bee0e --- /dev/null +++ b/.idea/libraries/Maven__org_apache_httpcomponents_httpclient_4_5_13.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_httpcomponents_httpcore_4_4_15.xml b/.idea/libraries/Maven__org_apache_httpcomponents_httpcore_4_4_15.xml new file mode 100644 index 0000000..c511a85 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_httpcomponents_httpcore_4_4_15.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_httpcomponents_httpcore_nio_4_4_15.xml b/.idea/libraries/Maven__org_apache_httpcomponents_httpcore_nio_4_4_15.xml new file mode 100644 index 0000000..ee0d14d --- /dev/null +++ b/.idea/libraries/Maven__org_apache_httpcomponents_httpcore_nio_4_4_15.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_17_1.xml b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_17_1.xml new file mode 100644 index 0000000..a54efd2 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_17_1.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_17_1.xml b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_17_1.xml new file mode 100644 index 0000000..2634d27 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_17_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_58.xml b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_58.xml new file mode 100644 index 0000000..a02ddfa --- /dev/null +++ b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_58.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_58.xml b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_58.xml new file mode 100644 index 0000000..a6317e0 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_58.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_58.xml b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_58.xml new file mode 100644 index 0000000..ccfd145 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_58.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_2.xml b/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_2.xml new file mode 100644 index 0000000..6ac1c42 --- /dev/null +++ b/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_aspectj_aspectjrt_1_9_7.xml b/.idea/libraries/Maven__org_aspectj_aspectjrt_1_9_7.xml new file mode 100644 index 0000000..cc946d7 --- /dev/null +++ b/.idea/libraries/Maven__org_aspectj_aspectjrt_1_9_7.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_aspectj_aspectjweaver_1_9_7.xml b/.idea/libraries/Maven__org_aspectj_aspectjweaver_1_9_7.xml new file mode 100644 index 0000000..bbaf9a7 --- /dev/null +++ b/.idea/libraries/Maven__org_aspectj_aspectjweaver_1_9_7.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_assertj_assertj_core_3_21_0.xml b/.idea/libraries/Maven__org_assertj_assertj_core_3_21_0.xml new file mode 100644 index 0000000..03e3cae --- /dev/null +++ b/.idea/libraries/Maven__org_assertj_assertj_core_3_21_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_bouncycastle_bcpkix_jdk15on_1_68.xml b/.idea/libraries/Maven__org_bouncycastle_bcpkix_jdk15on_1_68.xml new file mode 100644 index 0000000..65b4c2f --- /dev/null +++ b/.idea/libraries/Maven__org_bouncycastle_bcpkix_jdk15on_1_68.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_bouncycastle_bcprov_jdk15on_1_68.xml b/.idea/libraries/Maven__org_bouncycastle_bcprov_jdk15on_1_68.xml new file mode 100644 index 0000000..c7f7fce --- /dev/null +++ b/.idea/libraries/Maven__org_bouncycastle_bcprov_jdk15on_1_68.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_checkerframework_checker_qual_3_5_0.xml b/.idea/libraries/Maven__org_checkerframework_checker_qual_3_5_0.xml new file mode 100644 index 0000000..a520083 --- /dev/null +++ b/.idea/libraries/Maven__org_checkerframework_checker_qual_3_5_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_hamcrest_hamcrest_2_2.xml b/.idea/libraries/Maven__org_hamcrest_hamcrest_2_2.xml new file mode 100644 index 0000000..6b5496f --- /dev/null +++ b/.idea/libraries/Maven__org_hamcrest_hamcrest_2_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_hdrhistogram_HdrHistogram_2_1_12.xml b/.idea/libraries/Maven__org_hdrhistogram_HdrHistogram_2_1_12.xml new file mode 100644 index 0000000..6908885 --- /dev/null +++ b/.idea/libraries/Maven__org_hdrhistogram_HdrHistogram_2_1_12.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_8_2.xml b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_8_2.xml new file mode 100644 index 0000000..4f367e7 --- /dev/null +++ b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_8_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_8_2.xml b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_8_2.xml new file mode 100644 index 0000000..8e50783 --- /dev/null +++ b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_8_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_8_2.xml b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_8_2.xml new file mode 100644 index 0000000..fc8291b --- /dev/null +++ b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_8_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_params_5_8_2.xml b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_params_5_8_2.xml new file mode 100644 index 0000000..4b3ffb1 --- /dev/null +++ b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_params_5_8_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_8_2.xml b/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_8_2.xml new file mode 100644 index 0000000..181d095 --- /dev/null +++ b/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_8_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_8_2.xml b/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_8_2.xml new file mode 100644 index 0000000..5f3aebe --- /dev/null +++ b/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_8_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_latencyutils_LatencyUtils_2_0_3.xml b/.idea/libraries/Maven__org_latencyutils_LatencyUtils_2_0_3.xml new file mode 100644 index 0000000..bf68169 --- /dev/null +++ b/.idea/libraries/Maven__org_latencyutils_LatencyUtils_2_0_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_mockito_mockito_core_4_0_0.xml b/.idea/libraries/Maven__org_mockito_mockito_core_4_0_0.xml new file mode 100644 index 0000000..cf13209 --- /dev/null +++ b/.idea/libraries/Maven__org_mockito_mockito_core_4_0_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_mockito_mockito_junit_jupiter_4_0_0.xml b/.idea/libraries/Maven__org_mockito_mockito_junit_jupiter_4_0_0.xml new file mode 100644 index 0000000..49e3f23 --- /dev/null +++ b/.idea/libraries/Maven__org_mockito_mockito_junit_jupiter_4_0_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_mybatis_mybatis_3_5_3.xml b/.idea/libraries/Maven__org_mybatis_mybatis_3_5_3.xml new file mode 100644 index 0000000..496d8f1 --- /dev/null +++ b/.idea/libraries/Maven__org_mybatis_mybatis_3_5_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_mybatis_mybatis_3_5_9.xml b/.idea/libraries/Maven__org_mybatis_mybatis_3_5_9.xml new file mode 100644 index 0000000..16b7682 --- /dev/null +++ b/.idea/libraries/Maven__org_mybatis_mybatis_3_5_9.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_mybatis_mybatis_spring_2_0_3.xml b/.idea/libraries/Maven__org_mybatis_mybatis_spring_2_0_3.xml new file mode 100644 index 0000000..1af4228 --- /dev/null +++ b/.idea/libraries/Maven__org_mybatis_mybatis_spring_2_0_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_mybatis_mybatis_spring_2_0_7.xml b/.idea/libraries/Maven__org_mybatis_mybatis_spring_2_0_7.xml new file mode 100644 index 0000000..5f50a85 --- /dev/null +++ b/.idea/libraries/Maven__org_mybatis_mybatis_spring_2_0_7.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_autoconfigure_2_1_1.xml b/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_autoconfigure_2_1_1.xml new file mode 100644 index 0000000..cbb713a --- /dev/null +++ b/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_autoconfigure_2_1_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_autoconfigure_2_2_2.xml b/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_autoconfigure_2_2_2.xml new file mode 100644 index 0000000..94b2ad8 --- /dev/null +++ b/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_autoconfigure_2_2_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_starter_2_1_1.xml b/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_starter_2_1_1.xml new file mode 100644 index 0000000..eb12c3f --- /dev/null +++ b/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_starter_2_1_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_starter_2_2_2.xml b/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_starter_2_2_2.xml new file mode 100644 index 0000000..8d42b74 --- /dev/null +++ b/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_starter_2_2_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_objenesis_objenesis_3_2.xml b/.idea/libraries/Maven__org_objenesis_objenesis_3_2.xml new file mode 100644 index 0000000..6613def --- /dev/null +++ b/.idea/libraries/Maven__org_objenesis_objenesis_3_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml b/.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml new file mode 100644 index 0000000..fbc1b16 --- /dev/null +++ b/.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_ow2_asm_asm_4_2.xml b/.idea/libraries/Maven__org_ow2_asm_asm_4_2.xml new file mode 100644 index 0000000..b5e3748 --- /dev/null +++ b/.idea/libraries/Maven__org_ow2_asm_asm_4_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_ow2_asm_asm_9_1.xml b/.idea/libraries/Maven__org_ow2_asm_asm_9_1.xml new file mode 100644 index 0000000..67127c2 --- /dev/null +++ b/.idea/libraries/Maven__org_ow2_asm_asm_9_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_projectlombok_lombok_1_16_18.xml b/.idea/libraries/Maven__org_projectlombok_lombok_1_16_18.xml new file mode 100644 index 0000000..8503cb4 --- /dev/null +++ b/.idea/libraries/Maven__org_projectlombok_lombok_1_16_18.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_reactivestreams_reactive_streams_1_0_3.xml b/.idea/libraries/Maven__org_reactivestreams_reactive_streams_1_0_3.xml new file mode 100644 index 0000000..f17253b --- /dev/null +++ b/.idea/libraries/Maven__org_reactivestreams_reactive_streams_1_0_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_skyscreamer_jsonassert_1_5_0.xml b/.idea/libraries/Maven__org_skyscreamer_jsonassert_1_5_0.xml new file mode 100644 index 0000000..c4c54d6 --- /dev/null +++ b/.idea/libraries/Maven__org_skyscreamer_jsonassert_1_5_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_36.xml b/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_36.xml new file mode 100644 index 0000000..5d5c14b --- /dev/null +++ b/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_36.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_36.xml b/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_36.xml new file mode 100644 index 0000000..2d759c1 --- /dev/null +++ b/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_36.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_6_4.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_6_4.xml new file mode 100644 index 0000000..2b8b091 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_6_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_actuator_2_6_4.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_actuator_2_6_4.xml new file mode 100644 index 0000000..8acf4a5 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_actuator_2_6_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_actuator_autoconfigure_2_6_4.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_actuator_autoconfigure_2_6_4.xml new file mode 100644 index 0000000..a93dd14 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_actuator_autoconfigure_2_6_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_6_4.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_6_4.xml new file mode 100644 index 0000000..6c8ef9a --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_6_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_devtools_2_6_4.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_devtools_2_6_4.xml new file mode 100644 index 0000000..16766fa --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_devtools_2_6_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_6_4.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_6_4.xml new file mode 100644 index 0000000..6af0306 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_6_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_actuator_2_6_4.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_actuator_2_6_4.xml new file mode 100644 index 0000000..67debbe --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_actuator_2_6_4.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_6_4.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_aop_2_6_4.xml new file mode 100644 index 0000000..027b517 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_aop_2_6_4.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_6_4.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_6_4.xml new file mode 100644 index 0000000..a84fdf0 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_6_4.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_6_4.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_6_4.xml new file mode 100644 index 0000000..7e673db --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_6_4.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_6_4.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_6_4.xml new file mode 100644 index 0000000..34503b1 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_6_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_2_6_4.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_2_6_4.xml new file mode 100644 index 0000000..f765e7c --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_2_6_4.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_6_4.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_6_4.xml new file mode 100644 index 0000000..45e4f69 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_6_4.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_6_4.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_6_4.xml new file mode 100644 index 0000000..d4e7821 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_6_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_6_4.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_6_4.xml new file mode 100644 index 0000000..d60e087 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_6_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_6_4.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_6_4.xml new file mode 100644 index 0000000..9d9e5f3 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_6_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_commons_3_1_1.xml b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_commons_3_1_1.xml new file mode 100644 index 0000000..cf7784c --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_commons_3_1_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_context_3_1_1.xml b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_context_3_1_1.xml new file mode 100644 index 0000000..e27a86e --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_context_3_1_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_loadbalancer_3_1_1.xml b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_loadbalancer_3_1_1.xml new file mode 100644 index 0000000..592896c --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_loadbalancer_3_1_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_openfeign_core_3_1_1.xml b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_openfeign_core_3_1_1.xml new file mode 100644 index 0000000..47d1cbe --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_openfeign_core_3_1_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_3_1_1.xml b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_3_1_1.xml new file mode 100644 index 0000000..44779fd --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_3_1_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_openfeign_2_2_1_RELEASE.xml b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_openfeign_2_2_1_RELEASE.xml new file mode 100644 index 0000000..559fa0f --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_openfeign_2_2_1_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_security_spring_security_crypto_5_6_2.xml b/.idea/libraries/Maven__org_springframework_security_spring_security_crypto_5_6_2.xml new file mode 100644 index 0000000..d7aa501 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_security_spring_security_crypto_5_6_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_security_spring_security_rsa_1_0_10_RELEASE.xml b/.idea/libraries/Maven__org_springframework_security_spring_security_rsa_1_0_10_RELEASE.xml new file mode 100644 index 0000000..314b3ba --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_security_spring_security_rsa_1_0_10_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_aop_5_3_16.xml b/.idea/libraries/Maven__org_springframework_spring_aop_5_3_16.xml new file mode 100644 index 0000000..2615fc6 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_aop_5_3_16.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_beans_5_3_16.xml b/.idea/libraries/Maven__org_springframework_spring_beans_5_3_16.xml new file mode 100644 index 0000000..90b0617 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_beans_5_3_16.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_context_5_3_16.xml b/.idea/libraries/Maven__org_springframework_spring_context_5_3_16.xml new file mode 100644 index 0000000..4e9d926 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_context_5_3_16.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_core_5_3_16.xml b/.idea/libraries/Maven__org_springframework_spring_core_5_3_16.xml new file mode 100644 index 0000000..ebd2750 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_core_5_3_16.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_expression_5_3_16.xml b/.idea/libraries/Maven__org_springframework_spring_expression_5_3_16.xml new file mode 100644 index 0000000..5abe837 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_expression_5_3_16.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_jcl_5_3_16.xml b/.idea/libraries/Maven__org_springframework_spring_jcl_5_3_16.xml new file mode 100644 index 0000000..ca08b0f --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_jcl_5_3_16.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_jdbc_5_3_16.xml b/.idea/libraries/Maven__org_springframework_spring_jdbc_5_3_16.xml new file mode 100644 index 0000000..21d77d6 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_jdbc_5_3_16.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_test_5_3_16.xml b/.idea/libraries/Maven__org_springframework_spring_test_5_3_16.xml new file mode 100644 index 0000000..1120ff8 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_test_5_3_16.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_tx_5_3_16.xml b/.idea/libraries/Maven__org_springframework_spring_tx_5_3_16.xml new file mode 100644 index 0000000..0bf3523 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_tx_5_3_16.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_web_5_3_16.xml b/.idea/libraries/Maven__org_springframework_spring_web_5_3_16.xml new file mode 100644 index 0000000..6293afd --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_web_5_3_16.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_webmvc_5_3_16.xml b/.idea/libraries/Maven__org_springframework_spring_webmvc_5_3_16.xml new file mode 100644 index 0000000..1e95aa0 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_webmvc_5_3_16.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_xmlunit_xmlunit_core_2_8_4.xml b/.idea/libraries/Maven__org_xmlunit_xmlunit_core_2_8_4.xml new file mode 100644 index 0000000..23e67e6 --- /dev/null +++ b/.idea/libraries/Maven__org_xmlunit_xmlunit_core_2_8_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_yaml_snakeyaml_1_29.xml b/.idea/libraries/Maven__org_yaml_snakeyaml_1_29.xml new file mode 100644 index 0000000..c871529 --- /dev/null +++ b/.idea/libraries/Maven__org_yaml_snakeyaml_1_29.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..49d38e5 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,19 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..16f6c0b --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..e96534f --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/README.en.md b/README.en.md new file mode 100644 index 0000000..3b34eb1 --- /dev/null +++ b/README.en.md @@ -0,0 +1,36 @@ +# haoyueshici + +#### Description +2002,大三时期,做的机设比赛的项目,后台,。 + +#### Software Architecture +Software architecture description + +#### Installation + +1. xxxx +2. xxxx +3. xxxx + +#### Instructions + +1. xxxx +2. xxxx +3. xxxx + +#### Contribution + +1. Fork the repository +2. Create Feat_xxx branch +3. Commit your code +4. Create Pull Request + + +#### Gitee Feature + +1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md +2. Gitee blog [blog.gitee.com](https://blog.gitee.com) +3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore) +4. The most valuable open source project [GVP](https://gitee.com/gvp) +5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help) +6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/README.md b/README.md new file mode 100644 index 0000000..7269438 --- /dev/null +++ b/README.md @@ -0,0 +1,37 @@ +# haoyueshici + +#### 介绍 +2002,大三时期,做的机设比赛的项目,后台,。 + +#### 软件架构 +软件架构说明 + + +#### 安装教程 + +1. xxxx +2. xxxx +3. xxxx + +#### 使用说明 + +1. xxxx +2. xxxx +3. xxxx + +#### 参与贡献 + +1. Fork 本仓库 +2. 新建 Feat_xxx 分支 +3. 提交代码 +4. 新建 Pull Request + + +#### 特技 + +1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md +2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) +3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 +4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 +5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) +6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/poetry-api-commons/poetry-api-commons.iml b/poetry-api-commons/poetry-api-commons.iml new file mode 100644 index 0000000..7f8dba3 --- /dev/null +++ b/poetry-api-commons/poetry-api-commons.iml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/poetry-api-commons/pom.xml b/poetry-api-commons/pom.xml new file mode 100644 index 0000000..d98931b --- /dev/null +++ b/poetry-api-commons/pom.xml @@ -0,0 +1,57 @@ + + + + PoetryOfTheFourSeasons + com.jacklei.poetry + 1.0-SNAPSHOT + + 4.0.0 + + poetry-api-commons + + + + + + com.auth0 + java-jwt + 3.8.2 + + + + + + org.springframework.boot + spring-boot-devtools + runtime + true + + + org.projectlombok + lombok + true + + + cn.hutool + hutool-all + 5.1.0 + + + + + + + org.apache.maven.plugins + maven-project-info-reports-plugin + 3.0.0 + + + org.apache.maven.plugins + maven-site-plugin + 3.7.1 + + + + \ No newline at end of file diff --git a/poetry-api-commons/src/META-INF/MANIFEST.MF b/poetry-api-commons/src/META-INF/MANIFEST.MF new file mode 100644 index 0000000..af37b96 --- /dev/null +++ b/poetry-api-commons/src/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Main-Class: com.jacklei.poetry.PoemProviderMain8501 + diff --git a/poetry-api-commons/src/main/java/META-INF/MANIFEST.MF b/poetry-api-commons/src/main/java/META-INF/MANIFEST.MF new file mode 100644 index 0000000..2a9d962 --- /dev/null +++ b/poetry-api-commons/src/main/java/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Main-Class: com.jacklei.poetry.UserProviderMain8503 + diff --git a/poetry-api-commons/src/main/java/com/jacklei/poetry/entities/CommentsDynasty.java b/poetry-api-commons/src/main/java/com/jacklei/poetry/entities/CommentsDynasty.java new file mode 100644 index 0000000..a0c56fb --- /dev/null +++ b/poetry-api-commons/src/main/java/com/jacklei/poetry/entities/CommentsDynasty.java @@ -0,0 +1,21 @@ +package com.jacklei.poetry.entities; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@EqualsAndHashCode +public class CommentsDynasty { + private String CommentsId ; + private String DynastyId; + private String userId ; + private String commentsInformation; + private String time; + private List replyCommentsId; +} diff --git a/poetry-api-commons/src/main/java/com/jacklei/poetry/entities/CommentsPoem.java b/poetry-api-commons/src/main/java/com/jacklei/poetry/entities/CommentsPoem.java new file mode 100644 index 0000000..9522fe6 --- /dev/null +++ b/poetry-api-commons/src/main/java/com/jacklei/poetry/entities/CommentsPoem.java @@ -0,0 +1,23 @@ +package com.jacklei.poetry.entities; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@EqualsAndHashCode +public class CommentsPoem { + private String CommentsId ; + private String poemId; + private String userId ; + private String commentsInformation; + private String time; + private List replyCommentsId; + + +} diff --git a/poetry-api-commons/src/main/java/com/jacklei/poetry/entities/CommonResult.java b/poetry-api-commons/src/main/java/com/jacklei/poetry/entities/CommonResult.java new file mode 100644 index 0000000..78b83cf --- /dev/null +++ b/poetry-api-commons/src/main/java/com/jacklei/poetry/entities/CommonResult.java @@ -0,0 +1,25 @@ +package com.jacklei.poetry.entities; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@EqualsAndHashCode +public class CommonResult { + + private Integer code; + private String message; + private T data; + + public CommonResult( Integer code,String message) { + this( code, message,null); + } + + public CommonResult(T data) { + this(200, "操作成功", data); + } +} diff --git a/poetry-api-commons/src/main/java/com/jacklei/poetry/entities/Dynasty.java b/poetry-api-commons/src/main/java/com/jacklei/poetry/entities/Dynasty.java new file mode 100644 index 0000000..ea66ca1 --- /dev/null +++ b/poetry-api-commons/src/main/java/com/jacklei/poetry/entities/Dynasty.java @@ -0,0 +1,22 @@ +package com.jacklei.poetry.entities; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +@Data +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode +public class Dynasty { + private Long dynastyId; + private String dynastyName; + private String dynastyUserId; + private String dynastyUser; + private String dynastyInformation; + private Long giveLike; + private Long collection; + private String explain; + private String time; +} diff --git a/poetry-api-commons/src/main/java/com/jacklei/poetry/entities/GLDynasty.java b/poetry-api-commons/src/main/java/com/jacklei/poetry/entities/GLDynasty.java new file mode 100644 index 0000000..61dbd54 --- /dev/null +++ b/poetry-api-commons/src/main/java/com/jacklei/poetry/entities/GLDynasty.java @@ -0,0 +1,18 @@ +package com.jacklei.poetry.entities; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@EqualsAndHashCode +public class GLDynasty { + + private Long GiveLikeId; + private String UserId; + private String DynastyId; + private String time; +} diff --git a/poetry-api-commons/src/main/java/com/jacklei/poetry/entities/GLPoem.java b/poetry-api-commons/src/main/java/com/jacklei/poetry/entities/GLPoem.java new file mode 100644 index 0000000..5a64446 --- /dev/null +++ b/poetry-api-commons/src/main/java/com/jacklei/poetry/entities/GLPoem.java @@ -0,0 +1,19 @@ +package com.jacklei.poetry.entities; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@EqualsAndHashCode +public class GLPoem { + + private Long GiveLikeId; + private String UserId; + private String PoemId; + private String time; + +} diff --git a/poetry-api-commons/src/main/java/com/jacklei/poetry/entities/Poem.java b/poetry-api-commons/src/main/java/com/jacklei/poetry/entities/Poem.java new file mode 100644 index 0000000..eced9c2 --- /dev/null +++ b/poetry-api-commons/src/main/java/com/jacklei/poetry/entities/Poem.java @@ -0,0 +1,22 @@ +package com.jacklei.poetry.entities; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@EqualsAndHashCode +public class Poem { + private Long poemId; + private String poemName; + private String poemUserId; + private String poemUser; + private String poemInformation; + private Long giveLike; + private Long collection; + private String explain; + private String time; +} diff --git a/poetry-api-commons/src/main/java/com/jacklei/poetry/entities/User.java b/poetry-api-commons/src/main/java/com/jacklei/poetry/entities/User.java new file mode 100644 index 0000000..60ef48f --- /dev/null +++ b/poetry-api-commons/src/main/java/com/jacklei/poetry/entities/User.java @@ -0,0 +1,17 @@ +package com.jacklei.poetry.entities; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +@Data +@NoArgsConstructor +@EqualsAndHashCode +@AllArgsConstructor +public class User { + private Long userId; + private String username; + private String password; + private String email; +} diff --git a/poetry-api-commons/src/main/java/com/jacklei/poetry/service/ApiService.java b/poetry-api-commons/src/main/java/com/jacklei/poetry/service/ApiService.java new file mode 100644 index 0000000..3393012 --- /dev/null +++ b/poetry-api-commons/src/main/java/com/jacklei/poetry/service/ApiService.java @@ -0,0 +1,13 @@ +package com.jacklei.poetry.service; + +import com.jacklei.poetry.entities.User; +import com.jacklei.poetry.util.Pager; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class ApiService { + + +} diff --git a/poetry-api-commons/src/main/java/com/jacklei/poetry/util/Fallback.java b/poetry-api-commons/src/main/java/com/jacklei/poetry/util/Fallback.java new file mode 100644 index 0000000..4b09d81 --- /dev/null +++ b/poetry-api-commons/src/main/java/com/jacklei/poetry/util/Fallback.java @@ -0,0 +1,10 @@ +package com.jacklei.poetry.util; + +import com.jacklei.poetry.entities.CommonResult; + +public class Fallback { + + public CommonResult fallbackMethod(){ + return new CommonResult(555,"此服务正在维护中!"); + } +} diff --git a/poetry-api-commons/src/main/java/com/jacklei/poetry/util/JWTTokenUtil.java b/poetry-api-commons/src/main/java/com/jacklei/poetry/util/JWTTokenUtil.java new file mode 100644 index 0000000..42f20d9 --- /dev/null +++ b/poetry-api-commons/src/main/java/com/jacklei/poetry/util/JWTTokenUtil.java @@ -0,0 +1,58 @@ +package com.jacklei.poetry.util; + + +import com.auth0.jwt.JWT; +import com.auth0.jwt.JWTVerifier; +import com.auth0.jwt.algorithms.Algorithm; +import com.auth0.jwt.exceptions.JWTCreationException; +import com.auth0.jwt.exceptions.JWTVerificationException; +import com.auth0.jwt.interfaces.DecodedJWT; + +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +public class JWTTokenUtil { + //设置过期时间 + private static final long EXPIRE_DATE = 30*60*100000; + //token密钥 + private static final String TOKEN_SECRET ="ZCfasfhuaUUHufguGuwu2020BQWE"; + + public static String token (String username ,String password){ + String token = ""; + + try { + //过期时间 + Date date =new Date(System.currentTimeMillis()+EXPIRE_DATE); + //密钥及加密算法 + Algorithm algorithm = Algorithm.HMAC256(TOKEN_SECRET); + //设置头部信息 + Map header = new HashMap<>(); + header.put("typ","JWT"); + header.put("alg","Hs256"); + //携带username,password信息,生成签名 + token = JWT.create(). + withHeader(header). + withClaim("username",username). + withExpiresAt(date).sign(algorithm); + } catch (JWTCreationException e) { + e.printStackTrace(); + return null; + } + return token; + } + + public static boolean verify(String token){ + + try { + Algorithm algorithm =Algorithm.HMAC256(TOKEN_SECRET); + JWTVerifier verifier = JWT.require(algorithm).build(); + DecodedJWT jwt = verifier.verify(token); + return true; + } catch (JWTVerificationException e) { + e.printStackTrace(); + } + return false; + } + +} diff --git a/poetry-api-commons/src/main/java/com/jacklei/poetry/util/Pager.java b/poetry-api-commons/src/main/java/com/jacklei/poetry/util/Pager.java new file mode 100644 index 0000000..4a8181d --- /dev/null +++ b/poetry-api-commons/src/main/java/com/jacklei/poetry/util/Pager.java @@ -0,0 +1,21 @@ +package com.jacklei.poetry.util; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@EqualsAndHashCode +public class Pager { + + private int page ; + private int size; + private List rows; + private long total; + +} diff --git a/poetry-api-commons/src/main/java/com/jacklei/poetry/util/TimeUtil.java b/poetry-api-commons/src/main/java/com/jacklei/poetry/util/TimeUtil.java new file mode 100644 index 0000000..f06f361 --- /dev/null +++ b/poetry-api-commons/src/main/java/com/jacklei/poetry/util/TimeUtil.java @@ -0,0 +1,15 @@ +package com.jacklei.poetry.util; + +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.Date; + +public class TimeUtil { + + public static String getTime(){ + + DateFormat format =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + return format.format(new Date()); + } + +} diff --git a/poetry-api-commons/src/main/java/com/jacklei/poetry/util/TokenStatus.java b/poetry-api-commons/src/main/java/com/jacklei/poetry/util/TokenStatus.java new file mode 100644 index 0000000..4fa6c6a --- /dev/null +++ b/poetry-api-commons/src/main/java/com/jacklei/poetry/util/TokenStatus.java @@ -0,0 +1,18 @@ +package com.jacklei.poetry.util; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +import java.util.Date; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@EqualsAndHashCode +public class TokenStatus { + private String token; + private Date exp; + +} diff --git a/poetry-api-commons/src/main/resources/META-INF/MANIFEST.MF b/poetry-api-commons/src/main/resources/META-INF/MANIFEST.MF new file mode 100644 index 0000000..46e7c39 --- /dev/null +++ b/poetry-api-commons/src/main/resources/META-INF/MANIFEST.MF @@ -0,0 +1,78 @@ +Manifest-Version: 1.0 +Main-Class: com.jacklei.poetry.ConsumerAttentionMain +Class-Path: jackson-core-2.13.1.jar netty-transport-native-kqueue-4.1.74 + .Final-osx-aarch_64.jar checker-qual-3.5.0.jar netty-codec-haproxy-4.1. + 74.Final.jar spring-beans-5.3.16.jar feign-form-spring-3.8.0.jar netty- + transport-native-epoll-4.1.74.Final-linux-aarch_64.jar spring-cloud-ali + baba-sentinel-datasource-2.2.7.RELEASE.jar logback-classic-1.2.10.jar j + ul-to-slf4j-1.7.36.jar netty-all-4.1.74.Final.jar protobuf-java-3.11.4. + jar spring-context-support-1.0.10.jar sentinel-spring-webflux-adapter-1 + .8.1.jar commons-lang-2.6.jar sentinel-core-1.8.1.jar spring-boot-actua + tor-2.6.4.jar commons-pool-1.6.jar netty-handler-proxy-4.1.74.Final.jar + reactor-extra-3.4.6.jar aspectjrt-1.9.7.jar listenablefuture-9999.0-em + pty-to-avoid-conflict-with-guava.jar netty-transport-classes-kqueue-4.1 + .74.Final.jar feign-form-3.8.0.jar sentinel-transport-simple-http-1.8.1 + .jar simpleclient_tracer_otel-0.12.0.jar spring-boot-autoconfigure-2.6. + 4.jar sentinel-parameter-flow-control-1.8.1.jar slf4j-api-1.7.36.jar sp + ring-boot-starter-json-2.6.4.jar spring-cloud-circuitbreaker-sentinel-2 + .2.7.RELEASE.jar feign-core-11.8.jar mybatis-spring-boot-autoconfigure- + 2.1.1.jar netty-transport-4.1.74.Final.jar commons-configuration-1.8.ja + r concurrentlinkedhashmap-lru-1.4.2.jar netty-tcnative-classes-2.0.48.F + inal.jar lombok-1.16.18.jar HikariCP-4.0.3.jar spring-expression-5.3.16 + .jar netty-codec-dns-4.1.74.Final.jar spring-boot-starter-2.6.4.jar spr + ing-cloud-alibaba-commons-2.2.7.RELEASE.jar netty-codec-smtp-4.1.74.Fin + al.jar spring-cloud-loadbalancer-3.1.1.jar reactor-core-3.4.15.jar huto + ol-all-5.1.0.jar bcpkix-jdk15on-1.68.jar feign-hystrix-11.8.jar netty-t + ransport-classes-epoll-4.1.74.Final.jar mybatis-3.5.3.jar config-1.2.1. + jar archaius-core-0.4.1.jar snakeyaml-1.29.jar jackson-module-parameter + -names-2.13.1.jar jackson-databind-2.13.1.jar sentinel-transport-common + -1.8.1.jar netty-codec-socks-4.1.74.Final.jar micrometer-core-1.8.3.jar + spring-cloud-starter-3.1.1.jar spring-jdbc-5.3.16.jar httpcore-4.4.15. + jar aspectjweaver-1.9.7.jar httpcore-nio-4.4.15.jar tomcat-embed-el-9.0 + .58.jar spring-jcl-5.3.16.jar error_prone_annotations-2.3.4.jar rxjava- + 1.3.8.jar simpleclient-0.12.0.jar netty-transport-native-kqueue-4.1.74. + Final-osx-x86_64.jar mybatis-spring-2.0.3.jar log4j-to-slf4j-2.17.1.jar + netty-transport-native-epoll-4.1.74.Final-linux-x86_64.jar netty-commo + n-4.1.74.Final.jar spring-cloud-starter-openfeign-2.2.1.RELEASE.jar net + ty-codec-memcache-4.1.74.Final.jar jackson-datatype-jdk8-2.13.1.jar com + mons-codec-1.15.jar netty-codec-xml-4.1.74.Final.jar spring-security-rs + a-1.0.10.RELEASE.jar sentinel-datasource-extension-1.8.1.jar aopallianc + e-1.0.jar nacos-common-1.4.2.jar netty-buffer-4.1.74.Final.jar feign-sl + f4j-11.8.jar spring-web-5.3.16.jar mybatis-spring-boot-starter-2.1.1.ja + r simpleclient_tracer_otel_agent-0.12.0.jar spring-boot-starter-tomcat- + 2.6.4.jar log4j-api-2.17.1.jar netty-resolver-dns-native-macos-4.1.74.F + inal-osx-x86_64.jar httpclient-4.5.13.jar spring-boot-starter-actuator- + 2.6.4.jar netty-codec-mqtt-4.1.74.Final.jar spring-cloud-context-3.1.1. + jar netty-codec-redis-4.1.74.Final.jar sentinel-datasource-nacos-1.8.1. + jar jackson-annotations-2.13.1.jar spring-boot-starter-web-2.6.4.jar ne + tty-transport-sctp-4.1.74.Final.jar netty-resolver-4.1.74.Final.jar spr + ing-security-crypto-5.6.2.jar spring-cloud-openfeign-core-3.1.1.jar net + ty-transport-native-unix-common-4.1.74.Final.jar spring-boot-2.6.4.jar + commons-logging-1.1.1.jar asm-4.2.jar commons-io-2.7.jar jsr305-3.0.2.j + ar caffeine-2.9.3.jar sentinel-reactor-adapter-1.8.1.jar druid-spring-b + oot-starter-1.1.10.jar spring-core-5.3.16.jar spring-boot-starter-jdbc- + 2.6.4.jar guava-30.1-jre.jar nacos-api-1.4.2.jar jackson-datatype-jsr31 + 0-2.13.1.jar sentinel-cluster-server-default-1.8.1.jar spring-boot-actu + ator-autoconfigure-2.6.4.jar spring-cloud-starter-alibaba-nacos-discove + ry-2.2.7.RELEASE.jar spring-aop-5.3.16.jar simpleclient_tracer_common-0 + .12.0.jar netty-codec-4.1.74.Final.jar sentinel-spring-webmvc-adapter-1 + .8.1.jar spring-boot-starter-aop-2.6.4.jar sentinel-annotation-aspectj- + 1.8.1.jar netty-resolver-dns-classes-macos-4.1.74.Final.jar spring-tx-5 + .3.16.jar netty-transport-udt-4.1.74.Final.jar seata-spring-boot-starte + r-1.3.0.jar spring-cloud-starter-alibaba-sentinel-2.2.7.RELEASE.jar tom + cat-embed-core-9.0.58.jar logback-core-1.2.10.jar mysql-connector-java- + 8.0.27.jar sentinel-cluster-client-default-1.8.1.jar failureaccess-1.0. + 1.jar spring-context-5.3.16.jar netty-transport-rxtx-4.1.74.Final.jar j + akarta.annotation-api-1.3.5.jar commons-pool2-2.11.1.jar spring-webmvc- + 5.3.16.jar netty-codec-stomp-4.1.74.Final.jar druid-1.1.16.jar nacos-cl + ient-1.4.2.jar httpasyncclient-4.1.5.jar HdrHistogram-2.1.12.jar fastjs + on-1.2.60.jar cglib-3.1.jar bcprov-jdk15on-1.68.jar j2objc-annotations- + 1.3.jar hystrix-core-1.5.18.jar netty-codec-http2-4.1.74.Final.jar comm + ons-fileupload-1.4.jar tomcat-embed-websocket-9.0.58.jar netty-resolver + -dns-native-macos-4.1.74.Final-osx-aarch_64.jar jjwt-0.9.0.jar sentinel + -cluster-common-default-1.8.1.jar spring-cloud-commons-3.1.1.jar seata- + all-1.3.0.jar netty-codec-http-4.1.74.Final.jar LatencyUtils-2.0.3.jar + spring-boot-starter-logging-2.6.4.jar reactive-streams-1.0.3.jar spring + -cloud-starter-alibaba-nacos-config-2.2.7.RELEASE.jar netty-handler-4.1 + .74.Final.jar netty-resolver-dns-4.1.74.Final.jar + diff --git a/poetry-api-commons/target/classes/META-INF/MANIFEST.MF b/poetry-api-commons/target/classes/META-INF/MANIFEST.MF new file mode 100644 index 0000000..46e7c39 --- /dev/null +++ b/poetry-api-commons/target/classes/META-INF/MANIFEST.MF @@ -0,0 +1,78 @@ +Manifest-Version: 1.0 +Main-Class: com.jacklei.poetry.ConsumerAttentionMain +Class-Path: jackson-core-2.13.1.jar netty-transport-native-kqueue-4.1.74 + .Final-osx-aarch_64.jar checker-qual-3.5.0.jar netty-codec-haproxy-4.1. + 74.Final.jar spring-beans-5.3.16.jar feign-form-spring-3.8.0.jar netty- + transport-native-epoll-4.1.74.Final-linux-aarch_64.jar spring-cloud-ali + baba-sentinel-datasource-2.2.7.RELEASE.jar logback-classic-1.2.10.jar j + ul-to-slf4j-1.7.36.jar netty-all-4.1.74.Final.jar protobuf-java-3.11.4. + jar spring-context-support-1.0.10.jar sentinel-spring-webflux-adapter-1 + .8.1.jar commons-lang-2.6.jar sentinel-core-1.8.1.jar spring-boot-actua + tor-2.6.4.jar commons-pool-1.6.jar netty-handler-proxy-4.1.74.Final.jar + reactor-extra-3.4.6.jar aspectjrt-1.9.7.jar listenablefuture-9999.0-em + pty-to-avoid-conflict-with-guava.jar netty-transport-classes-kqueue-4.1 + .74.Final.jar feign-form-3.8.0.jar sentinel-transport-simple-http-1.8.1 + .jar simpleclient_tracer_otel-0.12.0.jar spring-boot-autoconfigure-2.6. + 4.jar sentinel-parameter-flow-control-1.8.1.jar slf4j-api-1.7.36.jar sp + ring-boot-starter-json-2.6.4.jar spring-cloud-circuitbreaker-sentinel-2 + .2.7.RELEASE.jar feign-core-11.8.jar mybatis-spring-boot-autoconfigure- + 2.1.1.jar netty-transport-4.1.74.Final.jar commons-configuration-1.8.ja + r concurrentlinkedhashmap-lru-1.4.2.jar netty-tcnative-classes-2.0.48.F + inal.jar lombok-1.16.18.jar HikariCP-4.0.3.jar spring-expression-5.3.16 + .jar netty-codec-dns-4.1.74.Final.jar spring-boot-starter-2.6.4.jar spr + ing-cloud-alibaba-commons-2.2.7.RELEASE.jar netty-codec-smtp-4.1.74.Fin + al.jar spring-cloud-loadbalancer-3.1.1.jar reactor-core-3.4.15.jar huto + ol-all-5.1.0.jar bcpkix-jdk15on-1.68.jar feign-hystrix-11.8.jar netty-t + ransport-classes-epoll-4.1.74.Final.jar mybatis-3.5.3.jar config-1.2.1. + jar archaius-core-0.4.1.jar snakeyaml-1.29.jar jackson-module-parameter + -names-2.13.1.jar jackson-databind-2.13.1.jar sentinel-transport-common + -1.8.1.jar netty-codec-socks-4.1.74.Final.jar micrometer-core-1.8.3.jar + spring-cloud-starter-3.1.1.jar spring-jdbc-5.3.16.jar httpcore-4.4.15. + jar aspectjweaver-1.9.7.jar httpcore-nio-4.4.15.jar tomcat-embed-el-9.0 + .58.jar spring-jcl-5.3.16.jar error_prone_annotations-2.3.4.jar rxjava- + 1.3.8.jar simpleclient-0.12.0.jar netty-transport-native-kqueue-4.1.74. + Final-osx-x86_64.jar mybatis-spring-2.0.3.jar log4j-to-slf4j-2.17.1.jar + netty-transport-native-epoll-4.1.74.Final-linux-x86_64.jar netty-commo + n-4.1.74.Final.jar spring-cloud-starter-openfeign-2.2.1.RELEASE.jar net + ty-codec-memcache-4.1.74.Final.jar jackson-datatype-jdk8-2.13.1.jar com + mons-codec-1.15.jar netty-codec-xml-4.1.74.Final.jar spring-security-rs + a-1.0.10.RELEASE.jar sentinel-datasource-extension-1.8.1.jar aopallianc + e-1.0.jar nacos-common-1.4.2.jar netty-buffer-4.1.74.Final.jar feign-sl + f4j-11.8.jar spring-web-5.3.16.jar mybatis-spring-boot-starter-2.1.1.ja + r simpleclient_tracer_otel_agent-0.12.0.jar spring-boot-starter-tomcat- + 2.6.4.jar log4j-api-2.17.1.jar netty-resolver-dns-native-macos-4.1.74.F + inal-osx-x86_64.jar httpclient-4.5.13.jar spring-boot-starter-actuator- + 2.6.4.jar netty-codec-mqtt-4.1.74.Final.jar spring-cloud-context-3.1.1. + jar netty-codec-redis-4.1.74.Final.jar sentinel-datasource-nacos-1.8.1. + jar jackson-annotations-2.13.1.jar spring-boot-starter-web-2.6.4.jar ne + tty-transport-sctp-4.1.74.Final.jar netty-resolver-4.1.74.Final.jar spr + ing-security-crypto-5.6.2.jar spring-cloud-openfeign-core-3.1.1.jar net + ty-transport-native-unix-common-4.1.74.Final.jar spring-boot-2.6.4.jar + commons-logging-1.1.1.jar asm-4.2.jar commons-io-2.7.jar jsr305-3.0.2.j + ar caffeine-2.9.3.jar sentinel-reactor-adapter-1.8.1.jar druid-spring-b + oot-starter-1.1.10.jar spring-core-5.3.16.jar spring-boot-starter-jdbc- + 2.6.4.jar guava-30.1-jre.jar nacos-api-1.4.2.jar jackson-datatype-jsr31 + 0-2.13.1.jar sentinel-cluster-server-default-1.8.1.jar spring-boot-actu + ator-autoconfigure-2.6.4.jar spring-cloud-starter-alibaba-nacos-discove + ry-2.2.7.RELEASE.jar spring-aop-5.3.16.jar simpleclient_tracer_common-0 + .12.0.jar netty-codec-4.1.74.Final.jar sentinel-spring-webmvc-adapter-1 + .8.1.jar spring-boot-starter-aop-2.6.4.jar sentinel-annotation-aspectj- + 1.8.1.jar netty-resolver-dns-classes-macos-4.1.74.Final.jar spring-tx-5 + .3.16.jar netty-transport-udt-4.1.74.Final.jar seata-spring-boot-starte + r-1.3.0.jar spring-cloud-starter-alibaba-sentinel-2.2.7.RELEASE.jar tom + cat-embed-core-9.0.58.jar logback-core-1.2.10.jar mysql-connector-java- + 8.0.27.jar sentinel-cluster-client-default-1.8.1.jar failureaccess-1.0. + 1.jar spring-context-5.3.16.jar netty-transport-rxtx-4.1.74.Final.jar j + akarta.annotation-api-1.3.5.jar commons-pool2-2.11.1.jar spring-webmvc- + 5.3.16.jar netty-codec-stomp-4.1.74.Final.jar druid-1.1.16.jar nacos-cl + ient-1.4.2.jar httpasyncclient-4.1.5.jar HdrHistogram-2.1.12.jar fastjs + on-1.2.60.jar cglib-3.1.jar bcprov-jdk15on-1.68.jar j2objc-annotations- + 1.3.jar hystrix-core-1.5.18.jar netty-codec-http2-4.1.74.Final.jar comm + ons-fileupload-1.4.jar tomcat-embed-websocket-9.0.58.jar netty-resolver + -dns-native-macos-4.1.74.Final-osx-aarch_64.jar jjwt-0.9.0.jar sentinel + -cluster-common-default-1.8.1.jar spring-cloud-commons-3.1.1.jar seata- + all-1.3.0.jar netty-codec-http-4.1.74.Final.jar LatencyUtils-2.0.3.jar + spring-boot-starter-logging-2.6.4.jar reactive-streams-1.0.3.jar spring + -cloud-starter-alibaba-nacos-config-2.2.7.RELEASE.jar netty-handler-4.1 + .74.Final.jar netty-resolver-dns-4.1.74.Final.jar + diff --git a/poetry-api-commons/target/classes/com/jacklei/poetry/entities/CommentsDynasty.class b/poetry-api-commons/target/classes/com/jacklei/poetry/entities/CommentsDynasty.class new file mode 100644 index 0000000..ced789a Binary files /dev/null and b/poetry-api-commons/target/classes/com/jacklei/poetry/entities/CommentsDynasty.class differ diff --git a/poetry-api-commons/target/classes/com/jacklei/poetry/entities/CommentsPoem.class b/poetry-api-commons/target/classes/com/jacklei/poetry/entities/CommentsPoem.class new file mode 100644 index 0000000..31563cd Binary files /dev/null and b/poetry-api-commons/target/classes/com/jacklei/poetry/entities/CommentsPoem.class differ diff --git a/poetry-api-commons/target/classes/com/jacklei/poetry/entities/CommonResult.class b/poetry-api-commons/target/classes/com/jacklei/poetry/entities/CommonResult.class new file mode 100644 index 0000000..b77e049 Binary files /dev/null and b/poetry-api-commons/target/classes/com/jacklei/poetry/entities/CommonResult.class differ diff --git a/poetry-api-commons/target/classes/com/jacklei/poetry/entities/Dynasty.class b/poetry-api-commons/target/classes/com/jacklei/poetry/entities/Dynasty.class new file mode 100644 index 0000000..ac420d6 Binary files /dev/null and b/poetry-api-commons/target/classes/com/jacklei/poetry/entities/Dynasty.class differ diff --git a/poetry-api-commons/target/classes/com/jacklei/poetry/entities/GLDynasty.class b/poetry-api-commons/target/classes/com/jacklei/poetry/entities/GLDynasty.class new file mode 100644 index 0000000..2d5cb20 Binary files /dev/null and b/poetry-api-commons/target/classes/com/jacklei/poetry/entities/GLDynasty.class differ diff --git a/poetry-api-commons/target/classes/com/jacklei/poetry/entities/GLPoem.class b/poetry-api-commons/target/classes/com/jacklei/poetry/entities/GLPoem.class new file mode 100644 index 0000000..459c732 Binary files /dev/null and b/poetry-api-commons/target/classes/com/jacklei/poetry/entities/GLPoem.class differ diff --git a/poetry-api-commons/target/classes/com/jacklei/poetry/entities/Poem.class b/poetry-api-commons/target/classes/com/jacklei/poetry/entities/Poem.class new file mode 100644 index 0000000..081e142 Binary files /dev/null and b/poetry-api-commons/target/classes/com/jacklei/poetry/entities/Poem.class differ diff --git a/poetry-api-commons/target/classes/com/jacklei/poetry/entities/User.class b/poetry-api-commons/target/classes/com/jacklei/poetry/entities/User.class new file mode 100644 index 0000000..839deb7 Binary files /dev/null and b/poetry-api-commons/target/classes/com/jacklei/poetry/entities/User.class differ diff --git a/poetry-api-commons/target/classes/com/jacklei/poetry/service/ApiService.class b/poetry-api-commons/target/classes/com/jacklei/poetry/service/ApiService.class new file mode 100644 index 0000000..0ebb524 Binary files /dev/null and b/poetry-api-commons/target/classes/com/jacklei/poetry/service/ApiService.class differ diff --git a/poetry-api-commons/target/classes/com/jacklei/poetry/util/Fallback.class b/poetry-api-commons/target/classes/com/jacklei/poetry/util/Fallback.class new file mode 100644 index 0000000..bb51af3 Binary files /dev/null and b/poetry-api-commons/target/classes/com/jacklei/poetry/util/Fallback.class differ diff --git a/poetry-api-commons/target/classes/com/jacklei/poetry/util/JWTTokenUtil.class b/poetry-api-commons/target/classes/com/jacklei/poetry/util/JWTTokenUtil.class new file mode 100644 index 0000000..82b42c1 Binary files /dev/null and b/poetry-api-commons/target/classes/com/jacklei/poetry/util/JWTTokenUtil.class differ diff --git a/poetry-api-commons/target/classes/com/jacklei/poetry/util/Pager.class b/poetry-api-commons/target/classes/com/jacklei/poetry/util/Pager.class new file mode 100644 index 0000000..db324f7 Binary files /dev/null and b/poetry-api-commons/target/classes/com/jacklei/poetry/util/Pager.class differ diff --git a/poetry-api-commons/target/classes/com/jacklei/poetry/util/TimeUtil.class b/poetry-api-commons/target/classes/com/jacklei/poetry/util/TimeUtil.class new file mode 100644 index 0000000..37f4aaf Binary files /dev/null and b/poetry-api-commons/target/classes/com/jacklei/poetry/util/TimeUtil.class differ diff --git a/poetry-api-commons/target/classes/com/jacklei/poetry/util/TokenStatus.class b/poetry-api-commons/target/classes/com/jacklei/poetry/util/TokenStatus.class new file mode 100644 index 0000000..117870c Binary files /dev/null and b/poetry-api-commons/target/classes/com/jacklei/poetry/util/TokenStatus.class differ diff --git a/poetry-api-commons/target/maven-archiver/pom.properties b/poetry-api-commons/target/maven-archiver/pom.properties new file mode 100644 index 0000000..b199ce0 --- /dev/null +++ b/poetry-api-commons/target/maven-archiver/pom.properties @@ -0,0 +1,5 @@ +#Generated by Maven +#Tue Apr 19 21:32:17 CST 2022 +version=1.0-SNAPSHOT +groupId=com.jacklei.poetry +artifactId=poetry-api-commons diff --git a/poetry-api-commons/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/poetry-api-commons/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..7f231f2 --- /dev/null +++ b/poetry-api-commons/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,14 @@ +com\jacklei\poetry\service\ApiService.class +com\jacklei\poetry\entities\GLPoem.class +com\jacklei\poetry\entities\CommentsDynasty.class +com\jacklei\poetry\entities\Dynasty.class +com\jacklei\poetry\entities\CommentsPoem.class +com\jacklei\poetry\entities\User.class +com\jacklei\poetry\util\JWTTokenUtil.class +com\jacklei\poetry\entities\Poem.class +com\jacklei\poetry\entities\CommonResult.class +com\jacklei\poetry\util\TokenStatus.class +com\jacklei\poetry\util\Pager.class +com\jacklei\poetry\util\TimeUtil.class +com\jacklei\poetry\entities\GLDynasty.class +com\jacklei\poetry\util\Fallback.class diff --git a/poetry-api-commons/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/poetry-api-commons/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..45c5d02 --- /dev/null +++ b/poetry-api-commons/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,14 @@ +C:\Users\lenovo\Desktop\后端源码\poetry-api-commons\src\main\java\com\jacklei\poetry\entities\User.java +C:\Users\lenovo\Desktop\后端源码\poetry-api-commons\src\main\java\com\jacklei\poetry\util\Pager.java +C:\Users\lenovo\Desktop\后端源码\poetry-api-commons\src\main\java\com\jacklei\poetry\entities\GLDynasty.java +C:\Users\lenovo\Desktop\后端源码\poetry-api-commons\src\main\java\com\jacklei\poetry\service\ApiService.java +C:\Users\lenovo\Desktop\后端源码\poetry-api-commons\src\main\java\com\jacklei\poetry\entities\CommonResult.java +C:\Users\lenovo\Desktop\后端源码\poetry-api-commons\src\main\java\com\jacklei\poetry\entities\Poem.java +C:\Users\lenovo\Desktop\后端源码\poetry-api-commons\src\main\java\com\jacklei\poetry\util\Fallback.java +C:\Users\lenovo\Desktop\后端源码\poetry-api-commons\src\main\java\com\jacklei\poetry\entities\Dynasty.java +C:\Users\lenovo\Desktop\后端源码\poetry-api-commons\src\main\java\com\jacklei\poetry\util\JWTTokenUtil.java +C:\Users\lenovo\Desktop\后端源码\poetry-api-commons\src\main\java\com\jacklei\poetry\entities\CommentsDynasty.java +C:\Users\lenovo\Desktop\后端源码\poetry-api-commons\src\main\java\com\jacklei\poetry\entities\CommentsPoem.java +C:\Users\lenovo\Desktop\后端源码\poetry-api-commons\src\main\java\com\jacklei\poetry\util\TimeUtil.java +C:\Users\lenovo\Desktop\后端源码\poetry-api-commons\src\main\java\com\jacklei\poetry\entities\GLPoem.java +C:\Users\lenovo\Desktop\后端源码\poetry-api-commons\src\main\java\com\jacklei\poetry\util\TokenStatus.java diff --git a/poetry-api-commons/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/poetry-api-commons/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/poetry-api-commons/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/poetry-api-commons/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/poetry-api-commons/target/poetry-api-commons-1.0-SNAPSHOT.jar b/poetry-api-commons/target/poetry-api-commons-1.0-SNAPSHOT.jar new file mode 100644 index 0000000..6c54ab6 Binary files /dev/null and b/poetry-api-commons/target/poetry-api-commons-1.0-SNAPSHOT.jar differ diff --git a/poetry-consumer-attention/poetry-consumer-attention.iml b/poetry-consumer-attention/poetry-consumer-attention.iml new file mode 100644 index 0000000..f6a9633 --- /dev/null +++ b/poetry-consumer-attention/poetry-consumer-attention.iml @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/poetry-consumer-attention/pom.xml b/poetry-consumer-attention/pom.xml new file mode 100644 index 0000000..bae07b5 --- /dev/null +++ b/poetry-consumer-attention/pom.xml @@ -0,0 +1,143 @@ + + + + PoetryOfTheFourSeasons + com.jacklei.poetry + 1.0-SNAPSHOT + + 4.0.0 + + poetry-consumer-attention + + + + com.auth0 + java-jwt + 3.8.2 + + + + com.jacklei.poetry + poetry-api-commons + 1.0-SNAPSHOT + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + 2.2.7.RELEASE + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + 2.2.7.RELEASE + + + org.springframework.cloud + spring-cloud-starter-netflix-ribbon + + + + + org.springframework.cloud + spring-cloud-loadbalancer + + + com.alibaba.csp + sentinel-datasource-nacos + + + + + com.alibaba.nacos + nacos-client + 1.4.2 + + + + + + + + + + + + + + + + + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + + mysql + mysql-connector-java + 5.1.47 + + + com.alibaba + druid-spring-boot-starter + 1.1.10 + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + 2.1.1 + + + org.springframework.boot + spring-boot-starter-test + test + + + org.projectlombok + lombok + true + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.8 + 1.8 + + + + org.springframework.boot + spring-boot-maven-plugin + 2.2.2.RELEASE + + + com.jacklei.poetry.ConsumerAttentionMain + + + + + repackage + + + + + + + + \ No newline at end of file diff --git a/poetry-consumer-attention/src/main/java/com/jacklei/poetry/ConsumerAttentionMain.java b/poetry-consumer-attention/src/main/java/com/jacklei/poetry/ConsumerAttentionMain.java new file mode 100644 index 0000000..7482605 --- /dev/null +++ b/poetry-consumer-attention/src/main/java/com/jacklei/poetry/ConsumerAttentionMain.java @@ -0,0 +1,14 @@ +package com.jacklei.poetry; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; + +@SpringBootApplication +@EnableDiscoveryClient +//@EnableFeignClients +public class ConsumerAttentionMain { + public static void main(String[] args) { + SpringApplication.run(ConsumerAttentionMain.class,args); + } +} diff --git a/poetry-consumer-attention/src/main/java/com/jacklei/poetry/config/LoginHandlerInterceptor.java b/poetry-consumer-attention/src/main/java/com/jacklei/poetry/config/LoginHandlerInterceptor.java new file mode 100644 index 0000000..7e91a15 --- /dev/null +++ b/poetry-consumer-attention/src/main/java/com/jacklei/poetry/config/LoginHandlerInterceptor.java @@ -0,0 +1,56 @@ +package com.jacklei.poetry.config; + +import com.jacklei.poetry.util.JWTTokenUtil; +import org.springframework.web.servlet.HandlerInterceptor; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +public class LoginHandlerInterceptor implements HandlerInterceptor { + + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + String token = request.getHeader("token"); + System.err.println(token); + if(token==null||token.isEmpty()){ + //没有 token + request.setAttribute("msg","没有权限,请重新登录!"); + request.getRequestDispatcher("/do/login/token").forward(request,response); + return false; + } + else if(JWTTokenUtil.verify(token)){return true;}//正常token + else{ + request.setAttribute("msg","登录时间过长,请重新登录!"); + request.getRequestDispatcher("/do/login/token").forward(request,response); + return false; + } + /* Object LoginUser = request.getSession().getAttribute("user"); + if(LoginUser==null){ + request.setAttribute("msg","没有权限,请重新登录!"); + request.getRequestDispatcher("/consumer/login").forward(request,response); + + return false; + }else*/ + /*response.setHeader("Access-Control-Allow-Origin", "*"); + response.setHeader("Access-Control-Allow-Headers", "X-Requested-With"); + response.setHeader("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS"); + response.setHeader("X-Powered-By","3.2.1"); + response.setHeader("Access-Control-Allow-Credentials","true"); + response.setHeader("Content-Type", "application/json;charset=utf-8"); +*/ + + + + } + + @Override + public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { + + } + + @Override + public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { + + } +} diff --git a/poetry-consumer-attention/src/main/java/com/jacklei/poetry/config/MyBatisConfig.java b/poetry-consumer-attention/src/main/java/com/jacklei/poetry/config/MyBatisConfig.java new file mode 100644 index 0000000..646089b --- /dev/null +++ b/poetry-consumer-attention/src/main/java/com/jacklei/poetry/config/MyBatisConfig.java @@ -0,0 +1,9 @@ +package com.jacklei.poetry.config; + +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.context.annotation.Configuration; + +@Configuration +@MapperScan(basePackages = "com.jacklei.poetry.mapper") +public class MyBatisConfig { +} diff --git a/poetry-consumer-attention/src/main/java/com/jacklei/poetry/config/MyMvcConfig.java b/poetry-consumer-attention/src/main/java/com/jacklei/poetry/config/MyMvcConfig.java new file mode 100644 index 0000000..2046f56 --- /dev/null +++ b/poetry-consumer-attention/src/main/java/com/jacklei/poetry/config/MyMvcConfig.java @@ -0,0 +1,16 @@ +package com.jacklei.poetry.config; + +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration +public class MyMvcConfig implements WebMvcConfigurer { + + @Override + public void addInterceptors(InterceptorRegistry registry) { + registry.addInterceptor(new LoginHandlerInterceptor()).addPathPatterns("/**"). + excludePathPatterns("/**/do/**","/do/**"); + //registry.addInterceptor(new LoginHandlerInterceptor()); + } +} diff --git a/poetry-consumer-attention/src/main/java/com/jacklei/poetry/controller/AttentionController.java b/poetry-consumer-attention/src/main/java/com/jacklei/poetry/controller/AttentionController.java new file mode 100644 index 0000000..d6077fd --- /dev/null +++ b/poetry-consumer-attention/src/main/java/com/jacklei/poetry/controller/AttentionController.java @@ -0,0 +1,99 @@ +package com.jacklei.poetry.controller; + +import com.jacklei.poetry.entities.CommonResult; +import com.jacklei.poetry.entities.User; +import com.jacklei.poetry.service.AttentionService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RestController; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.List; +@CrossOrigin +@RestController +@Slf4j +public class AttentionController { + + @Resource + private AttentionService attentionService; + + /** + * toke异常通知 + * 前端不需要调用 + * @param request + * @return 201 + */ + @GetMapping("/do/login/token") + public CommonResult doLoginToken ( HttpServletRequest request ){ + Object msg = request.getAttribute("msg"); + return new CommonResult(201,"token异常",msg); + } + /** + *关注用户 + * @param followers 关注者 id + * @param byFollowers 被关注者 id + * @return 400 or 200 + */ + @GetMapping("/consumer/user/attention/{followers}/{byFollowers}") + public CommonResult UserAttention(@PathVariable("followers") Long followers, @PathVariable("byFollowers") Long byFollowers) throws Exception { + log.info("进入用户关注后台 followers:"+followers+",byFollowers:"+byFollowers); + boolean result=attentionService.UserAttention(followers,byFollowers); + if(!result) return new CommonResult(400,"关注失败!"); + return new CommonResult(null); + } + /** + * 取消关注 + * 通过用户id与被关注着的id + * @param followers 用户id + * @param byFollowers 被关注者的id + * @return 200 or 204 + */ + @GetMapping("/consumer/user/cancel/attention/{followers}/{byFollowers}") + public CommonResult userCancelAttention(@PathVariable("followers") Long followers, @PathVariable("byFollowers") Long byFollowers){ + log.info("进入用户取消关注后台 followers:"+followers+",byFollowers:"+byFollowers); + return attentionService.userCancelAttention(followers,byFollowers); + } + /** + * 取消关注 + * 通过 关注信息的id + * @param attentionId 关注信息的id + * @return 200 or 400 + */ + @GetMapping("/consumer/user/unfollow/{attentionId}") + public CommonResult UserUnfollow(@PathVariable("attentionId") Long attentionId){ + log.info("进入用户关注后台 attentionId:"+attentionId); + boolean result=attentionService.UserUnfollow(attentionId); + if(!result) return new CommonResult(400,"取消关注失败!"); + return new CommonResult(null); + + } + /** + * 查看关注列表 + * @param followers 用户的id + * @return 用户列表 + */ + @GetMapping("/consumer/user/followersList/{followers}") + public CommonResult UserFollowersList(@PathVariable("followers") Long followers){ + log.info("查看关注列表 followers:"+followers); + List result=attentionService.UserFollowersList(followers); + if(result==null) return new CommonResult(400,"查看关注列表失败!"); + return new CommonResult(result); + } + /** + *查看是否关注 + * @param followers 用户的id + * @param byFollowers 需要关注着的id + * @return :204 or 200 + * data为null表示没有关注 + * data 有user 数据 ,则关注关注过! + */ + @GetMapping("/consumer/user/see/attention/{followers}/{byFollowers}") + public CommonResult SeeAttention(@PathVariable("followers") Long followers, @PathVariable("byFollowers") Long byFollowers){ + log.info("进入查看是否关注后台 followers:"+followers+",byFollowers:"+byFollowers); + User result=attentionService.SeeAttention(followers,byFollowers); + if (result==null)return new CommonResult(204,"没有关注!"); + return new CommonResult(200,"此用户已被关注!",result); + } +} diff --git a/poetry-consumer-attention/src/main/java/com/jacklei/poetry/mapper/AttentionDao.java b/poetry-consumer-attention/src/main/java/com/jacklei/poetry/mapper/AttentionDao.java new file mode 100644 index 0000000..5063a7a --- /dev/null +++ b/poetry-consumer-attention/src/main/java/com/jacklei/poetry/mapper/AttentionDao.java @@ -0,0 +1,21 @@ +package com.jacklei.poetry.mapper; + + +import com.jacklei.poetry.entities.User; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +@Mapper +public interface AttentionDao { + + int UserAttention(@Param("followers") Long followers,@Param("byFollowers") Long byFollowers,@Param("time") String time); + + int UserUnfollow(@Param("attentionId") Long attentionId); + + List UserFollowersList(@Param("followers") Long followers); + + User SeeAttention(@Param("followers") Long followers,@Param("byFollowers") Long byFollowers); + + int userCancelAttention(@Param("followers") Long followers,@Param("byFollowers") Long byFollowers); +} diff --git a/poetry-consumer-attention/src/main/java/com/jacklei/poetry/service/AttentionService.java b/poetry-consumer-attention/src/main/java/com/jacklei/poetry/service/AttentionService.java new file mode 100644 index 0000000..feb9441 --- /dev/null +++ b/poetry-consumer-attention/src/main/java/com/jacklei/poetry/service/AttentionService.java @@ -0,0 +1,19 @@ +package com.jacklei.poetry.service; + +import com.jacklei.poetry.entities.CommonResult; +import com.jacklei.poetry.entities.User; + +import javax.jws.soap.SOAPBinding; +import java.util.List; + +public interface AttentionService { + boolean UserAttention(Long followers, Long byFollowers) throws Exception; + + boolean UserUnfollow(Long attentionId); + + List UserFollowersList(Long followers); + + User SeeAttention(Long followers, Long byFollowers); + + CommonResult userCancelAttention(Long followers, Long byFollowers); +} diff --git a/poetry-consumer-attention/src/main/java/com/jacklei/poetry/service/Impl/AttentionServiceImpl.java b/poetry-consumer-attention/src/main/java/com/jacklei/poetry/service/Impl/AttentionServiceImpl.java new file mode 100644 index 0000000..8820afe --- /dev/null +++ b/poetry-consumer-attention/src/main/java/com/jacklei/poetry/service/Impl/AttentionServiceImpl.java @@ -0,0 +1,54 @@ +package com.jacklei.poetry.service.Impl; + +import com.jacklei.poetry.entities.CommonResult; +import com.jacklei.poetry.entities.User; +import com.jacklei.poetry.mapper.AttentionDao; +import com.jacklei.poetry.service.AttentionService; +import com.jacklei.poetry.util.TimeUtil; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.List; + +@Service +public class AttentionServiceImpl implements AttentionService { + @Resource + private AttentionDao attentionDao; + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean UserAttention(Long followers, Long byFollowers)throws Exception { + if(followers.equals(byFollowers)) return false; + User result1=attentionDao.SeeAttention(followers,byFollowers); + if(result1!=null) return false; + int result=attentionDao.UserAttention(followers,byFollowers, TimeUtil.getTime()); + if(result==1)return true; + return false; + } + + @Override + public boolean UserUnfollow(Long attentionId) { + int result=attentionDao.UserUnfollow(attentionId); + if(result==1)return true; + return false; + } + + @Override + public List UserFollowersList(Long followers) { + + return attentionDao.UserFollowersList(followers); + } + + @Override + public User SeeAttention(Long followers, Long byFollowers) { + return attentionDao.SeeAttention(followers,byFollowers); + } + + @Override + public CommonResult userCancelAttention(Long followers, Long byFollowers) { + int result = attentionDao.userCancelAttention(followers,byFollowers); + if(result!=1) return new CommonResult(404,"删除失败!"); + return new CommonResult(null); + } +} diff --git a/poetry-consumer-attention/src/main/java/com/jacklei/poetry/util/JWTTokenUtil.java b/poetry-consumer-attention/src/main/java/com/jacklei/poetry/util/JWTTokenUtil.java new file mode 100644 index 0000000..42f20d9 --- /dev/null +++ b/poetry-consumer-attention/src/main/java/com/jacklei/poetry/util/JWTTokenUtil.java @@ -0,0 +1,58 @@ +package com.jacklei.poetry.util; + + +import com.auth0.jwt.JWT; +import com.auth0.jwt.JWTVerifier; +import com.auth0.jwt.algorithms.Algorithm; +import com.auth0.jwt.exceptions.JWTCreationException; +import com.auth0.jwt.exceptions.JWTVerificationException; +import com.auth0.jwt.interfaces.DecodedJWT; + +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +public class JWTTokenUtil { + //设置过期时间 + private static final long EXPIRE_DATE = 30*60*100000; + //token密钥 + private static final String TOKEN_SECRET ="ZCfasfhuaUUHufguGuwu2020BQWE"; + + public static String token (String username ,String password){ + String token = ""; + + try { + //过期时间 + Date date =new Date(System.currentTimeMillis()+EXPIRE_DATE); + //密钥及加密算法 + Algorithm algorithm = Algorithm.HMAC256(TOKEN_SECRET); + //设置头部信息 + Map header = new HashMap<>(); + header.put("typ","JWT"); + header.put("alg","Hs256"); + //携带username,password信息,生成签名 + token = JWT.create(). + withHeader(header). + withClaim("username",username). + withExpiresAt(date).sign(algorithm); + } catch (JWTCreationException e) { + e.printStackTrace(); + return null; + } + return token; + } + + public static boolean verify(String token){ + + try { + Algorithm algorithm =Algorithm.HMAC256(TOKEN_SECRET); + JWTVerifier verifier = JWT.require(algorithm).build(); + DecodedJWT jwt = verifier.verify(token); + return true; + } catch (JWTVerificationException e) { + e.printStackTrace(); + } + return false; + } + +} diff --git a/poetry-consumer-attention/src/main/resources/application.yaml b/poetry-consumer-attention/src/main/resources/application.yaml new file mode 100644 index 0000000..027de32 --- /dev/null +++ b/poetry-consumer-attention/src/main/resources/application.yaml @@ -0,0 +1,41 @@ + +server: + port: 83 +spring: + main: + allow-circular-references: true + # allow-bean-definition-overriding: true + application: + name: poetry-consunmer-attention + datasource: + driver-class-name: com.mysql.jdbc.Driver + url: jdbc:mysql://127.0.0.1:3306/shici?useUnicode=true&characterEncoding=utf8&useSSL=false + username: shici + password: 123456 + cloud: + sentinel: + transport: + port: 8719 + dashboard: 127.0.0.1:8080 + datasource: + ds1: + nacos: + server-addr: 127.0.0.1:8848 + dataId: cloudalibaba-sentinel-login + groupId: SENTINEL_GROUP + data_type: json + rule_type: flow + namespace: Public + nacos: + discovery: + server-addr: 127.0.0.1:8848 + + +feign: + sentinel: + enabled: true + + +mybatis: + type-aliases-package: com.jacklei.poetry.entities + mapper-locations: classpath:mapper/*.xml diff --git a/poetry-consumer-attention/src/main/resources/mapper/AttentionMapper.xml b/poetry-consumer-attention/src/main/resources/mapper/AttentionMapper.xml new file mode 100644 index 0000000..cf77be9 --- /dev/null +++ b/poetry-consumer-attention/src/main/resources/mapper/AttentionMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + insert into t_followers (followers,by_followers,`time` ) values (#{followers},#{byFollowers},#{time}); + + + delete from t_followers where attention_id=#{attentionId} + + + + + + + delete from t_followers where followers=#{followers} and by_followers=#{byFollowers} + + \ No newline at end of file diff --git a/poetry-consumer-attention/target/classes/application.yaml b/poetry-consumer-attention/target/classes/application.yaml new file mode 100644 index 0000000..027de32 --- /dev/null +++ b/poetry-consumer-attention/target/classes/application.yaml @@ -0,0 +1,41 @@ + +server: + port: 83 +spring: + main: + allow-circular-references: true + # allow-bean-definition-overriding: true + application: + name: poetry-consunmer-attention + datasource: + driver-class-name: com.mysql.jdbc.Driver + url: jdbc:mysql://127.0.0.1:3306/shici?useUnicode=true&characterEncoding=utf8&useSSL=false + username: shici + password: 123456 + cloud: + sentinel: + transport: + port: 8719 + dashboard: 127.0.0.1:8080 + datasource: + ds1: + nacos: + server-addr: 127.0.0.1:8848 + dataId: cloudalibaba-sentinel-login + groupId: SENTINEL_GROUP + data_type: json + rule_type: flow + namespace: Public + nacos: + discovery: + server-addr: 127.0.0.1:8848 + + +feign: + sentinel: + enabled: true + + +mybatis: + type-aliases-package: com.jacklei.poetry.entities + mapper-locations: classpath:mapper/*.xml diff --git a/poetry-consumer-attention/target/classes/com/jacklei/poetry/ConsumerAttentionMain.class b/poetry-consumer-attention/target/classes/com/jacklei/poetry/ConsumerAttentionMain.class new file mode 100644 index 0000000..e418f2b Binary files /dev/null and b/poetry-consumer-attention/target/classes/com/jacklei/poetry/ConsumerAttentionMain.class differ diff --git a/poetry-consumer-attention/target/classes/com/jacklei/poetry/config/LoginHandlerInterceptor.class b/poetry-consumer-attention/target/classes/com/jacklei/poetry/config/LoginHandlerInterceptor.class new file mode 100644 index 0000000..339280c Binary files /dev/null and b/poetry-consumer-attention/target/classes/com/jacklei/poetry/config/LoginHandlerInterceptor.class differ diff --git a/poetry-consumer-attention/target/classes/com/jacklei/poetry/config/MyBatisConfig.class b/poetry-consumer-attention/target/classes/com/jacklei/poetry/config/MyBatisConfig.class new file mode 100644 index 0000000..7d2c56b Binary files /dev/null and b/poetry-consumer-attention/target/classes/com/jacklei/poetry/config/MyBatisConfig.class differ diff --git a/poetry-consumer-attention/target/classes/com/jacklei/poetry/config/MyMvcConfig.class b/poetry-consumer-attention/target/classes/com/jacklei/poetry/config/MyMvcConfig.class new file mode 100644 index 0000000..293ee7e Binary files /dev/null and b/poetry-consumer-attention/target/classes/com/jacklei/poetry/config/MyMvcConfig.class differ diff --git a/poetry-consumer-attention/target/classes/com/jacklei/poetry/controller/AttentionController.class b/poetry-consumer-attention/target/classes/com/jacklei/poetry/controller/AttentionController.class new file mode 100644 index 0000000..f5b6aa2 Binary files /dev/null and b/poetry-consumer-attention/target/classes/com/jacklei/poetry/controller/AttentionController.class differ diff --git a/poetry-consumer-attention/target/classes/com/jacklei/poetry/mapper/AttentionDao.class b/poetry-consumer-attention/target/classes/com/jacklei/poetry/mapper/AttentionDao.class new file mode 100644 index 0000000..68819b6 Binary files /dev/null and b/poetry-consumer-attention/target/classes/com/jacklei/poetry/mapper/AttentionDao.class differ diff --git a/poetry-consumer-attention/target/classes/com/jacklei/poetry/service/AttentionService.class b/poetry-consumer-attention/target/classes/com/jacklei/poetry/service/AttentionService.class new file mode 100644 index 0000000..fce4ef2 Binary files /dev/null and b/poetry-consumer-attention/target/classes/com/jacklei/poetry/service/AttentionService.class differ diff --git a/poetry-consumer-attention/target/classes/com/jacklei/poetry/service/Impl/AttentionServiceImpl.class b/poetry-consumer-attention/target/classes/com/jacklei/poetry/service/Impl/AttentionServiceImpl.class new file mode 100644 index 0000000..6b3d78e Binary files /dev/null and b/poetry-consumer-attention/target/classes/com/jacklei/poetry/service/Impl/AttentionServiceImpl.class differ diff --git a/poetry-consumer-attention/target/classes/com/jacklei/poetry/util/JWTTokenUtil.class b/poetry-consumer-attention/target/classes/com/jacklei/poetry/util/JWTTokenUtil.class new file mode 100644 index 0000000..82b42c1 Binary files /dev/null and b/poetry-consumer-attention/target/classes/com/jacklei/poetry/util/JWTTokenUtil.class differ diff --git a/poetry-consumer-attention/target/classes/mapper/AttentionMapper.xml b/poetry-consumer-attention/target/classes/mapper/AttentionMapper.xml new file mode 100644 index 0000000..cf77be9 --- /dev/null +++ b/poetry-consumer-attention/target/classes/mapper/AttentionMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + insert into t_followers (followers,by_followers,`time` ) values (#{followers},#{byFollowers},#{time}); + + + delete from t_followers where attention_id=#{attentionId} + + + + + + + delete from t_followers where followers=#{followers} and by_followers=#{byFollowers} + + \ No newline at end of file diff --git a/poetry-consumer-attention/target/maven-archiver/pom.properties b/poetry-consumer-attention/target/maven-archiver/pom.properties new file mode 100644 index 0000000..0f17be7 --- /dev/null +++ b/poetry-consumer-attention/target/maven-archiver/pom.properties @@ -0,0 +1,5 @@ +#Generated by Maven +#Sat Mar 26 00:27:15 CST 2022 +version=1.0-SNAPSHOT +groupId=com.jacklei.poetry +artifactId=poetry-consumer-attention diff --git a/poetry-consumer-attention/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/poetry-consumer-attention/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..70b07f8 --- /dev/null +++ b/poetry-consumer-attention/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,9 @@ +com\jacklei\poetry\config\MyBatisConfig.class +com\jacklei\poetry\config\MyMvcConfig.class +com\jacklei\poetry\mapper\AttentionDao.class +com\jacklei\poetry\ConsumerAttentionMain.class +com\jacklei\poetry\service\AttentionService.class +com\jacklei\poetry\config\LoginHandlerInterceptor.class +com\jacklei\poetry\controller\AttentionController.class +com\jacklei\poetry\util\JWTTokenUtil.class +com\jacklei\poetry\service\Impl\AttentionServiceImpl.class diff --git a/poetry-consumer-attention/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/poetry-consumer-attention/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..0e1c7a6 --- /dev/null +++ b/poetry-consumer-attention/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,9 @@ +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-attention\src\main\java\com\jacklei\poetry\config\LoginHandlerInterceptor.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-attention\src\main\java\com\jacklei\poetry\config\MyBatisConfig.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-attention\src\main\java\com\jacklei\poetry\util\JWTTokenUtil.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-attention\src\main\java\com\jacklei\poetry\mapper\AttentionDao.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-attention\src\main\java\com\jacklei\poetry\controller\AttentionController.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-attention\src\main\java\com\jacklei\poetry\service\Impl\AttentionServiceImpl.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-attention\src\main\java\com\jacklei\poetry\config\MyMvcConfig.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-attention\src\main\java\com\jacklei\poetry\ConsumerAttentionMain.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-attention\src\main\java\com\jacklei\poetry\service\AttentionService.java diff --git a/poetry-consumer-attention/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/poetry-consumer-attention/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/poetry-consumer-attention/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/poetry-consumer-attention/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/poetry-consumer-attention/target/poetry-consumer-attention-1.0-SNAPSHOT.jar b/poetry-consumer-attention/target/poetry-consumer-attention-1.0-SNAPSHOT.jar new file mode 100644 index 0000000..d037f96 Binary files /dev/null and b/poetry-consumer-attention/target/poetry-consumer-attention-1.0-SNAPSHOT.jar differ diff --git a/poetry-consumer-attention/target/poetry-consumer-attention-1.0-SNAPSHOT.jar.original b/poetry-consumer-attention/target/poetry-consumer-attention-1.0-SNAPSHOT.jar.original new file mode 100644 index 0000000..2b9528e Binary files /dev/null and b/poetry-consumer-attention/target/poetry-consumer-attention-1.0-SNAPSHOT.jar.original differ diff --git a/poetry-consumer-category/poetry-consumer-category.iml b/poetry-consumer-category/poetry-consumer-category.iml new file mode 100644 index 0000000..8292d8b --- /dev/null +++ b/poetry-consumer-category/poetry-consumer-category.iml @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/poetry-consumer-category/pom.xml b/poetry-consumer-category/pom.xml new file mode 100644 index 0000000..fe675b4 --- /dev/null +++ b/poetry-consumer-category/pom.xml @@ -0,0 +1,143 @@ + + + + PoetryOfTheFourSeasons + com.jacklei.poetry + 1.0-SNAPSHOT + + 4.0.0 + + poetry-consumer-category + + + + com.auth0 + java-jwt + 3.8.2 + + + + com.jacklei.poetry + poetry-api-commons + 1.0-SNAPSHOT + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + 2.2.7.RELEASE + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + 2.2.7.RELEASE + + + org.springframework.cloud + spring-cloud-starter-netflix-ribbon + + + + + org.springframework.cloud + spring-cloud-loadbalancer + + + com.alibaba.csp + sentinel-datasource-nacos + + + + + com.alibaba.nacos + nacos-client + 1.4.2 + + + + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + + mysql + mysql-connector-java + 8.0.27 + + + com.alibaba + druid-spring-boot-starter + 1.1.10 + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + 2.1.1 + + + org.springframework.boot + spring-boot-starter-test + test + + + org.projectlombok + lombok + true + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.8 + 1.8 + + + + org.springframework.boot + spring-boot-maven-plugin + 2.2.2.RELEASE + + + com.jacklei.poetry.ConsumerCategoryMain + + + + + repackage + + + + + + + \ No newline at end of file diff --git a/poetry-consumer-category/src/main/java/com/jacklei/poetry/ConsumerCategoryMain.java b/poetry-consumer-category/src/main/java/com/jacklei/poetry/ConsumerCategoryMain.java new file mode 100644 index 0000000..fb1077f --- /dev/null +++ b/poetry-consumer-category/src/main/java/com/jacklei/poetry/ConsumerCategoryMain.java @@ -0,0 +1,17 @@ +package com.jacklei.poetry; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; + + +@SpringBootApplication + +@EnableDiscoveryClient +public class ConsumerCategoryMain { + + public static void main(String[] args) { + SpringApplication.run(ConsumerCategoryMain.class,args); + } +} + diff --git a/poetry-consumer-category/src/main/java/com/jacklei/poetry/config/LoginHandlerInterceptor.java b/poetry-consumer-category/src/main/java/com/jacklei/poetry/config/LoginHandlerInterceptor.java new file mode 100644 index 0000000..7e91a15 --- /dev/null +++ b/poetry-consumer-category/src/main/java/com/jacklei/poetry/config/LoginHandlerInterceptor.java @@ -0,0 +1,56 @@ +package com.jacklei.poetry.config; + +import com.jacklei.poetry.util.JWTTokenUtil; +import org.springframework.web.servlet.HandlerInterceptor; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +public class LoginHandlerInterceptor implements HandlerInterceptor { + + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + String token = request.getHeader("token"); + System.err.println(token); + if(token==null||token.isEmpty()){ + //没有 token + request.setAttribute("msg","没有权限,请重新登录!"); + request.getRequestDispatcher("/do/login/token").forward(request,response); + return false; + } + else if(JWTTokenUtil.verify(token)){return true;}//正常token + else{ + request.setAttribute("msg","登录时间过长,请重新登录!"); + request.getRequestDispatcher("/do/login/token").forward(request,response); + return false; + } + /* Object LoginUser = request.getSession().getAttribute("user"); + if(LoginUser==null){ + request.setAttribute("msg","没有权限,请重新登录!"); + request.getRequestDispatcher("/consumer/login").forward(request,response); + + return false; + }else*/ + /*response.setHeader("Access-Control-Allow-Origin", "*"); + response.setHeader("Access-Control-Allow-Headers", "X-Requested-With"); + response.setHeader("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS"); + response.setHeader("X-Powered-By","3.2.1"); + response.setHeader("Access-Control-Allow-Credentials","true"); + response.setHeader("Content-Type", "application/json;charset=utf-8"); +*/ + + + + } + + @Override + public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { + + } + + @Override + public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { + + } +} diff --git a/poetry-consumer-category/src/main/java/com/jacklei/poetry/config/MyBatisConfig.java b/poetry-consumer-category/src/main/java/com/jacklei/poetry/config/MyBatisConfig.java new file mode 100644 index 0000000..646089b --- /dev/null +++ b/poetry-consumer-category/src/main/java/com/jacklei/poetry/config/MyBatisConfig.java @@ -0,0 +1,9 @@ +package com.jacklei.poetry.config; + +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.context.annotation.Configuration; + +@Configuration +@MapperScan(basePackages = "com.jacklei.poetry.mapper") +public class MyBatisConfig { +} diff --git a/poetry-consumer-category/src/main/java/com/jacklei/poetry/config/MyMvcConfig.java b/poetry-consumer-category/src/main/java/com/jacklei/poetry/config/MyMvcConfig.java new file mode 100644 index 0000000..2046f56 --- /dev/null +++ b/poetry-consumer-category/src/main/java/com/jacklei/poetry/config/MyMvcConfig.java @@ -0,0 +1,16 @@ +package com.jacklei.poetry.config; + +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration +public class MyMvcConfig implements WebMvcConfigurer { + + @Override + public void addInterceptors(InterceptorRegistry registry) { + registry.addInterceptor(new LoginHandlerInterceptor()).addPathPatterns("/**"). + excludePathPatterns("/**/do/**","/do/**"); + //registry.addInterceptor(new LoginHandlerInterceptor()); + } +} diff --git a/poetry-consumer-category/src/main/java/com/jacklei/poetry/controller/CategoryController.java b/poetry-consumer-category/src/main/java/com/jacklei/poetry/controller/CategoryController.java new file mode 100644 index 0000000..5893c6c --- /dev/null +++ b/poetry-consumer-category/src/main/java/com/jacklei/poetry/controller/CategoryController.java @@ -0,0 +1,120 @@ +package com.jacklei.poetry.controller; + +import com.jacklei.poetry.entities.CommonResult; +import com.jacklei.poetry.service.CategoryService; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; + +@CrossOrigin +@RestController +@Slf4j +public class CategoryController { + + @Autowired + private CategoryService categoryService; + + //给前端通知 Token 异常 + @GetMapping("/do/login/token") + public CommonResult doLoginToken ( HttpServletRequest request ){ + Object msg = request.getAttribute("msg"); + return new CommonResult(201,"token异常",msg); + } + + //增词加类型 + @GetMapping("/consumer/add/poem/type") + public CommonResult AddPoemType(@RequestParam("poemId") Long poemId, + @RequestParam("type") Integer type) throws Exception { + log.info("增词加类型 poemId:"+poemId+" type:"+type); + boolean result=categoryService.AddPoemType(poemId,type); + if(!result)return new CommonResult(400,"增加类型失败!"); + return new CommonResult(null); + } + + //增诗加类型 + @GetMapping("/consumer/add/dynasty/type") + public CommonResult AddDynastyType(@RequestParam("dynastyId") Long dynastyId, + @RequestParam("type") Integer type) throws Exception { + log.info("增诗加类型 dynastyId:"+dynastyId+" type:"+type); + boolean result=categoryService.AddDynastyIdType(dynastyId,type); + if(!result)return new CommonResult(400,"增加类型失败!"); + return new CommonResult(null); + + } + + //查看诗的类型 + @GetMapping("/consumer/see/dynasty/type") + public CommonResult SeeDynastyType (@RequestParam("dynastyId") Long dynastyId){ + log.info("查看诗的类型 dynastyId:"+dynastyId+" type:"+dynastyId); + List result = categoryService.SeeDynastyType(dynastyId); + if (result==null)return new CommonResult(400,"没有类型!,请添加!"); + return new CommonResult(result); + } + + //查看词的类型 + @GetMapping("/consumer/see/poem/type") + public CommonResult SeePoemType (@RequestParam("poemId") Long poemId){ + log.info("查看词的类型 dynastyId:"+poemId+" type:"+poemId); + List result = categoryService.SeePoemType(poemId); + if (result==null)return new CommonResult(400,"没有类型!,请添加!"); + return new CommonResult(result); + + } + + //删除词类型 + + @GetMapping("/consumer/delete/PoemType/{poemId}") + public CommonResult DeletePoemType(@PathVariable("poemId") Long poemId) throws Exception { + log.info("删除词类型 poemId:" +poemId); + boolean result=categoryService.DeletePoemType(poemId); + if(!result)return new CommonResult(400,"删除词类型失败!"); + return new CommonResult(null); + } + //create 微服务调用的公共方法 ,不对外使用 + @GetMapping("/consumer/do/delete/PoemType/{poemId}") + public CommonResult DeleteDoPoemType(@PathVariable("poemId") Long poemId) throws Exception { + log.info("删除词类型 poemId:" +poemId); + boolean result=categoryService.DeletePoemType(poemId); + if(!result)return new CommonResult(400,"删除词类型失败!"); + return new CommonResult(null); + } + //删除诗类型 + @GetMapping("/consumer/delete/DynastyType/{dynastyId}") + public CommonResult DeleteDynastyType(@PathVariable("dynastyId") Long dynastyId) throws Exception { + log.info("删除诗类型 dynastyId:" +dynastyId); + boolean result=categoryService.DeleteDynastyType(dynastyId); + if(!result)return new CommonResult(400,"删除诗类型失败!"); + return new CommonResult(null); + } + //create 微服务调用的公共方法 ,不对外使用 + @GetMapping("/consumer/do/delete/DynastyType/{dynastyId}") + public CommonResult DeleteDoDynastyType(@PathVariable("dynastyId") Long dynastyId) throws Exception { + log.info("删除诗类型 dynastyId:" +dynastyId); + boolean result=categoryService.DeleteDynastyType(dynastyId); + if(!result)return new CommonResult(400,"删除诗类型失败!"); + return new CommonResult(null); + } + + + //通过类型查找诗 + @GetMapping("/consumer/do/fine/dynasty/type/{type}/{page}/{size}") + public CommonResult fineDynastyType(@PathVariable("type") Integer type, + @PathVariable("page") int page, + @PathVariable("size") int size){ + log.info("通过类型查找诗 type:" +type+"page:"+page+"size:"+size); + return categoryService.fineDynastyType(type , page,size); + } + //通过类型查找词 + @GetMapping("/consumer/do/fine/poem/type/{type}/{page}/{size}") + public CommonResult finePoemType(@PathVariable("type") Integer type, + @PathVariable("page") int page, + @PathVariable("size") int size){ + log.info("通过类型查找词 type:" +type); + + return categoryService.finePoemType(type,page,size); + } +} diff --git a/poetry-consumer-category/src/main/java/com/jacklei/poetry/mapper/CategoryDao.java b/poetry-consumer-category/src/main/java/com/jacklei/poetry/mapper/CategoryDao.java new file mode 100644 index 0000000..5ee82c4 --- /dev/null +++ b/poetry-consumer-category/src/main/java/com/jacklei/poetry/mapper/CategoryDao.java @@ -0,0 +1,38 @@ +package com.jacklei.poetry.mapper; + + +import com.jacklei.poetry.entities.Dynasty;; +import com.jacklei.poetry.entities.Poem; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface CategoryDao { + + int AddPoemType(@Param("poemId") Long poemId, @Param("type") Integer type); + + int AddDynastyType(@Param("dynastyId") Long dynastyId,@Param("type") Integer type); + + int DeletePoemType(@Param("poemId") Long poemId); + + int DeleteDynastyType(@Param("dynastyId") Long dynastyId); + + Integer SeePoemTypeExistence(@Param("poemId")Long poemId, @Param("type") Integer type); + + Integer SeeDynastyTypeExistence(@Param("dynastyId") Long dynastyId,@Param("type") Integer type); + + List SeeDynastyType(@Param("dynastyId") Long dynastyId); + + List SeePoemType(@Param("poemId") Long poemId); + + List fineDynastyType(@Param("type") Integer type,@Param("params") Map params); + + List finePoemType(@Param("type") Integer type, @Param("params") Map params); + + long dynastyCount(@Param("type")Integer type); + + long poemCount(@Param("type")Integer type); +} diff --git a/poetry-consumer-category/src/main/java/com/jacklei/poetry/service/CategoryService.java b/poetry-consumer-category/src/main/java/com/jacklei/poetry/service/CategoryService.java new file mode 100644 index 0000000..c9f3d8d --- /dev/null +++ b/poetry-consumer-category/src/main/java/com/jacklei/poetry/service/CategoryService.java @@ -0,0 +1,23 @@ +package com.jacklei.poetry.service; + +import com.jacklei.poetry.entities.CommonResult; + +import java.util.List; + +public interface CategoryService { + boolean AddPoemType(Long poemId, Integer type) throws Exception; + + boolean AddDynastyIdType(Long dynastyId, Integer type) throws Exception; + + boolean DeletePoemType(Long poemId) throws Exception; + + boolean DeleteDynastyType(Long dynastyId) throws Exception; + + List SeeDynastyType(Long dynastyId); + + List SeePoemType(Long poemId); + + CommonResult fineDynastyType(Integer type, int page, int size); + + CommonResult finePoemType(Integer type, int page, int size); +} diff --git a/poetry-consumer-category/src/main/java/com/jacklei/poetry/service/Impl/CategoryServiceImpl.java b/poetry-consumer-category/src/main/java/com/jacklei/poetry/service/Impl/CategoryServiceImpl.java new file mode 100644 index 0000000..19b2053 --- /dev/null +++ b/poetry-consumer-category/src/main/java/com/jacklei/poetry/service/Impl/CategoryServiceImpl.java @@ -0,0 +1,113 @@ +package com.jacklei.poetry.service.Impl; + + +import com.jacklei.poetry.entities.CommonResult; +import com.jacklei.poetry.entities.Dynasty; +import com.jacklei.poetry.entities.Poem; +import com.jacklei.poetry.mapper.CategoryDao; +import com.jacklei.poetry.service.CategoryService; +import com.jacklei.poetry.util.Pager; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class CategoryServiceImpl implements CategoryService { + + @Resource + private CategoryDao categoryDao; + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean AddPoemType(Long poemId, Integer type)throws Exception { + Integer seasonsId=categoryDao.SeePoemTypeExistence(poemId,type); + if(seasonsId!=null)return false; + int result=categoryDao.AddPoemType(poemId,type); + if(result==1)return true; + return false; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean AddDynastyIdType(Long dynastyId, Integer type)throws Exception { + Integer seasonsId=categoryDao.SeeDynastyTypeExistence(dynastyId,type); + if(seasonsId!=null)return false; + int result=categoryDao.AddDynastyType(dynastyId,type); + if(result==1)return true; + return false; + + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean DeletePoemType(Long poemId) throws Exception{ + + int result =categoryDao.DeletePoemType(poemId); + if(result==1)return true; + return false; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean DeleteDynastyType(Long dynastyId) throws Exception{ + int result =categoryDao.DeleteDynastyType(dynastyId); + if(result==1)return true; + return false; + } + + @Override + public List SeeDynastyType(Long dynastyId) { + return categoryDao.SeeDynastyType(dynastyId); + } + + @Override + public List SeePoemType(Long poemId) { + return categoryDao.SeePoemType(poemId); + } + +// @Override +// public CommonResult fineDynastyType(Integer type) { +// List result=categoryDao.fineDynastyType(type); +// if(result==null) return new CommonResult(400,"查找失败!"); +// return new CommonResult(result); +// } + + @Override + public CommonResult fineDynastyType(Integer type ,int page ,int size) { + Map params =new HashMap<>(); + params.put("page",(page-1)*size); + params.put("size",size); + Pager pager =new Pager(); + List list=categoryDao.fineDynastyType(type,params); + pager.setPage(page); + pager.setSize(size); + pager.setRows(list); + pager.setTotal(categoryDao.dynastyCount(type)); + return new CommonResult(pager); + } + +// @Override +// public CommonResult finePoemType(Integer type) { +// List result=categoryDao.finePoemType(type); +// if(result==null) return new CommonResult(400,"查找失败!"); +// return new CommonResult(result); +// } + + @Override + public CommonResult finePoemType(Integer type,int page ,int size) { + Map params =new HashMap<>(); + params.put("page",(page-1)*size); + params.put("size",size); + Pager pager =new Pager(); + List list=categoryDao.finePoemType(type,params); + pager.setRows(list); + pager.setPage(page); + pager.setSize(size); + pager.setTotal(categoryDao.poemCount(type)); + return new CommonResult(pager); + } +} diff --git a/poetry-consumer-category/src/main/java/com/jacklei/poetry/util/JWTTokenUtil.java b/poetry-consumer-category/src/main/java/com/jacklei/poetry/util/JWTTokenUtil.java new file mode 100644 index 0000000..42f20d9 --- /dev/null +++ b/poetry-consumer-category/src/main/java/com/jacklei/poetry/util/JWTTokenUtil.java @@ -0,0 +1,58 @@ +package com.jacklei.poetry.util; + + +import com.auth0.jwt.JWT; +import com.auth0.jwt.JWTVerifier; +import com.auth0.jwt.algorithms.Algorithm; +import com.auth0.jwt.exceptions.JWTCreationException; +import com.auth0.jwt.exceptions.JWTVerificationException; +import com.auth0.jwt.interfaces.DecodedJWT; + +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +public class JWTTokenUtil { + //设置过期时间 + private static final long EXPIRE_DATE = 30*60*100000; + //token密钥 + private static final String TOKEN_SECRET ="ZCfasfhuaUUHufguGuwu2020BQWE"; + + public static String token (String username ,String password){ + String token = ""; + + try { + //过期时间 + Date date =new Date(System.currentTimeMillis()+EXPIRE_DATE); + //密钥及加密算法 + Algorithm algorithm = Algorithm.HMAC256(TOKEN_SECRET); + //设置头部信息 + Map header = new HashMap<>(); + header.put("typ","JWT"); + header.put("alg","Hs256"); + //携带username,password信息,生成签名 + token = JWT.create(). + withHeader(header). + withClaim("username",username). + withExpiresAt(date).sign(algorithm); + } catch (JWTCreationException e) { + e.printStackTrace(); + return null; + } + return token; + } + + public static boolean verify(String token){ + + try { + Algorithm algorithm =Algorithm.HMAC256(TOKEN_SECRET); + JWTVerifier verifier = JWT.require(algorithm).build(); + DecodedJWT jwt = verifier.verify(token); + return true; + } catch (JWTVerificationException e) { + e.printStackTrace(); + } + return false; + } + +} diff --git a/poetry-consumer-category/src/main/resources/application.yaml b/poetry-consumer-category/src/main/resources/application.yaml new file mode 100644 index 0000000..603a601 --- /dev/null +++ b/poetry-consumer-category/src/main/resources/application.yaml @@ -0,0 +1,66 @@ + +server: + port: 88 +spring: + main: + allow-circular-references: true + # allow-bean-definition-overriding: true + application: + name: poetry-consumer-category + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver +# url: jdbc:mysql://localhost:3306/fourseasons?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true +# username: root +# password: 123456 +# driver-class-name: com.mysql.jdbc.Driver + url: jdbc:mysql://127.0.0.1:3306/shici?useUnicode=true&characterEncoding=utf8&useSSL=false + username: shici + password: 123456 + cloud: + sentinel: + transport: + port: 8719 + dashboard: 127.0.0.1:8080 + datasource: + ds1: + nacos: + server-addr: 127.0.0.1:8848 + dataId: cloudalibaba-sentinel-login + groupId: SENTINEL_GROUP + data_type: json + rule_type: flow + namespace: 45d907a1-7646-40b0-8502-b8610335271f + nacos: + discovery: + server-addr: 127.0.0.1:8848 + + +feign: + sentinel: + enabled: true + + +mybatis: + type-aliases-package: com.jacklei.poetry.entities + mapper-locations: classpath:mapper/*.xml + + +#seata: +# registry: +# application: seata-server +# type: nacos +# nacos: +# username: nacos +# password: nacos +# server-addr: 81.70.104.6:8848 +# config: +# type: nacos +# nacos: +# username: nacos +# password: nacos +# server-addr: 81.70.104.6:8848 +# enable-auto-data-source-proxy: false +# service: +# vgroup-mapping: +# my_test_tx_group: default +# tx-service-group: my_test_tx_group diff --git a/poetry-consumer-category/src/main/resources/mapper/CategotMapper.xml b/poetry-consumer-category/src/main/resources/mapper/CategotMapper.xml new file mode 100644 index 0000000..ee68108 --- /dev/null +++ b/poetry-consumer-category/src/main/resources/mapper/CategotMapper.xml @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + insert into t_poemtype (poem_id,`type`) values (#{poemId},#{type}); + + + insert into t_dynastytype (dynasty_id,`type`) values (#{dynastyId},#{type}); + + + delete from t_poemtype where poem_id=#{poemId} + + + delete from t_dynastytype where dynasty_id=#{dynastyId} + + + + + + + + + + + + + \ No newline at end of file diff --git a/poetry-consumer-category/target/classes/application.yaml b/poetry-consumer-category/target/classes/application.yaml new file mode 100644 index 0000000..603a601 --- /dev/null +++ b/poetry-consumer-category/target/classes/application.yaml @@ -0,0 +1,66 @@ + +server: + port: 88 +spring: + main: + allow-circular-references: true + # allow-bean-definition-overriding: true + application: + name: poetry-consumer-category + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver +# url: jdbc:mysql://localhost:3306/fourseasons?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true +# username: root +# password: 123456 +# driver-class-name: com.mysql.jdbc.Driver + url: jdbc:mysql://127.0.0.1:3306/shici?useUnicode=true&characterEncoding=utf8&useSSL=false + username: shici + password: 123456 + cloud: + sentinel: + transport: + port: 8719 + dashboard: 127.0.0.1:8080 + datasource: + ds1: + nacos: + server-addr: 127.0.0.1:8848 + dataId: cloudalibaba-sentinel-login + groupId: SENTINEL_GROUP + data_type: json + rule_type: flow + namespace: 45d907a1-7646-40b0-8502-b8610335271f + nacos: + discovery: + server-addr: 127.0.0.1:8848 + + +feign: + sentinel: + enabled: true + + +mybatis: + type-aliases-package: com.jacklei.poetry.entities + mapper-locations: classpath:mapper/*.xml + + +#seata: +# registry: +# application: seata-server +# type: nacos +# nacos: +# username: nacos +# password: nacos +# server-addr: 81.70.104.6:8848 +# config: +# type: nacos +# nacos: +# username: nacos +# password: nacos +# server-addr: 81.70.104.6:8848 +# enable-auto-data-source-proxy: false +# service: +# vgroup-mapping: +# my_test_tx_group: default +# tx-service-group: my_test_tx_group diff --git a/poetry-consumer-category/target/classes/com/jacklei/poetry/ConsumerCategoryMain.class b/poetry-consumer-category/target/classes/com/jacklei/poetry/ConsumerCategoryMain.class new file mode 100644 index 0000000..c1173c6 Binary files /dev/null and b/poetry-consumer-category/target/classes/com/jacklei/poetry/ConsumerCategoryMain.class differ diff --git a/poetry-consumer-category/target/classes/com/jacklei/poetry/config/LoginHandlerInterceptor.class b/poetry-consumer-category/target/classes/com/jacklei/poetry/config/LoginHandlerInterceptor.class new file mode 100644 index 0000000..339280c Binary files /dev/null and b/poetry-consumer-category/target/classes/com/jacklei/poetry/config/LoginHandlerInterceptor.class differ diff --git a/poetry-consumer-category/target/classes/com/jacklei/poetry/config/MyBatisConfig.class b/poetry-consumer-category/target/classes/com/jacklei/poetry/config/MyBatisConfig.class new file mode 100644 index 0000000..7d2c56b Binary files /dev/null and b/poetry-consumer-category/target/classes/com/jacklei/poetry/config/MyBatisConfig.class differ diff --git a/poetry-consumer-category/target/classes/com/jacklei/poetry/config/MyMvcConfig.class b/poetry-consumer-category/target/classes/com/jacklei/poetry/config/MyMvcConfig.class new file mode 100644 index 0000000..293ee7e Binary files /dev/null and b/poetry-consumer-category/target/classes/com/jacklei/poetry/config/MyMvcConfig.class differ diff --git a/poetry-consumer-category/target/classes/com/jacklei/poetry/controller/CategoryController.class b/poetry-consumer-category/target/classes/com/jacklei/poetry/controller/CategoryController.class new file mode 100644 index 0000000..2dac7dd Binary files /dev/null and b/poetry-consumer-category/target/classes/com/jacklei/poetry/controller/CategoryController.class differ diff --git a/poetry-consumer-category/target/classes/com/jacklei/poetry/mapper/CategoryDao.class b/poetry-consumer-category/target/classes/com/jacklei/poetry/mapper/CategoryDao.class new file mode 100644 index 0000000..721c399 Binary files /dev/null and b/poetry-consumer-category/target/classes/com/jacklei/poetry/mapper/CategoryDao.class differ diff --git a/poetry-consumer-category/target/classes/com/jacklei/poetry/service/CategoryService.class b/poetry-consumer-category/target/classes/com/jacklei/poetry/service/CategoryService.class new file mode 100644 index 0000000..ca4e781 Binary files /dev/null and b/poetry-consumer-category/target/classes/com/jacklei/poetry/service/CategoryService.class differ diff --git a/poetry-consumer-category/target/classes/com/jacklei/poetry/service/Impl/CategoryServiceImpl.class b/poetry-consumer-category/target/classes/com/jacklei/poetry/service/Impl/CategoryServiceImpl.class new file mode 100644 index 0000000..5de2b8b Binary files /dev/null and b/poetry-consumer-category/target/classes/com/jacklei/poetry/service/Impl/CategoryServiceImpl.class differ diff --git a/poetry-consumer-category/target/classes/com/jacklei/poetry/util/JWTTokenUtil.class b/poetry-consumer-category/target/classes/com/jacklei/poetry/util/JWTTokenUtil.class new file mode 100644 index 0000000..82b42c1 Binary files /dev/null and b/poetry-consumer-category/target/classes/com/jacklei/poetry/util/JWTTokenUtil.class differ diff --git a/poetry-consumer-category/target/classes/mapper/CategotMapper.xml b/poetry-consumer-category/target/classes/mapper/CategotMapper.xml new file mode 100644 index 0000000..ee68108 --- /dev/null +++ b/poetry-consumer-category/target/classes/mapper/CategotMapper.xml @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + insert into t_poemtype (poem_id,`type`) values (#{poemId},#{type}); + + + insert into t_dynastytype (dynasty_id,`type`) values (#{dynastyId},#{type}); + + + delete from t_poemtype where poem_id=#{poemId} + + + delete from t_dynastytype where dynasty_id=#{dynastyId} + + + + + + + + + + + + + \ No newline at end of file diff --git a/poetry-consumer-category/target/maven-archiver/pom.properties b/poetry-consumer-category/target/maven-archiver/pom.properties new file mode 100644 index 0000000..9a435fe --- /dev/null +++ b/poetry-consumer-category/target/maven-archiver/pom.properties @@ -0,0 +1,5 @@ +#Generated by Maven +#Sat Mar 26 00:27:21 CST 2022 +version=1.0-SNAPSHOT +groupId=com.jacklei.poetry +artifactId=poetry-consumer-category diff --git a/poetry-consumer-category/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/poetry-consumer-category/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..77eaea5 --- /dev/null +++ b/poetry-consumer-category/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,9 @@ +com\jacklei\poetry\config\MyBatisConfig.class +com\jacklei\poetry\controller\CategoryController.class +com\jacklei\poetry\config\MyMvcConfig.class +com\jacklei\poetry\ConsumerCategoryMain.class +com\jacklei\poetry\config\LoginHandlerInterceptor.class +com\jacklei\poetry\service\Impl\CategoryServiceImpl.class +com\jacklei\poetry\util\JWTTokenUtil.class +com\jacklei\poetry\service\CategoryService.class +com\jacklei\poetry\mapper\CategoryDao.class diff --git a/poetry-consumer-category/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/poetry-consumer-category/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..6633458 --- /dev/null +++ b/poetry-consumer-category/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,9 @@ +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-category\src\main\java\com\jacklei\poetry\service\CategoryService.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-category\src\main\java\com\jacklei\poetry\config\LoginHandlerInterceptor.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-category\src\main\java\com\jacklei\poetry\config\MyMvcConfig.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-category\src\main\java\com\jacklei\poetry\ConsumerCategoryMain.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-category\src\main\java\com\jacklei\poetry\util\JWTTokenUtil.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-category\src\main\java\com\jacklei\poetry\controller\CategoryController.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-category\src\main\java\com\jacklei\poetry\service\Impl\CategoryServiceImpl.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-category\src\main\java\com\jacklei\poetry\config\MyBatisConfig.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-category\src\main\java\com\jacklei\poetry\mapper\CategoryDao.java diff --git a/poetry-consumer-category/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/poetry-consumer-category/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/poetry-consumer-category/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/poetry-consumer-category/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/poetry-consumer-category/target/poetry-consumer-category-1.0-SNAPSHOT.jar b/poetry-consumer-category/target/poetry-consumer-category-1.0-SNAPSHOT.jar new file mode 100644 index 0000000..f04369a Binary files /dev/null and b/poetry-consumer-category/target/poetry-consumer-category-1.0-SNAPSHOT.jar differ diff --git a/poetry-consumer-category/target/poetry-consumer-category-1.0-SNAPSHOT.jar.original b/poetry-consumer-category/target/poetry-consumer-category-1.0-SNAPSHOT.jar.original new file mode 100644 index 0000000..7be1a49 Binary files /dev/null and b/poetry-consumer-category/target/poetry-consumer-category-1.0-SNAPSHOT.jar.original differ diff --git a/poetry-consumer-collection/poetry-consumer-collection.iml b/poetry-consumer-collection/poetry-consumer-collection.iml new file mode 100644 index 0000000..f6a9633 --- /dev/null +++ b/poetry-consumer-collection/poetry-consumer-collection.iml @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/poetry-consumer-collection/pom.xml b/poetry-consumer-collection/pom.xml new file mode 100644 index 0000000..2a61352 --- /dev/null +++ b/poetry-consumer-collection/pom.xml @@ -0,0 +1,143 @@ + + + + PoetryOfTheFourSeasons + com.jacklei.poetry + 1.0-SNAPSHOT + + 4.0.0 + + poetry-consumer-collection + + + + com.auth0 + java-jwt + 3.8.2 + + + + com.jacklei.poetry + poetry-api-commons + 1.0-SNAPSHOT + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + 2.2.7.RELEASE + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + 2.2.7.RELEASE + + + org.springframework.cloud + spring-cloud-starter-netflix-ribbon + + + + + org.springframework.cloud + spring-cloud-loadbalancer + + + com.alibaba.csp + sentinel-datasource-nacos + + + + + com.alibaba.nacos + nacos-client + 1.4.2 + + + + + + + + + + + + + + + + + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + + mysql + mysql-connector-java + 5.1.47 + + + com.alibaba + druid-spring-boot-starter + 1.1.10 + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + 2.1.1 + + + org.springframework.boot + spring-boot-starter-test + test + + + org.projectlombok + lombok + true + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.8 + 1.8 + + + + org.springframework.boot + spring-boot-maven-plugin + 2.2.2.RELEASE + + + com.jacklei.poetry.ConsumerCollectionMain + + + + + repackage + + + + + + + \ No newline at end of file diff --git a/poetry-consumer-collection/src/main/java/com/jacklei/poetry/ConsumerCollectionMain.java b/poetry-consumer-collection/src/main/java/com/jacklei/poetry/ConsumerCollectionMain.java new file mode 100644 index 0000000..b131bba --- /dev/null +++ b/poetry-consumer-collection/src/main/java/com/jacklei/poetry/ConsumerCollectionMain.java @@ -0,0 +1,17 @@ +package com.jacklei.poetry; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; + + +@SpringBootApplication +@EnableDiscoveryClient +//@EnableFeignClients +public class ConsumerCollectionMain { + + public static void main(String[] args) { + + SpringApplication.run(ConsumerCollectionMain.class,args); + } +} diff --git a/poetry-consumer-collection/src/main/java/com/jacklei/poetry/config/LoginHandlerInterceptor.java b/poetry-consumer-collection/src/main/java/com/jacklei/poetry/config/LoginHandlerInterceptor.java new file mode 100644 index 0000000..7e91a15 --- /dev/null +++ b/poetry-consumer-collection/src/main/java/com/jacklei/poetry/config/LoginHandlerInterceptor.java @@ -0,0 +1,56 @@ +package com.jacklei.poetry.config; + +import com.jacklei.poetry.util.JWTTokenUtil; +import org.springframework.web.servlet.HandlerInterceptor; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +public class LoginHandlerInterceptor implements HandlerInterceptor { + + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + String token = request.getHeader("token"); + System.err.println(token); + if(token==null||token.isEmpty()){ + //没有 token + request.setAttribute("msg","没有权限,请重新登录!"); + request.getRequestDispatcher("/do/login/token").forward(request,response); + return false; + } + else if(JWTTokenUtil.verify(token)){return true;}//正常token + else{ + request.setAttribute("msg","登录时间过长,请重新登录!"); + request.getRequestDispatcher("/do/login/token").forward(request,response); + return false; + } + /* Object LoginUser = request.getSession().getAttribute("user"); + if(LoginUser==null){ + request.setAttribute("msg","没有权限,请重新登录!"); + request.getRequestDispatcher("/consumer/login").forward(request,response); + + return false; + }else*/ + /*response.setHeader("Access-Control-Allow-Origin", "*"); + response.setHeader("Access-Control-Allow-Headers", "X-Requested-With"); + response.setHeader("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS"); + response.setHeader("X-Powered-By","3.2.1"); + response.setHeader("Access-Control-Allow-Credentials","true"); + response.setHeader("Content-Type", "application/json;charset=utf-8"); +*/ + + + + } + + @Override + public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { + + } + + @Override + public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { + + } +} diff --git a/poetry-consumer-collection/src/main/java/com/jacklei/poetry/config/MyBatisConfig.java b/poetry-consumer-collection/src/main/java/com/jacklei/poetry/config/MyBatisConfig.java new file mode 100644 index 0000000..646089b --- /dev/null +++ b/poetry-consumer-collection/src/main/java/com/jacklei/poetry/config/MyBatisConfig.java @@ -0,0 +1,9 @@ +package com.jacklei.poetry.config; + +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.context.annotation.Configuration; + +@Configuration +@MapperScan(basePackages = "com.jacklei.poetry.mapper") +public class MyBatisConfig { +} diff --git a/poetry-consumer-collection/src/main/java/com/jacklei/poetry/config/MyMvcConfig.java b/poetry-consumer-collection/src/main/java/com/jacklei/poetry/config/MyMvcConfig.java new file mode 100644 index 0000000..2046f56 --- /dev/null +++ b/poetry-consumer-collection/src/main/java/com/jacklei/poetry/config/MyMvcConfig.java @@ -0,0 +1,16 @@ +package com.jacklei.poetry.config; + +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration +public class MyMvcConfig implements WebMvcConfigurer { + + @Override + public void addInterceptors(InterceptorRegistry registry) { + registry.addInterceptor(new LoginHandlerInterceptor()).addPathPatterns("/**"). + excludePathPatterns("/**/do/**","/do/**"); + //registry.addInterceptor(new LoginHandlerInterceptor()); + } +} diff --git a/poetry-consumer-collection/src/main/java/com/jacklei/poetry/controller/CollectionController.java b/poetry-consumer-collection/src/main/java/com/jacklei/poetry/controller/CollectionController.java new file mode 100644 index 0000000..965acc9 --- /dev/null +++ b/poetry-consumer-collection/src/main/java/com/jacklei/poetry/controller/CollectionController.java @@ -0,0 +1,150 @@ +package com.jacklei.poetry.controller; + +import com.jacklei.poetry.entities.CommonResult; +import com.jacklei.poetry.entities.Dynasty; +import com.jacklei.poetry.entities.Poem; +import com.jacklei.poetry.service.CollectionService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; +@CrossOrigin +@RestController +@Slf4j +public class CollectionController { + + @Autowired + private CollectionService collectionService; + + //给前端通知 Token 异常 + @GetMapping("/do/login/token") + public CommonResult doLoginToken ( HttpServletRequest request ){ + Object msg = request.getAttribute("msg"); + return new CommonResult(201,"token异常",msg); + } + + + //收藏词 + @GetMapping("/consumer/collection/poem/{userId}/{poemId}") + public CommonResult CollectionPoem (@PathVariable("userId") Long userId,@PathVariable("poemId") Long poemId){ + log.info("收藏词 userId:"+userId+",poemId:"+poemId); + boolean result=collectionService.CollectionPoem(userId,poemId); + if(!result)return new CommonResult(400,"收藏失败!"); + return new CommonResult(null); + } + //收藏诗 + @GetMapping("/consumer/collection/dynasty/{userId}/{dynastyId}") + public CommonResult CollectionDynasty(@PathVariable("userId") Long userId,@PathVariable("dynastyId") Long dynastyId){ + log.info("收藏诗 userId:"+userId+",dynastyId:"+dynastyId); + boolean result=collectionService.CollectionDynasty(userId,dynastyId); + if(!result)return new CommonResult(400,"收藏失败!"); + return new CommonResult(null); + } + + + /** + * 取消词收藏 + * @param userId 用户的id + * @param poemId 词的id + * @return + */ + @GetMapping("/consumer/collection/poem/cancel/{userId}/{poemId}") + public CommonResult poemCollectionCancel(@PathVariable("userId") Long userId,@PathVariable("poemId") Long poemId){ + log.info("进入取消点赞:userId"+userId+" poemId"+poemId); + return collectionService.poemCollectionCancel(userId,poemId); + } + + /** + * 取消诗的收藏 + * @param userId 用户的id + * @param dynastyId 诗的id + * @return + */ + @GetMapping("/consumer/collection/dynasty/cancel/{userId}/{dynastyId}") + public CommonResult dynastyCollectionCancel(@PathVariable("userId") Long userId,@PathVariable("dynastyId") Long dynastyId){ + log.info("进入取消点赞:userId"+userId+" dynastyId"+dynastyId); + return collectionService.dynastyCollectionCancel(userId,dynastyId); + } + + //查看收藏 + //查看已收藏的词 + @GetMapping("/consumer/see/collection/poem/{userId}") + public CommonResult SeeCollectionPoem(@PathVariable("userId") Long userId){ + log.info("查看已收藏的诗 userId:"+userId); + List result = collectionService.SeeCollectionPoem(userId); + if(result==null) return new CommonResult(200,"查看已收藏的诗"); + return new CommonResult(result); + } + //查看已收藏的诗 + @GetMapping("/consumer/see/collection/dynasty/{userId}") + public CommonResult SeeCollectionDynasty(@PathVariable("userId") Long userId){ + log.info("查看已收藏的诗 userId:"+userId); + List result = collectionService.SeeCollectionDynasty(userId); + if(result==null) return new CommonResult(200,"查看已收藏的诗"); + return new CommonResult(result); + } + + //查看 词被收藏的数量 + @GetMapping("/consumer/do/see/collection/poem/num/{poemId}") + public CommonResult SeeCollectionPoemNum(@PathVariable("poemId") Long poemId){ + log.info("查看词被收藏的数量 poemId:"+poemId); + return collectionService.SeeCollectionPoemNum(poemId); + } + //查看 诗被收藏的数量 + @GetMapping("/consumer/do/see/collection/dynasty/num/{dynastyId}") + public CommonResult SeeCollectionDynastyNum(@PathVariable("dynastyId") Long dynastyId){ + log.info("查看 诗被收藏的数量 dynastyId:"+dynastyId); + return collectionService.SeeCollectionDynastyNum(dynastyId); + } + //查看 诗是否被用户收藏 + @GetMapping("/consumer/see/poem/collection/{userId}/{poemId}") + public CommonResult publicSeePoemCollection(@PathVariable("userId") Long userId,@PathVariable("poemId") Long poemId){ + log.info("/查看 诗是否被用户收藏 userId:"+userId+",poemId:"+poemId); + return collectionService.publicSeePoemCollection(userId,poemId); + } + //查看 词 是否被用户收藏 + @GetMapping("/consumer/see/dynasty/collection/{userId}/{dynastyId}") + public CommonResult publicSeeDynastyCollection(@PathVariable("userId") Long userId,@PathVariable("dynastyId") Long dynastyId){ + log.info("/查看 诗 是否被用户收藏 userId:"+userId+",dynastyId:"+dynastyId); + return collectionService.publicSeeDynastyCollection(userId,dynastyId); + } + //取消收藏 + //删除收藏词 + @GetMapping("/consumer/delete/poem/collection/{poemId}") + public CommonResult DeletePoemCollection(@PathVariable("poemId") Long poemId) throws Exception { + log.info("删除收藏词 poemId:"+poemId); + boolean result= collectionService.DeletePoemCollection(poemId); + if(!result) return new CommonResult(400,"删除收藏失败"); + return new CommonResult(null); + } + //create服务调运 不对外使用 + @GetMapping("/consumer/do/delete/poem/collection/{poemId}") + public CommonResult DeleteDoPoemCollection(@PathVariable("poemId") Long poemId) throws Exception { + log.info("删除收藏词 poemId:"+poemId); + boolean result= collectionService.DeletePoemCollection(poemId); + if(!result) return new CommonResult(400,"删除收藏失败"); + return new CommonResult(null); + } + //删除收藏诗 + @GetMapping("/consumer/delete/dynasty/collection/{dynastyId}") + public CommonResult DeleteDynastyCollection(@PathVariable("dynastyId") Long dynastyId) throws Exception { + log.info("删除收藏诗 dynastyId:"+dynastyId); + boolean result= collectionService.DeleteDynastyCollection(dynastyId); + if(!result) return new CommonResult(400,"删除收藏失败"); + return new CommonResult(null); + } + //create服务调运 不对外使用 + @GetMapping("/consumer/do/delete/dynasty/collection/{dynastyId}") + public CommonResult DeleteDoDynastyCollection(@PathVariable("dynastyId") Long dynastyId) throws Exception { + log.info("删除收藏诗 dynastyId:"+dynastyId); + boolean result= collectionService.DeleteDynastyCollection(dynastyId); + if(!result) return new CommonResult(400,"删除收藏失败"); + return new CommonResult(null); + + } +} diff --git a/poetry-consumer-collection/src/main/java/com/jacklei/poetry/mapper/CollectionDao.java b/poetry-consumer-collection/src/main/java/com/jacklei/poetry/mapper/CollectionDao.java new file mode 100644 index 0000000..98b21f2 --- /dev/null +++ b/poetry-consumer-collection/src/main/java/com/jacklei/poetry/mapper/CollectionDao.java @@ -0,0 +1,44 @@ +package com.jacklei.poetry.mapper; + +import com.jacklei.poetry.entities.Dynasty; +import com.jacklei.poetry.entities.Poem; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface CollectionDao { + void DeletePoemCollection(@Param("poemId") Long poemId) ; + + void DeleteDynastyCollection(@Param("dynastyId") Long dynastyId); + + int SeeCollectionPoemExistence(@Param("userId") Long userId,@Param("poemId") Long poemId); + + int CollectionPoem(@Param("userId") Long userId, @Param("poemId") Long poemId,@Param("time") String time); + + int SeeCollectionDynastyExistence(@Param("userId")Long userId, @Param("dynastyId") Long dynastyId); + + int CollectionDynasty(@Param("userId") Long userId, @Param("dynastyId") Long dynastyId,@Param("time") String time); + + List SeeCollectionPoem(@Param("userId") Long userId); + + List SeeCollectionDynasty(@Param("userId")Long userId); + + int SeeCollectionPoemNum(@Param("poemId") Long poemId); + + int SeeCollectionDynastyNum(@Param("dynastyId") Long dynastyId); + + int publicSeePoemCollection(@Param("userId") Long userId, @Param("poemId")Long poemId); + + int publicSeeDynastyCollection(@Param("userId")Long userId, @Param("dynastyId")Long dynastyId); + + void poemCollectionCancel(@Param("userId") Long userId,@Param("poemId") Long poemId); + + void dynastyCollectionCancel(@Param("userId")Long userId,@Param("dynastyId") Long dynastyId); + + void changeCollectionPoemNum(@Param("result") int result,@Param("poemId") Long poemId); + + void changeCollectionDynastyNum(@Param("result")int result,@Param("dynastyId") Long dynastyId); + +} diff --git a/poetry-consumer-collection/src/main/java/com/jacklei/poetry/service/CollectionService.java b/poetry-consumer-collection/src/main/java/com/jacklei/poetry/service/CollectionService.java new file mode 100644 index 0000000..a2a2c8c --- /dev/null +++ b/poetry-consumer-collection/src/main/java/com/jacklei/poetry/service/CollectionService.java @@ -0,0 +1,33 @@ +package com.jacklei.poetry.service; + +import com.jacklei.poetry.entities.CommonResult; +import com.jacklei.poetry.entities.Dynasty; +import com.jacklei.poetry.entities.Poem; + +import java.util.List; + +public interface CollectionService { + boolean DeletePoemCollection(Long poemId) throws Exception; + + boolean DeleteDynastyCollection(Long dynastyId) throws Exception; + + boolean CollectionPoem(Long userId, Long poemId); + + boolean CollectionDynasty(Long userId, Long dynastyId); + + List SeeCollectionPoem(Long userId); + + List SeeCollectionDynasty(Long userId); + + CommonResult SeeCollectionPoemNum(Long poemId); + + CommonResult SeeCollectionDynastyNum(Long dynastyId); + + CommonResult publicSeePoemCollection(Long userId, Long poemId); + + CommonResult publicSeeDynastyCollection(Long userId, Long dynastyId); + + CommonResult poemCollectionCancel(Long userId, Long poemId); + + CommonResult dynastyCollectionCancel(Long userId, Long dynastyId); +} diff --git a/poetry-consumer-collection/src/main/java/com/jacklei/poetry/service/Impl/CollectionServiceImpl.java b/poetry-consumer-collection/src/main/java/com/jacklei/poetry/service/Impl/CollectionServiceImpl.java new file mode 100644 index 0000000..160baf7 --- /dev/null +++ b/poetry-consumer-collection/src/main/java/com/jacklei/poetry/service/Impl/CollectionServiceImpl.java @@ -0,0 +1,105 @@ +package com.jacklei.poetry.service.Impl; + +import com.jacklei.poetry.entities.CommonResult; +import com.jacklei.poetry.entities.Dynasty; +import com.jacklei.poetry.entities.Poem; +import com.jacklei.poetry.mapper.CollectionDao; +import com.jacklei.poetry.service.CollectionService; +import com.jacklei.poetry.util.TimeUtil; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.List; + +@Service +public class CollectionServiceImpl implements CollectionService { + + @Resource + private CollectionDao collectionDao; + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean DeletePoemCollection(Long poemId) throws Exception{ + collectionDao.DeletePoemCollection(poemId); + return true; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean DeleteDynastyCollection(Long dynastyId) throws Exception{ + collectionDao.DeleteDynastyCollection(dynastyId); + return true; + } + + @Override + public boolean CollectionPoem(Long userId, Long poemId) { + int result=collectionDao.SeeCollectionPoemExistence(userId,poemId); + if(result != 0) return false; + int result1=collectionDao.CollectionPoem(userId,poemId, TimeUtil.getTime()); + if(result1==1)return true; + return false; + } + + @Override + public boolean CollectionDynasty(Long userId, Long dynastyId) { + int result=collectionDao.SeeCollectionDynastyExistence(userId,dynastyId); + if(result != 0) return false; + int result1=collectionDao.CollectionDynasty(userId,dynastyId,TimeUtil.getTime()); + if(result1==1)return true; + return false; + } + + @Override + public List SeeCollectionPoem(Long userId) { + + return collectionDao.SeeCollectionPoem(userId); + } + + @Override + public List SeeCollectionDynasty(Long userId) { + + return collectionDao.SeeCollectionDynasty(userId); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public CommonResult SeeCollectionPoemNum(Long poemId) { + int result =collectionDao.SeeCollectionPoemNum(poemId); + collectionDao.changeCollectionPoemNum(result,poemId); + return new CommonResult(result); + } + + @Override + public CommonResult SeeCollectionDynastyNum(Long dynastyId) { + int result =collectionDao.SeeCollectionDynastyNum(dynastyId); + collectionDao.changeCollectionDynastyNum(result,dynastyId); + return new CommonResult(result); + } + + @Override + public CommonResult publicSeePoemCollection(Long userId, Long poemId) { + int result =collectionDao.publicSeePoemCollection(userId,poemId); + if(result!=1)return new CommonResult(204,"没有收藏!"); + return new CommonResult(200,"已收藏!"); + } + + @Override + public CommonResult publicSeeDynastyCollection(Long userId, Long dynastyId) { + int result =collectionDao.publicSeeDynastyCollection(userId,dynastyId); + if(result!=1)return new CommonResult(204,"没有收藏!"); + return new CommonResult(200,"已收藏!"); + } + + @Override + public CommonResult poemCollectionCancel(Long userId, Long poemId) { + collectionDao.poemCollectionCancel(userId,poemId); + return new CommonResult(null); + } + + @Override + public CommonResult dynastyCollectionCancel(Long userId, Long dynastyId) { + collectionDao.dynastyCollectionCancel(userId,dynastyId); + return new CommonResult(null); + } +} diff --git a/poetry-consumer-collection/src/main/java/com/jacklei/poetry/util/JWTTokenUtil.java b/poetry-consumer-collection/src/main/java/com/jacklei/poetry/util/JWTTokenUtil.java new file mode 100644 index 0000000..42f20d9 --- /dev/null +++ b/poetry-consumer-collection/src/main/java/com/jacklei/poetry/util/JWTTokenUtil.java @@ -0,0 +1,58 @@ +package com.jacklei.poetry.util; + + +import com.auth0.jwt.JWT; +import com.auth0.jwt.JWTVerifier; +import com.auth0.jwt.algorithms.Algorithm; +import com.auth0.jwt.exceptions.JWTCreationException; +import com.auth0.jwt.exceptions.JWTVerificationException; +import com.auth0.jwt.interfaces.DecodedJWT; + +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +public class JWTTokenUtil { + //设置过期时间 + private static final long EXPIRE_DATE = 30*60*100000; + //token密钥 + private static final String TOKEN_SECRET ="ZCfasfhuaUUHufguGuwu2020BQWE"; + + public static String token (String username ,String password){ + String token = ""; + + try { + //过期时间 + Date date =new Date(System.currentTimeMillis()+EXPIRE_DATE); + //密钥及加密算法 + Algorithm algorithm = Algorithm.HMAC256(TOKEN_SECRET); + //设置头部信息 + Map header = new HashMap<>(); + header.put("typ","JWT"); + header.put("alg","Hs256"); + //携带username,password信息,生成签名 + token = JWT.create(). + withHeader(header). + withClaim("username",username). + withExpiresAt(date).sign(algorithm); + } catch (JWTCreationException e) { + e.printStackTrace(); + return null; + } + return token; + } + + public static boolean verify(String token){ + + try { + Algorithm algorithm =Algorithm.HMAC256(TOKEN_SECRET); + JWTVerifier verifier = JWT.require(algorithm).build(); + DecodedJWT jwt = verifier.verify(token); + return true; + } catch (JWTVerificationException e) { + e.printStackTrace(); + } + return false; + } + +} diff --git a/poetry-consumer-collection/src/main/resources/application.yaml b/poetry-consumer-collection/src/main/resources/application.yaml new file mode 100644 index 0000000..ed72e44 --- /dev/null +++ b/poetry-consumer-collection/src/main/resources/application.yaml @@ -0,0 +1,62 @@ + +server: + port: 84 +spring: + main: + allow-circular-references: true + # allow-bean-definition-overriding: true + application: + name: poetry-consumer-collection + datasource: + driver-class-name: com.mysql.jdbc.Driver + url: jdbc:mysql://127.0.0.1:3306/shici?useUnicode=true&characterEncoding=utf8&useSSL=false + username: shici + password: 123456 + cloud: + sentinel: + transport: + port: 8719 + dashboard: 127.0.0.1:8080 + datasource: + ds1: + nacos: + server-addr: localhost:8848 + dataId: cloudalibaba-sentinel-login + groupId: SENTINEL_GROUP + data_type: json + rule_type: flow + namespace: 45d907a1-7646-40b0-8502-b8610335271f + nacos: + discovery: + server-addr: 127.0.0.1:8848 + + +#feign: +# sentinel: +# enabled: true + + +mybatis: + type-aliases-package: com.jacklei.poetry.entities + mapper-locations: classpath:mapper/*.xml + + +#seata: +# registry: +# application: seata-server +# type: nacos +# nacos: +# username: nacos +# password: nacos +# server-addr: 81.70.104.6:8848 +# config: +# type: nacos +# nacos: +# username: nacos +# password: nacos +# server-addr: 81.70.104.6:8848 +# enable-auto-data-source-proxy: false +# service: +# vgroup-mapping: +# my_test_tx_group: default +# tx-service-group: my_test_tx_group diff --git a/poetry-consumer-collection/src/main/resources/mapper/CollectionMapper.xml b/poetry-consumer-collection/src/main/resources/mapper/CollectionMapper.xml new file mode 100644 index 0000000..dfd6509 --- /dev/null +++ b/poetry-consumer-collection/src/main/resources/mapper/CollectionMapper.xml @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + delete from t_collection_poem where poem_id=#{poemId} + + + delete from t_collection_dynasty where dynasty_id=#{dynastyId} + + + + insert into t_collection_poem (user_id,poem_id,`time`) values (#{userId},#{poemId},#{time}); + + + + insert into t_collection_dynasty (user_id,dynasty_id,`time`) values (#{userId},#{dynastyId},#{time}); + + + + + + + + + delete from t_collection_poem where poem_id=#{poemId} and user_id=#{userId} + + + delete from t_collection_dynasty where dynasty_id=#{dynastyId} and user_id=#{userId} + + + update t_poem set collection = #{result} where poem_id = #{poemId}; + + + update t_dynasty set collection = #{result} where dynasty_id = #{dynastyId}; + + \ No newline at end of file diff --git a/poetry-consumer-collection/target/classes/application.yaml b/poetry-consumer-collection/target/classes/application.yaml new file mode 100644 index 0000000..ed72e44 --- /dev/null +++ b/poetry-consumer-collection/target/classes/application.yaml @@ -0,0 +1,62 @@ + +server: + port: 84 +spring: + main: + allow-circular-references: true + # allow-bean-definition-overriding: true + application: + name: poetry-consumer-collection + datasource: + driver-class-name: com.mysql.jdbc.Driver + url: jdbc:mysql://127.0.0.1:3306/shici?useUnicode=true&characterEncoding=utf8&useSSL=false + username: shici + password: 123456 + cloud: + sentinel: + transport: + port: 8719 + dashboard: 127.0.0.1:8080 + datasource: + ds1: + nacos: + server-addr: localhost:8848 + dataId: cloudalibaba-sentinel-login + groupId: SENTINEL_GROUP + data_type: json + rule_type: flow + namespace: 45d907a1-7646-40b0-8502-b8610335271f + nacos: + discovery: + server-addr: 127.0.0.1:8848 + + +#feign: +# sentinel: +# enabled: true + + +mybatis: + type-aliases-package: com.jacklei.poetry.entities + mapper-locations: classpath:mapper/*.xml + + +#seata: +# registry: +# application: seata-server +# type: nacos +# nacos: +# username: nacos +# password: nacos +# server-addr: 81.70.104.6:8848 +# config: +# type: nacos +# nacos: +# username: nacos +# password: nacos +# server-addr: 81.70.104.6:8848 +# enable-auto-data-source-proxy: false +# service: +# vgroup-mapping: +# my_test_tx_group: default +# tx-service-group: my_test_tx_group diff --git a/poetry-consumer-collection/target/classes/com/jacklei/poetry/ConsumerCollectionMain.class b/poetry-consumer-collection/target/classes/com/jacklei/poetry/ConsumerCollectionMain.class new file mode 100644 index 0000000..f1207ea Binary files /dev/null and b/poetry-consumer-collection/target/classes/com/jacklei/poetry/ConsumerCollectionMain.class differ diff --git a/poetry-consumer-collection/target/classes/com/jacklei/poetry/config/LoginHandlerInterceptor.class b/poetry-consumer-collection/target/classes/com/jacklei/poetry/config/LoginHandlerInterceptor.class new file mode 100644 index 0000000..339280c Binary files /dev/null and b/poetry-consumer-collection/target/classes/com/jacklei/poetry/config/LoginHandlerInterceptor.class differ diff --git a/poetry-consumer-collection/target/classes/com/jacklei/poetry/config/MyBatisConfig.class b/poetry-consumer-collection/target/classes/com/jacklei/poetry/config/MyBatisConfig.class new file mode 100644 index 0000000..7d2c56b Binary files /dev/null and b/poetry-consumer-collection/target/classes/com/jacklei/poetry/config/MyBatisConfig.class differ diff --git a/poetry-consumer-collection/target/classes/com/jacklei/poetry/config/MyMvcConfig.class b/poetry-consumer-collection/target/classes/com/jacklei/poetry/config/MyMvcConfig.class new file mode 100644 index 0000000..293ee7e Binary files /dev/null and b/poetry-consumer-collection/target/classes/com/jacklei/poetry/config/MyMvcConfig.class differ diff --git a/poetry-consumer-collection/target/classes/com/jacklei/poetry/controller/CollectionController.class b/poetry-consumer-collection/target/classes/com/jacklei/poetry/controller/CollectionController.class new file mode 100644 index 0000000..2f07f4e Binary files /dev/null and b/poetry-consumer-collection/target/classes/com/jacklei/poetry/controller/CollectionController.class differ diff --git a/poetry-consumer-collection/target/classes/com/jacklei/poetry/mapper/CollectionDao.class b/poetry-consumer-collection/target/classes/com/jacklei/poetry/mapper/CollectionDao.class new file mode 100644 index 0000000..929b3b8 Binary files /dev/null and b/poetry-consumer-collection/target/classes/com/jacklei/poetry/mapper/CollectionDao.class differ diff --git a/poetry-consumer-collection/target/classes/com/jacklei/poetry/service/CollectionService.class b/poetry-consumer-collection/target/classes/com/jacklei/poetry/service/CollectionService.class new file mode 100644 index 0000000..ef85a00 Binary files /dev/null and b/poetry-consumer-collection/target/classes/com/jacklei/poetry/service/CollectionService.class differ diff --git a/poetry-consumer-collection/target/classes/com/jacklei/poetry/service/Impl/CollectionServiceImpl.class b/poetry-consumer-collection/target/classes/com/jacklei/poetry/service/Impl/CollectionServiceImpl.class new file mode 100644 index 0000000..54e202b Binary files /dev/null and b/poetry-consumer-collection/target/classes/com/jacklei/poetry/service/Impl/CollectionServiceImpl.class differ diff --git a/poetry-consumer-collection/target/classes/com/jacklei/poetry/util/JWTTokenUtil.class b/poetry-consumer-collection/target/classes/com/jacklei/poetry/util/JWTTokenUtil.class new file mode 100644 index 0000000..82b42c1 Binary files /dev/null and b/poetry-consumer-collection/target/classes/com/jacklei/poetry/util/JWTTokenUtil.class differ diff --git a/poetry-consumer-collection/target/classes/mapper/CollectionMapper.xml b/poetry-consumer-collection/target/classes/mapper/CollectionMapper.xml new file mode 100644 index 0000000..dfd6509 --- /dev/null +++ b/poetry-consumer-collection/target/classes/mapper/CollectionMapper.xml @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + delete from t_collection_poem where poem_id=#{poemId} + + + delete from t_collection_dynasty where dynasty_id=#{dynastyId} + + + + insert into t_collection_poem (user_id,poem_id,`time`) values (#{userId},#{poemId},#{time}); + + + + insert into t_collection_dynasty (user_id,dynasty_id,`time`) values (#{userId},#{dynastyId},#{time}); + + + + + + + + + delete from t_collection_poem where poem_id=#{poemId} and user_id=#{userId} + + + delete from t_collection_dynasty where dynasty_id=#{dynastyId} and user_id=#{userId} + + + update t_poem set collection = #{result} where poem_id = #{poemId}; + + + update t_dynasty set collection = #{result} where dynasty_id = #{dynastyId}; + + \ No newline at end of file diff --git a/poetry-consumer-collection/target/maven-archiver/pom.properties b/poetry-consumer-collection/target/maven-archiver/pom.properties new file mode 100644 index 0000000..3706ed2 --- /dev/null +++ b/poetry-consumer-collection/target/maven-archiver/pom.properties @@ -0,0 +1,5 @@ +#Generated by Maven +#Mon Apr 04 03:52:15 CST 2022 +version=1.0-SNAPSHOT +groupId=com.jacklei.poetry +artifactId=poetry-consumer-collection diff --git a/poetry-consumer-collection/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/poetry-consumer-collection/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..31ced50 --- /dev/null +++ b/poetry-consumer-collection/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,9 @@ +com\jacklei\poetry\config\MyBatisConfig.class +com\jacklei\poetry\service\Impl\CollectionServiceImpl.class +com\jacklei\poetry\config\MyMvcConfig.class +com\jacklei\poetry\service\CollectionService.class +com\jacklei\poetry\controller\CollectionController.class +com\jacklei\poetry\config\LoginHandlerInterceptor.class +com\jacklei\poetry\util\JWTTokenUtil.class +com\jacklei\poetry\ConsumerCollectionMain.class +com\jacklei\poetry\mapper\CollectionDao.class diff --git a/poetry-consumer-collection/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/poetry-consumer-collection/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..b9c5012 --- /dev/null +++ b/poetry-consumer-collection/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,9 @@ +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-collection\src\main\java\com\jacklei\poetry\service\CollectionService.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-collection\src\main\java\com\jacklei\poetry\ConsumerCollectionMain.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-collection\src\main\java\com\jacklei\poetry\config\MyMvcConfig.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-collection\src\main\java\com\jacklei\poetry\util\JWTTokenUtil.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-collection\src\main\java\com\jacklei\poetry\config\MyBatisConfig.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-collection\src\main\java\com\jacklei\poetry\service\Impl\CollectionServiceImpl.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-collection\src\main\java\com\jacklei\poetry\config\LoginHandlerInterceptor.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-collection\src\main\java\com\jacklei\poetry\controller\CollectionController.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-collection\src\main\java\com\jacklei\poetry\mapper\CollectionDao.java diff --git a/poetry-consumer-collection/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/poetry-consumer-collection/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/poetry-consumer-collection/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/poetry-consumer-collection/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/poetry-consumer-collection/target/poetry-consumer-collection-1.0-SNAPSHOT.jar b/poetry-consumer-collection/target/poetry-consumer-collection-1.0-SNAPSHOT.jar new file mode 100644 index 0000000..fc10e98 Binary files /dev/null and b/poetry-consumer-collection/target/poetry-consumer-collection-1.0-SNAPSHOT.jar differ diff --git a/poetry-consumer-collection/target/poetry-consumer-collection-1.0-SNAPSHOT.jar.original b/poetry-consumer-collection/target/poetry-consumer-collection-1.0-SNAPSHOT.jar.original new file mode 100644 index 0000000..afa624b Binary files /dev/null and b/poetry-consumer-collection/target/poetry-consumer-collection-1.0-SNAPSHOT.jar.original differ diff --git a/poetry-consumer-comments/poetry-consumer-comments.iml b/poetry-consumer-comments/poetry-consumer-comments.iml new file mode 100644 index 0000000..8292d8b --- /dev/null +++ b/poetry-consumer-comments/poetry-consumer-comments.iml @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/poetry-consumer-comments/pom.xml b/poetry-consumer-comments/pom.xml new file mode 100644 index 0000000..bca3290 --- /dev/null +++ b/poetry-consumer-comments/pom.xml @@ -0,0 +1,145 @@ + + + + PoetryOfTheFourSeasons + com.jacklei.poetry + 1.0-SNAPSHOT + + 4.0.0 + + poetry-consumer-comments + + + + + com.auth0 + java-jwt + 3.8.2 + + + + com.jacklei.poetry + poetry-api-commons + 1.0-SNAPSHOT + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + 2.2.7.RELEASE + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + 2.2.7.RELEASE + + + org.springframework.cloud + spring-cloud-starter-netflix-ribbon + + + + + org.springframework.cloud + spring-cloud-loadbalancer + + + com.alibaba.csp + sentinel-datasource-nacos + + + + + com.alibaba.nacos + nacos-client + 1.4.2 + + + + + + + + + + + + + + + + + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + + mysql + mysql-connector-java + 8.0.27 + + + com.alibaba + druid-spring-boot-starter + 1.1.10 + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + 2.1.1 + + + org.springframework.boot + spring-boot-starter-test + test + + + org.projectlombok + lombok + true + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.8 + 1.8 + + + + org.springframework.boot + spring-boot-maven-plugin + 2.2.2.RELEASE + + + com.jacklei.poetry.ConsumerCommentsMain + + + + + repackage + + + + + + + + \ No newline at end of file diff --git a/poetry-consumer-comments/src/main/java/com/jacklei/poetry/ConsumerCommentsMain.java b/poetry-consumer-comments/src/main/java/com/jacklei/poetry/ConsumerCommentsMain.java new file mode 100644 index 0000000..89ae9f3 --- /dev/null +++ b/poetry-consumer-comments/src/main/java/com/jacklei/poetry/ConsumerCommentsMain.java @@ -0,0 +1,16 @@ +package com.jacklei.poetry; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +//import org.springframework.cloud.openfeign.EnableFeignClients; + +@SpringBootApplication +@EnableDiscoveryClient +//@EnableFeignClients +public class ConsumerCommentsMain { + + public static void main(String[] args) { + SpringApplication.run(ConsumerCommentsMain.class,args); + } +} diff --git a/poetry-consumer-comments/src/main/java/com/jacklei/poetry/config/LoginHandlerInterceptor.java b/poetry-consumer-comments/src/main/java/com/jacklei/poetry/config/LoginHandlerInterceptor.java new file mode 100644 index 0000000..7e91a15 --- /dev/null +++ b/poetry-consumer-comments/src/main/java/com/jacklei/poetry/config/LoginHandlerInterceptor.java @@ -0,0 +1,56 @@ +package com.jacklei.poetry.config; + +import com.jacklei.poetry.util.JWTTokenUtil; +import org.springframework.web.servlet.HandlerInterceptor; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +public class LoginHandlerInterceptor implements HandlerInterceptor { + + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + String token = request.getHeader("token"); + System.err.println(token); + if(token==null||token.isEmpty()){ + //没有 token + request.setAttribute("msg","没有权限,请重新登录!"); + request.getRequestDispatcher("/do/login/token").forward(request,response); + return false; + } + else if(JWTTokenUtil.verify(token)){return true;}//正常token + else{ + request.setAttribute("msg","登录时间过长,请重新登录!"); + request.getRequestDispatcher("/do/login/token").forward(request,response); + return false; + } + /* Object LoginUser = request.getSession().getAttribute("user"); + if(LoginUser==null){ + request.setAttribute("msg","没有权限,请重新登录!"); + request.getRequestDispatcher("/consumer/login").forward(request,response); + + return false; + }else*/ + /*response.setHeader("Access-Control-Allow-Origin", "*"); + response.setHeader("Access-Control-Allow-Headers", "X-Requested-With"); + response.setHeader("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS"); + response.setHeader("X-Powered-By","3.2.1"); + response.setHeader("Access-Control-Allow-Credentials","true"); + response.setHeader("Content-Type", "application/json;charset=utf-8"); +*/ + + + + } + + @Override + public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { + + } + + @Override + public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { + + } +} diff --git a/poetry-consumer-comments/src/main/java/com/jacklei/poetry/config/MyBatisConfig.java b/poetry-consumer-comments/src/main/java/com/jacklei/poetry/config/MyBatisConfig.java new file mode 100644 index 0000000..646089b --- /dev/null +++ b/poetry-consumer-comments/src/main/java/com/jacklei/poetry/config/MyBatisConfig.java @@ -0,0 +1,9 @@ +package com.jacklei.poetry.config; + +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.context.annotation.Configuration; + +@Configuration +@MapperScan(basePackages = "com.jacklei.poetry.mapper") +public class MyBatisConfig { +} diff --git a/poetry-consumer-comments/src/main/java/com/jacklei/poetry/config/MyMvcConfig.java b/poetry-consumer-comments/src/main/java/com/jacklei/poetry/config/MyMvcConfig.java new file mode 100644 index 0000000..2046f56 --- /dev/null +++ b/poetry-consumer-comments/src/main/java/com/jacklei/poetry/config/MyMvcConfig.java @@ -0,0 +1,16 @@ +package com.jacklei.poetry.config; + +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration +public class MyMvcConfig implements WebMvcConfigurer { + + @Override + public void addInterceptors(InterceptorRegistry registry) { + registry.addInterceptor(new LoginHandlerInterceptor()).addPathPatterns("/**"). + excludePathPatterns("/**/do/**","/do/**"); + //registry.addInterceptor(new LoginHandlerInterceptor()); + } +} diff --git a/poetry-consumer-comments/src/main/java/com/jacklei/poetry/controller/CommentsController.java b/poetry-consumer-comments/src/main/java/com/jacklei/poetry/controller/CommentsController.java new file mode 100644 index 0000000..ae586dc --- /dev/null +++ b/poetry-consumer-comments/src/main/java/com/jacklei/poetry/controller/CommentsController.java @@ -0,0 +1,119 @@ +package com.jacklei.poetry.controller; + + +import com.jacklei.poetry.entities.CommonResult; +import com.jacklei.poetry.service.CommentsService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletRequest; + +@CrossOrigin +@RestController +@Slf4j +public class CommentsController { + + @Autowired + private CommentsService commentsService; + + + //给前端通知 Token 异常 + @GetMapping("/do/login/token") + public CommonResult doLoginToken ( HttpServletRequest request ){ + Object msg = request.getAttribute("msg"); + return new CommonResult(201,"token异常",msg); + } + + //评论词 + @GetMapping("/consumer/user/comments/poem/{userId}/{poemId}/{commentsInformation}") + public CommonResult UserCommentsPoem (@PathVariable("userId") Long userId,@PathVariable("poemId") Long poemId,@PathVariable("commentsInformation") String commentsInformation) throws Exception { + log.info("评论词 userId:"+userId,", poemId"+poemId+", commentsInformation"+commentsInformation); + return commentsService.UserCommentsPoem(userId,poemId,commentsInformation); + } + + //评论诗 + @GetMapping("/consumer/user/comments/dynasty/{userId}/{dynastyId}/{commentsInformation}") + public CommonResult UserCommentsDynasty (@PathVariable("userId") Long userId,@PathVariable("dynastyId") Long dynastyId,@PathVariable("commentsInformation") String commentsInformation) throws Exception { + log.info("评论词 userId:"+userId,", dynastyId"+dynastyId + ",commentsInformation:"+commentsInformation); + return commentsService.UserCommentsDynasty(userId,dynastyId,commentsInformation); + } + + //回复评论词 + //userId 回复者的id(用户id) + //poem 评论词的id + //commentsInformation 回复内容 + // replyerId评论诗 的 评论id + @GetMapping("/consumer/user/comments/poem/{userId}/{poemId}/{commentsInformation}/{replyerId}") + public CommonResult UserReplyCommentsPoem (@PathVariable("userId") Long userId, + @PathVariable("poemId") Long poemId, + @PathVariable("commentsInformation") String commentsInformation, + @PathVariable("replyerId") String replyerId) throws Exception { + log.info("回复评论词 userId:"+userId,", poemId"+poemId + ",commentsInformation:"+commentsInformation+", replyerId:" +replyerId); + return commentsService.UserReplyCommentsPoem(userId,poemId,commentsInformation,replyerId); + } + //回复评论诗 + @GetMapping("/consumer/user/comments/dynasty/{userId}/{dynastyId}/{commentsInformation}/{replyerId}") + public CommonResult UserReplyCommentsDynasty (@PathVariable("userId") Long userId, + @PathVariable("dynastyId") Long dynastyId, + @PathVariable("commentsInformation") String commentsInformation, + @PathVariable("replyerId") String replyerId) throws Exception { + log.info("回复评论诗 userId:"+userId,", dynastyId"+dynastyId + ",commentsInformation:"+commentsInformation+", replyerId:" +replyerId); + log.info("commentsInformation"+commentsInformation); + return commentsService.UserReplyCommentsDynasty(userId,dynastyId,commentsInformation,replyerId); + } + //删除词的评论 + @GetMapping("/consumer/user/delete/comments/poem/{commentsId}") + public CommonResult UserDeleteCommentsPoem(@PathVariable("commentsId") String commentsId) throws Exception { + return commentsService.UserDeleteCommentsPoem(commentsId); + } + + //删除诗的评论 + @GetMapping("/consumer/user/delete/comments/dynasty/{commentsId}") + public CommonResult UserDeleteCommentsDynasty(@PathVariable("commentsId") String commentsId) throws Exception { + return commentsService.UserDeleteCommentsDynasty(commentsId); + } + + //查看某首词的所有评论 + @GetMapping("/consumer/do/see/poem/comments/{poemId}") + public CommonResult SeePoemComments(@PathVariable("poemId") Long poemId)throws Exception{ + return commentsService.SeePoemComments(poemId); + } + //查看某首词评论的回复 + @GetMapping("/consumer/do/see/poem/comments/reply/{commentsId}") + public CommonResult SeePoemCommentsReply(@PathVariable("commentsId") String commentsId){ + return commentsService.SeePoemCommentsReply(commentsId); + } + + + //查看某首诗的所有评论 + @GetMapping("/consumer/do/see/dynasty/comments/{dynastyId}") + public CommonResult SeeDynastyComments(@PathVariable("dynastyId") Long dynastyId) throws Exception { + return commentsService.SeeDynastyComments(dynastyId); + } + //查看某首词评论的回复 + @GetMapping("/consumer/do/see/dynasty/comments/reply/{commentsId}") + public CommonResult SeeDynastyCommentsReply(@PathVariable("commentsId") String commentsId){ + return commentsService.SeeDynastyCommentsReply(commentsId); + } + //删除谋受词的所有评论与回复 ,create服务调用,不对外使用。 + //删除词的评论 + @GetMapping("/consumer/do/user/delete/comments/poem/{poemId}") + public CommonResult UserDoDeleteCommentsPoem(@PathVariable("poemId") Long poemId) throws Exception { + return commentsService.UserDoDeleteCommentsPoem(poemId); + } + + + //删除谋受诗的所有评论与回复 ,create服务调用,不对外使用。 + //删除诗的评论 + @GetMapping("/consumer/do/user/delete/comments/dynasty/{dynastyId}") + public CommonResult UserDoDeleteCommentsDynasty(@PathVariable("dynastyId") Long dynastyId) throws Exception { + return commentsService.UserDoDeleteCommentsDynasty(dynastyId); + } + + + +} diff --git a/poetry-consumer-comments/src/main/java/com/jacklei/poetry/mapper/CommentsDao.java b/poetry-consumer-comments/src/main/java/com/jacklei/poetry/mapper/CommentsDao.java new file mode 100644 index 0000000..78ddb0d --- /dev/null +++ b/poetry-consumer-comments/src/main/java/com/jacklei/poetry/mapper/CommentsDao.java @@ -0,0 +1,45 @@ +package com.jacklei.poetry.mapper; + +import com.jacklei.poetry.entities.CommentsDynasty; +import com.jacklei.poetry.entities.CommentsPoem; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface CommentsDao { + + void UserCommentsPoem( @Param("commentsId") Long commentsId, @Param("userId") Long userId , @Param("poemId") Long poemId,@Param("commentsInformation") String commentsInformation,@Param("time") String time); + + void UserCommentsDynasty(@Param("commentsId") Long commentsId, @Param("userId") Long userId, @Param("dynastyId") Long dynastyId, @Param("commentsInformation") String commentsInformation, @Param("time") String time); + + + List SeePoemComments(@Param("poemId")Long poemId); + + List SeeDynastyComments( @Param("dynastyId")Long dynastyId); + + void UserReplyCommentsPoem(@Param("commentsId") Long commentsId,@Param("replyerId") String replyerId); + + void UserReplyCommentsDynasty(@Param("commentsId") Long commentsId,@Param("replyerId") String replyerId); + + void UserDeleteCommentsPoem(@Param("commentsId") String commentsId); + + void UserDeleteCommentsDynasty(@Param("commentsId") String commentsId); + + void UserDeleteCommentsDynastyRelation(@Param("commentsId") String commentsId); + + void UserDeleteCommentsPoemRelation(@Param("commentsId") String commentsId); + + List SeePoemCommentsReply(@Param("commentsId") String commentsId); + + List SeeDynastyCommentsReply(@Param("commentsId") String commentsId); + + void UserDoDeleteCommentsPoemReply(@Param("poemId") Long poemId); + + void UserDoDeleteCommentsPoem(@Param("poemId") Long poemId); + + void UserDoDeleteCommentsDynastyReply(@Param("dynastyId") Long dynastyId); + + void UserDoDeleteCommentsDynasty(@Param("dynastyId") Long dynastyId); +} diff --git a/poetry-consumer-comments/src/main/java/com/jacklei/poetry/service/CommentsService.java b/poetry-consumer-comments/src/main/java/com/jacklei/poetry/service/CommentsService.java new file mode 100644 index 0000000..abb342f --- /dev/null +++ b/poetry-consumer-comments/src/main/java/com/jacklei/poetry/service/CommentsService.java @@ -0,0 +1,30 @@ +package com.jacklei.poetry.service; + +import com.jacklei.poetry.entities.CommonResult; + +public interface CommentsService { + + CommonResult UserCommentsPoem(Long userId, Long poemId, String commentsInformation) throws Exception; + + CommonResult UserCommentsDynasty(Long userId, Long dynastyId, String commentsInformation) throws Exception; + + CommonResult UserReplyCommentsPoem(Long userId, Long poemId, String commentsInformation, String replyerId) throws Exception; + + CommonResult UserReplyCommentsDynasty(Long userId, Long dynastyId, String commentsInformation, String replyerId) throws Exception; + + CommonResult SeePoemComments(Long poemId) throws Exception; + + CommonResult SeeDynastyComments(Long dynastyId) throws Exception; + + CommonResult UserDeleteCommentsPoem(String commentsId) throws Exception; + + CommonResult UserDeleteCommentsDynasty(String commentsId) throws Exception; + + CommonResult SeePoemCommentsReply(String commentsId); + + CommonResult SeeDynastyCommentsReply(String commentsId); + + CommonResult UserDoDeleteCommentsPoem(Long poemId) throws Exception; + + CommonResult UserDoDeleteCommentsDynasty(Long dynastyId) throws Exception; +} diff --git a/poetry-consumer-comments/src/main/java/com/jacklei/poetry/service/Impl/CommentsServiceImpl.java b/poetry-consumer-comments/src/main/java/com/jacklei/poetry/service/Impl/CommentsServiceImpl.java new file mode 100644 index 0000000..f83d5e1 --- /dev/null +++ b/poetry-consumer-comments/src/main/java/com/jacklei/poetry/service/Impl/CommentsServiceImpl.java @@ -0,0 +1,149 @@ +package com.jacklei.poetry.service.Impl; + +import com.jacklei.poetry.entities.CommentsDynasty; +import com.jacklei.poetry.entities.CommentsPoem; +import com.jacklei.poetry.entities.CommonResult; +import com.jacklei.poetry.mapper.CommentsDao; +import com.jacklei.poetry.service.CommentsService; +import com.jacklei.poetry.util.TimeUtil; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.List; +import java.util.UUID; + +@Service +@Slf4j +public class CommentsServiceImpl implements CommentsService { + @Resource + private CommentsDao commentsDao; + + @Override + @Transactional(rollbackFor = Exception.class) + public CommonResult UserCommentsPoem(Long userId, Long poemId, String commentsInformation) throws Exception{ + Long commentsId= UUID.randomUUID().getMostSignificantBits(); + commentsDao.UserCommentsPoem(commentsId,userId,poemId,commentsInformation, TimeUtil.getTime()); + return new CommonResult(null); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public CommonResult UserCommentsDynasty(Long userId, Long dynastyId, String commentsInformation) throws Exception{ + Long commentsId= UUID.randomUUID().getMostSignificantBits(); + commentsDao.UserCommentsDynasty(commentsId,userId,dynastyId,commentsInformation, TimeUtil.getTime()); + return new CommonResult(null); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public CommonResult UserReplyCommentsPoem(Long userId, Long poemId, String commentsInformation, String replyerId)throws Exception { + Long commentsId= UUID.randomUUID().getMostSignificantBits(); + commentsDao.UserCommentsPoem(commentsId,userId,poemId,commentsInformation, TimeUtil.getTime()); + commentsDao.UserReplyCommentsPoem(commentsId,replyerId); + + return new CommonResult(null); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public CommonResult UserReplyCommentsDynasty(Long userId, Long dynastyId, String commentsInformation, String replyerId)throws Exception { + Long commentsId= UUID.randomUUID().getMostSignificantBits(); + commentsDao.UserCommentsDynasty(commentsId,userId,dynastyId,commentsInformation, TimeUtil.getTime()); + log.info("加入评论成功:"+commentsId,"replyerId"+replyerId); + commentsDao.UserReplyCommentsDynasty(commentsId,replyerId); + return new CommonResult(null); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public CommonResult SeePoemComments(Long poemId)throws Exception { + List result= commentsDao.SeePoemComments(poemId); + if(result!=null) { + for (CommentsPoem o :result) { + o.setReplyCommentsId(commentsDao.SeePoemCommentsReply(o.getCommentsId())); + } + return new CommonResult(result); + }else { + return new CommonResult(200,"此词还没有评论!"); + } + } + + @Override + @Transactional(rollbackFor = Exception.class) + public CommonResult SeeDynastyComments(Long dynastyId) throws Exception { + List result= commentsDao.SeeDynastyComments(dynastyId); + if(result!=null){ + for (CommentsDynasty o : result) { + o.setReplyCommentsId(commentsDao.SeeDynastyCommentsReply(o.getCommentsId())); + } + + return new CommonResult(result); + }else { + return new CommonResult(200, "此诗还没有评论!"); + } + } + + @Override + @Transactional(rollbackFor = Exception.class) + public CommonResult UserDeleteCommentsPoem(String commentsId) throws Exception{ + commentsDao.UserDeleteCommentsPoemRelation(commentsId); + commentsDao.UserDeleteCommentsPoem(commentsId); + return new CommonResult(null); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public CommonResult UserDeleteCommentsDynasty(String commentsId) throws Exception{ + commentsDao.UserDeleteCommentsDynastyRelation(commentsId); + commentsDao.UserDeleteCommentsDynasty(commentsId); + return new CommonResult(null); + } + + @Override + public CommonResult SeePoemCommentsReply(String commentsId) { + List list=commentsDao.SeePoemCommentsReply(commentsId); + if(list==null) return new CommonResult(200,"没有回复"); + return new CommonResult(list); + } + + @Override + public CommonResult SeeDynastyCommentsReply(String commentsId) { + Listlist=commentsDao.SeeDynastyCommentsReply(commentsId); + if(list==null) return new CommonResult(200,"没有回复"); + return new CommonResult(list); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public CommonResult UserDoDeleteCommentsPoem(Long poemId)throws Exception { + //先删除回复注册表 + log.info("开始删除回复注册表"); + commentsDao.UserDoDeleteCommentsPoemReply(poemId); + log.info("结束删除回复注册表"); + //再删除评论表 + log.info("开始删除评论表"); + commentsDao.UserDoDeleteCommentsPoem(poemId); + log.info("结束删除评论表"); + + + return new CommonResult(null); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public CommonResult UserDoDeleteCommentsDynasty(Long dynastyId)throws Exception { + //先删除回复注册表 + log.info("开始删除回复注册表"); + commentsDao.UserDoDeleteCommentsDynastyReply(dynastyId); + log.info("结束删除回复注册表"); + //再删除评论表 + log.info("开始删除评论表"); + commentsDao.UserDoDeleteCommentsDynasty(dynastyId); + log.info("结束删除评论表"); + + + return new CommonResult(null); + } +} diff --git a/poetry-consumer-comments/src/main/java/com/jacklei/poetry/util/JWTTokenUtil.java b/poetry-consumer-comments/src/main/java/com/jacklei/poetry/util/JWTTokenUtil.java new file mode 100644 index 0000000..42f20d9 --- /dev/null +++ b/poetry-consumer-comments/src/main/java/com/jacklei/poetry/util/JWTTokenUtil.java @@ -0,0 +1,58 @@ +package com.jacklei.poetry.util; + + +import com.auth0.jwt.JWT; +import com.auth0.jwt.JWTVerifier; +import com.auth0.jwt.algorithms.Algorithm; +import com.auth0.jwt.exceptions.JWTCreationException; +import com.auth0.jwt.exceptions.JWTVerificationException; +import com.auth0.jwt.interfaces.DecodedJWT; + +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +public class JWTTokenUtil { + //设置过期时间 + private static final long EXPIRE_DATE = 30*60*100000; + //token密钥 + private static final String TOKEN_SECRET ="ZCfasfhuaUUHufguGuwu2020BQWE"; + + public static String token (String username ,String password){ + String token = ""; + + try { + //过期时间 + Date date =new Date(System.currentTimeMillis()+EXPIRE_DATE); + //密钥及加密算法 + Algorithm algorithm = Algorithm.HMAC256(TOKEN_SECRET); + //设置头部信息 + Map header = new HashMap<>(); + header.put("typ","JWT"); + header.put("alg","Hs256"); + //携带username,password信息,生成签名 + token = JWT.create(). + withHeader(header). + withClaim("username",username). + withExpiresAt(date).sign(algorithm); + } catch (JWTCreationException e) { + e.printStackTrace(); + return null; + } + return token; + } + + public static boolean verify(String token){ + + try { + Algorithm algorithm =Algorithm.HMAC256(TOKEN_SECRET); + JWTVerifier verifier = JWT.require(algorithm).build(); + DecodedJWT jwt = verifier.verify(token); + return true; + } catch (JWTVerificationException e) { + e.printStackTrace(); + } + return false; + } + +} diff --git a/poetry-consumer-comments/src/main/resources/application.yaml b/poetry-consumer-comments/src/main/resources/application.yaml new file mode 100644 index 0000000..18613ad --- /dev/null +++ b/poetry-consumer-comments/src/main/resources/application.yaml @@ -0,0 +1,65 @@ + +server: + port: 86 +spring: + main: + allow-circular-references: true + # allow-bean-definition-overriding: true + application: + name: poetry-consunmer-comments + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://127.0.0.1:3306/shici?useUnicode=true&characterEncoding=utf8&useSSL=false + username: shici + password: 123456 +# url: jdbc:mysql://localhost:3306/fourseasons?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true +# username: root +# password: 123456 + cloud: + sentinel: + transport: + port: 8719 + dashboard: 127.0.0.1:8080 + datasource: + ds1: + nacos: + server-addr: localhost:8848 + dataId: cloudalibaba-sentinel-login + groupId: SENTINEL_GROUP + data_type: json + rule_type: flow + namespace: 45d907a1-7646-40b0-8502-b8610335271f + nacos: + discovery: + server-addr: 127.0.0.1:8848 + + +#feign: +# sentinel: +# enabled: true + + +mybatis: + type-aliases-package: com.jacklei.poetry.entities + mapper-locations: classpath:mapper/*.xml + + +#seata: +# registry: +# application: seata-server +# type: nacos +# nacos: +# username: nacos +# password: nacos +# server-addr: 81.70.104.6:8848 +# config: +# type: nacos +# nacos: +# username: nacos +# password: nacos +# server-addr: 81.70.104.6:8848 +# enable-auto-data-source-proxy: false +# service: +# vgroup-mapping: +# my_test_tx_group: default +# tx-service-group: my_test_tx_group diff --git a/poetry-consumer-comments/src/main/resources/mapper/CommentsMapper.xml b/poetry-consumer-comments/src/main/resources/mapper/CommentsMapper.xml new file mode 100644 index 0000000..6515f2b --- /dev/null +++ b/poetry-consumer-comments/src/main/resources/mapper/CommentsMapper.xml @@ -0,0 +1,163 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + insert into t_comments_poem (comments_id,poem_id,user_id,comments_information,`time`) values (#{commentsId},#{poemId},#{userId},#{commentsInformation},#{time}); + + + + insert into t_comments_dynasty (comments_id,dynasty_id,user_id,comments_information,`time`) values (#{commentsId},#{dynastyId},#{userId},#{commentsInformation},#{time}); + + + insert into t_reply_poem (comments_id,replyer_id) values (#{replyerId},#{commentsId}); + + + insert into t_reply_dynasty (comments_id,replyer_id) values (#{replyerId},#{commentsId}); + + + + + + + + + delete from t_comments_poem where comments_id=#{commentsId} ; + + + delete from t_comments_dynasty where comments_id=#{commentsId}; + + + delete from t_reply_dynasty where comments_id=#{commentsId} or replyer_id=#{commentsId}; + + + delete from t_reply_poem where comments_id=#{commentsId} or replyer_id=#{commentsId}; + + + delete from t_reply_poem + where comments_id + in ( + select comments_id from t_comments_poem + where poem_id=#{poemId} + ) + + + delete from t_reply_dynasty + where comments_id + in ( + select comments_id from t_comments_dynasty + where dynasty_id=#{dynastyId} + ) + + + delete from t_comments_poem where poem_id=#{poemId} + + + delete from t_comments_dynasty where dynasty_id=#{dynastyId} + + + \ No newline at end of file diff --git a/poetry-consumer-comments/target/classes/application.yaml b/poetry-consumer-comments/target/classes/application.yaml new file mode 100644 index 0000000..18613ad --- /dev/null +++ b/poetry-consumer-comments/target/classes/application.yaml @@ -0,0 +1,65 @@ + +server: + port: 86 +spring: + main: + allow-circular-references: true + # allow-bean-definition-overriding: true + application: + name: poetry-consunmer-comments + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://127.0.0.1:3306/shici?useUnicode=true&characterEncoding=utf8&useSSL=false + username: shici + password: 123456 +# url: jdbc:mysql://localhost:3306/fourseasons?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true +# username: root +# password: 123456 + cloud: + sentinel: + transport: + port: 8719 + dashboard: 127.0.0.1:8080 + datasource: + ds1: + nacos: + server-addr: localhost:8848 + dataId: cloudalibaba-sentinel-login + groupId: SENTINEL_GROUP + data_type: json + rule_type: flow + namespace: 45d907a1-7646-40b0-8502-b8610335271f + nacos: + discovery: + server-addr: 127.0.0.1:8848 + + +#feign: +# sentinel: +# enabled: true + + +mybatis: + type-aliases-package: com.jacklei.poetry.entities + mapper-locations: classpath:mapper/*.xml + + +#seata: +# registry: +# application: seata-server +# type: nacos +# nacos: +# username: nacos +# password: nacos +# server-addr: 81.70.104.6:8848 +# config: +# type: nacos +# nacos: +# username: nacos +# password: nacos +# server-addr: 81.70.104.6:8848 +# enable-auto-data-source-proxy: false +# service: +# vgroup-mapping: +# my_test_tx_group: default +# tx-service-group: my_test_tx_group diff --git a/poetry-consumer-comments/target/classes/com/jacklei/poetry/ConsumerCommentsMain.class b/poetry-consumer-comments/target/classes/com/jacklei/poetry/ConsumerCommentsMain.class new file mode 100644 index 0000000..dcaa171 Binary files /dev/null and b/poetry-consumer-comments/target/classes/com/jacklei/poetry/ConsumerCommentsMain.class differ diff --git a/poetry-consumer-comments/target/classes/com/jacklei/poetry/config/LoginHandlerInterceptor.class b/poetry-consumer-comments/target/classes/com/jacklei/poetry/config/LoginHandlerInterceptor.class new file mode 100644 index 0000000..339280c Binary files /dev/null and b/poetry-consumer-comments/target/classes/com/jacklei/poetry/config/LoginHandlerInterceptor.class differ diff --git a/poetry-consumer-comments/target/classes/com/jacklei/poetry/config/MyBatisConfig.class b/poetry-consumer-comments/target/classes/com/jacklei/poetry/config/MyBatisConfig.class new file mode 100644 index 0000000..7d2c56b Binary files /dev/null and b/poetry-consumer-comments/target/classes/com/jacklei/poetry/config/MyBatisConfig.class differ diff --git a/poetry-consumer-comments/target/classes/com/jacklei/poetry/config/MyMvcConfig.class b/poetry-consumer-comments/target/classes/com/jacklei/poetry/config/MyMvcConfig.class new file mode 100644 index 0000000..293ee7e Binary files /dev/null and b/poetry-consumer-comments/target/classes/com/jacklei/poetry/config/MyMvcConfig.class differ diff --git a/poetry-consumer-comments/target/classes/com/jacklei/poetry/controller/CommentsController.class b/poetry-consumer-comments/target/classes/com/jacklei/poetry/controller/CommentsController.class new file mode 100644 index 0000000..d9d7ca3 Binary files /dev/null and b/poetry-consumer-comments/target/classes/com/jacklei/poetry/controller/CommentsController.class differ diff --git a/poetry-consumer-comments/target/classes/com/jacklei/poetry/mapper/CommentsDao.class b/poetry-consumer-comments/target/classes/com/jacklei/poetry/mapper/CommentsDao.class new file mode 100644 index 0000000..0cd1db9 Binary files /dev/null and b/poetry-consumer-comments/target/classes/com/jacklei/poetry/mapper/CommentsDao.class differ diff --git a/poetry-consumer-comments/target/classes/com/jacklei/poetry/service/CommentsService.class b/poetry-consumer-comments/target/classes/com/jacklei/poetry/service/CommentsService.class new file mode 100644 index 0000000..7c4f85b Binary files /dev/null and b/poetry-consumer-comments/target/classes/com/jacklei/poetry/service/CommentsService.class differ diff --git a/poetry-consumer-comments/target/classes/com/jacklei/poetry/service/Impl/CommentsServiceImpl.class b/poetry-consumer-comments/target/classes/com/jacklei/poetry/service/Impl/CommentsServiceImpl.class new file mode 100644 index 0000000..457044e Binary files /dev/null and b/poetry-consumer-comments/target/classes/com/jacklei/poetry/service/Impl/CommentsServiceImpl.class differ diff --git a/poetry-consumer-comments/target/classes/com/jacklei/poetry/util/JWTTokenUtil.class b/poetry-consumer-comments/target/classes/com/jacklei/poetry/util/JWTTokenUtil.class new file mode 100644 index 0000000..82b42c1 Binary files /dev/null and b/poetry-consumer-comments/target/classes/com/jacklei/poetry/util/JWTTokenUtil.class differ diff --git a/poetry-consumer-comments/target/classes/mapper/CommentsMapper.xml b/poetry-consumer-comments/target/classes/mapper/CommentsMapper.xml new file mode 100644 index 0000000..6515f2b --- /dev/null +++ b/poetry-consumer-comments/target/classes/mapper/CommentsMapper.xml @@ -0,0 +1,163 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + insert into t_comments_poem (comments_id,poem_id,user_id,comments_information,`time`) values (#{commentsId},#{poemId},#{userId},#{commentsInformation},#{time}); + + + + insert into t_comments_dynasty (comments_id,dynasty_id,user_id,comments_information,`time`) values (#{commentsId},#{dynastyId},#{userId},#{commentsInformation},#{time}); + + + insert into t_reply_poem (comments_id,replyer_id) values (#{replyerId},#{commentsId}); + + + insert into t_reply_dynasty (comments_id,replyer_id) values (#{replyerId},#{commentsId}); + + + + + + + + + delete from t_comments_poem where comments_id=#{commentsId} ; + + + delete from t_comments_dynasty where comments_id=#{commentsId}; + + + delete from t_reply_dynasty where comments_id=#{commentsId} or replyer_id=#{commentsId}; + + + delete from t_reply_poem where comments_id=#{commentsId} or replyer_id=#{commentsId}; + + + delete from t_reply_poem + where comments_id + in ( + select comments_id from t_comments_poem + where poem_id=#{poemId} + ) + + + delete from t_reply_dynasty + where comments_id + in ( + select comments_id from t_comments_dynasty + where dynasty_id=#{dynastyId} + ) + + + delete from t_comments_poem where poem_id=#{poemId} + + + delete from t_comments_dynasty where dynasty_id=#{dynastyId} + + + \ No newline at end of file diff --git a/poetry-consumer-comments/target/maven-archiver/pom.properties b/poetry-consumer-comments/target/maven-archiver/pom.properties new file mode 100644 index 0000000..28b231e --- /dev/null +++ b/poetry-consumer-comments/target/maven-archiver/pom.properties @@ -0,0 +1,5 @@ +#Generated by Maven +#Sun Apr 03 20:05:10 CST 2022 +version=1.0-SNAPSHOT +groupId=com.jacklei.poetry +artifactId=poetry-consumer-comments diff --git a/poetry-consumer-comments/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/poetry-consumer-comments/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..255d126 --- /dev/null +++ b/poetry-consumer-comments/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,9 @@ +com\jacklei\poetry\config\MyBatisConfig.class +com\jacklei\poetry\service\CommentsService.class +com\jacklei\poetry\config\MyMvcConfig.class +com\jacklei\poetry\mapper\CommentsDao.class +com\jacklei\poetry\service\Impl\CommentsServiceImpl.class +com\jacklei\poetry\config\LoginHandlerInterceptor.class +com\jacklei\poetry\controller\CommentsController.class +com\jacklei\poetry\util\JWTTokenUtil.class +com\jacklei\poetry\ConsumerCommentsMain.class diff --git a/poetry-consumer-comments/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/poetry-consumer-comments/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..f0dc3e7 --- /dev/null +++ b/poetry-consumer-comments/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,9 @@ +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-comments\src\main\java\com\jacklei\poetry\util\JWTTokenUtil.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-comments\src\main\java\com\jacklei\poetry\config\MyMvcConfig.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-comments\src\main\java\com\jacklei\poetry\config\LoginHandlerInterceptor.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-comments\src\main\java\com\jacklei\poetry\mapper\CommentsDao.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-comments\src\main\java\com\jacklei\poetry\controller\CommentsController.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-comments\src\main\java\com\jacklei\poetry\service\CommentsService.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-comments\src\main\java\com\jacklei\poetry\service\Impl\CommentsServiceImpl.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-comments\src\main\java\com\jacklei\poetry\config\MyBatisConfig.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-comments\src\main\java\com\jacklei\poetry\ConsumerCommentsMain.java diff --git a/poetry-consumer-comments/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/poetry-consumer-comments/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/poetry-consumer-comments/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/poetry-consumer-comments/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/poetry-consumer-comments/target/poetry-consumer-comments-1.0-SNAPSHOT.jar b/poetry-consumer-comments/target/poetry-consumer-comments-1.0-SNAPSHOT.jar new file mode 100644 index 0000000..ac77fbc Binary files /dev/null and b/poetry-consumer-comments/target/poetry-consumer-comments-1.0-SNAPSHOT.jar differ diff --git a/poetry-consumer-comments/target/poetry-consumer-comments-1.0-SNAPSHOT.jar.original b/poetry-consumer-comments/target/poetry-consumer-comments-1.0-SNAPSHOT.jar.original new file mode 100644 index 0000000..69322de Binary files /dev/null and b/poetry-consumer-comments/target/poetry-consumer-comments-1.0-SNAPSHOT.jar.original differ diff --git a/poetry-consumer-creation/poetry-consumer-creation.iml b/poetry-consumer-creation/poetry-consumer-creation.iml new file mode 100644 index 0000000..fbee4bb --- /dev/null +++ b/poetry-consumer-creation/poetry-consumer-creation.iml @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/poetry-consumer-creation/pom.xml b/poetry-consumer-creation/pom.xml new file mode 100644 index 0000000..65efc9b --- /dev/null +++ b/poetry-consumer-creation/pom.xml @@ -0,0 +1,130 @@ + + + + PoetryOfTheFourSeasons + com.jacklei.poetry + 1.0-SNAPSHOT + + 4.0.0 + + poetry-consumer-creation + + + + + com.auth0 + java-jwt + 3.8.2 + + + + com.jacklei.poetry + poetry-api-commons + 1.0-SNAPSHOT + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + 2.2.7.RELEASE + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + 2.2.7.RELEASE + + + org.springframework.cloud + spring-cloud-starter-netflix-ribbon + + + + + org.springframework.cloud + spring-cloud-loadbalancer + + + com.alibaba.csp + sentinel-datasource-nacos + + + + + com.alibaba.nacos + nacos-client + 1.4.2 + + + + + io.seata + seata-spring-boot-starter + 1.3.0 + + + + + + org.springframework.cloud + spring-cloud-starter-openfeign + 2.2.1.RELEASE + + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + + org.springframework.boot + spring-boot-starter-test + test + + + org.projectlombok + lombok + true + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.8 + 1.8 + + + + org.springframework.boot + spring-boot-maven-plugin + 2.2.2.RELEASE + + + com.jacklei.poetry.ConsumerCreationMain + + + + + repackage + + + + + + + + \ No newline at end of file diff --git a/poetry-consumer-creation/src/main/java/com/jacklei/poetry/ConsumerCreationMain.java b/poetry-consumer-creation/src/main/java/com/jacklei/poetry/ConsumerCreationMain.java new file mode 100644 index 0000000..3f7695a --- /dev/null +++ b/poetry-consumer-creation/src/main/java/com/jacklei/poetry/ConsumerCreationMain.java @@ -0,0 +1,16 @@ +package com.jacklei.poetry; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.cloud.openfeign.EnableFeignClients; + +@SpringBootApplication +@EnableFeignClients +@EnableDiscoveryClient +public class ConsumerCreationMain { + + public static void main(String[] args) { + SpringApplication.run(ConsumerCreationMain.class,args); + } +} diff --git a/poetry-consumer-creation/src/main/java/com/jacklei/poetry/config/LoginHandlerInterceptor.java b/poetry-consumer-creation/src/main/java/com/jacklei/poetry/config/LoginHandlerInterceptor.java new file mode 100644 index 0000000..7e91a15 --- /dev/null +++ b/poetry-consumer-creation/src/main/java/com/jacklei/poetry/config/LoginHandlerInterceptor.java @@ -0,0 +1,56 @@ +package com.jacklei.poetry.config; + +import com.jacklei.poetry.util.JWTTokenUtil; +import org.springframework.web.servlet.HandlerInterceptor; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +public class LoginHandlerInterceptor implements HandlerInterceptor { + + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + String token = request.getHeader("token"); + System.err.println(token); + if(token==null||token.isEmpty()){ + //没有 token + request.setAttribute("msg","没有权限,请重新登录!"); + request.getRequestDispatcher("/do/login/token").forward(request,response); + return false; + } + else if(JWTTokenUtil.verify(token)){return true;}//正常token + else{ + request.setAttribute("msg","登录时间过长,请重新登录!"); + request.getRequestDispatcher("/do/login/token").forward(request,response); + return false; + } + /* Object LoginUser = request.getSession().getAttribute("user"); + if(LoginUser==null){ + request.setAttribute("msg","没有权限,请重新登录!"); + request.getRequestDispatcher("/consumer/login").forward(request,response); + + return false; + }else*/ + /*response.setHeader("Access-Control-Allow-Origin", "*"); + response.setHeader("Access-Control-Allow-Headers", "X-Requested-With"); + response.setHeader("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS"); + response.setHeader("X-Powered-By","3.2.1"); + response.setHeader("Access-Control-Allow-Credentials","true"); + response.setHeader("Content-Type", "application/json;charset=utf-8"); +*/ + + + + } + + @Override + public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { + + } + + @Override + public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { + + } +} diff --git a/poetry-consumer-creation/src/main/java/com/jacklei/poetry/config/MyMvcConfig.java b/poetry-consumer-creation/src/main/java/com/jacklei/poetry/config/MyMvcConfig.java new file mode 100644 index 0000000..2046f56 --- /dev/null +++ b/poetry-consumer-creation/src/main/java/com/jacklei/poetry/config/MyMvcConfig.java @@ -0,0 +1,16 @@ +package com.jacklei.poetry.config; + +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration +public class MyMvcConfig implements WebMvcConfigurer { + + @Override + public void addInterceptors(InterceptorRegistry registry) { + registry.addInterceptor(new LoginHandlerInterceptor()).addPathPatterns("/**"). + excludePathPatterns("/**/do/**","/do/**"); + //registry.addInterceptor(new LoginHandlerInterceptor()); + } +} diff --git a/poetry-consumer-creation/src/main/java/com/jacklei/poetry/controller/CreationController.java b/poetry-consumer-creation/src/main/java/com/jacklei/poetry/controller/CreationController.java new file mode 100644 index 0000000..a8b6224 --- /dev/null +++ b/poetry-consumer-creation/src/main/java/com/jacklei/poetry/controller/CreationController.java @@ -0,0 +1,158 @@ +package com.jacklei.poetry.controller; + +import com.jacklei.poetry.entities.CommonResult; +import com.jacklei.poetry.entities.Dynasty; +import com.jacklei.poetry.entities.Poem; +import com.jacklei.poetry.service.CreationService; +import com.jacklei.poetry.util.TimeUtil; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; + +@RestController +@CrossOrigin +@Slf4j +public class CreationController { + + @Autowired + private CreationService creationService; + + //给前端通知 Token 异常 + @GetMapping("/do/login/token") + public CommonResult doLoginToken ( HttpServletRequest request ){ + Object msg = request.getAttribute("msg"); + return new CommonResult(201,"token异常",msg); + } + + //创建词 + @GetMapping("/consumer/creation/poem") + public CommonResult CreationPoem( + @RequestParam("poemName") String poemName, + @RequestParam("poemUser") String poemUser, + @RequestParam("poemInformation") String poemInformation, + @RequestParam("explain") String explain){ + Poem poem = new Poem(null, poemName, null, poemUser, poemInformation, 0l, 0l, explain, TimeUtil.getTime()); + log.info("进入添加词的后台中: poem"+poem); + CommonResult result=creationService.CreationPoem(poem); + return result; + } + //创建诗 + @GetMapping("/consumer/creation/dynasty") + public CommonResult CreationDynasty( + @RequestParam("dynastyName") String dynastyName, + @RequestParam("dynastyUser") String dynastyUser, + @RequestParam("dynastyInformation") String dynastyInformation, + @RequestParam("explain") String explain){ + Dynasty dynasty = new Dynasty(null, dynastyName, null, dynastyUser, dynastyInformation, 0l, 0l, explain, TimeUtil.getTime()); + log.info("进入添加诗的后台中: dynasty"+dynasty); + CommonResult result=creationService.CreationDynasty(dynasty); + return result; + } + //修改词 + @GetMapping("/consumer/update/poem") + public CommonResult UpdatePoem(@RequestParam("poemId") Long poemId , + @RequestParam("poemName") String poemName, + @RequestParam("poemUser") String poemUser, + @RequestParam("poemInformation") String poemInformation, + @RequestParam("explain") String explain){ + Poem poem = new Poem(poemId, poemName, null, poemUser, poemInformation, 0l, 0l, explain, TimeUtil.getTime()); + log.info("进入修改词的后台中: poem"+poem); + CommonResult result=creationService.UpdatePoem(poem); + return result; + } + //修改诗 + @GetMapping("/consumer/update/dynasty") + public CommonResult UpdateDynasty(@RequestParam("dynastyId") Long dynastyId , + @RequestParam("dynastyName") String dynastyName, + @RequestParam("dynastyUser") String dynastyUser, + @RequestParam("dynastyInformation") String dynastyInformation, + @RequestParam("explain") String explain){ + Dynasty dynasty = new Dynasty(dynastyId, dynastyName, null, dynastyUser, dynastyInformation, 0l, 0l, explain, TimeUtil.getTime()); + + log.info("进入修改诗的后台中: dynasty"+dynasty); + CommonResult result=creationService.UpdateDynasty(dynasty); + return result; + } + //查找诗ByUserId + @GetMapping("/consumer/do/fine/dynasty/userId/{userId}") + public CommonResult fineDynastyByUserId(@PathVariable("userId") Long userId){ + log.info("进入查找诗ByUserId的后台中: userId"+userId); + return creationService.fineDynastyByUserId(userId); + } + //查找诗ByDynastyId + @GetMapping("/consumer/do/fine/dynasty/dynastyId/{dynastyId}") + public CommonResult fineDynastyByDynastyId(@PathVariable("dynastyId") Long dynastyId){ + log.info("进入查找诗ByDynastyId的后台中: dynastyId"+dynastyId); + return creationService.fineDynastyByDynastyId(dynastyId); + } + //查找诗ByDynastyName + @GetMapping("/consumer/do/fine/dynasty/dynastyName/{dynastyName}") + public CommonResult fineDynastyByDynastyName(@PathVariable("dynastyName") String dynastyName){ + log.info("进入查找诗ByDynastyName的后台中: dynastyName"+dynastyName); + return creationService.fineDynastyByDynastyName(dynastyName); + } + //查找词ByUserId + @GetMapping("/consumer/do/fine/poem/userId/{userId}") + public CommonResult finePoemByUserId(@PathVariable("userId") Long userId){ + log.info("进入查找词ByUserId的后台中: dynasty"+userId); + return creationService.finePoemByUserId(userId); + } + //查找词ByUserName + @GetMapping("/consumer/do/fine/poem/username/{username}") + public CommonResult finePoemByUserName(@PathVariable("username") String username){ + log.info("进入查找词ByUserId的后台中: username"+username); + return creationService.finePoemByUserName(username); + } + //查找词ByPoemId + @GetMapping("/consumer/do/fine/poem/poemId/{poemId}") + public CommonResult fineDynastyByPoemId(@PathVariable("poemId") Long poemId) { + log.info("进入查找词ByPoemId的后台中: poemId" + poemId); + return creationService.fineDynastyByPoemId(poemId); + } + //查找词ByPoemName + @GetMapping("/consumer/do/fine/poem/poemName/{poemName}") + public CommonResult fineDynastyByPoemName (@PathVariable("poemName") String poemName){ + log.info("进入查找词ByPoemName的后台中: poemName" + poemName); + return creationService.fineDynastyByPoemName(poemName); + } + //查找诗ByUserName + @GetMapping("/consumer/do/fine/dynasty/username/{username}") + public CommonResult fineDynastyByUserName(@PathVariable("username") String username){ + log.info("进入查找诗ByUserName的后台中: username"+username); + return creationService.fineDynastyByUserName(username); + } + //删除诗 + @GetMapping("/consumer/delete/poemId/{poemId}") + public CommonResult DeletePoem (@PathVariable("poemId") Long poemId){ + log.info("进入删除词的后台中: poemId" + poemId); + + return creationService.DeletePoem(poemId); + } + //删除词 + @GetMapping("/consumer/delete/dynastyId/{dynastyId}") + public CommonResult DeleteDynasty (@PathVariable("dynastyId") Long dynastyId){ + log.info("进入修改诗的后台中: dynastyId" + dynastyId); + return creationService.DeleteDynasty(dynastyId); + } + /** + * 转移到 category服务中 + * + * + //通过类型查找诗 + @GetMapping("/consumer/do/fine/dynasty/type/{type}") + public CommonResult fineDynastyType (@PathVariable("type") Integer type){ + log.info("进入通过类型查找诗的后台中: type" + type); + return creationService.fineDynastyType(type); + } + //通过类型查找词 + @GetMapping("/consumer/do/fine/poem/type/{type}") + public CommonResult finePoemType (@PathVariable("type") Integer type){ + log.info("进入通过类型查找词的后台中: type" + type); + return creationService.finePoemType(type); + } + */ +} + + diff --git a/poetry-consumer-creation/src/main/java/com/jacklei/poetry/service/CategoryService.java b/poetry-consumer-creation/src/main/java/com/jacklei/poetry/service/CategoryService.java new file mode 100644 index 0000000..3117a86 --- /dev/null +++ b/poetry-consumer-creation/src/main/java/com/jacklei/poetry/service/CategoryService.java @@ -0,0 +1,24 @@ +package com.jacklei.poetry.service; + +import com.jacklei.poetry.entities.CommonResult; + +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestParam; + +@FeignClient(value = "poetry-consumer-category" ,url = "http://101.42.224.48:88") +public interface CategoryService { + @GetMapping("/consumer/add/poem/type") + CommonResult AddPoemType(@RequestParam("poemId") Long poemId, @RequestParam("type") Integer type); + @GetMapping("/consumer/add/dynasty/type") + CommonResult AddDynastyType(@RequestParam("dynastyId") Long dynastyId, @RequestParam("type") Integer type); + @GetMapping("/consumer/do/delete/PoemType/{poemId}") + CommonResult DeleteDoPoemType(@PathVariable("poemId") Long poemId); + @GetMapping("/consumer/do/delete/DynastyType/{dynastyId}") + CommonResult DeleteDoDynastyType(@PathVariable("dynastyId") Long dynastyId); + @GetMapping("/consumer/public/fine/dynasty/type/{type}") + CommonResult fineDynastyType(@PathVariable("type") Integer type); + @GetMapping("/consumer/public/fine/poem/type/{type}") + CommonResult finePoemType(@PathVariable("type") Integer type); +} diff --git a/poetry-consumer-creation/src/main/java/com/jacklei/poetry/service/CollectionService.java b/poetry-consumer-creation/src/main/java/com/jacklei/poetry/service/CollectionService.java new file mode 100644 index 0000000..73b1bf9 --- /dev/null +++ b/poetry-consumer-creation/src/main/java/com/jacklei/poetry/service/CollectionService.java @@ -0,0 +1,15 @@ +package com.jacklei.poetry.service; + +import com.jacklei.poetry.entities.CommonResult; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; + +@FeignClient(value = "poetry-consumer-collection",url = "http://101.42.224.48:84") +public interface CollectionService { + + @GetMapping("/consumer/do/delete/poem/collection/{poemId}") + CommonResult DeleteDoPoemCollection(@PathVariable("poemId") Long poemId); + @GetMapping("/consumer/do/delete/dynasty/collection/{dynastyId}") + CommonResult DeleteDoDynastyCollection(@PathVariable("dynastyId") Long dynastyId); +} diff --git a/poetry-consumer-creation/src/main/java/com/jacklei/poetry/service/CommentsService.java b/poetry-consumer-creation/src/main/java/com/jacklei/poetry/service/CommentsService.java new file mode 100644 index 0000000..03f0a89 --- /dev/null +++ b/poetry-consumer-creation/src/main/java/com/jacklei/poetry/service/CommentsService.java @@ -0,0 +1,20 @@ +package com.jacklei.poetry.service; +import com.jacklei.poetry.entities.CommonResult; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; + +@FeignClient(value = "poetry-consumer-comments",url = "http://101.42.224.48:86") +public interface CommentsService { + + //删除谋受词的所有评论与回复 ,create服务调用,不对外使用。 + //删除词的评论 + @GetMapping("/consumer/do/user/delete/comments/poem/{poemId}") + CommonResult UserDoDeleteCommentsPoem(@PathVariable("poemId") Long poemId); + + + //删除谋受诗的所有评论与回复 ,create服务调用,不对外使用。 + //删除诗的评论 + @GetMapping("/consumer/do/user/delete/comments/dynasty/{dynastyId}") + CommonResult UserDoDeleteCommentsDynasty(@PathVariable("dynastyId") Long dynastyId) ; +} diff --git a/poetry-consumer-creation/src/main/java/com/jacklei/poetry/service/CreationService.java b/poetry-consumer-creation/src/main/java/com/jacklei/poetry/service/CreationService.java new file mode 100644 index 0000000..5db8801 --- /dev/null +++ b/poetry-consumer-creation/src/main/java/com/jacklei/poetry/service/CreationService.java @@ -0,0 +1,43 @@ +package com.jacklei.poetry.service; + +import com.jacklei.poetry.entities.CommonResult; +import com.jacklei.poetry.entities.Dynasty; +import com.jacklei.poetry.entities.Poem; + +import java.util.List; + +public interface CreationService { + + CommonResult CreationPoem( Poem poem); + + CommonResult CreationDynasty(Dynasty dynasty); + + CommonResult UpdatePoem(Poem poem); + + CommonResult UpdateDynasty(Dynasty dynasty); + + CommonResult fineDynastyByUserId(Long userId); + + CommonResult fineDynastyByDynastyId(Long dynastyId); + + CommonResult fineDynastyByDynastyName(String dynastyName); + + CommonResult finePoemByUserId(Long userId); + + CommonResult fineDynastyByPoemId(Long poemId); + + CommonResult fineDynastyByPoemName(String poemName); + + CommonResult finePoemByUserName(String username); + + CommonResult fineDynastyByUserName(String username); + + CommonResult DeletePoem(Long poemId); + + + CommonResult DeleteDynasty(Long dynastyId); + + CommonResult fineDynastyType(Integer type); + + CommonResult finePoemType(Integer type); +} diff --git a/poetry-consumer-creation/src/main/java/com/jacklei/poetry/service/DynastyService.java b/poetry-consumer-creation/src/main/java/com/jacklei/poetry/service/DynastyService.java new file mode 100644 index 0000000..be90443 --- /dev/null +++ b/poetry-consumer-creation/src/main/java/com/jacklei/poetry/service/DynastyService.java @@ -0,0 +1,28 @@ +package com.jacklei.poetry.service; + +import com.jacklei.poetry.entities.CommonResult; +import com.jacklei.poetry.entities.Dynasty; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import sun.rmi.runtime.Log; + +@FeignClient(value = "poetry-provider-dynasty") +public interface DynastyService { + @PostMapping("/provider/creation/dynasty") + CommonResult CreationDynasty(@RequestBody(required = false) Dynasty dynasty); + @PostMapping("/provider/update/dynasty") + CommonResult UpdateDynasty(@RequestBody(required = false) Dynasty dynasty); + @GetMapping("/provider/fine/dynasty/userId/{userId}") + CommonResult fineDynastyByUserId(@PathVariable("userId") Long userId); + @GetMapping("/provider/fine/dynasty/dynastyId/{dynastyId}") + CommonResult fineDynastyByDynastyId(@PathVariable("dynastyId") Long dynastyId); + @GetMapping("/provider/fine/dynasty/dynastyName/{dynastyName}") + CommonResult fineDynastyByDynastyName(@PathVariable("dynastyName") String dynastyName); + @GetMapping("/provider/fine/dynasty/username/{username}") + CommonResult fineDynastyByUserName(@PathVariable("username") String username); + @GetMapping("/provider/delete/dynasty/dynastyId/{dynastyId}") + CommonResult DeleteDynasty(@PathVariable("dynastyId") Long dynastyId); +} diff --git a/poetry-consumer-creation/src/main/java/com/jacklei/poetry/service/GiveLikeService.java b/poetry-consumer-creation/src/main/java/com/jacklei/poetry/service/GiveLikeService.java new file mode 100644 index 0000000..ba49498 --- /dev/null +++ b/poetry-consumer-creation/src/main/java/com/jacklei/poetry/service/GiveLikeService.java @@ -0,0 +1,17 @@ +package com.jacklei.poetry.service; + +import com.jacklei.poetry.entities.CommonResult; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; + +@FeignClient(value = "poetry-consumer-givelike",url = "http://101.42.224.48:85") +public interface GiveLikeService { + + @GetMapping("/consumer/do/delete/poem/givelike/{poemId}") + CommonResult DeleteDoPoemGive(@PathVariable("poemId") Long poemId); + + @GetMapping("/consumer/do/delete/dynasty/givelike/{dynastyId}") + CommonResult DeleteDoDynastyGive(@PathVariable("dynastyId") Long dynastyId); + +} diff --git a/poetry-consumer-creation/src/main/java/com/jacklei/poetry/service/Impl/CreationServiceImpl.java b/poetry-consumer-creation/src/main/java/com/jacklei/poetry/service/Impl/CreationServiceImpl.java new file mode 100644 index 0000000..84aab39 --- /dev/null +++ b/poetry-consumer-creation/src/main/java/com/jacklei/poetry/service/Impl/CreationServiceImpl.java @@ -0,0 +1,161 @@ +package com.jacklei.poetry.service.Impl; + +import com.jacklei.poetry.entities.CommonResult; +import com.jacklei.poetry.entities.Dynasty; +import com.jacklei.poetry.entities.Poem; +import com.jacklei.poetry.service.*; +import io.seata.spring.annotation.GlobalTransactional; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +@Service +@Slf4j +public class CreationServiceImpl implements CreationService { + + @Resource + private GiveLikeService giveLikeService; + + @Resource + private CollectionService collectionService; + + + @Resource + private CategoryService categoryService; + + @Resource + private PoemService poemService; + + @Resource + private DynastyService dynastyService; + + @Resource + private CommentsService commentsService; + + @Override + @GlobalTransactional(rollbackFor = Exception.class) + public CommonResult CreationPoem(Poem poem ) { + + log.info("开始增词!!!!!"); + return poemService.CreationPoem(poem); + } + + + @Override + @GlobalTransactional(rollbackFor = Exception.class) + public CommonResult CreationDynasty(Dynasty dynasty) { + log.info("开始增诗!!!!!"); + return dynastyService.CreationDynasty(dynasty); + /*log.info("结束增诗!!!!!"); + log.info("开始增诗类型!!!!!"); + categoryService.AddDynastyType(dynasty.getDynastyId(),type); + log.info("结束增诗类型!!!!!"); + return new CommonResult(null);*/ + } + + @Override + @GlobalTransactional(rollbackFor = Exception.class) + public CommonResult UpdatePoem(Poem poem) { + + return poemService.UpdatePoem(poem); + } + + @Override + @GlobalTransactional(rollbackFor = Exception.class) + public CommonResult UpdateDynasty(Dynasty dynasty) { + return dynastyService.UpdateDynasty(dynasty); + } + + @Override + public CommonResult fineDynastyByUserId(Long userId) { + return dynastyService.fineDynastyByUserId(userId); + } + + @Override + public CommonResult fineDynastyByDynastyId(Long dynastyId) { + return dynastyService.fineDynastyByDynastyId(dynastyId); + } + + @Override + public CommonResult fineDynastyByDynastyName(String dynastyName) { + return dynastyService.fineDynastyByDynastyName(dynastyName); + } + + @Override + public CommonResult finePoemByUserId(Long userId) { + return poemService.finePoemByUserId(userId); + } + + @Override + public CommonResult fineDynastyByPoemId(Long poemId) { + return poemService.fineDynastyByPoemId(poemId); + } + + @Override + public CommonResult fineDynastyByPoemName(String poemName) { + return poemService.fineDynastyByPoemName(poemName); + } + + @Override + public CommonResult finePoemByUserName(String username) { + return poemService.finePoemByUserName(username); + } + + @Override + public CommonResult fineDynastyByUserName(String username) { + return dynastyService.fineDynastyByUserName(username); + } + + @Override + @GlobalTransactional( rollbackFor=Exception.class) + public CommonResult DeletePoem(Long poemId) { + log.info("开始删除,词的四季类型"); + categoryService.DeleteDoPoemType(poemId); + log.info("结束删除,词的四季类型"); + log.info("开始删除,词的收藏"); + collectionService.DeleteDoPoemCollection(poemId); + log.info("结束删除,词的收藏"); + log.info("开始删除,词的点赞"); + giveLikeService.DeleteDoPoemGive(poemId); + log.info("结束删除,词的点赞"); + log.info("开始删除,词的评论"); + commentsService.UserDoDeleteCommentsPoem(poemId); + log.info("结束删除,词的评论"); + log.info("开始删除,词"); + poemService.DeletePoem(poemId); + log.info("结束删除,词"); + return new CommonResult(null); + } + + @Override + @GlobalTransactional(rollbackFor = Exception.class) + public CommonResult DeleteDynasty(Long dynastyId) { + log.info("开始删除,诗的四季类型"); + categoryService.DeleteDoDynastyType(dynastyId); + log.info("结束删除,诗的四季类型"); + log.info("开始删除,诗的收藏"); + collectionService.DeleteDoDynastyCollection(dynastyId); + log.info("结束删除,诗的收藏"); + log.info("开始删除,诗的点赞"); + giveLikeService.DeleteDoDynastyGive(dynastyId); + log.info("结束删除,诗的点赞"); + log.info("开始删除,诗的评论"); + commentsService.UserDoDeleteCommentsDynasty(dynastyId); + log.info("结束删除,诗的评论"); + log.info("开始删除,诗"); + dynastyService.DeleteDynasty(dynastyId); + log.info("结束删除,诗"); + return new CommonResult(null); + } + + @Override + public CommonResult fineDynastyType(Integer type) { + return categoryService.fineDynastyType(type); + } + + @Override + public CommonResult finePoemType(Integer type) { + return categoryService.finePoemType(type); + } +} diff --git a/poetry-consumer-creation/src/main/java/com/jacklei/poetry/service/PoemService.java b/poetry-consumer-creation/src/main/java/com/jacklei/poetry/service/PoemService.java new file mode 100644 index 0000000..22265b9 --- /dev/null +++ b/poetry-consumer-creation/src/main/java/com/jacklei/poetry/service/PoemService.java @@ -0,0 +1,25 @@ +package com.jacklei.poetry.service; + +import com.jacklei.poetry.entities.CommonResult; +import com.jacklei.poetry.entities.Poem; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.*; + +@FeignClient(value = "poetry-provider-poem") +public interface PoemService { + @PostMapping("/provider/creation/poem") + CommonResult CreationPoem( @RequestBody(required = false) Poem poem); + @PostMapping("/provider/update/poem") + CommonResult UpdatePoem(@RequestBody(required = false) Poem poem); + @GetMapping("/provider/fine/poem/userId/{userId}") + CommonResult finePoemByUserId(@PathVariable("userId") Long userId); + @GetMapping("/provider/fine/poem/poemId/{poemId}") + CommonResult fineDynastyByPoemId(@PathVariable("poemId") Long poemId); + @GetMapping("/provider/fine/poem/poemName/{poemName}") + CommonResult fineDynastyByPoemName(@PathVariable("poemName") String poemName); + @GetMapping("/provider/fine/poem/username/{username}") + CommonResult finePoemByUserName(@PathVariable("username") String username); + + @GetMapping("/provider/delete/poem/poemId/{poemId}") + CommonResult DeletePoem(@PathVariable("poemId") Long poemId); +} diff --git a/poetry-consumer-creation/src/main/java/com/jacklei/poetry/util/JWTTokenUtil.java b/poetry-consumer-creation/src/main/java/com/jacklei/poetry/util/JWTTokenUtil.java new file mode 100644 index 0000000..42f20d9 --- /dev/null +++ b/poetry-consumer-creation/src/main/java/com/jacklei/poetry/util/JWTTokenUtil.java @@ -0,0 +1,58 @@ +package com.jacklei.poetry.util; + + +import com.auth0.jwt.JWT; +import com.auth0.jwt.JWTVerifier; +import com.auth0.jwt.algorithms.Algorithm; +import com.auth0.jwt.exceptions.JWTCreationException; +import com.auth0.jwt.exceptions.JWTVerificationException; +import com.auth0.jwt.interfaces.DecodedJWT; + +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +public class JWTTokenUtil { + //设置过期时间 + private static final long EXPIRE_DATE = 30*60*100000; + //token密钥 + private static final String TOKEN_SECRET ="ZCfasfhuaUUHufguGuwu2020BQWE"; + + public static String token (String username ,String password){ + String token = ""; + + try { + //过期时间 + Date date =new Date(System.currentTimeMillis()+EXPIRE_DATE); + //密钥及加密算法 + Algorithm algorithm = Algorithm.HMAC256(TOKEN_SECRET); + //设置头部信息 + Map header = new HashMap<>(); + header.put("typ","JWT"); + header.put("alg","Hs256"); + //携带username,password信息,生成签名 + token = JWT.create(). + withHeader(header). + withClaim("username",username). + withExpiresAt(date).sign(algorithm); + } catch (JWTCreationException e) { + e.printStackTrace(); + return null; + } + return token; + } + + public static boolean verify(String token){ + + try { + Algorithm algorithm =Algorithm.HMAC256(TOKEN_SECRET); + JWTVerifier verifier = JWT.require(algorithm).build(); + DecodedJWT jwt = verifier.verify(token); + return true; + } catch (JWTVerificationException e) { + e.printStackTrace(); + } + return false; + } + +} diff --git a/poetry-consumer-creation/src/main/resources/application.yaml b/poetry-consumer-creation/src/main/resources/application.yaml new file mode 100644 index 0000000..1d25dc7 --- /dev/null +++ b/poetry-consumer-creation/src/main/resources/application.yaml @@ -0,0 +1,107 @@ + +server: + port: 82 +spring: + main: + allow-circular-references: true +# allow-bean-definition-overriding: true + application: + name: poetry-consunmer-creation + cloud: + sentinel: + transport: + port: 8719 + dashboard: 127.0.0.1:8000 + datasource: + ds1: + nacos: + server-addr: 127.0.0.1:8848 + dataId: cloudalibaba-sentinel-login + groupId: SENTINEL_GROUP + data_type: json + rule_type: flow + namespace: 45d907a1-7646-40b0-8502-b8610335271f + nacos: + discovery: + server-addr: 127.0.0.1:8848 + + +feign: + sentinel: + enabled: true + client: + config: + default: + connectTimeout: 60000 + readTimeout: 60000 + + + + +#mybatis: +# type-aliases-package: com.jacklei.poetry.entities +# mapper-locations: classpath:mapper/*.xml + + + +seata: + registry: + application: seata-server + type: nacos + nacos: + username: nacos + password: nacos + server-addr: 127.0.0.1:8848 + config: + type: nacos + nacos: + username: nacos + password: nacos + server-addr: 127.0.0.1:8848 + enable-auto-data-source-proxy: false + service: + vgroup-mapping: + my_test_tx_group: default + tx-service-group: my_test_tx_group + + + + + + + + +#server: +# port: 82 +# +#spring: +# main: +# allow-circular-references: true +# application: +# name: poetry-consumer-creation +# cloud: +# sentinel: +# transport: +# port: 8719 +# dashboard: 127.0.0.1:8080 +# datasource: +# ds1: +# nacos: +# server-addr: 127.0.0.1:8848 +# dataId: cloudalibaba-sentinel-login +# groupId: SENTINEL_GROUP +# data-type: json +# rule-type: flow +# namespace: 45d907a1-7646-40b0-8502-b8610335271f +# nacos: +# discovery: +# server-addr: 127.0.0.1:8848 +# +#feign: +# sentinel: +# enabled: true +# client: +# config: +# default: +# connectTimeout: 60000 +# readTimeout: 60000 diff --git a/poetry-consumer-creation/target/classes/application.yaml b/poetry-consumer-creation/target/classes/application.yaml new file mode 100644 index 0000000..1d25dc7 --- /dev/null +++ b/poetry-consumer-creation/target/classes/application.yaml @@ -0,0 +1,107 @@ + +server: + port: 82 +spring: + main: + allow-circular-references: true +# allow-bean-definition-overriding: true + application: + name: poetry-consunmer-creation + cloud: + sentinel: + transport: + port: 8719 + dashboard: 127.0.0.1:8000 + datasource: + ds1: + nacos: + server-addr: 127.0.0.1:8848 + dataId: cloudalibaba-sentinel-login + groupId: SENTINEL_GROUP + data_type: json + rule_type: flow + namespace: 45d907a1-7646-40b0-8502-b8610335271f + nacos: + discovery: + server-addr: 127.0.0.1:8848 + + +feign: + sentinel: + enabled: true + client: + config: + default: + connectTimeout: 60000 + readTimeout: 60000 + + + + +#mybatis: +# type-aliases-package: com.jacklei.poetry.entities +# mapper-locations: classpath:mapper/*.xml + + + +seata: + registry: + application: seata-server + type: nacos + nacos: + username: nacos + password: nacos + server-addr: 127.0.0.1:8848 + config: + type: nacos + nacos: + username: nacos + password: nacos + server-addr: 127.0.0.1:8848 + enable-auto-data-source-proxy: false + service: + vgroup-mapping: + my_test_tx_group: default + tx-service-group: my_test_tx_group + + + + + + + + +#server: +# port: 82 +# +#spring: +# main: +# allow-circular-references: true +# application: +# name: poetry-consumer-creation +# cloud: +# sentinel: +# transport: +# port: 8719 +# dashboard: 127.0.0.1:8080 +# datasource: +# ds1: +# nacos: +# server-addr: 127.0.0.1:8848 +# dataId: cloudalibaba-sentinel-login +# groupId: SENTINEL_GROUP +# data-type: json +# rule-type: flow +# namespace: 45d907a1-7646-40b0-8502-b8610335271f +# nacos: +# discovery: +# server-addr: 127.0.0.1:8848 +# +#feign: +# sentinel: +# enabled: true +# client: +# config: +# default: +# connectTimeout: 60000 +# readTimeout: 60000 diff --git a/poetry-consumer-creation/target/classes/com/jacklei/poetry/ConsumerCreationMain.class b/poetry-consumer-creation/target/classes/com/jacklei/poetry/ConsumerCreationMain.class new file mode 100644 index 0000000..10055d2 Binary files /dev/null and b/poetry-consumer-creation/target/classes/com/jacklei/poetry/ConsumerCreationMain.class differ diff --git a/poetry-consumer-creation/target/classes/com/jacklei/poetry/config/LoginHandlerInterceptor.class b/poetry-consumer-creation/target/classes/com/jacklei/poetry/config/LoginHandlerInterceptor.class new file mode 100644 index 0000000..339280c Binary files /dev/null and b/poetry-consumer-creation/target/classes/com/jacklei/poetry/config/LoginHandlerInterceptor.class differ diff --git a/poetry-consumer-creation/target/classes/com/jacklei/poetry/config/MyMvcConfig.class b/poetry-consumer-creation/target/classes/com/jacklei/poetry/config/MyMvcConfig.class new file mode 100644 index 0000000..293ee7e Binary files /dev/null and b/poetry-consumer-creation/target/classes/com/jacklei/poetry/config/MyMvcConfig.class differ diff --git a/poetry-consumer-creation/target/classes/com/jacklei/poetry/controller/CreationController.class b/poetry-consumer-creation/target/classes/com/jacklei/poetry/controller/CreationController.class new file mode 100644 index 0000000..ca7e466 Binary files /dev/null and b/poetry-consumer-creation/target/classes/com/jacklei/poetry/controller/CreationController.class differ diff --git a/poetry-consumer-creation/target/classes/com/jacklei/poetry/service/CategoryService.class b/poetry-consumer-creation/target/classes/com/jacklei/poetry/service/CategoryService.class new file mode 100644 index 0000000..440b592 Binary files /dev/null and b/poetry-consumer-creation/target/classes/com/jacklei/poetry/service/CategoryService.class differ diff --git a/poetry-consumer-creation/target/classes/com/jacklei/poetry/service/CollectionService.class b/poetry-consumer-creation/target/classes/com/jacklei/poetry/service/CollectionService.class new file mode 100644 index 0000000..9a6d618 Binary files /dev/null and b/poetry-consumer-creation/target/classes/com/jacklei/poetry/service/CollectionService.class differ diff --git a/poetry-consumer-creation/target/classes/com/jacklei/poetry/service/CommentsService.class b/poetry-consumer-creation/target/classes/com/jacklei/poetry/service/CommentsService.class new file mode 100644 index 0000000..e32317f Binary files /dev/null and b/poetry-consumer-creation/target/classes/com/jacklei/poetry/service/CommentsService.class differ diff --git a/poetry-consumer-creation/target/classes/com/jacklei/poetry/service/CreationService.class b/poetry-consumer-creation/target/classes/com/jacklei/poetry/service/CreationService.class new file mode 100644 index 0000000..1146da2 Binary files /dev/null and b/poetry-consumer-creation/target/classes/com/jacklei/poetry/service/CreationService.class differ diff --git a/poetry-consumer-creation/target/classes/com/jacklei/poetry/service/DynastyService.class b/poetry-consumer-creation/target/classes/com/jacklei/poetry/service/DynastyService.class new file mode 100644 index 0000000..6dfc5b6 Binary files /dev/null and b/poetry-consumer-creation/target/classes/com/jacklei/poetry/service/DynastyService.class differ diff --git a/poetry-consumer-creation/target/classes/com/jacklei/poetry/service/GiveLikeService.class b/poetry-consumer-creation/target/classes/com/jacklei/poetry/service/GiveLikeService.class new file mode 100644 index 0000000..da1e5b3 Binary files /dev/null and b/poetry-consumer-creation/target/classes/com/jacklei/poetry/service/GiveLikeService.class differ diff --git a/poetry-consumer-creation/target/classes/com/jacklei/poetry/service/Impl/CreationServiceImpl.class b/poetry-consumer-creation/target/classes/com/jacklei/poetry/service/Impl/CreationServiceImpl.class new file mode 100644 index 0000000..1689abc Binary files /dev/null and b/poetry-consumer-creation/target/classes/com/jacklei/poetry/service/Impl/CreationServiceImpl.class differ diff --git a/poetry-consumer-creation/target/classes/com/jacklei/poetry/service/PoemService.class b/poetry-consumer-creation/target/classes/com/jacklei/poetry/service/PoemService.class new file mode 100644 index 0000000..b0f0829 Binary files /dev/null and b/poetry-consumer-creation/target/classes/com/jacklei/poetry/service/PoemService.class differ diff --git a/poetry-consumer-creation/target/classes/com/jacklei/poetry/util/JWTTokenUtil.class b/poetry-consumer-creation/target/classes/com/jacklei/poetry/util/JWTTokenUtil.class new file mode 100644 index 0000000..82b42c1 Binary files /dev/null and b/poetry-consumer-creation/target/classes/com/jacklei/poetry/util/JWTTokenUtil.class differ diff --git a/poetry-consumer-creation/target/maven-archiver/pom.properties b/poetry-consumer-creation/target/maven-archiver/pom.properties new file mode 100644 index 0000000..78a85dd --- /dev/null +++ b/poetry-consumer-creation/target/maven-archiver/pom.properties @@ -0,0 +1,5 @@ +#Generated by Maven +#Sun Apr 03 11:49:29 CST 2022 +version=1.0-SNAPSHOT +groupId=com.jacklei.poetry +artifactId=poetry-consumer-creation diff --git a/poetry-consumer-creation/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/poetry-consumer-creation/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..744327e --- /dev/null +++ b/poetry-consumer-creation/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,13 @@ +com\jacklei\poetry\service\CommentsService.class +com\jacklei\poetry\config\MyMvcConfig.class +com\jacklei\poetry\service\CollectionService.class +com\jacklei\poetry\service\CreationService.class +com\jacklei\poetry\service\DynastyService.class +com\jacklei\poetry\config\LoginHandlerInterceptor.class +com\jacklei\poetry\service\Impl\CreationServiceImpl.class +com\jacklei\poetry\util\JWTTokenUtil.class +com\jacklei\poetry\service\GiveLikeService.class +com\jacklei\poetry\ConsumerCreationMain.class +com\jacklei\poetry\service\PoemService.class +com\jacklei\poetry\service\CategoryService.class +com\jacklei\poetry\controller\CreationController.class diff --git a/poetry-consumer-creation/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/poetry-consumer-creation/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..8278ecd --- /dev/null +++ b/poetry-consumer-creation/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,13 @@ +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-creation\src\main\java\com\jacklei\poetry\service\CommentsService.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-creation\src\main\java\com\jacklei\poetry\service\CreationService.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-creation\src\main\java\com\jacklei\poetry\service\Impl\CreationServiceImpl.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-creation\src\main\java\com\jacklei\poetry\service\DynastyService.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-creation\src\main\java\com\jacklei\poetry\service\CategoryService.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-creation\src\main\java\com\jacklei\poetry\config\MyMvcConfig.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-creation\src\main\java\com\jacklei\poetry\util\JWTTokenUtil.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-creation\src\main\java\com\jacklei\poetry\service\CollectionService.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-creation\src\main\java\com\jacklei\poetry\controller\CreationController.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-creation\src\main\java\com\jacklei\poetry\ConsumerCreationMain.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-creation\src\main\java\com\jacklei\poetry\config\LoginHandlerInterceptor.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-creation\src\main\java\com\jacklei\poetry\service\GiveLikeService.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-creation\src\main\java\com\jacklei\poetry\service\PoemService.java diff --git a/poetry-consumer-creation/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/poetry-consumer-creation/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/poetry-consumer-creation/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/poetry-consumer-creation/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/poetry-consumer-creation/target/poetry-consumer-creation-1.0-SNAPSHOT.jar b/poetry-consumer-creation/target/poetry-consumer-creation-1.0-SNAPSHOT.jar new file mode 100644 index 0000000..cab6010 Binary files /dev/null and b/poetry-consumer-creation/target/poetry-consumer-creation-1.0-SNAPSHOT.jar differ diff --git a/poetry-consumer-creation/target/poetry-consumer-creation-1.0-SNAPSHOT.jar.original b/poetry-consumer-creation/target/poetry-consumer-creation-1.0-SNAPSHOT.jar.original new file mode 100644 index 0000000..c972647 Binary files /dev/null and b/poetry-consumer-creation/target/poetry-consumer-creation-1.0-SNAPSHOT.jar.original differ diff --git a/poetry-consumer-givelike/poetry-consumer-givelike.iml b/poetry-consumer-givelike/poetry-consumer-givelike.iml new file mode 100644 index 0000000..8292d8b --- /dev/null +++ b/poetry-consumer-givelike/poetry-consumer-givelike.iml @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/poetry-consumer-givelike/pom.xml b/poetry-consumer-givelike/pom.xml new file mode 100644 index 0000000..f00f75f --- /dev/null +++ b/poetry-consumer-givelike/pom.xml @@ -0,0 +1,144 @@ + + + + PoetryOfTheFourSeasons + com.jacklei.poetry + 1.0-SNAPSHOT + + 4.0.0 + + poetry-consumer-givelike + + + + com.auth0 + java-jwt + 3.8.2 + + + + com.jacklei.poetry + poetry-api-commons + 1.0-SNAPSHOT + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + 2.2.7.RELEASE + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + 2.2.7.RELEASE + + + org.springframework.cloud + spring-cloud-starter-netflix-ribbon + + + + + org.springframework.cloud + spring-cloud-loadbalancer + + + com.alibaba.csp + sentinel-datasource-nacos + + + + + com.alibaba.nacos + nacos-client + 1.4.2 + + + + + + + + + + + + + + + + + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + + mysql + mysql-connector-java + 8.0.27 + + + com.alibaba + druid-spring-boot-starter + 1.1.10 + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + 2.1.1 + + + org.springframework.boot + spring-boot-starter-test + test + + + org.projectlombok + lombok + true + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.8 + 1.8 + + + + org.springframework.boot + spring-boot-maven-plugin + 2.2.2.RELEASE + + + com.jacklei.poetry.ConsumerGiveLikeMain + + + + + repackage + + + + + + + + \ No newline at end of file diff --git a/poetry-consumer-givelike/src/main/java/com/jacklei/poetry/ConsumerGiveLikeMain.java b/poetry-consumer-givelike/src/main/java/com/jacklei/poetry/ConsumerGiveLikeMain.java new file mode 100644 index 0000000..2f57952 --- /dev/null +++ b/poetry-consumer-givelike/src/main/java/com/jacklei/poetry/ConsumerGiveLikeMain.java @@ -0,0 +1,16 @@ +package com.jacklei.poetry; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +//import org.springframework.cloud.openfeign.EnableFeignClients; + +@SpringBootApplication +//@EnableFeignClients +@EnableDiscoveryClient +public class ConsumerGiveLikeMain { + + public static void main(String[] args) { + SpringApplication.run(ConsumerGiveLikeMain.class,args); + } +} diff --git a/poetry-consumer-givelike/src/main/java/com/jacklei/poetry/config/LoginHandlerInterceptor.java b/poetry-consumer-givelike/src/main/java/com/jacklei/poetry/config/LoginHandlerInterceptor.java new file mode 100644 index 0000000..7e91a15 --- /dev/null +++ b/poetry-consumer-givelike/src/main/java/com/jacklei/poetry/config/LoginHandlerInterceptor.java @@ -0,0 +1,56 @@ +package com.jacklei.poetry.config; + +import com.jacklei.poetry.util.JWTTokenUtil; +import org.springframework.web.servlet.HandlerInterceptor; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +public class LoginHandlerInterceptor implements HandlerInterceptor { + + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + String token = request.getHeader("token"); + System.err.println(token); + if(token==null||token.isEmpty()){ + //没有 token + request.setAttribute("msg","没有权限,请重新登录!"); + request.getRequestDispatcher("/do/login/token").forward(request,response); + return false; + } + else if(JWTTokenUtil.verify(token)){return true;}//正常token + else{ + request.setAttribute("msg","登录时间过长,请重新登录!"); + request.getRequestDispatcher("/do/login/token").forward(request,response); + return false; + } + /* Object LoginUser = request.getSession().getAttribute("user"); + if(LoginUser==null){ + request.setAttribute("msg","没有权限,请重新登录!"); + request.getRequestDispatcher("/consumer/login").forward(request,response); + + return false; + }else*/ + /*response.setHeader("Access-Control-Allow-Origin", "*"); + response.setHeader("Access-Control-Allow-Headers", "X-Requested-With"); + response.setHeader("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS"); + response.setHeader("X-Powered-By","3.2.1"); + response.setHeader("Access-Control-Allow-Credentials","true"); + response.setHeader("Content-Type", "application/json;charset=utf-8"); +*/ + + + + } + + @Override + public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { + + } + + @Override + public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { + + } +} diff --git a/poetry-consumer-givelike/src/main/java/com/jacklei/poetry/config/MyBatisConfig.java b/poetry-consumer-givelike/src/main/java/com/jacklei/poetry/config/MyBatisConfig.java new file mode 100644 index 0000000..646089b --- /dev/null +++ b/poetry-consumer-givelike/src/main/java/com/jacklei/poetry/config/MyBatisConfig.java @@ -0,0 +1,9 @@ +package com.jacklei.poetry.config; + +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.context.annotation.Configuration; + +@Configuration +@MapperScan(basePackages = "com.jacklei.poetry.mapper") +public class MyBatisConfig { +} diff --git a/poetry-consumer-givelike/src/main/java/com/jacklei/poetry/config/MyMvcConfig.java b/poetry-consumer-givelike/src/main/java/com/jacklei/poetry/config/MyMvcConfig.java new file mode 100644 index 0000000..2046f56 --- /dev/null +++ b/poetry-consumer-givelike/src/main/java/com/jacklei/poetry/config/MyMvcConfig.java @@ -0,0 +1,16 @@ +package com.jacklei.poetry.config; + +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration +public class MyMvcConfig implements WebMvcConfigurer { + + @Override + public void addInterceptors(InterceptorRegistry registry) { + registry.addInterceptor(new LoginHandlerInterceptor()).addPathPatterns("/**"). + excludePathPatterns("/**/do/**","/do/**"); + //registry.addInterceptor(new LoginHandlerInterceptor()); + } +} diff --git a/poetry-consumer-givelike/src/main/java/com/jacklei/poetry/controller/GiveLikeController.java b/poetry-consumer-givelike/src/main/java/com/jacklei/poetry/controller/GiveLikeController.java new file mode 100644 index 0000000..951fd8a --- /dev/null +++ b/poetry-consumer-givelike/src/main/java/com/jacklei/poetry/controller/GiveLikeController.java @@ -0,0 +1,175 @@ +package com.jacklei.poetry.controller; + +import com.jacklei.poetry.entities.CommonResult; +import com.jacklei.poetry.service.GiveLikeService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletRequest; + +@RestController +@CrossOrigin +@Slf4j +public class GiveLikeController { + + @Autowired + private GiveLikeService giveLikeService; + + //给前端通知 Token 异常 + @GetMapping("/do/login/token") + public CommonResult doLoginToken ( HttpServletRequest request ){ + Object msg = request.getAttribute("msg"); + return new CommonResult(201,"token异常",msg); + } + + //词点赞 + @GetMapping("/consumer/poem/give/like/{userId}/{poemId}") + public CommonResult PoemGiveLike(@PathVariable("userId") Long userId, + @PathVariable("poemId") Long poemId){ + log.info("进入词点赞后台 userId:"+userId+",poemId:" +poemId); + CommonResult result = publicSeePoemGiveLike(userId, poemId); + if(result.getCode()==200)return new CommonResult(214,"此用户已经点赞!",null); + giveLikeService.PoemGiveLike(userId,poemId); + return new CommonResult(null); + } + + //诗点赞 + @GetMapping("/consumer/dynasty/give/like/{userId}/{dynastyId}") + public CommonResult DynastyGiveLike(@PathVariable("userId") Long userId, + @PathVariable("dynastyId") Long dynastyId){ + log.info("进入诗点赞后台 userId:"+userId+",dynastyId:" +dynastyId); + CommonResult result = publicSeeDynastyGiveLike(userId, dynastyId); + if(result.getCode()==200)return new CommonResult(214,"此用户已经点赞!",null); + giveLikeService.DynastyGiveLike(userId,dynastyId); + return new CommonResult(null); + } + + + /** + * 用户取消诗的点赞 + * @param userId 用户id + * @param dynastyId 诗的id + * @return + */ + @GetMapping("/consumer/dynasty/give/like/cancel/{userId}/{dynastyId}") + public CommonResult dynastyGiveLikeCancelByUserId(@PathVariable("userId") Long userId, + @PathVariable("dynastyId") Long dynastyId){ + log.info("进入取消诗点赞,userId:"+userId+" dynastyId:"+dynastyId); + return giveLikeService.dynastyGiveLikeCancelByUserId(userId,dynastyId); + } + + /** + * 用户取消词的点赞 + * @param userId 用户点赞 + * @param poemId 词的id + * @return + */ + @GetMapping("/consumer/poem/give/like/cancel/{userId}/{poemId}") + public CommonResult poemGiveLikeCancelByUserId(@PathVariable("userId") Long userId, + @PathVariable("poemId") Long poemId){ + log.info("进入取消词点赞,userId:"+userId+" poemId:"+poemId); + return giveLikeService.poemGiveLikeCancelByUserId(userId,poemId); + } + //取消词点赞 + @GetMapping("/consumer/poem/give/like/cancel/{giveLikeId}") + public CommonResult PoemGiveLikeCancel(@PathVariable("giveLikeId") Long giveLikeId){ + log.info("取消词点赞 giveLikeId:"+giveLikeId); + giveLikeService.PoemGiveLikeCancel(giveLikeId); + return new CommonResult(null); + } + + //取消诗点赞 + @GetMapping("/consumer/dynasty/give/like/cancel/{giveLikeId}") + public CommonResult DynastyGiveLikeCancel(@PathVariable("giveLikeId") Long giveLikeId){ + log.info("取消诗点赞 giveLikeId:"+giveLikeId); + giveLikeService.DynastyGiveLikeCancel(giveLikeId); + return new CommonResult(null); + } + //查看用户是否已经给诗点赞 + @GetMapping("/consumer/see/dynasty/give/like/{userId}/{dynastyId}") + public CommonResult publicSeeDynastyGiveLike(@PathVariable("userId")Long userId,@PathVariable("dynastyId") Long dynastyId){ + log.info("查看用户是否已经给诗点赞 userId:"+userId+",dynastyId:"+dynastyId); + return giveLikeService.publicSeeDynastyGiveLike(userId,dynastyId); + } + + //查看用户是否已经给词点赞 + + @GetMapping("/consumer/see/poem/give/like/{userId}/{poemId}") + public CommonResult publicSeePoemGiveLike(@PathVariable("userId")Long userId,@PathVariable("poemId") Long poemId){ + log.info("查看用户是否已经给词点赞 userId:"+userId+",poemId:"+poemId); + return giveLikeService.publicSeePoemGiveLike(userId,poemId); + } + + //查看词点赞 详细信息 + @GetMapping("/consumer/see/poem/give/like/{poemId}") + public CommonResult SeePoemGiveLike(@PathVariable("poemId") Long poemId){ + log.info("查看诗点赞 poemId:"+poemId); + return giveLikeService.SeePoemGiveLike(poemId); + } + + //查看诗点赞详细信息 + @GetMapping("/consumer/see/dynasty/give/like/{dynastyId}") + public CommonResult SeeDynastyGiveLike(@PathVariable("dynastyId") Long dynastyId){ + log.info("查看诗点赞 dynastyId:"+dynastyId); + return giveLikeService.SeeDynastyGiveLike(dynastyId); + } + //查看词点赞数 + @GetMapping("/consumer/do/see/poem/give/like/num/{poemId}") + public CommonResult SeePoemGiveLikeNum(@PathVariable("poemId") Long poemId){ + log.info("查看词点赞数 poemId:"+poemId); + return giveLikeService.SeePoemGiveLikeNum(poemId); + } + //查看诗点赞 + @GetMapping("/consumer/do/see/dynasty/give/like/num/{dynastyId}") + public CommonResult SeeDynastyGiveLikeNum(@PathVariable("dynastyId") Long dynastyId){ + log.info("查看诗点赞 dynastyId:"+dynastyId); + return giveLikeService.SeeDynastyGiveLikeNum(dynastyId); + } + + //删除点赞ByPoem + + @GetMapping("/consumer/delete/poem/givelike/{poemId}") + public CommonResult DeletePoemGive(@PathVariable("poemId") Long poemId) throws Exception { + log.info("删除点赞ByPoem poemId:"+poemId); + boolean result= giveLikeService.DeletePoemGive(poemId); + if(!result) return new CommonResult(400,"删除点赞ByPoem失败"); + + return new CommonResult(null); + } + + //create微服务使用 不对外使用 + @GetMapping("/consumer/do/delete/poem/givelike/{poemId}") + public CommonResult DeleteDoPoemGive(@PathVariable("poemId") Long poemId) throws Exception { + log.info("删除点赞ByPoem poemId:"+poemId); + boolean result= giveLikeService.DeletePoemGive(poemId); + if(!result) return new CommonResult(400,"删除点赞ByPoem失败"); + + return new CommonResult(null); + } + //删除点赞ByDynasty + @GetMapping("/consumer/delete/dynasty/givelike/{dynastyId}") + public CommonResult DeleteDynastyGive(@PathVariable("dynastyId") Long dynastyId) throws Exception { + log.info("删除点赞ByDynasty dynastyId:"+dynastyId); + + boolean result= giveLikeService.DeleteDynastyGive(dynastyId); + if(!result) return new CommonResult(400,"删除点赞ByPoem失败"); + + return new CommonResult(null); + + } + //create微服务使用 不对外使用 + @GetMapping("/consumer/do/delete/dynasty/givelike/{dynastyId}") + public CommonResult DeleteDoDynastyGive(@PathVariable("dynastyId") Long dynastyId) throws Exception { + log.info("删除点赞ByDynasty dynastyId:"+dynastyId); + + boolean result= giveLikeService.DeleteDynastyGive(dynastyId); + if(!result) return new CommonResult(400,"删除点赞ByPoem失败"); + + return new CommonResult(null); + + } +} diff --git a/poetry-consumer-givelike/src/main/java/com/jacklei/poetry/mapper/GiveLikeDao.java b/poetry-consumer-givelike/src/main/java/com/jacklei/poetry/mapper/GiveLikeDao.java new file mode 100644 index 0000000..e3bb801 --- /dev/null +++ b/poetry-consumer-givelike/src/main/java/com/jacklei/poetry/mapper/GiveLikeDao.java @@ -0,0 +1,41 @@ +package com.jacklei.poetry.mapper; + + +import com.jacklei.poetry.entities.GLDynasty; +import com.jacklei.poetry.entities.GLPoem; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface GiveLikeDao { + + void DeletePoemGive(@Param("poemId") Long poemId) ; + + void DeleteDynastyGive(@Param("dynastyId")Long dynastyId); + + List SeePoemGiveLike(@Param("poemId") Long poemId); + + List SeeDynastyGiveLike(@Param("dynastyId") Long dynastyId); + + void PoemGiveLike(@Param("userId") Long userId, @Param("poemId") Long poemId,@Param("time") String time); + + void DynastyGiveLike(@Param("userId") Long userId, @Param("dynastyId") Long dynastyId,@Param("time") String time); + + void PoemGiveLikeCancel(@Param("giveLikeId") Long giveLikeId); + + void DynastyGiveLikeCancel(@Param("giveLikeId")Long giveLikeId); + + int publicSeeDynastyGiveLike(@Param("userId") Long userId, @Param("dynastyId")Long dynastyId); + + int publicSeePoemGiveLike(@Param("userId")Long userId,@Param("poemId") Long poemId); + + void poemGiveLikeCancelByUserId(@Param("userId") Long userId,@Param("poemId") Long poemId); + + void dynastyGiveLikeCancelByUserId(@Param("userId") Long userId,@Param("dynastyId") Long dynastyId); + + void changeDynastyGiveLikeNum(@Param("size") int size,@Param("dynastyId") Long dynastyId); + + void changePoemGiveLikeNum(@Param("size") int size,@Param("poemId") Long poemId); +} diff --git a/poetry-consumer-givelike/src/main/java/com/jacklei/poetry/service/GiveLikeService.java b/poetry-consumer-givelike/src/main/java/com/jacklei/poetry/service/GiveLikeService.java new file mode 100644 index 0000000..566e76d --- /dev/null +++ b/poetry-consumer-givelike/src/main/java/com/jacklei/poetry/service/GiveLikeService.java @@ -0,0 +1,38 @@ +package com.jacklei.poetry.service; + +import com.jacklei.poetry.entities.CommonResult; + +public interface GiveLikeService { + + + boolean DeletePoemGive(Long poemId) throws Exception; + + boolean DeleteDynastyGive(Long dynastyId) throws Exception; + + CommonResult SeePoemGiveLike(Long poemId); + + CommonResult SeeDynastyGiveLike(Long dynastyId); + + CommonResult SeePoemGiveLikeNum(Long poemId); + + CommonResult SeeDynastyGiveLikeNum(Long dynastyId); + + void PoemGiveLike(Long userId, Long poemId); + + void DynastyGiveLike(Long userId, Long dynastyId); + + void PoemGiveLikeCancel(Long giveLikeId); + + void DynastyGiveLikeCancel(Long giveLikeId); + + + CommonResult publicSeeDynastyGiveLike(Long userId, Long dynastyId); + + CommonResult publicSeePoemGiveLike(Long userId, Long poemId); + + CommonResult dynastyGiveLikeCancelByUserId(Long userId, Long dynastyId); + + CommonResult poemGiveLikeCancelByUserId(Long userId, Long poemId); +} + + diff --git a/poetry-consumer-givelike/src/main/java/com/jacklei/poetry/service/Impl/GiveLikeServiceImpl.java b/poetry-consumer-givelike/src/main/java/com/jacklei/poetry/service/Impl/GiveLikeServiceImpl.java new file mode 100644 index 0000000..e2bd5f8 --- /dev/null +++ b/poetry-consumer-givelike/src/main/java/com/jacklei/poetry/service/Impl/GiveLikeServiceImpl.java @@ -0,0 +1,118 @@ +package com.jacklei.poetry.service.Impl; + +import com.jacklei.poetry.entities.CommonResult; +import com.jacklei.poetry.entities.GLDynasty; +import com.jacklei.poetry.entities.GLPoem; + +import com.jacklei.poetry.mapper.GiveLikeDao; +import com.jacklei.poetry.service.GiveLikeService; +import com.jacklei.poetry.util.TimeUtil; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.List; + +@Service +public class GiveLikeServiceImpl implements GiveLikeService { + + @Resource + private GiveLikeDao giveLikeDao; + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean DeletePoemGive(Long poemId) throws Exception{ + giveLikeDao.DeletePoemGive(poemId); + return true; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean DeleteDynastyGive(Long dynastyId)throws Exception { + giveLikeDao.DeleteDynastyGive(dynastyId); + return true; + + } + + @Override + public CommonResult SeePoemGiveLike(Long poemId) { + List result = giveLikeDao.SeePoemGiveLike(poemId); + if (result!=null)return new CommonResult(result); + return new CommonResult(204,"此词没有被点赞!"); + } + + @Override + public CommonResult SeeDynastyGiveLike(Long dynastyId) { + + List result = giveLikeDao.SeeDynastyGiveLike(dynastyId); + if (result!=null)return new CommonResult(result); + return new CommonResult(204,"此词没有被点赞!"); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public CommonResult SeePoemGiveLikeNum(Long poemId) { + List result = giveLikeDao.SeePoemGiveLike(poemId); + int size = result.size(); + giveLikeDao.changePoemGiveLikeNum(size,poemId); + return new CommonResult(size); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public CommonResult SeeDynastyGiveLikeNum(Long dynastyId) { + List result = giveLikeDao.SeeDynastyGiveLike(dynastyId); + int size = result.size(); + giveLikeDao.changeDynastyGiveLikeNum(size,dynastyId); + return new CommonResult(size); + } + + @Override + public void PoemGiveLike(Long userId, Long poemId) { + giveLikeDao.PoemGiveLike(userId,poemId, TimeUtil.getTime()); + } + + @Override + public void DynastyGiveLike(Long userId, Long dynastyId) { + giveLikeDao.DynastyGiveLike(userId,dynastyId,TimeUtil.getTime()); + + } + + @Override + public void PoemGiveLikeCancel(Long giveLikeId) { + giveLikeDao.PoemGiveLikeCancel(giveLikeId); + } + + @Override + public void DynastyGiveLikeCancel(Long giveLikeId) { + giveLikeDao.DynastyGiveLikeCancel(giveLikeId); + } + + @Override + public CommonResult publicSeeDynastyGiveLike(Long userId, Long dynastyId) { + int result = giveLikeDao.publicSeeDynastyGiveLike(userId,dynastyId); + if(result!=1)return new CommonResult(204,"用户没有点赞!"); + return new CommonResult(200,"用户已点赞!"); + } + + @Override + public CommonResult publicSeePoemGiveLike(Long userId, Long poemId) { + int result = giveLikeDao.publicSeePoemGiveLike(userId,poemId); + if(result!=1)return new CommonResult(204,"用户没有点赞!"); + return new CommonResult(200,"用户已点赞!"); + } + + @Override + public CommonResult dynastyGiveLikeCancelByUserId(Long userId, Long dynastyId) { + + giveLikeDao.dynastyGiveLikeCancelByUserId(userId,dynastyId); + return new CommonResult(null); + } + + @Override + public CommonResult poemGiveLikeCancelByUserId(Long userId, Long poemId) { + giveLikeDao.poemGiveLikeCancelByUserId(userId,poemId); + return new CommonResult(null); + } +} diff --git a/poetry-consumer-givelike/src/main/java/com/jacklei/poetry/util/JWTTokenUtil.java b/poetry-consumer-givelike/src/main/java/com/jacklei/poetry/util/JWTTokenUtil.java new file mode 100644 index 0000000..42f20d9 --- /dev/null +++ b/poetry-consumer-givelike/src/main/java/com/jacklei/poetry/util/JWTTokenUtil.java @@ -0,0 +1,58 @@ +package com.jacklei.poetry.util; + + +import com.auth0.jwt.JWT; +import com.auth0.jwt.JWTVerifier; +import com.auth0.jwt.algorithms.Algorithm; +import com.auth0.jwt.exceptions.JWTCreationException; +import com.auth0.jwt.exceptions.JWTVerificationException; +import com.auth0.jwt.interfaces.DecodedJWT; + +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +public class JWTTokenUtil { + //设置过期时间 + private static final long EXPIRE_DATE = 30*60*100000; + //token密钥 + private static final String TOKEN_SECRET ="ZCfasfhuaUUHufguGuwu2020BQWE"; + + public static String token (String username ,String password){ + String token = ""; + + try { + //过期时间 + Date date =new Date(System.currentTimeMillis()+EXPIRE_DATE); + //密钥及加密算法 + Algorithm algorithm = Algorithm.HMAC256(TOKEN_SECRET); + //设置头部信息 + Map header = new HashMap<>(); + header.put("typ","JWT"); + header.put("alg","Hs256"); + //携带username,password信息,生成签名 + token = JWT.create(). + withHeader(header). + withClaim("username",username). + withExpiresAt(date).sign(algorithm); + } catch (JWTCreationException e) { + e.printStackTrace(); + return null; + } + return token; + } + + public static boolean verify(String token){ + + try { + Algorithm algorithm =Algorithm.HMAC256(TOKEN_SECRET); + JWTVerifier verifier = JWT.require(algorithm).build(); + DecodedJWT jwt = verifier.verify(token); + return true; + } catch (JWTVerificationException e) { + e.printStackTrace(); + } + return false; + } + +} diff --git a/poetry-consumer-givelike/src/main/resources/application.yaml b/poetry-consumer-givelike/src/main/resources/application.yaml new file mode 100644 index 0000000..5310578 --- /dev/null +++ b/poetry-consumer-givelike/src/main/resources/application.yaml @@ -0,0 +1,62 @@ + +server: + port: 85 +spring: + main: + allow-circular-references: true + # allow-bean-definition-overriding: true + application: + name: poetry-consumer-givelike + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://127.0.0.1:3306/shici?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true + username: shici + password: 123456 + cloud: + sentinel: + transport: + port: 8719 + dashboard: 127.0.0.1:8080 + datasource: + ds1: + nacos: + server-addr: localhost:8848 + dataId: cloudalibaba-sentinel-login + groupId: SENTINEL_GROUP + data_type: json + rule_type: flow + namespace: 45d907a1-7646-40b0-8502-b8610335271f + nacos: + discovery: + server-addr: 127.0.0.1:8848 + + +#feign: +# sentinel: +# enabled: true + + +mybatis: + type-aliases-package: com.jacklei.poetry.entities + mapper-locations: classpath:mapper/*.xml + + +#seata: +# registry: +# application: seata-server +# type: nacos +# nacos: +# username: nacos +# password: nacos +# server-addr: 81.70.104.6:8848 +# config: +# type: nacos +# nacos: +# username: nacos +# password: nacos +# server-addr: 81.70.104.6:8848 +# enable-auto-data-source-proxy: false +# service: +# vgroup-mapping: +# my_test_tx_group: default +# tx-service-group: my_test_tx_group diff --git a/poetry-consumer-givelike/src/main/resources/mapper/GiveLikeMpper.xml b/poetry-consumer-givelike/src/main/resources/mapper/GiveLikeMpper.xml new file mode 100644 index 0000000..02c8eb3 --- /dev/null +++ b/poetry-consumer-givelike/src/main/resources/mapper/GiveLikeMpper.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + delete from t_givelike_poem where poem_id=#{poemId} + + + delete from t_givelike_dynasty where dynasty_id=#{dynastyId} + + + + + insert into t_givelike_poem (user_id,poem_id,`time`) values (#{userId},#{poemId},#{time}); + + + insert into t_givelike_dynasty (user_id,dynasty_id,`time`) values (#{userId},#{dynastyId},#{time}); + + + delete from t_givelike_poem where givelike_id=#{giveLikeId}; + + + delete from t_givelike_dynasty where givelike_id=#{giveLikeId}; + + + + + delete from t_givelike_poem where user_id=#{userId} and poem_id=#{poemId}; + + + delete from t_givelike_dynasty where user_id=#{userId} and dynasty_id=#{dynastyId}; + + + update t_dynasty set givelike = #{size} where dynasty_id = #{dynastyId} ; + + + update t_poem set givelike = #{size} where poem_id = #{poemId} ; + + \ No newline at end of file diff --git a/poetry-consumer-givelike/target/classes/application.yaml b/poetry-consumer-givelike/target/classes/application.yaml new file mode 100644 index 0000000..5310578 --- /dev/null +++ b/poetry-consumer-givelike/target/classes/application.yaml @@ -0,0 +1,62 @@ + +server: + port: 85 +spring: + main: + allow-circular-references: true + # allow-bean-definition-overriding: true + application: + name: poetry-consumer-givelike + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://127.0.0.1:3306/shici?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true + username: shici + password: 123456 + cloud: + sentinel: + transport: + port: 8719 + dashboard: 127.0.0.1:8080 + datasource: + ds1: + nacos: + server-addr: localhost:8848 + dataId: cloudalibaba-sentinel-login + groupId: SENTINEL_GROUP + data_type: json + rule_type: flow + namespace: 45d907a1-7646-40b0-8502-b8610335271f + nacos: + discovery: + server-addr: 127.0.0.1:8848 + + +#feign: +# sentinel: +# enabled: true + + +mybatis: + type-aliases-package: com.jacklei.poetry.entities + mapper-locations: classpath:mapper/*.xml + + +#seata: +# registry: +# application: seata-server +# type: nacos +# nacos: +# username: nacos +# password: nacos +# server-addr: 81.70.104.6:8848 +# config: +# type: nacos +# nacos: +# username: nacos +# password: nacos +# server-addr: 81.70.104.6:8848 +# enable-auto-data-source-proxy: false +# service: +# vgroup-mapping: +# my_test_tx_group: default +# tx-service-group: my_test_tx_group diff --git a/poetry-consumer-givelike/target/classes/com/jacklei/poetry/ConsumerGiveLikeMain.class b/poetry-consumer-givelike/target/classes/com/jacklei/poetry/ConsumerGiveLikeMain.class new file mode 100644 index 0000000..cb7ff46 Binary files /dev/null and b/poetry-consumer-givelike/target/classes/com/jacklei/poetry/ConsumerGiveLikeMain.class differ diff --git a/poetry-consumer-givelike/target/classes/com/jacklei/poetry/config/LoginHandlerInterceptor.class b/poetry-consumer-givelike/target/classes/com/jacklei/poetry/config/LoginHandlerInterceptor.class new file mode 100644 index 0000000..339280c Binary files /dev/null and b/poetry-consumer-givelike/target/classes/com/jacklei/poetry/config/LoginHandlerInterceptor.class differ diff --git a/poetry-consumer-givelike/target/classes/com/jacklei/poetry/config/MyBatisConfig.class b/poetry-consumer-givelike/target/classes/com/jacklei/poetry/config/MyBatisConfig.class new file mode 100644 index 0000000..7d2c56b Binary files /dev/null and b/poetry-consumer-givelike/target/classes/com/jacklei/poetry/config/MyBatisConfig.class differ diff --git a/poetry-consumer-givelike/target/classes/com/jacklei/poetry/config/MyMvcConfig.class b/poetry-consumer-givelike/target/classes/com/jacklei/poetry/config/MyMvcConfig.class new file mode 100644 index 0000000..293ee7e Binary files /dev/null and b/poetry-consumer-givelike/target/classes/com/jacklei/poetry/config/MyMvcConfig.class differ diff --git a/poetry-consumer-givelike/target/classes/com/jacklei/poetry/controller/GiveLikeController.class b/poetry-consumer-givelike/target/classes/com/jacklei/poetry/controller/GiveLikeController.class new file mode 100644 index 0000000..7528d35 Binary files /dev/null and b/poetry-consumer-givelike/target/classes/com/jacklei/poetry/controller/GiveLikeController.class differ diff --git a/poetry-consumer-givelike/target/classes/com/jacklei/poetry/mapper/GiveLikeDao.class b/poetry-consumer-givelike/target/classes/com/jacklei/poetry/mapper/GiveLikeDao.class new file mode 100644 index 0000000..23848c0 Binary files /dev/null and b/poetry-consumer-givelike/target/classes/com/jacklei/poetry/mapper/GiveLikeDao.class differ diff --git a/poetry-consumer-givelike/target/classes/com/jacklei/poetry/service/GiveLikeService.class b/poetry-consumer-givelike/target/classes/com/jacklei/poetry/service/GiveLikeService.class new file mode 100644 index 0000000..c4a89ac Binary files /dev/null and b/poetry-consumer-givelike/target/classes/com/jacklei/poetry/service/GiveLikeService.class differ diff --git a/poetry-consumer-givelike/target/classes/com/jacklei/poetry/service/Impl/GiveLikeServiceImpl.class b/poetry-consumer-givelike/target/classes/com/jacklei/poetry/service/Impl/GiveLikeServiceImpl.class new file mode 100644 index 0000000..c773712 Binary files /dev/null and b/poetry-consumer-givelike/target/classes/com/jacklei/poetry/service/Impl/GiveLikeServiceImpl.class differ diff --git a/poetry-consumer-givelike/target/classes/com/jacklei/poetry/util/JWTTokenUtil.class b/poetry-consumer-givelike/target/classes/com/jacklei/poetry/util/JWTTokenUtil.class new file mode 100644 index 0000000..82b42c1 Binary files /dev/null and b/poetry-consumer-givelike/target/classes/com/jacklei/poetry/util/JWTTokenUtil.class differ diff --git a/poetry-consumer-givelike/target/classes/mapper/GiveLikeMpper.xml b/poetry-consumer-givelike/target/classes/mapper/GiveLikeMpper.xml new file mode 100644 index 0000000..02c8eb3 --- /dev/null +++ b/poetry-consumer-givelike/target/classes/mapper/GiveLikeMpper.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + delete from t_givelike_poem where poem_id=#{poemId} + + + delete from t_givelike_dynasty where dynasty_id=#{dynastyId} + + + + + insert into t_givelike_poem (user_id,poem_id,`time`) values (#{userId},#{poemId},#{time}); + + + insert into t_givelike_dynasty (user_id,dynasty_id,`time`) values (#{userId},#{dynastyId},#{time}); + + + delete from t_givelike_poem where givelike_id=#{giveLikeId}; + + + delete from t_givelike_dynasty where givelike_id=#{giveLikeId}; + + + + + delete from t_givelike_poem where user_id=#{userId} and poem_id=#{poemId}; + + + delete from t_givelike_dynasty where user_id=#{userId} and dynasty_id=#{dynastyId}; + + + update t_dynasty set givelike = #{size} where dynasty_id = #{dynastyId} ; + + + update t_poem set givelike = #{size} where poem_id = #{poemId} ; + + \ No newline at end of file diff --git a/poetry-consumer-givelike/target/maven-archiver/pom.properties b/poetry-consumer-givelike/target/maven-archiver/pom.properties new file mode 100644 index 0000000..d256316 --- /dev/null +++ b/poetry-consumer-givelike/target/maven-archiver/pom.properties @@ -0,0 +1,5 @@ +#Generated by Maven +#Mon Apr 04 02:12:09 CST 2022 +version=1.0-SNAPSHOT +groupId=com.jacklei.poetry +artifactId=poetry-consumer-givelike diff --git a/poetry-consumer-givelike/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/poetry-consumer-givelike/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..62428ce --- /dev/null +++ b/poetry-consumer-givelike/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,9 @@ +com\jacklei\poetry\config\MyBatisConfig.class +com\jacklei\poetry\config\MyMvcConfig.class +com\jacklei\poetry\controller\GiveLikeController.class +com\jacklei\poetry\mapper\GiveLikeDao.class +com\jacklei\poetry\service\Impl\GiveLikeServiceImpl.class +com\jacklei\poetry\config\LoginHandlerInterceptor.class +com\jacklei\poetry\util\JWTTokenUtil.class +com\jacklei\poetry\service\GiveLikeService.class +com\jacklei\poetry\ConsumerGiveLikeMain.class diff --git a/poetry-consumer-givelike/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/poetry-consumer-givelike/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..58d68f1 --- /dev/null +++ b/poetry-consumer-givelike/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,9 @@ +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-givelike\src\main\java\com\jacklei\poetry\config\LoginHandlerInterceptor.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-givelike\src\main\java\com\jacklei\poetry\ConsumerGiveLikeMain.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-givelike\src\main\java\com\jacklei\poetry\service\GiveLikeService.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-givelike\src\main\java\com\jacklei\poetry\service\Impl\GiveLikeServiceImpl.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-givelike\src\main\java\com\jacklei\poetry\util\JWTTokenUtil.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-givelike\src\main\java\com\jacklei\poetry\controller\GiveLikeController.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-givelike\src\main\java\com\jacklei\poetry\mapper\GiveLikeDao.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-givelike\src\main\java\com\jacklei\poetry\config\MyBatisConfig.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-givelike\src\main\java\com\jacklei\poetry\config\MyMvcConfig.java diff --git a/poetry-consumer-givelike/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/poetry-consumer-givelike/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/poetry-consumer-givelike/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/poetry-consumer-givelike/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/poetry-consumer-givelike/target/poetry-consumer-givelike-1.0-SNAPSHOT.jar b/poetry-consumer-givelike/target/poetry-consumer-givelike-1.0-SNAPSHOT.jar new file mode 100644 index 0000000..0f85e84 Binary files /dev/null and b/poetry-consumer-givelike/target/poetry-consumer-givelike-1.0-SNAPSHOT.jar differ diff --git a/poetry-consumer-givelike/target/poetry-consumer-givelike-1.0-SNAPSHOT.jar.original b/poetry-consumer-givelike/target/poetry-consumer-givelike-1.0-SNAPSHOT.jar.original new file mode 100644 index 0000000..2ab45ef Binary files /dev/null and b/poetry-consumer-givelike/target/poetry-consumer-givelike-1.0-SNAPSHOT.jar.original differ diff --git a/poetry-consumer-login/poetry-consumer-login.iml b/poetry-consumer-login/poetry-consumer-login.iml new file mode 100644 index 0000000..7ce89b7 --- /dev/null +++ b/poetry-consumer-login/poetry-consumer-login.iml @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/poetry-consumer-login/pom.xml b/poetry-consumer-login/pom.xml new file mode 100644 index 0000000..db4c848 --- /dev/null +++ b/poetry-consumer-login/pom.xml @@ -0,0 +1,132 @@ + + + + PoetryOfTheFourSeasons + com.jacklei.poetry + 1.0-SNAPSHOT + + 4.0.0 + + poetry-consumer-login + + + + com.auth0 + java-jwt + 3.8.2 + + + + com.jacklei.poetry + poetry-api-commons + 1.0-SNAPSHOT + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + 2.2.7.RELEASE + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + 2.2.7.RELEASE + + + org.springframework.cloud + spring-cloud-starter-netflix-ribbon + + + + + org.springframework.cloud + spring-cloud-loadbalancer + + + com.alibaba.csp + sentinel-datasource-nacos + + + + + com.alibaba.nacos + nacos-client + 1.4.2 + + + + + io.seata + seata-spring-boot-starter + 1.3.0 + + + + + + org.springframework.cloud + spring-cloud-starter-openfeign + 2.2.1.RELEASE + + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + + + + + org.springframework.boot + spring-boot-starter-test + test + + + org.projectlombok + lombok + true + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.8 + 1.8 + + + + org.springframework.boot + spring-boot-maven-plugin + 2.2.2.RELEASE + + + com.jacklei.poetry.ConsumerLoginMain + + + + + repackage + + + + + + + + \ No newline at end of file diff --git a/poetry-consumer-login/src/main/java/com/jacklei/poetry/ConsumerLoginMain.java b/poetry-consumer-login/src/main/java/com/jacklei/poetry/ConsumerLoginMain.java new file mode 100644 index 0000000..219881e --- /dev/null +++ b/poetry-consumer-login/src/main/java/com/jacklei/poetry/ConsumerLoginMain.java @@ -0,0 +1,16 @@ +package com.jacklei.poetry; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.cloud.openfeign.EnableFeignClients; + +@SpringBootApplication +@EnableDiscoveryClient +@EnableFeignClients +public class ConsumerLoginMain { + + public static void main(String[] args) { + SpringApplication.run(ConsumerLoginMain.class,args); + } +} diff --git a/poetry-consumer-login/src/main/java/com/jacklei/poetry/config/LoginHandlerInterceptor.java b/poetry-consumer-login/src/main/java/com/jacklei/poetry/config/LoginHandlerInterceptor.java new file mode 100644 index 0000000..7e91a15 --- /dev/null +++ b/poetry-consumer-login/src/main/java/com/jacklei/poetry/config/LoginHandlerInterceptor.java @@ -0,0 +1,56 @@ +package com.jacklei.poetry.config; + +import com.jacklei.poetry.util.JWTTokenUtil; +import org.springframework.web.servlet.HandlerInterceptor; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +public class LoginHandlerInterceptor implements HandlerInterceptor { + + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + String token = request.getHeader("token"); + System.err.println(token); + if(token==null||token.isEmpty()){ + //没有 token + request.setAttribute("msg","没有权限,请重新登录!"); + request.getRequestDispatcher("/do/login/token").forward(request,response); + return false; + } + else if(JWTTokenUtil.verify(token)){return true;}//正常token + else{ + request.setAttribute("msg","登录时间过长,请重新登录!"); + request.getRequestDispatcher("/do/login/token").forward(request,response); + return false; + } + /* Object LoginUser = request.getSession().getAttribute("user"); + if(LoginUser==null){ + request.setAttribute("msg","没有权限,请重新登录!"); + request.getRequestDispatcher("/consumer/login").forward(request,response); + + return false; + }else*/ + /*response.setHeader("Access-Control-Allow-Origin", "*"); + response.setHeader("Access-Control-Allow-Headers", "X-Requested-With"); + response.setHeader("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS"); + response.setHeader("X-Powered-By","3.2.1"); + response.setHeader("Access-Control-Allow-Credentials","true"); + response.setHeader("Content-Type", "application/json;charset=utf-8"); +*/ + + + + } + + @Override + public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { + + } + + @Override + public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { + + } +} diff --git a/poetry-consumer-login/src/main/java/com/jacklei/poetry/config/MyMvcConfig.java b/poetry-consumer-login/src/main/java/com/jacklei/poetry/config/MyMvcConfig.java new file mode 100644 index 0000000..2046f56 --- /dev/null +++ b/poetry-consumer-login/src/main/java/com/jacklei/poetry/config/MyMvcConfig.java @@ -0,0 +1,16 @@ +package com.jacklei.poetry.config; + +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration +public class MyMvcConfig implements WebMvcConfigurer { + + @Override + public void addInterceptors(InterceptorRegistry registry) { + registry.addInterceptor(new LoginHandlerInterceptor()).addPathPatterns("/**"). + excludePathPatterns("/**/do/**","/do/**"); + //registry.addInterceptor(new LoginHandlerInterceptor()); + } +} diff --git a/poetry-consumer-login/src/main/java/com/jacklei/poetry/controller/LoginController.java b/poetry-consumer-login/src/main/java/com/jacklei/poetry/controller/LoginController.java new file mode 100644 index 0000000..a566e8d --- /dev/null +++ b/poetry-consumer-login/src/main/java/com/jacklei/poetry/controller/LoginController.java @@ -0,0 +1,71 @@ +package com.jacklei.poetry.controller; + +import com.jacklei.poetry.entities.CommonResult; +import com.jacklei.poetry.entities.User; +import com.jacklei.poetry.service.LoginService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; + + +@CrossOrigin +@RestController +@Slf4j +public class LoginController { + + @Autowired + private LoginService loginService; + + // + //给前端通知 Token 异常(你们不用管) + @GetMapping("/do/login/token") + public CommonResult doLoginToken ( HttpServletRequest request ){ + Object msg = request.getAttribute("msg"); + return new CommonResult(201,"token异常",msg); + } + + //登录 + @GetMapping("/consumer/do/login") + public CommonResult login(@RequestParam("email") String email, + @RequestParam("password") String password, + HttpSession session){ + log.info("+++++++++++++进入登录后台 controller"); + CommonResult result=loginService.login( email, password); + + session.setAttribute("userMsg",result.getData()); + log.info("+++++++++++++进入登录后台 controller",result.getData()); + + return result; + } + //注册 + @PostMapping ("/consumer/do/registered") + public CommonResult registered( @RequestBody User user){ + log.info("+++++++++++++进入注册后台 controller user"+user); + CommonResult result=loginService.registered(user); + return result; + } + + //通过id 查找信息 + @GetMapping("/consumer/user/fineById/{userId}") + public CommonResult fineById (@PathVariable("userId") Long id){ + log.info("+++++++++++++进入查找信息后台 controller id:"+id); + CommonResult result=loginService.fineById(id); + return result; + } + + //修改信息 + @GetMapping("/consumer/user/modification") + public CommonResult modification(@RequestParam("userId") Long userId, + @RequestParam("email") String email, + @RequestParam("username") String username, + @RequestParam("password") String password){ + User user = new User(userId, username, password, email); + log.info("+++++++++++++进入修改信息 controller user:"+user); + CommonResult result=loginService.modification(user); + return result; + } + +} diff --git a/poetry-consumer-login/src/main/java/com/jacklei/poetry/service/Impl/LoginServiceImpl.java b/poetry-consumer-login/src/main/java/com/jacklei/poetry/service/Impl/LoginServiceImpl.java new file mode 100644 index 0000000..60334b5 --- /dev/null +++ b/poetry-consumer-login/src/main/java/com/jacklei/poetry/service/Impl/LoginServiceImpl.java @@ -0,0 +1,49 @@ +package com.jacklei.poetry.service.Impl; + +import com.jacklei.poetry.entities.CommonResult; +import com.jacklei.poetry.entities.User; +import com.jacklei.poetry.service.LoginService; +import com.jacklei.poetry.service.UserService; +import io.seata.spring.annotation.GlobalTransactional; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +@Service +public class LoginServiceImpl implements LoginService { + + @Resource + private UserService userService; + + @Autowired + private LoginService loginService; + + + @Override + public CommonResult login(String email, String password) { + CommonResult result=userService.login(email,password); + return result; + } + + @Override + @GlobalTransactional(rollbackFor = Exception.class) + public CommonResult registered(User user) { + CommonResult result=userService.registered(user); + + return result; + } + + @Override + public CommonResult fineById(Long id) { + CommonResult result=userService.fineById(id); + return result; + } + + @Override + @GlobalTransactional(rollbackFor = Exception.class) + public CommonResult modification(User user) { + CommonResult result=userService.modification(user); + return result; + } +} diff --git a/poetry-consumer-login/src/main/java/com/jacklei/poetry/service/LoginService.java b/poetry-consumer-login/src/main/java/com/jacklei/poetry/service/LoginService.java new file mode 100644 index 0000000..aea8737 --- /dev/null +++ b/poetry-consumer-login/src/main/java/com/jacklei/poetry/service/LoginService.java @@ -0,0 +1,16 @@ +package com.jacklei.poetry.service; + +import com.jacklei.poetry.entities.CommonResult; +import com.jacklei.poetry.entities.User; + + +public interface LoginService { + CommonResult login(String email, String password); + + CommonResult registered(User user); + + CommonResult fineById(Long id); + + CommonResult modification(User user); + +} diff --git a/poetry-consumer-login/src/main/java/com/jacklei/poetry/service/UserService.java b/poetry-consumer-login/src/main/java/com/jacklei/poetry/service/UserService.java new file mode 100644 index 0000000..2cd5eee --- /dev/null +++ b/poetry-consumer-login/src/main/java/com/jacklei/poetry/service/UserService.java @@ -0,0 +1,23 @@ +package com.jacklei.poetry.service; + +import com.jacklei.poetry.entities.CommonResult; +import com.jacklei.poetry.entities.User; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.*; + + +@FeignClient(value = "poetry-provider-user") +public interface UserService { + @GetMapping("/provider/do/user/login") + CommonResult login(@RequestParam("email") String email, @RequestParam("password")String password); + + @PostMapping("/provider/do/user/registered") + ///provider/do/user/registered + CommonResult registered( @RequestBody(required = false) User user); + + @GetMapping("/provider/user/fineById/{userId}") + CommonResult fineById(@PathVariable("userId")Long id); + + @PostMapping("/provider/user/modification") + CommonResult modification(@RequestBody User user); +} diff --git a/poetry-consumer-login/src/main/java/com/jacklei/poetry/util/JWTTokenUtil.java b/poetry-consumer-login/src/main/java/com/jacklei/poetry/util/JWTTokenUtil.java new file mode 100644 index 0000000..42f20d9 --- /dev/null +++ b/poetry-consumer-login/src/main/java/com/jacklei/poetry/util/JWTTokenUtil.java @@ -0,0 +1,58 @@ +package com.jacklei.poetry.util; + + +import com.auth0.jwt.JWT; +import com.auth0.jwt.JWTVerifier; +import com.auth0.jwt.algorithms.Algorithm; +import com.auth0.jwt.exceptions.JWTCreationException; +import com.auth0.jwt.exceptions.JWTVerificationException; +import com.auth0.jwt.interfaces.DecodedJWT; + +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +public class JWTTokenUtil { + //设置过期时间 + private static final long EXPIRE_DATE = 30*60*100000; + //token密钥 + private static final String TOKEN_SECRET ="ZCfasfhuaUUHufguGuwu2020BQWE"; + + public static String token (String username ,String password){ + String token = ""; + + try { + //过期时间 + Date date =new Date(System.currentTimeMillis()+EXPIRE_DATE); + //密钥及加密算法 + Algorithm algorithm = Algorithm.HMAC256(TOKEN_SECRET); + //设置头部信息 + Map header = new HashMap<>(); + header.put("typ","JWT"); + header.put("alg","Hs256"); + //携带username,password信息,生成签名 + token = JWT.create(). + withHeader(header). + withClaim("username",username). + withExpiresAt(date).sign(algorithm); + } catch (JWTCreationException e) { + e.printStackTrace(); + return null; + } + return token; + } + + public static boolean verify(String token){ + + try { + Algorithm algorithm =Algorithm.HMAC256(TOKEN_SECRET); + JWTVerifier verifier = JWT.require(algorithm).build(); + DecodedJWT jwt = verifier.verify(token); + return true; + } catch (JWTVerificationException e) { + e.printStackTrace(); + } + return false; + } + +} diff --git a/poetry-consumer-login/src/main/resources/application.yaml b/poetry-consumer-login/src/main/resources/application.yaml new file mode 100644 index 0000000..cacaf57 --- /dev/null +++ b/poetry-consumer-login/src/main/resources/application.yaml @@ -0,0 +1,57 @@ + +server: + port: 81 +spring: + main: + allow-circular-references: true +# allow-bean-definition-overriding: true + application: + name: poetry-consunmer-login + cloud: + sentinel: + transport: + port: 8719 + dashboard: 127.0.0.1:8080 + datasource: + ds1: + nacos: + server-addr: 127.0.0.1:8848 + dataId: cloudalibaba-sentinel-login + groupId: SENTINEL_GROUP + data_type: json + rule_type: flow + namespace: 45d907a1-7646-40b0-8502-b8610335271f + nacos: + discovery: + server-addr: 127.0.0.1:8848 + + +feign: + sentinel: + enabled: true + + +mybatis: + type-aliases-package: com.jacklei.poetry.entities + mapper-locations: classpath:mapper/*.xml + + +seata: + registry: + application: seata-server + type: nacos + nacos: + username: nacos + password: nacos + server-addr: 127.0.0.1:8848 + config: + type: nacos + nacos: + username: nacos + password: nacos + server-addr: 127.0.0.1:8848 + enable-auto-data-source-proxy: false + service: + vgroup-mapping: + my_test_tx_group: default + tx-service-group: my_test_tx_group diff --git a/poetry-consumer-login/src/main/resources/bootstrap.yaml b/poetry-consumer-login/src/main/resources/bootstrap.yaml new file mode 100644 index 0000000..de5f3a3 --- /dev/null +++ b/poetry-consumer-login/src/main/resources/bootstrap.yaml @@ -0,0 +1,18 @@ + +spring: + main: + allow-circular-references: true + application: + name: poetry-provider-dynasty + cloud: + nacos: + server-addr: loclhost:8848 + username: nacos + password: nacos + config: + group: DEFAULT_GROUP + file-extension: yaml + prefix: poetry-provider + profiles: + active: dev + diff --git a/poetry-consumer-login/target/classes/application.yaml b/poetry-consumer-login/target/classes/application.yaml new file mode 100644 index 0000000..cacaf57 --- /dev/null +++ b/poetry-consumer-login/target/classes/application.yaml @@ -0,0 +1,57 @@ + +server: + port: 81 +spring: + main: + allow-circular-references: true +# allow-bean-definition-overriding: true + application: + name: poetry-consunmer-login + cloud: + sentinel: + transport: + port: 8719 + dashboard: 127.0.0.1:8080 + datasource: + ds1: + nacos: + server-addr: 127.0.0.1:8848 + dataId: cloudalibaba-sentinel-login + groupId: SENTINEL_GROUP + data_type: json + rule_type: flow + namespace: 45d907a1-7646-40b0-8502-b8610335271f + nacos: + discovery: + server-addr: 127.0.0.1:8848 + + +feign: + sentinel: + enabled: true + + +mybatis: + type-aliases-package: com.jacklei.poetry.entities + mapper-locations: classpath:mapper/*.xml + + +seata: + registry: + application: seata-server + type: nacos + nacos: + username: nacos + password: nacos + server-addr: 127.0.0.1:8848 + config: + type: nacos + nacos: + username: nacos + password: nacos + server-addr: 127.0.0.1:8848 + enable-auto-data-source-proxy: false + service: + vgroup-mapping: + my_test_tx_group: default + tx-service-group: my_test_tx_group diff --git a/poetry-consumer-login/target/classes/bootstrap.yaml b/poetry-consumer-login/target/classes/bootstrap.yaml new file mode 100644 index 0000000..de5f3a3 --- /dev/null +++ b/poetry-consumer-login/target/classes/bootstrap.yaml @@ -0,0 +1,18 @@ + +spring: + main: + allow-circular-references: true + application: + name: poetry-provider-dynasty + cloud: + nacos: + server-addr: loclhost:8848 + username: nacos + password: nacos + config: + group: DEFAULT_GROUP + file-extension: yaml + prefix: poetry-provider + profiles: + active: dev + diff --git a/poetry-consumer-login/target/classes/com/jacklei/poetry/ConsumerLoginMain.class b/poetry-consumer-login/target/classes/com/jacklei/poetry/ConsumerLoginMain.class new file mode 100644 index 0000000..3f75be3 Binary files /dev/null and b/poetry-consumer-login/target/classes/com/jacklei/poetry/ConsumerLoginMain.class differ diff --git a/poetry-consumer-login/target/classes/com/jacklei/poetry/config/LoginHandlerInterceptor.class b/poetry-consumer-login/target/classes/com/jacklei/poetry/config/LoginHandlerInterceptor.class new file mode 100644 index 0000000..339280c Binary files /dev/null and b/poetry-consumer-login/target/classes/com/jacklei/poetry/config/LoginHandlerInterceptor.class differ diff --git a/poetry-consumer-login/target/classes/com/jacklei/poetry/config/MyMvcConfig.class b/poetry-consumer-login/target/classes/com/jacklei/poetry/config/MyMvcConfig.class new file mode 100644 index 0000000..293ee7e Binary files /dev/null and b/poetry-consumer-login/target/classes/com/jacklei/poetry/config/MyMvcConfig.class differ diff --git a/poetry-consumer-login/target/classes/com/jacklei/poetry/controller/LoginController.class b/poetry-consumer-login/target/classes/com/jacklei/poetry/controller/LoginController.class new file mode 100644 index 0000000..314f3f0 Binary files /dev/null and b/poetry-consumer-login/target/classes/com/jacklei/poetry/controller/LoginController.class differ diff --git a/poetry-consumer-login/target/classes/com/jacklei/poetry/service/Impl/LoginServiceImpl.class b/poetry-consumer-login/target/classes/com/jacklei/poetry/service/Impl/LoginServiceImpl.class new file mode 100644 index 0000000..8b62137 Binary files /dev/null and b/poetry-consumer-login/target/classes/com/jacklei/poetry/service/Impl/LoginServiceImpl.class differ diff --git a/poetry-consumer-login/target/classes/com/jacklei/poetry/service/LoginService.class b/poetry-consumer-login/target/classes/com/jacklei/poetry/service/LoginService.class new file mode 100644 index 0000000..04941d8 Binary files /dev/null and b/poetry-consumer-login/target/classes/com/jacklei/poetry/service/LoginService.class differ diff --git a/poetry-consumer-login/target/classes/com/jacklei/poetry/service/UserService.class b/poetry-consumer-login/target/classes/com/jacklei/poetry/service/UserService.class new file mode 100644 index 0000000..ae884a6 Binary files /dev/null and b/poetry-consumer-login/target/classes/com/jacklei/poetry/service/UserService.class differ diff --git a/poetry-consumer-login/target/classes/com/jacklei/poetry/util/JWTTokenUtil.class b/poetry-consumer-login/target/classes/com/jacklei/poetry/util/JWTTokenUtil.class new file mode 100644 index 0000000..82b42c1 Binary files /dev/null and b/poetry-consumer-login/target/classes/com/jacklei/poetry/util/JWTTokenUtil.class differ diff --git a/poetry-consumer-login/target/maven-archiver/pom.properties b/poetry-consumer-login/target/maven-archiver/pom.properties new file mode 100644 index 0000000..bf21fa3 --- /dev/null +++ b/poetry-consumer-login/target/maven-archiver/pom.properties @@ -0,0 +1,5 @@ +#Generated by Maven +#Sun Mar 27 04:22:53 CST 2022 +version=1.0-SNAPSHOT +groupId=com.jacklei.poetry +artifactId=poetry-consumer-login diff --git a/poetry-consumer-login/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/poetry-consumer-login/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..001483d --- /dev/null +++ b/poetry-consumer-login/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,8 @@ +com\jacklei\poetry\service\Impl\LoginServiceImpl.class +com\jacklei\poetry\config\MyMvcConfig.class +com\jacklei\poetry\controller\LoginController.class +com\jacklei\poetry\service\LoginService.class +com\jacklei\poetry\config\LoginHandlerInterceptor.class +com\jacklei\poetry\util\JWTTokenUtil.class +com\jacklei\poetry\ConsumerLoginMain.class +com\jacklei\poetry\service\UserService.class diff --git a/poetry-consumer-login/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/poetry-consumer-login/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..c84c080 --- /dev/null +++ b/poetry-consumer-login/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,8 @@ +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-login\src\main\java\com\jacklei\poetry\service\Impl\LoginServiceImpl.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-login\src\main\java\com\jacklei\poetry\config\MyMvcConfig.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-login\src\main\java\com\jacklei\poetry\service\LoginService.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-login\src\main\java\com\jacklei\poetry\controller\LoginController.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-login\src\main\java\com\jacklei\poetry\config\LoginHandlerInterceptor.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-login\src\main\java\com\jacklei\poetry\ConsumerLoginMain.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-login\src\main\java\com\jacklei\poetry\service\UserService.java +C:\Users\lenovo\Desktop\后端源码\poetry-consumer-login\src\main\java\com\jacklei\poetry\util\JWTTokenUtil.java diff --git a/poetry-consumer-login/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/poetry-consumer-login/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/poetry-consumer-login/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/poetry-consumer-login/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/poetry-consumer-login/target/poetry-consumer-login-1.0-SNAPSHOT.jar b/poetry-consumer-login/target/poetry-consumer-login-1.0-SNAPSHOT.jar new file mode 100644 index 0000000..ce66f43 Binary files /dev/null and b/poetry-consumer-login/target/poetry-consumer-login-1.0-SNAPSHOT.jar differ diff --git a/poetry-consumer-login/target/poetry-consumer-login-1.0-SNAPSHOT.jar.original b/poetry-consumer-login/target/poetry-consumer-login-1.0-SNAPSHOT.jar.original new file mode 100644 index 0000000..7ace1c9 Binary files /dev/null and b/poetry-consumer-login/target/poetry-consumer-login-1.0-SNAPSHOT.jar.original differ diff --git a/poetry-provider-dynasty-8502/poetry-provider-dynasty-8502.iml b/poetry-provider-dynasty-8502/poetry-provider-dynasty-8502.iml new file mode 100644 index 0000000..76eced5 --- /dev/null +++ b/poetry-provider-dynasty-8502/poetry-provider-dynasty-8502.iml @@ -0,0 +1,188 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/poetry-provider-dynasty-8502/pom.xml b/poetry-provider-dynasty-8502/pom.xml new file mode 100644 index 0000000..e1af043 --- /dev/null +++ b/poetry-provider-dynasty-8502/pom.xml @@ -0,0 +1,149 @@ + + + + PoetryOfTheFourSeasons + com.jacklei.poetry + 1.0-SNAPSHOT + + 4.0.0 + + poetry-provider-dynasty-8502 + + + + + + com.auth0 + java-jwt + 3.8.2 + + + + + com.jacklei.poetry + poetry-api-commons + 1.0-SNAPSHOT + + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + 2.2.7.RELEASE + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + 2.2.7.RELEASE + + + org.springframework.cloud + spring-cloud-starter-netflix-ribbon + + + + + org.springframework.cloud + spring-cloud-loadbalancer + + + + org.springframework.cloud + spring-cloud-starter-openfeign + 2.2.1.RELEASE + + + + com.alibaba.csp + sentinel-datasource-nacos + + + + + com.alibaba.nacos + nacos-client + 1.4.2 + + + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + org.springframework.boot + spring-boot-starter-jdbc + + + + mysql + mysql-connector-java + 8.0.27 + + + com.alibaba + druid-spring-boot-starter + 1.1.10 + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + 2.2.2 + + + org.springframework.boot + spring-boot-starter-test + test + + + org.projectlombok + lombok + true + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.8 + 1.8 + + + + org.springframework.boot + spring-boot-maven-plugin + 2.2.2.RELEASE + + + com.jacklei.poetry.DynastyProviderMain8502 + + + + + repackage + + + + + + + + + \ No newline at end of file diff --git a/poetry-provider-dynasty-8502/src/main/java/com/jacklei/poetry/DynastyProviderMain8502.java b/poetry-provider-dynasty-8502/src/main/java/com/jacklei/poetry/DynastyProviderMain8502.java new file mode 100644 index 0000000..7ba1bcc --- /dev/null +++ b/poetry-provider-dynasty-8502/src/main/java/com/jacklei/poetry/DynastyProviderMain8502.java @@ -0,0 +1,14 @@ +package com.jacklei.poetry; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; + +@SpringBootApplication +@EnableDiscoveryClient +public class DynastyProviderMain8502 { + + public static void main(String[] args) { + SpringApplication.run(DynastyProviderMain8502.class,args); + } +} diff --git a/poetry-provider-dynasty-8502/src/main/java/com/jacklei/poetry/config/LoginHandlerInterceptor.java b/poetry-provider-dynasty-8502/src/main/java/com/jacklei/poetry/config/LoginHandlerInterceptor.java new file mode 100644 index 0000000..ccfa349 --- /dev/null +++ b/poetry-provider-dynasty-8502/src/main/java/com/jacklei/poetry/config/LoginHandlerInterceptor.java @@ -0,0 +1,57 @@ +package com.jacklei.poetry.config; + +import com.jacklei.poetry.util.JWTTokenUtil; +import org.springframework.web.servlet.HandlerInterceptor; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +public class LoginHandlerInterceptor implements HandlerInterceptor { + + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + String token = request.getHeader("token"); + System.err.println(token); + System.out.println(token.isEmpty()); + if(token==null||token.isEmpty()){ + //没有 token + request.setAttribute("msg","没有权限,请重新登录!"); + request.getRequestDispatcher("/do/login/token").forward(request,response); + return false; + } + else if(JWTTokenUtil.verify(token)){return true;}//正常token + else{ + request.setAttribute("msg","登录时间过长,请重新登录!"); + request.getRequestDispatcher("/do/login/token").forward(request,response); + return false; + } + /* Object LoginUser = request.getSession().getAttribute("user"); + if(LoginUser==null){ + request.setAttribute("msg","没有权限,请重新登录!"); + request.getRequestDispatcher("/consumer/login").forward(request,response); + + return false; + }else*/ + /*response.setHeader("Access-Control-Allow-Origin", "*"); + response.setHeader("Access-Control-Allow-Headers", "X-Requested-With"); + response.setHeader("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS"); + response.setHeader("X-Powered-By","3.2.1"); + response.setHeader("Access-Control-Allow-Credentials","true"); + response.setHeader("Content-Type", "application/json;charset=utf-8"); +*/ + + + + } + + @Override + public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { + + } + + @Override + public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { + + } +} diff --git a/poetry-provider-dynasty-8502/src/main/java/com/jacklei/poetry/config/MyBatisConfig.java b/poetry-provider-dynasty-8502/src/main/java/com/jacklei/poetry/config/MyBatisConfig.java new file mode 100644 index 0000000..646089b --- /dev/null +++ b/poetry-provider-dynasty-8502/src/main/java/com/jacklei/poetry/config/MyBatisConfig.java @@ -0,0 +1,9 @@ +package com.jacklei.poetry.config; + +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.context.annotation.Configuration; + +@Configuration +@MapperScan(basePackages = "com.jacklei.poetry.mapper") +public class MyBatisConfig { +} diff --git a/poetry-provider-dynasty-8502/src/main/java/com/jacklei/poetry/config/MyMvcConfig.java b/poetry-provider-dynasty-8502/src/main/java/com/jacklei/poetry/config/MyMvcConfig.java new file mode 100644 index 0000000..714c818 --- /dev/null +++ b/poetry-provider-dynasty-8502/src/main/java/com/jacklei/poetry/config/MyMvcConfig.java @@ -0,0 +1,16 @@ +package com.jacklei.poetry.config; + +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration +public class MyMvcConfig implements WebMvcConfigurer { + + @Override + public void addInterceptors(InterceptorRegistry registry) { +// registry.addInterceptor(new LoginHandlerInterceptor()).addPathPatterns("/**"). +// excludePathPatterns("/**/do/**","/do/**"); + //registry.addInterceptor(new LoginHandlerInterceptor()); + } +} diff --git a/poetry-provider-dynasty-8502/src/main/java/com/jacklei/poetry/controller/DynastyController.java b/poetry-provider-dynasty-8502/src/main/java/com/jacklei/poetry/controller/DynastyController.java new file mode 100644 index 0000000..f4f29eb --- /dev/null +++ b/poetry-provider-dynasty-8502/src/main/java/com/jacklei/poetry/controller/DynastyController.java @@ -0,0 +1,90 @@ +package com.jacklei.poetry.controller; + +import com.jacklei.poetry.entities.CommonResult; +import com.jacklei.poetry.entities.Dynasty; +import com.jacklei.poetry.service.DynastyService; +import io.netty.util.internal.SuppressJava6Requirement; +import lombok.extern.slf4j.Slf4j; +import org.apache.ibatis.jdbc.Null; +import org.aspectj.apache.bcel.generic.RET; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import sun.rmi.runtime.Log; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; +@CrossOrigin +@RestController +@Slf4j +public class DynastyController { + + @Autowired + private DynastyService dynastyService; + + //给前端通知 Token 异常 + @GetMapping("/do/login/token") + public CommonResult doLoginToken ( HttpServletRequest request ){ + Object msg = request.getAttribute("msg"); + return new CommonResult(201,"token异常",msg); + } + + //创建诗 + @PostMapping ("/provider/creation/dynasty") + public CommonResult CreationDynasty(@RequestBody(required = false) Dynasty dynasty) throws Exception { + log.info("创建诗 dynasty:"+ dynasty); + boolean result=dynastyService.CreationDynasty(dynasty); + if(!result)return new CommonResult(400,"“诗”添加失败!"); + return new CommonResult(null); + } + //修改诗 + @PostMapping("/provider/update/dynasty") + public CommonResult UpdateDynasty(@RequestBody(required = false) Dynasty dynasty) throws Exception { + log.info("修改诗 dynasty:"+ dynasty); + boolean result=dynastyService.UpdateDynasty(dynasty); + if(!result)return new CommonResult(400,"“诗”添加失败!"); + return new CommonResult(null); + } + //通过userId 查找诗 + @GetMapping("/provider/fine/dynasty/userId/{userId}") + public CommonResult fineDynastyByUserId(@PathVariable("userId") Long userId){ + log.info("通过userId 查找诗 userId"+userId); + List result=dynastyService.fineDynastyByUserId(userId); + if(result==null)return new CommonResult(400,"“诗”没有查到!"); + return new CommonResult(result); + } + //通过dynastyId 查找诗 + @GetMapping("/provider/fine/dynasty/dynastyId/{dynastyId}") + public CommonResult fineDynastyByDynastyId(@PathVariable("dynastyId") Long dynastyId){ + log.info("通过userId 查找诗 dynastyId"+dynastyId); + Dynasty result=dynastyService.fineDynastyByDynastyId(dynastyId); + if(result==null) return new CommonResult(400,"“诗”没有查到!"); + return new CommonResult(result); + } + //通过dynastyName 查找诗 + @GetMapping("/provider/fine/dynasty/dynastyName/{dynastyName}") + public CommonResult fineDynastyByDynastyName(@PathVariable("dynastyName") String dynastyName){ + log.info("通过dynastyName 查找诗 dynastyName"+dynastyName); + List result=dynastyService.fineDynastyByDynastyName(dynastyName); + if(result==null)return new CommonResult(400,"“诗”没有查到!"); + return new CommonResult(result); + } + //通过username 查找诗 + @GetMapping("/provider/fine/dynasty/username/{username}") + public CommonResult fineDynastyByUserName(@PathVariable() String username){ + log.info("通过username 查找诗 username"+username); + List result=dynastyService.fineDynastyByUserName(username); + if(result==null)return new CommonResult(400,"“诗”没有查到!"); + log.info("result:"+result); + return new CommonResult(result); + } + //通过dynastyId 删除找诗 + @GetMapping("/provider/delete/dynasty/dynastyId/{dynastyId}") + public CommonResult DeleteDynasty(@PathVariable("dynastyId") Long dynastyId) throws Exception { + log.info("通过dynastyId 删除找诗dynastyId"+dynastyId); + boolean result=dynastyService.DeleteDynasty(dynastyId); + if(!result)return new CommonResult(400,"诗删除失败!"); + return new CommonResult(null); + + + } +} diff --git a/poetry-provider-dynasty-8502/src/main/java/com/jacklei/poetry/mapper/DynastyDao.java b/poetry-provider-dynasty-8502/src/main/java/com/jacklei/poetry/mapper/DynastyDao.java new file mode 100644 index 0000000..53a5ec1 --- /dev/null +++ b/poetry-provider-dynasty-8502/src/main/java/com/jacklei/poetry/mapper/DynastyDao.java @@ -0,0 +1,25 @@ +package com.jacklei.poetry.mapper; + +import com.jacklei.poetry.entities.Dynasty; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + + +import java.util.List; + +@Mapper +public interface DynastyDao { + int CreationDynasty(Dynasty dynasty); + + int UpdateDynasty(Dynasty dynasty); + + List fineDynastyByUserId(@Param("userId") Long userId); + + Dynasty fineDynastyByDynastyId(@Param("dynastyId") Long dynastyId); + + List fineDynastyByDynastyName(@Param("dynastyName") String dynastyName); + + List fineDynastyByUserName(@Param("username") String username); + + int DeleteDynasty(@Param("dynastyId") Long dynastyId); +} diff --git a/poetry-provider-dynasty-8502/src/main/java/com/jacklei/poetry/service/DynastyService.java b/poetry-provider-dynasty-8502/src/main/java/com/jacklei/poetry/service/DynastyService.java new file mode 100644 index 0000000..a60b280 --- /dev/null +++ b/poetry-provider-dynasty-8502/src/main/java/com/jacklei/poetry/service/DynastyService.java @@ -0,0 +1,21 @@ +package com.jacklei.poetry.service; + +import com.jacklei.poetry.entities.Dynasty; + +import java.util.List; + +public interface DynastyService { + boolean CreationDynasty(Dynasty dynasty) throws Exception; + + boolean UpdateDynasty(Dynasty dynasty) throws Exception; + + List fineDynastyByUserId(Long userId); + + Dynasty fineDynastyByDynastyId(Long dynastyId); + + List fineDynastyByDynastyName(String dynastyName); + + List fineDynastyByUserName(String username); + + boolean DeleteDynasty(Long dynastyId) throws Exception; +} diff --git a/poetry-provider-dynasty-8502/src/main/java/com/jacklei/poetry/service/Impl/DynastyServiceImpl.java b/poetry-provider-dynasty-8502/src/main/java/com/jacklei/poetry/service/Impl/DynastyServiceImpl.java new file mode 100644 index 0000000..bcbbcd8 --- /dev/null +++ b/poetry-provider-dynasty-8502/src/main/java/com/jacklei/poetry/service/Impl/DynastyServiceImpl.java @@ -0,0 +1,67 @@ +package com.jacklei.poetry.service.Impl; + +import com.jacklei.poetry.entities.Dynasty; +import com.jacklei.poetry.mapper.DynastyDao; +import com.jacklei.poetry.service.DynastyService; +import com.jacklei.poetry.util.TimeUtil; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import sun.rmi.runtime.Log; + +import javax.annotation.Resource; +import java.util.List; + +@Service +public class DynastyServiceImpl implements DynastyService { + + @Resource + private DynastyDao dynastyDao; + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean CreationDynasty(Dynasty dynasty) throws Exception{ + dynasty.setTime(TimeUtil.getTime()); + + int result=dynastyDao.CreationDynasty(dynasty); + if(result==1)return true; + return false; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean UpdateDynasty(Dynasty dynasty) throws Exception{ + dynasty.setTime(TimeUtil.getTime()); + int result=dynastyDao.UpdateDynasty(dynasty); + if(result==1)return true; + return false; + } + + @Override + public List fineDynastyByUserId(Long userId) { + + return dynastyDao.fineDynastyByUserId(userId); + } + + @Override + public Dynasty fineDynastyByDynastyId(Long dynastyId) { + return dynastyDao.fineDynastyByDynastyId(dynastyId); + } + + @Override + public List fineDynastyByDynastyName(String dynastyName) { + return dynastyDao.fineDynastyByDynastyName(dynastyName); + } + + @Override + public List fineDynastyByUserName(String username) { + return dynastyDao.fineDynastyByUserName(username); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean DeleteDynasty(Long dynastyId) throws Exception{ + int result=dynastyDao.DeleteDynasty(dynastyId); + if(result==1)return true; + return false; + } +} diff --git a/poetry-provider-dynasty-8502/src/main/java/com/jacklei/poetry/util/JWTTokenUtil.java b/poetry-provider-dynasty-8502/src/main/java/com/jacklei/poetry/util/JWTTokenUtil.java new file mode 100644 index 0000000..42f20d9 --- /dev/null +++ b/poetry-provider-dynasty-8502/src/main/java/com/jacklei/poetry/util/JWTTokenUtil.java @@ -0,0 +1,58 @@ +package com.jacklei.poetry.util; + + +import com.auth0.jwt.JWT; +import com.auth0.jwt.JWTVerifier; +import com.auth0.jwt.algorithms.Algorithm; +import com.auth0.jwt.exceptions.JWTCreationException; +import com.auth0.jwt.exceptions.JWTVerificationException; +import com.auth0.jwt.interfaces.DecodedJWT; + +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +public class JWTTokenUtil { + //设置过期时间 + private static final long EXPIRE_DATE = 30*60*100000; + //token密钥 + private static final String TOKEN_SECRET ="ZCfasfhuaUUHufguGuwu2020BQWE"; + + public static String token (String username ,String password){ + String token = ""; + + try { + //过期时间 + Date date =new Date(System.currentTimeMillis()+EXPIRE_DATE); + //密钥及加密算法 + Algorithm algorithm = Algorithm.HMAC256(TOKEN_SECRET); + //设置头部信息 + Map header = new HashMap<>(); + header.put("typ","JWT"); + header.put("alg","Hs256"); + //携带username,password信息,生成签名 + token = JWT.create(). + withHeader(header). + withClaim("username",username). + withExpiresAt(date).sign(algorithm); + } catch (JWTCreationException e) { + e.printStackTrace(); + return null; + } + return token; + } + + public static boolean verify(String token){ + + try { + Algorithm algorithm =Algorithm.HMAC256(TOKEN_SECRET); + JWTVerifier verifier = JWT.require(algorithm).build(); + DecodedJWT jwt = verifier.verify(token); + return true; + } catch (JWTVerificationException e) { + e.printStackTrace(); + } + return false; + } + +} diff --git a/poetry-provider-dynasty-8502/src/main/resources/application.yaml b/poetry-provider-dynasty-8502/src/main/resources/application.yaml new file mode 100644 index 0000000..84b064e --- /dev/null +++ b/poetry-provider-dynasty-8502/src/main/resources/application.yaml @@ -0,0 +1,37 @@ +server: + port: 8502 +spring: + application: + name: poetry-provider-dynasty + main: + allow-circular-references: true + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver +# url: jdbc:mysql://localhost:3306/fourseasons?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true +# username: root +# password: 123456 + url: jdbc:mysql://127.0.0.1:3306/shici?useUnicode=true&characterEncoding=utf8&useSSL=false + username: shici + password: 123456 + cloud: + sentinel: + transport: + dashboard: 127.0.0.1:8080 + datasource: + ds1: + nacos: + server-addr: 127.0.0.1:8848 + dataId: cloudalibaba-sentinel-service + groupId: SENTINEL_GROUP + data_type: json + rule_type: flow + namespace: 45d907a1-7646-40b0-8502-b8610335271f + nacos: + discovery: + server-addr: 127.0.0.1:8848 +feign: + sentinel: + enabled: true +mybatis: + type-aliases-package: com.jacklei.poetry.entities + mapper-locations: classpath:mapper/*.xml \ No newline at end of file diff --git a/poetry-provider-dynasty-8502/src/main/resources/mapper/DynastyMapper.xml b/poetry-provider-dynasty-8502/src/main/resources/mapper/DynastyMapper.xml new file mode 100644 index 0000000..18ebf6e --- /dev/null +++ b/poetry-provider-dynasty-8502/src/main/resources/mapper/DynastyMapper.xml @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + +INSERT +INTO + t_dynasty + (t_dynasty.dynasty_name, + t_dynasty.dynasty_user, + t_dynasty.dynasty_information, + t_dynasty.givelike,t_dynasty.collection,t_dynasty.`explain`,t_dynasty.`time` ) + values (#{dynastyName},#{dynastyUser},#{dynastyInformation},0,0,#{explain},#{time}); + + + + + update t_dynasty + set + dynasty_name=#{dynastyName}, + dynasty_information=#{dynastyInformation}, + `explain` = #{explain}, + `time` = #{time} + where dynasty_id = #{dynastyId} ; + + + + + + + + + + + delete from t_dynasty where + dynasty_id=#{dynastyId} + + \ No newline at end of file diff --git a/poetry-provider-dynasty-8502/target/classes/application.yaml b/poetry-provider-dynasty-8502/target/classes/application.yaml new file mode 100644 index 0000000..84b064e --- /dev/null +++ b/poetry-provider-dynasty-8502/target/classes/application.yaml @@ -0,0 +1,37 @@ +server: + port: 8502 +spring: + application: + name: poetry-provider-dynasty + main: + allow-circular-references: true + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver +# url: jdbc:mysql://localhost:3306/fourseasons?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true +# username: root +# password: 123456 + url: jdbc:mysql://127.0.0.1:3306/shici?useUnicode=true&characterEncoding=utf8&useSSL=false + username: shici + password: 123456 + cloud: + sentinel: + transport: + dashboard: 127.0.0.1:8080 + datasource: + ds1: + nacos: + server-addr: 127.0.0.1:8848 + dataId: cloudalibaba-sentinel-service + groupId: SENTINEL_GROUP + data_type: json + rule_type: flow + namespace: 45d907a1-7646-40b0-8502-b8610335271f + nacos: + discovery: + server-addr: 127.0.0.1:8848 +feign: + sentinel: + enabled: true +mybatis: + type-aliases-package: com.jacklei.poetry.entities + mapper-locations: classpath:mapper/*.xml \ No newline at end of file diff --git a/poetry-provider-dynasty-8502/target/classes/com/jacklei/poetry/DynastyProviderMain8502.class b/poetry-provider-dynasty-8502/target/classes/com/jacklei/poetry/DynastyProviderMain8502.class new file mode 100644 index 0000000..d50f422 Binary files /dev/null and b/poetry-provider-dynasty-8502/target/classes/com/jacklei/poetry/DynastyProviderMain8502.class differ diff --git a/poetry-provider-dynasty-8502/target/classes/com/jacklei/poetry/config/LoginHandlerInterceptor.class b/poetry-provider-dynasty-8502/target/classes/com/jacklei/poetry/config/LoginHandlerInterceptor.class new file mode 100644 index 0000000..a5d8804 Binary files /dev/null and b/poetry-provider-dynasty-8502/target/classes/com/jacklei/poetry/config/LoginHandlerInterceptor.class differ diff --git a/poetry-provider-dynasty-8502/target/classes/com/jacklei/poetry/config/MyBatisConfig.class b/poetry-provider-dynasty-8502/target/classes/com/jacklei/poetry/config/MyBatisConfig.class new file mode 100644 index 0000000..7d2c56b Binary files /dev/null and b/poetry-provider-dynasty-8502/target/classes/com/jacklei/poetry/config/MyBatisConfig.class differ diff --git a/poetry-provider-dynasty-8502/target/classes/com/jacklei/poetry/config/MyMvcConfig.class b/poetry-provider-dynasty-8502/target/classes/com/jacklei/poetry/config/MyMvcConfig.class new file mode 100644 index 0000000..82a0b56 Binary files /dev/null and b/poetry-provider-dynasty-8502/target/classes/com/jacklei/poetry/config/MyMvcConfig.class differ diff --git a/poetry-provider-dynasty-8502/target/classes/com/jacklei/poetry/controller/DynastyController.class b/poetry-provider-dynasty-8502/target/classes/com/jacklei/poetry/controller/DynastyController.class new file mode 100644 index 0000000..c8a91ce Binary files /dev/null and b/poetry-provider-dynasty-8502/target/classes/com/jacklei/poetry/controller/DynastyController.class differ diff --git a/poetry-provider-dynasty-8502/target/classes/com/jacklei/poetry/mapper/DynastyDao.class b/poetry-provider-dynasty-8502/target/classes/com/jacklei/poetry/mapper/DynastyDao.class new file mode 100644 index 0000000..707fba7 Binary files /dev/null and b/poetry-provider-dynasty-8502/target/classes/com/jacklei/poetry/mapper/DynastyDao.class differ diff --git a/poetry-provider-dynasty-8502/target/classes/com/jacklei/poetry/service/DynastyService.class b/poetry-provider-dynasty-8502/target/classes/com/jacklei/poetry/service/DynastyService.class new file mode 100644 index 0000000..1e2b95c Binary files /dev/null and b/poetry-provider-dynasty-8502/target/classes/com/jacklei/poetry/service/DynastyService.class differ diff --git a/poetry-provider-dynasty-8502/target/classes/com/jacklei/poetry/service/Impl/DynastyServiceImpl.class b/poetry-provider-dynasty-8502/target/classes/com/jacklei/poetry/service/Impl/DynastyServiceImpl.class new file mode 100644 index 0000000..23473dc Binary files /dev/null and b/poetry-provider-dynasty-8502/target/classes/com/jacklei/poetry/service/Impl/DynastyServiceImpl.class differ diff --git a/poetry-provider-dynasty-8502/target/classes/com/jacklei/poetry/util/JWTTokenUtil.class b/poetry-provider-dynasty-8502/target/classes/com/jacklei/poetry/util/JWTTokenUtil.class new file mode 100644 index 0000000..82b42c1 Binary files /dev/null and b/poetry-provider-dynasty-8502/target/classes/com/jacklei/poetry/util/JWTTokenUtil.class differ diff --git a/poetry-provider-dynasty-8502/target/classes/mapper/DynastyMapper.xml b/poetry-provider-dynasty-8502/target/classes/mapper/DynastyMapper.xml new file mode 100644 index 0000000..18ebf6e --- /dev/null +++ b/poetry-provider-dynasty-8502/target/classes/mapper/DynastyMapper.xml @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + +INSERT +INTO + t_dynasty + (t_dynasty.dynasty_name, + t_dynasty.dynasty_user, + t_dynasty.dynasty_information, + t_dynasty.givelike,t_dynasty.collection,t_dynasty.`explain`,t_dynasty.`time` ) + values (#{dynastyName},#{dynastyUser},#{dynastyInformation},0,0,#{explain},#{time}); + + + + + update t_dynasty + set + dynasty_name=#{dynastyName}, + dynasty_information=#{dynastyInformation}, + `explain` = #{explain}, + `time` = #{time} + where dynasty_id = #{dynastyId} ; + + + + + + + + + + + delete from t_dynasty where + dynasty_id=#{dynastyId} + + \ No newline at end of file diff --git a/poetry-provider-dynasty-8502/target/maven-archiver/pom.properties b/poetry-provider-dynasty-8502/target/maven-archiver/pom.properties new file mode 100644 index 0000000..08a2eaa --- /dev/null +++ b/poetry-provider-dynasty-8502/target/maven-archiver/pom.properties @@ -0,0 +1,5 @@ +#Generated by Maven +#Tue Apr 19 22:20:58 CST 2022 +version=1.0-SNAPSHOT +groupId=com.jacklei.poetry +artifactId=poetry-provider-dynasty-8502 diff --git a/poetry-provider-dynasty-8502/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/poetry-provider-dynasty-8502/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..193e9fb --- /dev/null +++ b/poetry-provider-dynasty-8502/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,9 @@ +com\jacklei\poetry\config\MyBatisConfig.class +com\jacklei\poetry\config\MyMvcConfig.class +com\jacklei\poetry\service\DynastyService.class +com\jacklei\poetry\service\Impl\DynastyServiceImpl.class +com\jacklei\poetry\controller\DynastyController.class +com\jacklei\poetry\config\LoginHandlerInterceptor.class +com\jacklei\poetry\mapper\DynastyDao.class +com\jacklei\poetry\util\JWTTokenUtil.class +com\jacklei\poetry\DynastyProviderMain8502.class diff --git a/poetry-provider-dynasty-8502/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/poetry-provider-dynasty-8502/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..eeb4739 --- /dev/null +++ b/poetry-provider-dynasty-8502/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,9 @@ +C:\Users\lenovo\Desktop\后端源码\poetry-provider-dynasty-8502\src\main\java\com\jacklei\poetry\mapper\DynastyDao.java +C:\Users\lenovo\Desktop\后端源码\poetry-provider-dynasty-8502\src\main\java\com\jacklei\poetry\service\Impl\DynastyServiceImpl.java +C:\Users\lenovo\Desktop\后端源码\poetry-provider-dynasty-8502\src\main\java\com\jacklei\poetry\util\JWTTokenUtil.java +C:\Users\lenovo\Desktop\后端源码\poetry-provider-dynasty-8502\src\main\java\com\jacklei\poetry\config\MyBatisConfig.java +C:\Users\lenovo\Desktop\后端源码\poetry-provider-dynasty-8502\src\main\java\com\jacklei\poetry\config\LoginHandlerInterceptor.java +C:\Users\lenovo\Desktop\后端源码\poetry-provider-dynasty-8502\src\main\java\com\jacklei\poetry\config\MyMvcConfig.java +C:\Users\lenovo\Desktop\后端源码\poetry-provider-dynasty-8502\src\main\java\com\jacklei\poetry\controller\DynastyController.java +C:\Users\lenovo\Desktop\后端源码\poetry-provider-dynasty-8502\src\main\java\com\jacklei\poetry\DynastyProviderMain8502.java +C:\Users\lenovo\Desktop\后端源码\poetry-provider-dynasty-8502\src\main\java\com\jacklei\poetry\service\DynastyService.java diff --git a/poetry-provider-dynasty-8502/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/poetry-provider-dynasty-8502/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/poetry-provider-dynasty-8502/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/poetry-provider-dynasty-8502/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/poetry-provider-dynasty-8502/target/poetry-provider-dynasty-8502-1.0-SNAPSHOT.jar b/poetry-provider-dynasty-8502/target/poetry-provider-dynasty-8502-1.0-SNAPSHOT.jar new file mode 100644 index 0000000..3475ac2 Binary files /dev/null and b/poetry-provider-dynasty-8502/target/poetry-provider-dynasty-8502-1.0-SNAPSHOT.jar differ diff --git a/poetry-provider-dynasty-8502/target/poetry-provider-dynasty-8502-1.0-SNAPSHOT.jar.original b/poetry-provider-dynasty-8502/target/poetry-provider-dynasty-8502-1.0-SNAPSHOT.jar.original new file mode 100644 index 0000000..163f268 Binary files /dev/null and b/poetry-provider-dynasty-8502/target/poetry-provider-dynasty-8502-1.0-SNAPSHOT.jar.original differ diff --git a/poetry-provider-poem-8501/poetry-provider-poem-8501.iml b/poetry-provider-poem-8501/poetry-provider-poem-8501.iml new file mode 100644 index 0000000..76c5251 --- /dev/null +++ b/poetry-provider-poem-8501/poetry-provider-poem-8501.iml @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/poetry-provider-poem-8501/pom.xml b/poetry-provider-poem-8501/pom.xml new file mode 100644 index 0000000..de2ec73 --- /dev/null +++ b/poetry-provider-poem-8501/pom.xml @@ -0,0 +1,147 @@ + + + + PoetryOfTheFourSeasons + com.jacklei.poetry + 1.0-SNAPSHOT + + 4.0.0 + + poetry-provider-poem-8501 + + + + com.auth0 + java-jwt + 3.8.2 + + + + + com.jacklei.poetry + poetry-api-commons + 1.0-SNAPSHOT + + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + 2.2.7.RELEASE + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + 2.2.7.RELEASE + + + org.springframework.cloud + spring-cloud-starter-netflix-ribbon + + + + + org.springframework.cloud + spring-cloud-loadbalancer + + + + org.springframework.cloud + spring-cloud-starter-openfeign + 2.2.1.RELEASE + + + + com.alibaba.csp + sentinel-datasource-nacos + + + + + com.alibaba.nacos + nacos-client + 1.4.2 + + + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + org.springframework.boot + spring-boot-starter-jdbc + + + + mysql + mysql-connector-java + 5.1.47 + + + com.alibaba + druid-spring-boot-starter + 1.1.10 + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + 2.2.2 + + + org.springframework.boot + spring-boot-starter-test + test + + + org.projectlombok + lombok + true + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.8 + 1.8 + + + + org.springframework.boot + spring-boot-maven-plugin + 2.2.2.RELEASE + + + com.jacklei.poetry.PoemProviderMain8501 + + + + + repackage + + + + + + + + + \ No newline at end of file diff --git a/poetry-provider-poem-8501/src/main/java/com/jacklei/poetry/PoemProviderMain8501.java b/poetry-provider-poem-8501/src/main/java/com/jacklei/poetry/PoemProviderMain8501.java new file mode 100644 index 0000000..dc7bd32 --- /dev/null +++ b/poetry-provider-poem-8501/src/main/java/com/jacklei/poetry/PoemProviderMain8501.java @@ -0,0 +1,13 @@ +package com.jacklei.poetry; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; + +@SpringBootApplication +@EnableDiscoveryClient +public class PoemProviderMain8501 { + public static void main(String[] args) { + SpringApplication.run(PoemProviderMain8501.class,args); + } +} diff --git a/poetry-provider-poem-8501/src/main/java/com/jacklei/poetry/config/MyBatisConfig.java b/poetry-provider-poem-8501/src/main/java/com/jacklei/poetry/config/MyBatisConfig.java new file mode 100644 index 0000000..e61ce54 --- /dev/null +++ b/poetry-provider-poem-8501/src/main/java/com/jacklei/poetry/config/MyBatisConfig.java @@ -0,0 +1,9 @@ +package com.jacklei.poetry.config; + +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.context.annotation.Configuration; + +@Configuration +@MapperScan(basePackages="com.jacklei.poetry.mapper") +public class MyBatisConfig { +} diff --git a/poetry-provider-poem-8501/src/main/java/com/jacklei/poetry/controller/PoemController.java b/poetry-provider-poem-8501/src/main/java/com/jacklei/poetry/controller/PoemController.java new file mode 100644 index 0000000..bf683c1 --- /dev/null +++ b/poetry-provider-poem-8501/src/main/java/com/jacklei/poetry/controller/PoemController.java @@ -0,0 +1,79 @@ +package com.jacklei.poetry.controller; + +import com.jacklei.poetry.entities.CommonResult; +import com.jacklei.poetry.entities.Poem; +import com.jacklei.poetry.entities.User; +import com.jacklei.poetry.service.PoemService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import sun.rmi.runtime.Log; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; + +@RestController +@Slf4j +public class PoemController { + + @Autowired + PoemService poemService; + + + //给前端通知 Token 异常 + @GetMapping("/do/login/token") + public CommonResult doLoginToken ( HttpServletRequest request ){ + Object msg = request.getAttribute("msg"); + return new CommonResult(201,"token异常",msg); + } + + @PostMapping("/provider/creation/poem") + public CommonResult CreationPoem( @RequestBody(required = false) Poem poem) throws Exception { + boolean result= poemService.CreationPoem(poem); + if(!result) return new CommonResult(400,"添加 “词” 失败"); + return new CommonResult(null); + } + + @PostMapping("/provider/update/poem") + public CommonResult UpdatePoem(@RequestBody(required = false) Poem poem) throws Exception { + log.info("进入修改词的后台中: poem"+poem); + boolean result=poemService.UpdatePoem(poem); + if(!result) return new CommonResult(400,"修改词失败!"); + return new CommonResult(null); + } + + @GetMapping("/provider/fine/poem/userId/{userId}") + public CommonResult finePoemByUserId(@PathVariable("userId") Long userId){ + log.info("进入finePoemByUserId的后台中: userId"+userId); + List result= poemService.finePoemByUserId(userId); + if(result==null) return new CommonResult(400,"没有找到,该作者的诗"); + return new CommonResult(result); + + } + @GetMapping("/provider/fine/poem/poemId/{poemId}") + public CommonResult fineDynastyByPoemId(@PathVariable("poemId") Long poemId){ + Poem result =poemService.fineDynastyByPoemId(poemId); + if(result==null) return new CommonResult(400 ,"没有找到词"); + return new CommonResult(result); + } + + @GetMapping("/provider/fine/poem/poemName/{poemName}") + public CommonResult fineDynastyByPoemName(@PathVariable("poemName") String poemName){ + List result =poemService.fineDynastyByPoemName(poemName); + if(result==null) return new CommonResult(400,"没有找到词"); + return new CommonResult(result); + } + @GetMapping("/provider/fine/poem/username/{username}") + public CommonResult finePoemByUserName(@PathVariable("username") String username){ + List result =poemService.finePoemByUserName(username); + if(result==null) return new CommonResult(400,"没有找到词"); + return new CommonResult(result); + } + + @GetMapping("/provider/delete/poem/poemId/{poemId}") + public CommonResult DeletePoem(@PathVariable("poemId") Long poemId) throws Exception { + boolean result=poemService.DeletePoem(poemId); + if(!result) return new CommonResult(400,"删除失败!"); + return new CommonResult(null); + } +} diff --git a/poetry-provider-poem-8501/src/main/java/com/jacklei/poetry/mapper/PoemDao.java b/poetry-provider-poem-8501/src/main/java/com/jacklei/poetry/mapper/PoemDao.java new file mode 100644 index 0000000..3e05acb --- /dev/null +++ b/poetry-provider-poem-8501/src/main/java/com/jacklei/poetry/mapper/PoemDao.java @@ -0,0 +1,30 @@ +package com.jacklei.poetry.mapper; + +import com.jacklei.poetry.entities.Poem; +import com.jacklei.poetry.entities.User; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import sun.rmi.runtime.Log; + +import java.util.List; + +@Mapper +public interface PoemDao { + String hello = "hello world!"; + + public User getAllUser(); + + int CreationPoem(Poem poem); + + int UpdatePoem(Poem poem); + + List finePoemByUserId(@Param("userId") Long userId); + + Poem fineDynastyByPoemId(@Param("poemId") Long poemId); + + List fineDynastyByPoemName(@Param("poemName") String poemName); + + List finePoemByUserName(@Param("username") String username); + + int DeletePoem(@Param("poemId") Long poemId); +} diff --git a/poetry-provider-poem-8501/src/main/java/com/jacklei/poetry/service/Impl/PoemServiceImpl.java b/poetry-provider-poem-8501/src/main/java/com/jacklei/poetry/service/Impl/PoemServiceImpl.java new file mode 100644 index 0000000..ed1ea1f --- /dev/null +++ b/poetry-provider-poem-8501/src/main/java/com/jacklei/poetry/service/Impl/PoemServiceImpl.java @@ -0,0 +1,76 @@ +package com.jacklei.poetry.service.Impl; + +import com.jacklei.poetry.entities.Poem; +import com.jacklei.poetry.entities.User; +import com.jacklei.poetry.mapper.PoemDao; +import com.jacklei.poetry.service.PoemService; +import com.jacklei.poetry.util.TimeUtil; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import sun.rmi.runtime.Log; + +import javax.annotation.Resource; +import java.util.List; + +@Service +public class PoemServiceImpl implements PoemService { + + @Resource + private PoemDao poemDao; + + @Override + public String test() { + return poemDao.hello; + } + + @Override + public User getAllUser() { + return poemDao.getAllUser(); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean CreationPoem( Poem poem)throws Exception { + poem.setTime(TimeUtil.getTime()); + int result=poemDao.CreationPoem(poem); + if(result==1)return true; + return false; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean UpdatePoem(Poem poem) throws Exception{ + poem.setTime(TimeUtil.getTime()); + int result=poemDao.UpdatePoem(poem); + if(result==1)return true; + return false; + } + + @Override + public List finePoemByUserId(Long userId) { + return poemDao.finePoemByUserId(userId); + } + + @Override + public Poem fineDynastyByPoemId(Long dynastyId) { + return poemDao.fineDynastyByPoemId(dynastyId); + } + + @Override + public List fineDynastyByPoemName(String poemName) { + return poemDao.fineDynastyByPoemName(poemName); + } + + @Override + public List finePoemByUserName(String username) { + return poemDao.finePoemByUserName(username); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean DeletePoem(Long poemId) throws Exception{ + int result=poemDao.DeletePoem(poemId); + if(result==1)return true; + return false; + } +} diff --git a/poetry-provider-poem-8501/src/main/java/com/jacklei/poetry/service/PoemService.java b/poetry-provider-poem-8501/src/main/java/com/jacklei/poetry/service/PoemService.java new file mode 100644 index 0000000..4bd43b9 --- /dev/null +++ b/poetry-provider-poem-8501/src/main/java/com/jacklei/poetry/service/PoemService.java @@ -0,0 +1,28 @@ +package com.jacklei.poetry.service; + +import com.jacklei.poetry.entities.Poem; +import com.jacklei.poetry.entities.User; +import sun.rmi.runtime.Log; + +import java.util.List; + +public interface PoemService { + + String test(); + + User getAllUser(); + + boolean CreationPoem(Poem poem) throws Exception; + + boolean UpdatePoem(Poem poem) throws Exception; + + List finePoemByUserId(Long userId); + + Poem fineDynastyByPoemId(Long dynastyId); + + List fineDynastyByPoemName(String poemName); + + List finePoemByUserName(String username); + + boolean DeletePoem(Long poemId) throws Exception; +} diff --git a/poetry-provider-poem-8501/src/main/java/com/jacklei/poetry/util/JWTTokenUtil.java b/poetry-provider-poem-8501/src/main/java/com/jacklei/poetry/util/JWTTokenUtil.java new file mode 100644 index 0000000..42f20d9 --- /dev/null +++ b/poetry-provider-poem-8501/src/main/java/com/jacklei/poetry/util/JWTTokenUtil.java @@ -0,0 +1,58 @@ +package com.jacklei.poetry.util; + + +import com.auth0.jwt.JWT; +import com.auth0.jwt.JWTVerifier; +import com.auth0.jwt.algorithms.Algorithm; +import com.auth0.jwt.exceptions.JWTCreationException; +import com.auth0.jwt.exceptions.JWTVerificationException; +import com.auth0.jwt.interfaces.DecodedJWT; + +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +public class JWTTokenUtil { + //设置过期时间 + private static final long EXPIRE_DATE = 30*60*100000; + //token密钥 + private static final String TOKEN_SECRET ="ZCfasfhuaUUHufguGuwu2020BQWE"; + + public static String token (String username ,String password){ + String token = ""; + + try { + //过期时间 + Date date =new Date(System.currentTimeMillis()+EXPIRE_DATE); + //密钥及加密算法 + Algorithm algorithm = Algorithm.HMAC256(TOKEN_SECRET); + //设置头部信息 + Map header = new HashMap<>(); + header.put("typ","JWT"); + header.put("alg","Hs256"); + //携带username,password信息,生成签名 + token = JWT.create(). + withHeader(header). + withClaim("username",username). + withExpiresAt(date).sign(algorithm); + } catch (JWTCreationException e) { + e.printStackTrace(); + return null; + } + return token; + } + + public static boolean verify(String token){ + + try { + Algorithm algorithm =Algorithm.HMAC256(TOKEN_SECRET); + JWTVerifier verifier = JWT.require(algorithm).build(); + DecodedJWT jwt = verifier.verify(token); + return true; + } catch (JWTVerificationException e) { + e.printStackTrace(); + } + return false; + } + +} diff --git a/poetry-provider-poem-8501/src/main/resources/application.yaml b/poetry-provider-poem-8501/src/main/resources/application.yaml new file mode 100644 index 0000000..1ac9ad9 --- /dev/null +++ b/poetry-provider-poem-8501/src/main/resources/application.yaml @@ -0,0 +1,69 @@ +#server: +# port: 8501 +#spring: +# application: +# name: poetry-provider-poem +# main: +# allow-circular-references: true +# datasource: +# driver-class-name: com.mysql.cj.jdbc.Driver +# url: jdbc:mysql://rm-2zev06vdy0t736mpl9o.mysql.rds.aliyuncs.com:3306/fourseasons?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true +# username: root +# password: Hyckr6rwzsn! +# cloud: +# sentinel: +# transport: +# dashboard: 81.70.104.6:8080 +# datasource: +# ds1: +# nacos: +# server-addr: 81.70.104.6:8848 +# dataId: cloudalibaba-sentinel-service +# groupId: SENTINEL_GROUP +# data_type: json +# rule_type: flow +# namespace: 45d907a1-7646-40b0-8502-b8610335271f +# nacos: +# discovery: +# server-addr: 81.70.104.6:8848 +#feign: +# sentinel: +# enabled: true +#mybatis: +# type-aliases-package: com.jacklei.poetry.entities +# mapper-locations: classpath:mapper/*.xml + +server: + port: 8501 +spring: + application: + name: poetry-provider-poem + main: + allow-circular-references: true + datasource: + driver-class-name: com.mysql.jdbc.Driver + url: jdbc:mysql://127.0.0.1:3306/shici?useUnicode=true&characterEncoding=utf8&useSSL=false + username: shici + password: 123456 + cloud: + sentinel: + transport: + dashboard: 127.0.0.1:8080 + datasource: + ds1: + nacos: + server-addr: 127.0.0.1:8848 + dataId: cloudalibaba-sentinel-service + groupId: SENTINEL_GROUP + data_type: json + rule_type: flow + namespace: 45d907a1-7646-40b0-8502-b8610335271f + nacos: + discovery: + server-addr: 127.0.0.1:8848 +feign: + sentinel: + enabled: true +mybatis: + type-aliases-package: com.jacklei.poetry.entities + mapper-locations: classpath:mapper/*.xml \ No newline at end of file diff --git a/poetry-provider-poem-8501/src/main/resources/mapper/PoemMapper.xml b/poetry-provider-poem-8501/src/main/resources/mapper/PoemMapper.xml new file mode 100644 index 0000000..0394e59 --- /dev/null +++ b/poetry-provider-poem-8501/src/main/resources/mapper/PoemMapper.xml @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + insert into + t_poem (poem_name,poem_user,poem_information,givelike,collection,`explain`,`time`) + values (#{poemName},#{poemUser},#{poemInformation},0,0,#{explain},#{time}); + + + + update t_poem + set + poem_name=#{poemName}, + poem_information=#{poemInformation}, + `explain`=#{explain}, + `time` = #{time} + where + poem_id = #{poemId}; + + + + + + + + + + + + delete from t_poem where + poem_id = #{poemId} + + \ No newline at end of file diff --git a/poetry-provider-poem-8501/target/classes/application.yaml b/poetry-provider-poem-8501/target/classes/application.yaml new file mode 100644 index 0000000..1ac9ad9 --- /dev/null +++ b/poetry-provider-poem-8501/target/classes/application.yaml @@ -0,0 +1,69 @@ +#server: +# port: 8501 +#spring: +# application: +# name: poetry-provider-poem +# main: +# allow-circular-references: true +# datasource: +# driver-class-name: com.mysql.cj.jdbc.Driver +# url: jdbc:mysql://rm-2zev06vdy0t736mpl9o.mysql.rds.aliyuncs.com:3306/fourseasons?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true +# username: root +# password: Hyckr6rwzsn! +# cloud: +# sentinel: +# transport: +# dashboard: 81.70.104.6:8080 +# datasource: +# ds1: +# nacos: +# server-addr: 81.70.104.6:8848 +# dataId: cloudalibaba-sentinel-service +# groupId: SENTINEL_GROUP +# data_type: json +# rule_type: flow +# namespace: 45d907a1-7646-40b0-8502-b8610335271f +# nacos: +# discovery: +# server-addr: 81.70.104.6:8848 +#feign: +# sentinel: +# enabled: true +#mybatis: +# type-aliases-package: com.jacklei.poetry.entities +# mapper-locations: classpath:mapper/*.xml + +server: + port: 8501 +spring: + application: + name: poetry-provider-poem + main: + allow-circular-references: true + datasource: + driver-class-name: com.mysql.jdbc.Driver + url: jdbc:mysql://127.0.0.1:3306/shici?useUnicode=true&characterEncoding=utf8&useSSL=false + username: shici + password: 123456 + cloud: + sentinel: + transport: + dashboard: 127.0.0.1:8080 + datasource: + ds1: + nacos: + server-addr: 127.0.0.1:8848 + dataId: cloudalibaba-sentinel-service + groupId: SENTINEL_GROUP + data_type: json + rule_type: flow + namespace: 45d907a1-7646-40b0-8502-b8610335271f + nacos: + discovery: + server-addr: 127.0.0.1:8848 +feign: + sentinel: + enabled: true +mybatis: + type-aliases-package: com.jacklei.poetry.entities + mapper-locations: classpath:mapper/*.xml \ No newline at end of file diff --git a/poetry-provider-poem-8501/target/classes/com/jacklei/poetry/PoemProviderMain8501.class b/poetry-provider-poem-8501/target/classes/com/jacklei/poetry/PoemProviderMain8501.class new file mode 100644 index 0000000..3926395 Binary files /dev/null and b/poetry-provider-poem-8501/target/classes/com/jacklei/poetry/PoemProviderMain8501.class differ diff --git a/poetry-provider-poem-8501/target/classes/com/jacklei/poetry/config/MyBatisConfig.class b/poetry-provider-poem-8501/target/classes/com/jacklei/poetry/config/MyBatisConfig.class new file mode 100644 index 0000000..7d2c56b Binary files /dev/null and b/poetry-provider-poem-8501/target/classes/com/jacklei/poetry/config/MyBatisConfig.class differ diff --git a/poetry-provider-poem-8501/target/classes/com/jacklei/poetry/controller/PoemController.class b/poetry-provider-poem-8501/target/classes/com/jacklei/poetry/controller/PoemController.class new file mode 100644 index 0000000..42feac9 Binary files /dev/null and b/poetry-provider-poem-8501/target/classes/com/jacklei/poetry/controller/PoemController.class differ diff --git a/poetry-provider-poem-8501/target/classes/com/jacklei/poetry/mapper/PoemDao.class b/poetry-provider-poem-8501/target/classes/com/jacklei/poetry/mapper/PoemDao.class new file mode 100644 index 0000000..dbc8fd1 Binary files /dev/null and b/poetry-provider-poem-8501/target/classes/com/jacklei/poetry/mapper/PoemDao.class differ diff --git a/poetry-provider-poem-8501/target/classes/com/jacklei/poetry/service/Impl/PoemServiceImpl.class b/poetry-provider-poem-8501/target/classes/com/jacklei/poetry/service/Impl/PoemServiceImpl.class new file mode 100644 index 0000000..69f1526 Binary files /dev/null and b/poetry-provider-poem-8501/target/classes/com/jacklei/poetry/service/Impl/PoemServiceImpl.class differ diff --git a/poetry-provider-poem-8501/target/classes/com/jacklei/poetry/service/PoemService.class b/poetry-provider-poem-8501/target/classes/com/jacklei/poetry/service/PoemService.class new file mode 100644 index 0000000..5dd763b Binary files /dev/null and b/poetry-provider-poem-8501/target/classes/com/jacklei/poetry/service/PoemService.class differ diff --git a/poetry-provider-poem-8501/target/classes/com/jacklei/poetry/util/JWTTokenUtil.class b/poetry-provider-poem-8501/target/classes/com/jacklei/poetry/util/JWTTokenUtil.class new file mode 100644 index 0000000..82b42c1 Binary files /dev/null and b/poetry-provider-poem-8501/target/classes/com/jacklei/poetry/util/JWTTokenUtil.class differ diff --git a/poetry-provider-poem-8501/target/classes/mapper/PoemMapper.xml b/poetry-provider-poem-8501/target/classes/mapper/PoemMapper.xml new file mode 100644 index 0000000..0394e59 --- /dev/null +++ b/poetry-provider-poem-8501/target/classes/mapper/PoemMapper.xml @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + insert into + t_poem (poem_name,poem_user,poem_information,givelike,collection,`explain`,`time`) + values (#{poemName},#{poemUser},#{poemInformation},0,0,#{explain},#{time}); + + + + update t_poem + set + poem_name=#{poemName}, + poem_information=#{poemInformation}, + `explain`=#{explain}, + `time` = #{time} + where + poem_id = #{poemId}; + + + + + + + + + + + + delete from t_poem where + poem_id = #{poemId} + + \ No newline at end of file diff --git a/poetry-provider-poem-8501/target/maven-archiver/pom.properties b/poetry-provider-poem-8501/target/maven-archiver/pom.properties new file mode 100644 index 0000000..39bef4d --- /dev/null +++ b/poetry-provider-poem-8501/target/maven-archiver/pom.properties @@ -0,0 +1,5 @@ +#Generated by Maven +#Sat Mar 26 00:27:05 CST 2022 +version=1.0-SNAPSHOT +groupId=com.jacklei.poetry +artifactId=poetry-provider-poem-8501 diff --git a/poetry-provider-poem-8501/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/poetry-provider-poem-8501/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..104cc88 --- /dev/null +++ b/poetry-provider-poem-8501/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,7 @@ +com\jacklei\poetry\config\MyBatisConfig.class +com\jacklei\poetry\PoemProviderMain8501.class +com\jacklei\poetry\service\PoemService.class +com\jacklei\poetry\mapper\PoemDao.class +com\jacklei\poetry\service\Impl\PoemServiceImpl.class +com\jacklei\poetry\util\JWTTokenUtil.class +com\jacklei\poetry\controller\PoemController.class diff --git a/poetry-provider-poem-8501/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/poetry-provider-poem-8501/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..f2372cc --- /dev/null +++ b/poetry-provider-poem-8501/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,7 @@ +C:\Users\lenovo\Desktop\后端源码\poetry-provider-poem-8501\src\main\java\com\jacklei\poetry\controller\PoemController.java +C:\Users\lenovo\Desktop\后端源码\poetry-provider-poem-8501\src\main\java\com\jacklei\poetry\mapper\PoemDao.java +C:\Users\lenovo\Desktop\后端源码\poetry-provider-poem-8501\src\main\java\com\jacklei\poetry\PoemProviderMain8501.java +C:\Users\lenovo\Desktop\后端源码\poetry-provider-poem-8501\src\main\java\com\jacklei\poetry\service\PoemService.java +C:\Users\lenovo\Desktop\后端源码\poetry-provider-poem-8501\src\main\java\com\jacklei\poetry\config\MyBatisConfig.java +C:\Users\lenovo\Desktop\后端源码\poetry-provider-poem-8501\src\main\java\com\jacklei\poetry\service\Impl\PoemServiceImpl.java +C:\Users\lenovo\Desktop\后端源码\poetry-provider-poem-8501\src\main\java\com\jacklei\poetry\util\JWTTokenUtil.java diff --git a/poetry-provider-poem-8501/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/poetry-provider-poem-8501/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/poetry-provider-poem-8501/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/poetry-provider-poem-8501/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/poetry-provider-poem-8501/target/poetry-provider-poem-8501-1.0-SNAPSHOT.jar b/poetry-provider-poem-8501/target/poetry-provider-poem-8501-1.0-SNAPSHOT.jar new file mode 100644 index 0000000..87d3991 Binary files /dev/null and b/poetry-provider-poem-8501/target/poetry-provider-poem-8501-1.0-SNAPSHOT.jar differ diff --git a/poetry-provider-poem-8501/target/poetry-provider-poem-8501-1.0-SNAPSHOT.jar.original b/poetry-provider-poem-8501/target/poetry-provider-poem-8501-1.0-SNAPSHOT.jar.original new file mode 100644 index 0000000..528314d Binary files /dev/null and b/poetry-provider-poem-8501/target/poetry-provider-poem-8501-1.0-SNAPSHOT.jar.original differ diff --git a/poetry-provider-user-8503/poetry-provider-user-8503.iml b/poetry-provider-user-8503/poetry-provider-user-8503.iml new file mode 100644 index 0000000..fe72a46 --- /dev/null +++ b/poetry-provider-user-8503/poetry-provider-user-8503.iml @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/poetry-provider-user-8503/pom.xml b/poetry-provider-user-8503/pom.xml new file mode 100644 index 0000000..aec139a --- /dev/null +++ b/poetry-provider-user-8503/pom.xml @@ -0,0 +1,146 @@ + + + + PoetryOfTheFourSeasons + com.jacklei.poetry + 1.0-SNAPSHOT + + 4.0.0 + + poetry-provider-user-8503 + + + + + com.auth0 + java-jwt + 3.8.2 + + + + com.jacklei.poetry + poetry-api-commons + 1.0-SNAPSHOT + + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + 2.2.7.RELEASE + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + 2.2.7.RELEASE + + + org.springframework.cloud + spring-cloud-starter-netflix-ribbon + + + + + org.springframework.cloud + spring-cloud-loadbalancer + + + + + + com.alibaba.csp + sentinel-datasource-nacos + + + + + com.alibaba.nacos + nacos-client + 1.4.2 + + + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + org.springframework.boot + spring-boot-starter-jdbc + + + + mysql + mysql-connector-java + 8.0.27 + + + com.alibaba + druid-spring-boot-starter + 1.1.10 + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + 2.2.2 + + + org.springframework.boot + spring-boot-starter-test + test + + + org.projectlombok + lombok + true + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.8 + 1.8 + + + + org.springframework.boot + spring-boot-maven-plugin + 2.2.2.RELEASE + + + com.jacklei.poetry.UserProviderMain8503 + + + + + repackage + + + + + + + + \ No newline at end of file diff --git a/poetry-provider-user-8503/src/main/java/com/jacklei/poetry/UserProviderMain8503.java b/poetry-provider-user-8503/src/main/java/com/jacklei/poetry/UserProviderMain8503.java new file mode 100644 index 0000000..66b2a84 --- /dev/null +++ b/poetry-provider-user-8503/src/main/java/com/jacklei/poetry/UserProviderMain8503.java @@ -0,0 +1,13 @@ +package com.jacklei.poetry; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; + +@SpringBootApplication +@EnableDiscoveryClient +public class UserProviderMain8503 { + public static void main(String[] args) { + SpringApplication.run(UserProviderMain8503.class,args); + } +} diff --git a/poetry-provider-user-8503/src/main/java/com/jacklei/poetry/config/LoginHandlerInterceptor.java b/poetry-provider-user-8503/src/main/java/com/jacklei/poetry/config/LoginHandlerInterceptor.java new file mode 100644 index 0000000..7e91a15 --- /dev/null +++ b/poetry-provider-user-8503/src/main/java/com/jacklei/poetry/config/LoginHandlerInterceptor.java @@ -0,0 +1,56 @@ +package com.jacklei.poetry.config; + +import com.jacklei.poetry.util.JWTTokenUtil; +import org.springframework.web.servlet.HandlerInterceptor; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +public class LoginHandlerInterceptor implements HandlerInterceptor { + + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + String token = request.getHeader("token"); + System.err.println(token); + if(token==null||token.isEmpty()){ + //没有 token + request.setAttribute("msg","没有权限,请重新登录!"); + request.getRequestDispatcher("/do/login/token").forward(request,response); + return false; + } + else if(JWTTokenUtil.verify(token)){return true;}//正常token + else{ + request.setAttribute("msg","登录时间过长,请重新登录!"); + request.getRequestDispatcher("/do/login/token").forward(request,response); + return false; + } + /* Object LoginUser = request.getSession().getAttribute("user"); + if(LoginUser==null){ + request.setAttribute("msg","没有权限,请重新登录!"); + request.getRequestDispatcher("/consumer/login").forward(request,response); + + return false; + }else*/ + /*response.setHeader("Access-Control-Allow-Origin", "*"); + response.setHeader("Access-Control-Allow-Headers", "X-Requested-With"); + response.setHeader("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS"); + response.setHeader("X-Powered-By","3.2.1"); + response.setHeader("Access-Control-Allow-Credentials","true"); + response.setHeader("Content-Type", "application/json;charset=utf-8"); +*/ + + + + } + + @Override + public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { + + } + + @Override + public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { + + } +} diff --git a/poetry-provider-user-8503/src/main/java/com/jacklei/poetry/config/MyBatisConfig.java b/poetry-provider-user-8503/src/main/java/com/jacklei/poetry/config/MyBatisConfig.java new file mode 100644 index 0000000..646089b --- /dev/null +++ b/poetry-provider-user-8503/src/main/java/com/jacklei/poetry/config/MyBatisConfig.java @@ -0,0 +1,9 @@ +package com.jacklei.poetry.config; + +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.context.annotation.Configuration; + +@Configuration +@MapperScan(basePackages = "com.jacklei.poetry.mapper") +public class MyBatisConfig { +} diff --git a/poetry-provider-user-8503/src/main/java/com/jacklei/poetry/config/MyMvcConfig.java b/poetry-provider-user-8503/src/main/java/com/jacklei/poetry/config/MyMvcConfig.java new file mode 100644 index 0000000..714c818 --- /dev/null +++ b/poetry-provider-user-8503/src/main/java/com/jacklei/poetry/config/MyMvcConfig.java @@ -0,0 +1,16 @@ +package com.jacklei.poetry.config; + +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration +public class MyMvcConfig implements WebMvcConfigurer { + + @Override + public void addInterceptors(InterceptorRegistry registry) { +// registry.addInterceptor(new LoginHandlerInterceptor()).addPathPatterns("/**"). +// excludePathPatterns("/**/do/**","/do/**"); + //registry.addInterceptor(new LoginHandlerInterceptor()); + } +} diff --git a/poetry-provider-user-8503/src/main/java/com/jacklei/poetry/controller/UserController.java b/poetry-provider-user-8503/src/main/java/com/jacklei/poetry/controller/UserController.java new file mode 100644 index 0000000..2c25041 --- /dev/null +++ b/poetry-provider-user-8503/src/main/java/com/jacklei/poetry/controller/UserController.java @@ -0,0 +1,97 @@ +package com.jacklei.poetry.controller; + +import com.jacklei.poetry.entities.CommonResult; +import com.jacklei.poetry.entities.User; +import com.jacklei.poetry.sevice.UserService; +import com.jacklei.poetry.util.JWTTokenUtil; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; + +import org.springframework.web.bind.annotation.*; + + +import javax.servlet.http.HttpServletRequest; + +import java.util.HashMap; +import java.util.Map; + +@CrossOrigin +@RestController +@Slf4j +public class UserController { + + @Autowired + private UserService userService; + + /** + *登录接口 + * @param email:用户的email + * @param password:用户的密码 + * @return + */ + @GetMapping("/provider/do/user/login") + public CommonResult login(@RequestParam("email") String email, @RequestParam("password")String password){ + log.info("进入登陆后端的提供者controller"+email+"+++++"+password); + User user= userService.login(email, password); + + if(user==null) return new CommonResult(400,"邮箱或密码错误,请重新登录!"); + String token = JWTTokenUtil.token(user.getEmail(), user.getPassword()); + Map result = new HashMap<>(); + result.put("user",user); + result.put("token",token); + return new CommonResult(result); + } + + //给前端通知 Token 异常 + @GetMapping("/do/login/token") + public CommonResult doLoginToken ( HttpServletRequest request ){ + Object msg = request.getAttribute("msg"); + return new CommonResult(201,"token异常",msg); + } + + /** + * 注册 + * @param user :{ + * userId + * username + * email + * password + * } + * @return + */ + @PostMapping("/provider/do/user/registered") + public CommonResult registered(@RequestBody(required = false) User user) throws Exception { + log.info("进入注册后台的提供者controller : user"+user); + boolean result=userService.registered(user); + if(!result) return new CommonResult(400,"邮箱已被注册,请确认的你的邮箱"); + return new CommonResult(null); + } + + /** + * 通过id查用户的所有信息 + * @param id:用户的userId + * @return + */ + @GetMapping("/provider/user/fineById/{userId}") + public CommonResult fineById(@PathVariable("userId")Long id){ + log.info("进入寻找后台的提供者controller : user"+id); + User result=userService.fineById(id); + if(result==null) return new CommonResult(400,"此用户,已不存在了!"); + return new CommonResult(result); + } + + /** + * 修改账户的信息 + * @param user + * @return + */ + @PostMapping("/provider/user/modification") + public CommonResult modification(@RequestBody User user) throws Exception { + log.info("进入修改后台的提供者controller : user"+user); + boolean result=userService.modification(user); + if(!result) return new CommonResult(400,"信息修改失败,有格式错误!"); + return new CommonResult(null); + } + + +} diff --git a/poetry-provider-user-8503/src/main/java/com/jacklei/poetry/mapper/UserDao.java b/poetry-provider-user-8503/src/main/java/com/jacklei/poetry/mapper/UserDao.java new file mode 100644 index 0000000..9b7afe0 --- /dev/null +++ b/poetry-provider-user-8503/src/main/java/com/jacklei/poetry/mapper/UserDao.java @@ -0,0 +1,17 @@ +package com.jacklei.poetry.mapper; + +import com.jacklei.poetry.entities.User; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +@Mapper +public interface UserDao { + User login(@Param("email") String email, @Param("password") String password); + + int registered(User user); + + User fineById(@Param("userId")Long id); + + int modification(User user); + +} diff --git a/poetry-provider-user-8503/src/main/java/com/jacklei/poetry/sevice/Impl/UserServiceImpl.java b/poetry-provider-user-8503/src/main/java/com/jacklei/poetry/sevice/Impl/UserServiceImpl.java new file mode 100644 index 0000000..02c6d1a --- /dev/null +++ b/poetry-provider-user-8503/src/main/java/com/jacklei/poetry/sevice/Impl/UserServiceImpl.java @@ -0,0 +1,44 @@ +package com.jacklei.poetry.sevice.Impl; + +import com.jacklei.poetry.entities.CommonResult; +import com.jacklei.poetry.entities.User; +import com.jacklei.poetry.mapper.UserDao; +import com.jacklei.poetry.sevice.UserService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; + +@Service +public class UserServiceImpl implements UserService { + + @Resource + private UserDao userDao; + + @Override + public User login(String email, String password) { + return userDao.login(email,password); + } + + @Override + @Transactional(rollbackFor=Exception.class) + public boolean registered(User user) throws Exception{ + int result=userDao.registered(user); + if(result==1)return true; + return false; + } + + @Override + public User fineById(Long id) { + return userDao.fineById(id); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean modification(User user) throws Exception{ + int result=userDao.modification(user); + if(result==1)return true; + return false; + } + +} diff --git a/poetry-provider-user-8503/src/main/java/com/jacklei/poetry/sevice/UserService.java b/poetry-provider-user-8503/src/main/java/com/jacklei/poetry/sevice/UserService.java new file mode 100644 index 0000000..131ba87 --- /dev/null +++ b/poetry-provider-user-8503/src/main/java/com/jacklei/poetry/sevice/UserService.java @@ -0,0 +1,14 @@ +package com.jacklei.poetry.sevice; + +import com.jacklei.poetry.entities.User; + +public interface UserService { + User login(String email, String password); + + + boolean registered(User user) throws Exception; + + User fineById(Long id); + + boolean modification(User user) throws Exception; +} diff --git a/poetry-provider-user-8503/src/main/java/com/jacklei/poetry/util/JWTTokenUtil.java b/poetry-provider-user-8503/src/main/java/com/jacklei/poetry/util/JWTTokenUtil.java new file mode 100644 index 0000000..42f20d9 --- /dev/null +++ b/poetry-provider-user-8503/src/main/java/com/jacklei/poetry/util/JWTTokenUtil.java @@ -0,0 +1,58 @@ +package com.jacklei.poetry.util; + + +import com.auth0.jwt.JWT; +import com.auth0.jwt.JWTVerifier; +import com.auth0.jwt.algorithms.Algorithm; +import com.auth0.jwt.exceptions.JWTCreationException; +import com.auth0.jwt.exceptions.JWTVerificationException; +import com.auth0.jwt.interfaces.DecodedJWT; + +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +public class JWTTokenUtil { + //设置过期时间 + private static final long EXPIRE_DATE = 30*60*100000; + //token密钥 + private static final String TOKEN_SECRET ="ZCfasfhuaUUHufguGuwu2020BQWE"; + + public static String token (String username ,String password){ + String token = ""; + + try { + //过期时间 + Date date =new Date(System.currentTimeMillis()+EXPIRE_DATE); + //密钥及加密算法 + Algorithm algorithm = Algorithm.HMAC256(TOKEN_SECRET); + //设置头部信息 + Map header = new HashMap<>(); + header.put("typ","JWT"); + header.put("alg","Hs256"); + //携带username,password信息,生成签名 + token = JWT.create(). + withHeader(header). + withClaim("username",username). + withExpiresAt(date).sign(algorithm); + } catch (JWTCreationException e) { + e.printStackTrace(); + return null; + } + return token; + } + + public static boolean verify(String token){ + + try { + Algorithm algorithm =Algorithm.HMAC256(TOKEN_SECRET); + JWTVerifier verifier = JWT.require(algorithm).build(); + DecodedJWT jwt = verifier.verify(token); + return true; + } catch (JWTVerificationException e) { + e.printStackTrace(); + } + return false; + } + +} diff --git a/poetry-provider-user-8503/src/main/resources/application.yaml b/poetry-provider-user-8503/src/main/resources/application.yaml new file mode 100644 index 0000000..497cbb0 --- /dev/null +++ b/poetry-provider-user-8503/src/main/resources/application.yaml @@ -0,0 +1,37 @@ +server: + port: 8503 +spring: + application: + name: poetry-provider-user + main: + allow-circular-references: true + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver +# url: jdbc:mysql://localhost:3306/fourseasons?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true +# username: root +# password: 123456 + url: jdbc:mysql://127.0.0.1:3306/shici?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true + username: shici + password: 123456 + cloud: + sentinel: + transport: + dashboard: 127.0.0.1:8080 + datasource: + ds1: + nacos: + server-addr: 127.0.0.1:8848 + dataId: cloudalibaba-sentinel-service + groupId: SENTINEL_GROUP + data_type: json + rule_type: flow + namespace: 45d907a1-7646-40b0-8502-b8610335271f + nacos: + discovery: + server-addr: 127.0.0.1:8848 +feign: + sentinel: + enabled: true +mybatis: + type-aliases-package: com.jacklei.poetry.entities + mapper-locations: classpath:mapper/*.xml \ No newline at end of file diff --git a/poetry-provider-user-8503/src/main/resources/mapper/UserMapper.xml b/poetry-provider-user-8503/src/main/resources/mapper/UserMapper.xml new file mode 100644 index 0000000..cd29f3f --- /dev/null +++ b/poetry-provider-user-8503/src/main/resources/mapper/UserMapper.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + insert into t_user (username,password,email) + values (#{username},#{password},#{email}); + + + + + update t_user + set username = #{username},password=#{password} + where user_id=#{userId}; + + \ No newline at end of file diff --git a/poetry-provider-user-8503/target/classes/application.yaml b/poetry-provider-user-8503/target/classes/application.yaml new file mode 100644 index 0000000..497cbb0 --- /dev/null +++ b/poetry-provider-user-8503/target/classes/application.yaml @@ -0,0 +1,37 @@ +server: + port: 8503 +spring: + application: + name: poetry-provider-user + main: + allow-circular-references: true + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver +# url: jdbc:mysql://localhost:3306/fourseasons?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true +# username: root +# password: 123456 + url: jdbc:mysql://127.0.0.1:3306/shici?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true + username: shici + password: 123456 + cloud: + sentinel: + transport: + dashboard: 127.0.0.1:8080 + datasource: + ds1: + nacos: + server-addr: 127.0.0.1:8848 + dataId: cloudalibaba-sentinel-service + groupId: SENTINEL_GROUP + data_type: json + rule_type: flow + namespace: 45d907a1-7646-40b0-8502-b8610335271f + nacos: + discovery: + server-addr: 127.0.0.1:8848 +feign: + sentinel: + enabled: true +mybatis: + type-aliases-package: com.jacklei.poetry.entities + mapper-locations: classpath:mapper/*.xml \ No newline at end of file diff --git a/poetry-provider-user-8503/target/classes/com/jacklei/poetry/UserProviderMain8503.class b/poetry-provider-user-8503/target/classes/com/jacklei/poetry/UserProviderMain8503.class new file mode 100644 index 0000000..c1c739d Binary files /dev/null and b/poetry-provider-user-8503/target/classes/com/jacklei/poetry/UserProviderMain8503.class differ diff --git a/poetry-provider-user-8503/target/classes/com/jacklei/poetry/config/LoginHandlerInterceptor.class b/poetry-provider-user-8503/target/classes/com/jacklei/poetry/config/LoginHandlerInterceptor.class new file mode 100644 index 0000000..339280c Binary files /dev/null and b/poetry-provider-user-8503/target/classes/com/jacklei/poetry/config/LoginHandlerInterceptor.class differ diff --git a/poetry-provider-user-8503/target/classes/com/jacklei/poetry/config/MyBatisConfig.class b/poetry-provider-user-8503/target/classes/com/jacklei/poetry/config/MyBatisConfig.class new file mode 100644 index 0000000..7d2c56b Binary files /dev/null and b/poetry-provider-user-8503/target/classes/com/jacklei/poetry/config/MyBatisConfig.class differ diff --git a/poetry-provider-user-8503/target/classes/com/jacklei/poetry/config/MyMvcConfig.class b/poetry-provider-user-8503/target/classes/com/jacklei/poetry/config/MyMvcConfig.class new file mode 100644 index 0000000..82a0b56 Binary files /dev/null and b/poetry-provider-user-8503/target/classes/com/jacklei/poetry/config/MyMvcConfig.class differ diff --git a/poetry-provider-user-8503/target/classes/com/jacklei/poetry/controller/UserController.class b/poetry-provider-user-8503/target/classes/com/jacklei/poetry/controller/UserController.class new file mode 100644 index 0000000..e080adf Binary files /dev/null and b/poetry-provider-user-8503/target/classes/com/jacklei/poetry/controller/UserController.class differ diff --git a/poetry-provider-user-8503/target/classes/com/jacklei/poetry/mapper/UserDao.class b/poetry-provider-user-8503/target/classes/com/jacklei/poetry/mapper/UserDao.class new file mode 100644 index 0000000..895d7c3 Binary files /dev/null and b/poetry-provider-user-8503/target/classes/com/jacklei/poetry/mapper/UserDao.class differ diff --git a/poetry-provider-user-8503/target/classes/com/jacklei/poetry/sevice/Impl/UserServiceImpl.class b/poetry-provider-user-8503/target/classes/com/jacklei/poetry/sevice/Impl/UserServiceImpl.class new file mode 100644 index 0000000..62bb441 Binary files /dev/null and b/poetry-provider-user-8503/target/classes/com/jacklei/poetry/sevice/Impl/UserServiceImpl.class differ diff --git a/poetry-provider-user-8503/target/classes/com/jacklei/poetry/sevice/UserService.class b/poetry-provider-user-8503/target/classes/com/jacklei/poetry/sevice/UserService.class new file mode 100644 index 0000000..eab4929 Binary files /dev/null and b/poetry-provider-user-8503/target/classes/com/jacklei/poetry/sevice/UserService.class differ diff --git a/poetry-provider-user-8503/target/classes/com/jacklei/poetry/util/JWTTokenUtil.class b/poetry-provider-user-8503/target/classes/com/jacklei/poetry/util/JWTTokenUtil.class new file mode 100644 index 0000000..82b42c1 Binary files /dev/null and b/poetry-provider-user-8503/target/classes/com/jacklei/poetry/util/JWTTokenUtil.class differ diff --git a/poetry-provider-user-8503/target/classes/mapper/UserMapper.xml b/poetry-provider-user-8503/target/classes/mapper/UserMapper.xml new file mode 100644 index 0000000..cd29f3f --- /dev/null +++ b/poetry-provider-user-8503/target/classes/mapper/UserMapper.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + insert into t_user (username,password,email) + values (#{username},#{password},#{email}); + + + + + update t_user + set username = #{username},password=#{password} + where user_id=#{userId}; + + \ No newline at end of file diff --git a/poetry-provider-user-8503/target/maven-archiver/pom.properties b/poetry-provider-user-8503/target/maven-archiver/pom.properties new file mode 100644 index 0000000..b75318f --- /dev/null +++ b/poetry-provider-user-8503/target/maven-archiver/pom.properties @@ -0,0 +1,5 @@ +#Generated by Maven +#Sat Mar 26 19:02:59 CST 2022 +version=1.0-SNAPSHOT +groupId=com.jacklei.poetry +artifactId=poetry-provider-user-8503 diff --git a/poetry-provider-user-8503/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/poetry-provider-user-8503/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..b909a94 --- /dev/null +++ b/poetry-provider-user-8503/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,9 @@ +com\jacklei\poetry\config\MyBatisConfig.class +com\jacklei\poetry\mapper\UserDao.class +com\jacklei\poetry\config\MyMvcConfig.class +com\jacklei\poetry\controller\UserController.class +com\jacklei\poetry\sevice\Impl\UserServiceImpl.class +com\jacklei\poetry\config\LoginHandlerInterceptor.class +com\jacklei\poetry\util\JWTTokenUtil.class +com\jacklei\poetry\sevice\UserService.class +com\jacklei\poetry\UserProviderMain8503.class diff --git a/poetry-provider-user-8503/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/poetry-provider-user-8503/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..fb2b562 --- /dev/null +++ b/poetry-provider-user-8503/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,9 @@ +C:\Users\lenovo\Desktop\后端源码\poetry-provider-user-8503\src\main\java\com\jacklei\poetry\mapper\UserDao.java +C:\Users\lenovo\Desktop\后端源码\poetry-provider-user-8503\src\main\java\com\jacklei\poetry\controller\UserController.java +C:\Users\lenovo\Desktop\后端源码\poetry-provider-user-8503\src\main\java\com\jacklei\poetry\config\MyMvcConfig.java +C:\Users\lenovo\Desktop\后端源码\poetry-provider-user-8503\src\main\java\com\jacklei\poetry\config\MyBatisConfig.java +C:\Users\lenovo\Desktop\后端源码\poetry-provider-user-8503\src\main\java\com\jacklei\poetry\sevice\UserService.java +C:\Users\lenovo\Desktop\后端源码\poetry-provider-user-8503\src\main\java\com\jacklei\poetry\config\LoginHandlerInterceptor.java +C:\Users\lenovo\Desktop\后端源码\poetry-provider-user-8503\src\main\java\com\jacklei\poetry\UserProviderMain8503.java +C:\Users\lenovo\Desktop\后端源码\poetry-provider-user-8503\src\main\java\com\jacklei\poetry\util\JWTTokenUtil.java +C:\Users\lenovo\Desktop\后端源码\poetry-provider-user-8503\src\main\java\com\jacklei\poetry\sevice\Impl\UserServiceImpl.java diff --git a/poetry-provider-user-8503/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/poetry-provider-user-8503/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/poetry-provider-user-8503/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/poetry-provider-user-8503/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/poetry-provider-user-8503/target/poetry-provider-user-8503-1.0-SNAPSHOT.jar b/poetry-provider-user-8503/target/poetry-provider-user-8503-1.0-SNAPSHOT.jar new file mode 100644 index 0000000..8f723b7 Binary files /dev/null and b/poetry-provider-user-8503/target/poetry-provider-user-8503-1.0-SNAPSHOT.jar differ diff --git a/poetry-provider-user-8503/target/poetry-provider-user-8503-1.0-SNAPSHOT.jar.original b/poetry-provider-user-8503/target/poetry-provider-user-8503-1.0-SNAPSHOT.jar.original new file mode 100644 index 0000000..0f51abe Binary files /dev/null and b/poetry-provider-user-8503/target/poetry-provider-user-8503-1.0-SNAPSHOT.jar.original differ diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..a2a3642 --- /dev/null +++ b/pom.xml @@ -0,0 +1,122 @@ + + + + 4.0.0 + + com.jacklei.poetry + PoetryOfTheFourSeasons + pom + 1.0-SNAPSHOT + + poetry-api-commons + poetry-provider-poem-8501 + poetry-provider-dynasty-8502 + poetry-provider-user-8503 + poetry-consumer-login + poetry-consumer-creation + poetry-consumer-attention + poetry-consumer-collection + poetry-consumer-givelike + poetry-consumer-comments + poetry-consumer-category + + + + PoetryOfTheFourSeasons + + http://www.example.com + + + UTF-8 + 1.8 + 1.8 + 4.12 + 1.2.17 + 1.16.18 + 5.1.47 + 1.1.16 + 1.3.0 + + + + + + + + org.springframework.boot + spring-boot-dependencies + 2.6.4 + pom + import + + + + org.springframework.cloud + spring-cloud-dependencies + 2021.0.1 + pom + import + + + + com.alibaba.cloud + spring-cloud-alibaba-dependencies + 2.2.7.RELEASE + pom + import + + + mysql + mysql-connector-java + ${mysql.version} + + + com.alibaba + druid + ${druid.version} + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + ${mybatis.spring.boot.version} + + + junit + junit + ${junit.version} + + + log4j + log4j + ${log4j.version} + + + org.projectlombok + lombok + ${lombok.version} + true + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + 1.8 + 1.8 + + + + org.apache.maven.plugins + maven-project-info-reports-plugin + 3.8.1 + + + + + \ No newline at end of file