diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..73f69e0 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..51064bf --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml new file mode 100644 index 0000000..f5b4107 --- /dev/null +++ b/.idea/dataSources.xml @@ -0,0 +1,12 @@ + + + + + mysql.8 + true + com.mysql.cj.jdbc.Driver + jdbc:mysql://8.130.70.43:3306 + $ProjectFileDir$ + + + \ No newline at end of file diff --git a/.idea/easyCodeTableSetting.xml b/.idea/easyCodeTableSetting.xml new file mode 100644 index 0000000..f17c2be --- /dev/null +++ b/.idea/easyCodeTableSetting.xml @@ -0,0 +1,285 @@ + + + + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..d8b2670 --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..6560a98 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,36 @@ + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..4dd12fb --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_3.xml b/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_3.xml new file mode 100644 index 0000000..47a7a38 --- /dev/null +++ b/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_3.xml b/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_3.xml new file mode 100644 index 0000000..b8e5850 --- /dev/null +++ b/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__cn_hutool_hutool_all_5_5_7.xml b/.idea/libraries/Maven__cn_hutool_hutool_all_5_5_7.xml new file mode 100644 index 0000000..6036b08 --- /dev/null +++ b/.idea/libraries/Maven__cn_hutool_hutool_all_5_5_7.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_alibaba_druid_1_2_18.xml b/.idea/libraries/Maven__com_alibaba_druid_1_2_18.xml new file mode 100644 index 0000000..a7b5f07 --- /dev/null +++ b/.idea/libraries/Maven__com_alibaba_druid_1_2_18.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_alibaba_druid_spring_boot_starter_1_2_18.xml b/.idea/libraries/Maven__com_alibaba_druid_spring_boot_starter_1_2_18.xml new file mode 100644 index 0000000..1edd44e --- /dev/null +++ b/.idea/libraries/Maven__com_alibaba_druid_spring_boot_starter_1_2_18.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..a11ae9e --- /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_aliyun_alibabacloud_dysmsapi20170525_2_0_24.xml b/.idea/libraries/Maven__com_aliyun_alibabacloud_dysmsapi20170525_2_0_24.xml new file mode 100644 index 0000000..d41dae6 --- /dev/null +++ b/.idea/libraries/Maven__com_aliyun_alibabacloud_dysmsapi20170525_2_0_24.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_aliyun_aliyun_gateway_pop_0_1_13_beta.xml b/.idea/libraries/Maven__com_aliyun_aliyun_gateway_pop_0_1_13_beta.xml new file mode 100644 index 0000000..d5e96e8 --- /dev/null +++ b/.idea/libraries/Maven__com_aliyun_aliyun_gateway_pop_0_1_13_beta.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_aliyun_aliyun_http_apache_0_1_13_beta.xml b/.idea/libraries/Maven__com_aliyun_aliyun_http_apache_0_1_13_beta.xml new file mode 100644 index 0000000..3cf8d7f --- /dev/null +++ b/.idea/libraries/Maven__com_aliyun_aliyun_http_apache_0_1_13_beta.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_aliyun_aliyun_java_auth_0_1_13_beta.xml b/.idea/libraries/Maven__com_aliyun_aliyun_java_auth_0_1_13_beta.xml new file mode 100644 index 0000000..a25c1ed --- /dev/null +++ b/.idea/libraries/Maven__com_aliyun_aliyun_java_auth_0_1_13_beta.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_aliyun_aliyun_java_core_0_1_13_beta.xml b/.idea/libraries/Maven__com_aliyun_aliyun_java_core_0_1_13_beta.xml new file mode 100644 index 0000000..b8993c3 --- /dev/null +++ b/.idea/libraries/Maven__com_aliyun_aliyun_java_core_0_1_13_beta.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_aliyun_aliyun_java_sdk_core_4_5_16.xml b/.idea/libraries/Maven__com_aliyun_aliyun_java_sdk_core_4_5_16.xml new file mode 100644 index 0000000..88993f3 --- /dev/null +++ b/.idea/libraries/Maven__com_aliyun_aliyun_java_sdk_core_4_5_16.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_aliyun_aliyun_java_sdk_dysmsapi_2_1_0.xml b/.idea/libraries/Maven__com_aliyun_aliyun_java_sdk_dysmsapi_2_1_0.xml new file mode 100644 index 0000000..7644916 --- /dev/null +++ b/.idea/libraries/Maven__com_aliyun_aliyun_java_sdk_dysmsapi_2_1_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_aliyun_aliyun_java_sdk_kms_2_11_0.xml b/.idea/libraries/Maven__com_aliyun_aliyun_java_sdk_kms_2_11_0.xml new file mode 100644 index 0000000..b90b489 --- /dev/null +++ b/.idea/libraries/Maven__com_aliyun_aliyun_java_sdk_kms_2_11_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_aliyun_aliyun_java_sdk_ram_3_1_0.xml b/.idea/libraries/Maven__com_aliyun_aliyun_java_sdk_ram_3_1_0.xml new file mode 100644 index 0000000..eb533a1 --- /dev/null +++ b/.idea/libraries/Maven__com_aliyun_aliyun_java_sdk_ram_3_1_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_aliyun_darabonba_java_core_0_1_13_beta.xml b/.idea/libraries/Maven__com_aliyun_darabonba_java_core_0_1_13_beta.xml new file mode 100644 index 0000000..f1df539 --- /dev/null +++ b/.idea/libraries/Maven__com_aliyun_darabonba_java_core_0_1_13_beta.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_aliyun_oss_aliyun_sdk_oss_3_15_1.xml b/.idea/libraries/Maven__com_aliyun_oss_aliyun_sdk_oss_3_15_1.xml new file mode 100644 index 0000000..569f60a --- /dev/null +++ b/.idea/libraries/Maven__com_aliyun_oss_aliyun_sdk_oss_3_15_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_baomidou_mybatis_plus_3_4_2.xml b/.idea/libraries/Maven__com_baomidou_mybatis_plus_3_4_2.xml new file mode 100644 index 0000000..3442cf8 --- /dev/null +++ b/.idea/libraries/Maven__com_baomidou_mybatis_plus_3_4_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_baomidou_mybatis_plus_annotation_3_4_1.xml b/.idea/libraries/Maven__com_baomidou_mybatis_plus_annotation_3_4_1.xml new file mode 100644 index 0000000..d1b0238 --- /dev/null +++ b/.idea/libraries/Maven__com_baomidou_mybatis_plus_annotation_3_4_1.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_baomidou_mybatis_plus_boot_starter_3_4_2.xml b/.idea/libraries/Maven__com_baomidou_mybatis_plus_boot_starter_3_4_2.xml new file mode 100644 index 0000000..45c89d5 --- /dev/null +++ b/.idea/libraries/Maven__com_baomidou_mybatis_plus_boot_starter_3_4_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_baomidou_mybatis_plus_core_3_4_1.xml b/.idea/libraries/Maven__com_baomidou_mybatis_plus_core_3_4_1.xml new file mode 100644 index 0000000..3e2b758 --- /dev/null +++ b/.idea/libraries/Maven__com_baomidou_mybatis_plus_core_3_4_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_baomidou_mybatis_plus_extension_3_4_1.xml b/.idea/libraries/Maven__com_baomidou_mybatis_plus_extension_3_4_1.xml new file mode 100644 index 0000000..677a0a3 --- /dev/null +++ b/.idea/libraries/Maven__com_baomidou_mybatis_plus_extension_3_4_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_baomidou_mybatis_plus_generator_3_4_1.xml b/.idea/libraries/Maven__com_baomidou_mybatis_plus_generator_3_4_1.xml new file mode 100644 index 0000000..73b6b92 --- /dev/null +++ b/.idea/libraries/Maven__com_baomidou_mybatis_plus_generator_3_4_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_fasterxml_classmate_1_5_1.xml b/.idea/libraries/Maven__com_fasterxml_classmate_1_5_1.xml new file mode 100644 index 0000000..4021d3b --- /dev/null +++ b/.idea/libraries/Maven__com_fasterxml_classmate_1_5_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_11_4.xml b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_11_4.xml new file mode 100644 index 0000000..2f6521e --- /dev/null +++ b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_11_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_11_4.xml b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_11_4.xml new file mode 100644 index 0000000..0e91e88 --- /dev/null +++ b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_11_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_11_4.xml b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_11_4.xml new file mode 100644 index 0000000..b5d657c --- /dev/null +++ b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_11_4.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_11_4.xml b/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_11_4.xml new file mode 100644 index 0000000..d603e3f --- /dev/null +++ b/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_11_4.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_11_4.xml b/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_11_4.xml new file mode 100644 index 0000000..1041ad8 --- /dev/null +++ b/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_11_4.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_11_4.xml b/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_11_4.xml new file mode 100644 index 0000000..8e1332d --- /dev/null +++ b/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_11_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_github_jsqlparser_jsqlparser_3_2.xml b/.idea/libraries/Maven__com_github_jsqlparser_jsqlparser_3_2.xml new file mode 100644 index 0000000..fce766b --- /dev/null +++ b/.idea/libraries/Maven__com_github_jsqlparser_jsqlparser_3_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_google_code_gson_gson_2_8_6.xml b/.idea/libraries/Maven__com_google_code_gson_gson_2_8_6.xml new file mode 100644 index 0000000..dd1e5a5 --- /dev/null +++ b/.idea/libraries/Maven__com_google_code_gson_gson_2_8_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_4_0.xml b/.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_4_0.xml new file mode 100644 index 0000000..1aaab20 --- /dev/null +++ b/.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_4_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_rabbitmq_amqp_client_5_9_0.xml b/.idea/libraries/Maven__com_rabbitmq_amqp_client_5_9_0.xml new file mode 100644 index 0000000..5a37d4e --- /dev/null +++ b/.idea/libraries/Maven__com_rabbitmq_amqp_client_5_9_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_sun_activation_jakarta_activation_1_2_2.xml b/.idea/libraries/Maven__com_sun_activation_jakarta_activation_1_2_2.xml new file mode 100644 index 0000000..32f7ded --- /dev/null +++ b/.idea/libraries/Maven__com_sun_activation_jakarta_activation_1_2_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_sun_istack_istack_commons_runtime_3_0_11.xml b/.idea/libraries/Maven__com_sun_istack_istack_commons_runtime_3_0_11.xml new file mode 100644 index 0000000..e1fc237 --- /dev/null +++ b/.idea/libraries/Maven__com_sun_istack_istack_commons_runtime_3_0_11.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..7105fe4 --- /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_vdurmont_emoji_java_5_1_1.xml b/.idea/libraries/Maven__com_vdurmont_emoji_java_5_1_1.xml new file mode 100644 index 0000000..96bee31 --- /dev/null +++ b/.idea/libraries/Maven__com_vdurmont_emoji_java_5_1_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_zaxxer_HikariCP_3_4_5.xml b/.idea/libraries/Maven__com_zaxxer_HikariCP_3_4_5.xml new file mode 100644 index 0000000..b15ac6c --- /dev/null +++ b/.idea/libraries/Maven__com_zaxxer_HikariCP_3_4_5.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__commons_codec_commons_codec_1_14.xml b/.idea/libraries/Maven__commons_codec_commons_codec_1_14.xml new file mode 100644 index 0000000..14f1024 --- /dev/null +++ b/.idea/libraries/Maven__commons_codec_commons_codec_1_14.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__commons_logging_commons_logging_1_2.xml b/.idea/libraries/Maven__commons_logging_commons_logging_1_2.xml new file mode 100644 index 0000000..0bb2b91 --- /dev/null +++ b/.idea/libraries/Maven__commons_logging_commons_logging_1_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_jsonwebtoken_jjwt_0_9_1.xml b/.idea/libraries/Maven__io_jsonwebtoken_jjwt_0_9_1.xml new file mode 100644 index 0000000..c8e8bb8 --- /dev/null +++ b/.idea/libraries/Maven__io_jsonwebtoken_jjwt_0_9_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_lettuce_lettuce_core_5_3_6_RELEASE.xml b/.idea/libraries/Maven__io_lettuce_lettuce_core_5_3_6_RELEASE.xml new file mode 100644 index 0000000..6f9ed55 --- /dev/null +++ b/.idea/libraries/Maven__io_lettuce_lettuce_core_5_3_6_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_buffer_4_1_58_Final.xml b/.idea/libraries/Maven__io_netty_netty_buffer_4_1_58_Final.xml new file mode 100644 index 0000000..7cb53bd --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_buffer_4_1_58_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_codec_4_1_58_Final.xml b/.idea/libraries/Maven__io_netty_netty_codec_4_1_58_Final.xml new file mode 100644 index 0000000..804d3d5 --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_codec_4_1_58_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_common_4_1_58_Final.xml b/.idea/libraries/Maven__io_netty_netty_common_4_1_58_Final.xml new file mode 100644 index 0000000..912d3d2 --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_common_4_1_58_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_handler_4_1_58_Final.xml b/.idea/libraries/Maven__io_netty_netty_handler_4_1_58_Final.xml new file mode 100644 index 0000000..03b7df0 --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_handler_4_1_58_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_resolver_4_1_58_Final.xml b/.idea/libraries/Maven__io_netty_netty_resolver_4_1_58_Final.xml new file mode 100644 index 0000000..8a36c19 --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_resolver_4_1_58_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_transport_4_1_58_Final.xml b/.idea/libraries/Maven__io_netty_netty_transport_4_1_58_Final.xml new file mode 100644 index 0000000..85766dc --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_transport_4_1_58_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_opentracing_opentracing_api_0_33_0.xml b/.idea/libraries/Maven__io_opentracing_opentracing_api_0_33_0.xml new file mode 100644 index 0000000..2d783a6 --- /dev/null +++ b/.idea/libraries/Maven__io_opentracing_opentracing_api_0_33_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_opentracing_opentracing_noop_0_33_0.xml b/.idea/libraries/Maven__io_opentracing_opentracing_noop_0_33_0.xml new file mode 100644 index 0000000..5a0b697 --- /dev/null +++ b/.idea/libraries/Maven__io_opentracing_opentracing_noop_0_33_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_opentracing_opentracing_util_0_33_0.xml b/.idea/libraries/Maven__io_opentracing_opentracing_util_0_33_0.xml new file mode 100644 index 0000000..7d6078e --- /dev/null +++ b/.idea/libraries/Maven__io_opentracing_opentracing_util_0_33_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_projectreactor_reactor_core_3_3_13_RELEASE.xml b/.idea/libraries/Maven__io_projectreactor_reactor_core_3_3_13_RELEASE.xml new file mode 100644 index 0000000..ec8be82 --- /dev/null +++ b/.idea/libraries/Maven__io_projectreactor_reactor_core_3_3_13_RELEASE.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..ef55b0d --- /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_validation_jakarta_validation_api_2_0_2.xml b/.idea/libraries/Maven__jakarta_validation_jakarta_validation_api_2_0_2.xml new file mode 100644 index 0000000..72c076f --- /dev/null +++ b/.idea/libraries/Maven__jakarta_validation_jakarta_validation_api_2_0_2.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..73d397c --- /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__javax_activation_activation_1_1_1.xml b/.idea/libraries/Maven__javax_activation_activation_1_1_1.xml new file mode 100644 index 0000000..5459cc9 --- /dev/null +++ b/.idea/libraries/Maven__javax_activation_activation_1_1_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__javax_activation_javax_activation_api_1_2_0.xml b/.idea/libraries/Maven__javax_activation_javax_activation_api_1_2_0.xml new file mode 100644 index 0000000..993bb08 --- /dev/null +++ b/.idea/libraries/Maven__javax_activation_javax_activation_api_1_2_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__javax_xml_bind_jaxb_api_2_3_1.xml b/.idea/libraries/Maven__javax_xml_bind_jaxb_api_2_3_1.xml new file mode 100644 index 0000000..c95f8a8 --- /dev/null +++ b/.idea/libraries/Maven__javax_xml_bind_jaxb_api_2_3_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__mysql_mysql_connector_java_8_0_22.xml b/.idea/libraries/Maven__mysql_mysql_connector_java_8_0_22.xml new file mode 100644 index 0000000..4225a21 --- /dev/null +++ b/.idea/libraries/Maven__mysql_mysql_connector_java_8_0_22.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_10_19.xml b/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_10_19.xml new file mode 100644 index 0000000..27f15ad --- /dev/null +++ b/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_10_19.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__net_bytebuddy_byte_buddy_agent_1_10_19.xml b/.idea/libraries/Maven__net_bytebuddy_byte_buddy_agent_1_10_19.xml new file mode 100644 index 0000000..58e701f --- /dev/null +++ b/.idea/libraries/Maven__net_bytebuddy_byte_buddy_agent_1_10_19.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__net_minidev_accessors_smart_1_2.xml b/.idea/libraries/Maven__net_minidev_accessors_smart_1_2.xml new file mode 100644 index 0000000..8736fb6 --- /dev/null +++ b/.idea/libraries/Maven__net_minidev_accessors_smart_1_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__net_minidev_json_smart_2_3.xml b/.idea/libraries/Maven__net_minidev_json_smart_2_3.xml new file mode 100644 index 0000000..6c5b78d --- /dev/null +++ b/.idea/libraries/Maven__net_minidev_json_smart_2_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_commons_commons_pool2_2_8_1.xml b/.idea/libraries/Maven__org_apache_commons_commons_pool2_2_8_1.xml new file mode 100644 index 0000000..bfe72b9 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_commons_commons_pool2_2_8_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_httpcomponents_client5_httpclient5_5_1_3.xml b/.idea/libraries/Maven__org_apache_httpcomponents_client5_httpclient5_5_1_3.xml new file mode 100644 index 0000000..17ca37f --- /dev/null +++ b/.idea/libraries/Maven__org_apache_httpcomponents_client5_httpclient5_5_1_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_httpcomponents_core5_httpcore5_5_1_3.xml b/.idea/libraries/Maven__org_apache_httpcomponents_core5_httpcore5_5_1_3.xml new file mode 100644 index 0000000..7037e77 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_httpcomponents_core5_httpcore5_5_1_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_httpcomponents_core5_httpcore5_h2_5_1_3.xml b/.idea/libraries/Maven__org_apache_httpcomponents_core5_httpcore5_h2_5_1_3.xml new file mode 100644 index 0000000..2760357 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_httpcomponents_core5_httpcore5_h2_5_1_3.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..4ebd31a --- /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_14.xml b/.idea/libraries/Maven__org_apache_httpcomponents_httpcore_4_4_14.xml new file mode 100644 index 0000000..60045b0 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_httpcomponents_httpcore_4_4_14.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_13_3.xml b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_13_3.xml new file mode 100644 index 0000000..850fac3 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_13_3.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_13_3.xml b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_13_3.xml new file mode 100644 index 0000000..63606ae --- /dev/null +++ b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_13_3.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_41.xml b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_41.xml new file mode 100644 index 0000000..b836745 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_41.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_41.xml b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_41.xml new file mode 100644 index 0000000..9fc1842 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_41.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_0.xml b/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_0.xml new file mode 100644 index 0000000..9d8310a --- /dev/null +++ b/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_assertj_assertj_core_3_16_1.xml b/.idea/libraries/Maven__org_assertj_assertj_core_3_16_1.xml new file mode 100644 index 0000000..7577924 --- /dev/null +++ b/.idea/libraries/Maven__org_assertj_assertj_core_3_16_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_bouncycastle_bcprov_jdk15on_1_70.xml b/.idea/libraries/Maven__org_bouncycastle_bcprov_jdk15on_1_70.xml new file mode 100644 index 0000000..19ed7d9 --- /dev/null +++ b/.idea/libraries/Maven__org_bouncycastle_bcprov_jdk15on_1_70.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_codehaus_jettison_jettison_1_1.xml b/.idea/libraries/Maven__org_codehaus_jettison_jettison_1_1.xml new file mode 100644 index 0000000..a50e6f9 --- /dev/null +++ b/.idea/libraries/Maven__org_codehaus_jettison_jettison_1_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_dom4j_dom4j_2_1_3.xml b/.idea/libraries/Maven__org_dom4j_dom4j_2_1_3.xml new file mode 100644 index 0000000..0307be0 --- /dev/null +++ b/.idea/libraries/Maven__org_dom4j_dom4j_2_1_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_freemarker_freemarker_2_3_30.xml b/.idea/libraries/Maven__org_freemarker_freemarker_2_3_30.xml new file mode 100644 index 0000000..1700360 --- /dev/null +++ b/.idea/libraries/Maven__org_freemarker_freemarker_2_3_30.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_glassfish_jakarta_el_3_0_3.xml b/.idea/libraries/Maven__org_glassfish_jakarta_el_3_0_3.xml new file mode 100644 index 0000000..232b851 --- /dev/null +++ b/.idea/libraries/Maven__org_glassfish_jakarta_el_3_0_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_glassfish_jaxb_jaxb_runtime_2_3_3.xml b/.idea/libraries/Maven__org_glassfish_jaxb_jaxb_runtime_2_3_3.xml new file mode 100644 index 0000000..c8ed2f2 --- /dev/null +++ b/.idea/libraries/Maven__org_glassfish_jaxb_jaxb_runtime_2_3_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_glassfish_jaxb_txw2_2_3_3.xml b/.idea/libraries/Maven__org_glassfish_jaxb_txw2_2_3_3.xml new file mode 100644 index 0000000..07e8f08 --- /dev/null +++ b/.idea/libraries/Maven__org_glassfish_jaxb_txw2_2_3_3.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..b77b702 --- /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_hibernate_validator_hibernate_validator_6_1_7_Final.xml b/.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_1_7_Final.xml new file mode 100644 index 0000000..c0c82da --- /dev/null +++ b/.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_1_7_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_ini4j_ini4j_0_5_4.xml b/.idea/libraries/Maven__org_ini4j_ini4j_0_5_4.xml new file mode 100644 index 0000000..3957f14 --- /dev/null +++ b/.idea/libraries/Maven__org_ini4j_ini4j_0_5_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jacoco_org_jacoco_agent_runtime_0_8_6.xml b/.idea/libraries/Maven__org_jacoco_org_jacoco_agent_runtime_0_8_6.xml new file mode 100644 index 0000000..a8597a7 --- /dev/null +++ b/.idea/libraries/Maven__org_jacoco_org_jacoco_agent_runtime_0_8_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_4_1_Final.xml b/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_4_1_Final.xml new file mode 100644 index 0000000..e77ca66 --- /dev/null +++ b/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_4_1_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jdom_jdom2_2_0_6.xml b/.idea/libraries/Maven__org_jdom_jdom2_2_0_6.xml new file mode 100644 index 0000000..d5cce74 --- /dev/null +++ b/.idea/libraries/Maven__org_jdom_jdom2_2_0_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jetbrains_annotations_24_1_0.xml b/.idea/libraries/Maven__org_jetbrains_annotations_24_1_0.xml new file mode 100644 index 0000000..d50eb80 --- /dev/null +++ b/.idea/libraries/Maven__org_jetbrains_annotations_24_1_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_json_json_20170516.xml b/.idea/libraries/Maven__org_json_json_20170516.xml new file mode 100644 index 0000000..f0c042e --- /dev/null +++ b/.idea/libraries/Maven__org_json_json_20170516.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_6_3.xml b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_6_3.xml new file mode 100644 index 0000000..bc45a70 --- /dev/null +++ b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_6_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_6_3.xml b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_6_3.xml new file mode 100644 index 0000000..592fad4 --- /dev/null +++ b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_6_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_6_3.xml b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_6_3.xml new file mode 100644 index 0000000..ea125e0 --- /dev/null +++ b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_6_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_params_5_6_3.xml b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_params_5_6_3.xml new file mode 100644 index 0000000..6155c91 --- /dev/null +++ b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_params_5_6_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_6_3.xml b/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_6_3.xml new file mode 100644 index 0000000..ccc976e --- /dev/null +++ b/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_6_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_6_3.xml b/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_6_3.xml new file mode 100644 index 0000000..55799bd --- /dev/null +++ b/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_6_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_mockito_mockito_core_3_3_3.xml b/.idea/libraries/Maven__org_mockito_mockito_core_3_3_3.xml new file mode 100644 index 0000000..cd49c31 --- /dev/null +++ b/.idea/libraries/Maven__org_mockito_mockito_core_3_3_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_mockito_mockito_junit_jupiter_3_3_3.xml b/.idea/libraries/Maven__org_mockito_mockito_junit_jupiter_3_3_3.xml new file mode 100644 index 0000000..5359ec7 --- /dev/null +++ b/.idea/libraries/Maven__org_mockito_mockito_junit_jupiter_3_3_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_mybatis_mybatis_3_5_6.xml b/.idea/libraries/Maven__org_mybatis_mybatis_3_5_6.xml new file mode 100644 index 0000000..f9a4e1b --- /dev/null +++ b/.idea/libraries/Maven__org_mybatis_mybatis_3_5_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_mybatis_mybatis_spring_2_0_5.xml b/.idea/libraries/Maven__org_mybatis_mybatis_spring_2_0_5.xml new file mode 100644 index 0000000..714eed9 --- /dev/null +++ b/.idea/libraries/Maven__org_mybatis_mybatis_spring_2_0_5.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_objenesis_objenesis_2_6.xml b/.idea/libraries/Maven__org_objenesis_objenesis_2_6.xml new file mode 100644 index 0000000..14589bf --- /dev/null +++ b/.idea/libraries/Maven__org_objenesis_objenesis_2_6.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..11792b4 --- /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_5_0_4.xml b/.idea/libraries/Maven__org_ow2_asm_asm_5_0_4.xml new file mode 100644 index 0000000..ab504af --- /dev/null +++ b/.idea/libraries/Maven__org_ow2_asm_asm_5_0_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_projectlombok_lombok_1_18_16.xml b/.idea/libraries/Maven__org_projectlombok_lombok_1_18_16.xml new file mode 100644 index 0000000..ae5d5e6 --- /dev/null +++ b/.idea/libraries/Maven__org_projectlombok_lombok_1_18_16.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..d4a8513 --- /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..6d836d6 --- /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_30.xml b/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_30.xml new file mode 100644 index 0000000..e815fb6 --- /dev/null +++ b/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_30.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_30.xml b/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_30.xml new file mode 100644 index 0000000..b99a5ac --- /dev/null +++ b/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_30.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_amqp_spring_amqp_2_2_14_RELEASE.xml b/.idea/libraries/Maven__org_springframework_amqp_spring_amqp_2_2_14_RELEASE.xml new file mode 100644 index 0000000..1cf352a --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_amqp_spring_amqp_2_2_14_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_amqp_spring_rabbit_2_2_14_RELEASE.xml b/.idea/libraries/Maven__org_springframework_amqp_spring_rabbit_2_2_14_RELEASE.xml new file mode 100644 index 0000000..f61c085 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_amqp_spring_rabbit_2_2_14_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_3_8_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_3_8_RELEASE.xml new file mode 100644 index 0000000..b48454f --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_3_8_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_3_8_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_3_8_RELEASE.xml new file mode 100644 index 0000000..f9f3ea2 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_3_8_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_configuration_processor_2_3_8_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_configuration_processor_2_3_8_RELEASE.xml new file mode 100644 index 0000000..066c06a --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_configuration_processor_2_3_8_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_3_8_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_3_8_RELEASE.xml new file mode 100644 index 0000000..49bedcf --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_3_8_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_amqp_2_3_8_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_amqp_2_3_8_RELEASE.xml new file mode 100644 index 0000000..23881b9 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_amqp_2_3_8_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_redis_2_3_8_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_redis_2_3_8_RELEASE.xml new file mode 100644 index 0000000..43ead84 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_redis_2_3_8_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_3_8_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_3_8_RELEASE.xml new file mode 100644 index 0000000..a30e815 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_3_8_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_3_8_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_3_8_RELEASE.xml new file mode 100644 index 0000000..3dd8ac2 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_3_8_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_3_8_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_3_8_RELEASE.xml new file mode 100644 index 0000000..fc29be5 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_3_8_RELEASE.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_3_8_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_2_3_8_RELEASE.xml new file mode 100644 index 0000000..b52b09c --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_2_3_8_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_3_8_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_3_8_RELEASE.xml new file mode 100644 index 0000000..dd1f1db --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_3_8_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_3_8_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_3_8_RELEASE.xml new file mode 100644 index 0000000..bc5718b --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_3_8_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_3_8_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_3_8_RELEASE.xml new file mode 100644 index 0000000..d69a4cf --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_3_8_RELEASE.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_3_8_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_3_8_RELEASE.xml new file mode 100644 index 0000000..1d83718 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_3_8_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_data_spring_data_commons_2_3_6_RELEASE.xml b/.idea/libraries/Maven__org_springframework_data_spring_data_commons_2_3_6_RELEASE.xml new file mode 100644 index 0000000..df4ff05 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_data_spring_data_commons_2_3_6_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_data_spring_data_keyvalue_2_3_6_RELEASE.xml b/.idea/libraries/Maven__org_springframework_data_spring_data_keyvalue_2_3_6_RELEASE.xml new file mode 100644 index 0000000..f1bf8a0 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_data_spring_data_keyvalue_2_3_6_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_data_spring_data_redis_2_3_6_RELEASE.xml b/.idea/libraries/Maven__org_springframework_data_spring_data_redis_2_3_6_RELEASE.xml new file mode 100644 index 0000000..b9b21a2 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_data_spring_data_redis_2_3_6_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_retry_spring_retry_1_2_5_RELEASE.xml b/.idea/libraries/Maven__org_springframework_retry_spring_retry_1_2_5_RELEASE.xml new file mode 100644 index 0000000..e504417 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_retry_spring_retry_1_2_5_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_aop_5_2_12_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_aop_5_2_12_RELEASE.xml new file mode 100644 index 0000000..92a9c99 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_aop_5_2_12_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_beans_5_2_12_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_beans_5_2_12_RELEASE.xml new file mode 100644 index 0000000..4102a72 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_beans_5_2_12_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_context_5_2_12_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_context_5_2_12_RELEASE.xml new file mode 100644 index 0000000..689e1c9 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_context_5_2_12_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_context_support_5_2_12_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_context_support_5_2_12_RELEASE.xml new file mode 100644 index 0000000..2f25afb --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_context_support_5_2_12_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_core_5_2_12_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_core_5_2_12_RELEASE.xml new file mode 100644 index 0000000..81586b3 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_core_5_2_12_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_expression_5_2_12_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_expression_5_2_12_RELEASE.xml new file mode 100644 index 0000000..f3d3911 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_expression_5_2_12_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_jcl_5_2_12_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_jcl_5_2_12_RELEASE.xml new file mode 100644 index 0000000..df46ffb --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_jcl_5_2_12_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_jdbc_5_2_12_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_jdbc_5_2_12_RELEASE.xml new file mode 100644 index 0000000..f68127f --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_jdbc_5_2_12_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_messaging_5_2_12_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_messaging_5_2_12_RELEASE.xml new file mode 100644 index 0000000..02afb69 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_messaging_5_2_12_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_oxm_5_2_12_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_oxm_5_2_12_RELEASE.xml new file mode 100644 index 0000000..4e751a3 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_oxm_5_2_12_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_test_5_2_12_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_test_5_2_12_RELEASE.xml new file mode 100644 index 0000000..b2732b5 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_test_5_2_12_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_tx_5_2_12_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_tx_5_2_12_RELEASE.xml new file mode 100644 index 0000000..949e4a3 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_tx_5_2_12_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_web_5_2_12_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_web_5_2_12_RELEASE.xml new file mode 100644 index 0000000..61d2315 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_web_5_2_12_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_webmvc_5_2_12_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_webmvc_5_2_12_RELEASE.xml new file mode 100644 index 0000000..3522c1c --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_webmvc_5_2_12_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_xmlunit_xmlunit_core_2_7_0.xml b/.idea/libraries/Maven__org_xmlunit_xmlunit_core_2_7_0.xml new file mode 100644 index 0000000..d900939 --- /dev/null +++ b/.idea/libraries/Maven__org_xmlunit_xmlunit_core_2_7_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_yaml_snakeyaml_1_26.xml b/.idea/libraries/Maven__org_yaml_snakeyaml_1_26.xml new file mode 100644 index 0000000..f6afad0 --- /dev/null +++ b/.idea/libraries/Maven__org_yaml_snakeyaml_1_26.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__stax_stax_api_1_0_1.xml b/.idea/libraries/Maven__stax_stax_api_1_0_1.xml new file mode 100644 index 0000000..b38e5b7 --- /dev/null +++ b/.idea/libraries/Maven__stax_stax_api_1_0_1.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..8bbd8a5 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,11 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..ec0d74a --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/shining-child-stars.iml b/.idea/shining-child-stars.iml new file mode 100644 index 0000000..d6ebd48 --- /dev/null +++ b/.idea/shining-child-stars.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ 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..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/README.md b/README.md deleted file mode 100644 index b6b9778..0000000 --- a/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# child_star - diff --git a/doubao_community_backend-master/.gitignore b/doubao_community_backend-master/.gitignore new file mode 100644 index 0000000..549e00a --- /dev/null +++ b/doubao_community_backend-master/.gitignore @@ -0,0 +1,33 @@ +HELP.md +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ diff --git a/doubao_community_backend-master/pom.xml b/doubao_community_backend-master/pom.xml new file mode 100644 index 0000000..8bb8873 --- /dev/null +++ b/doubao_community_backend-master/pom.xml @@ -0,0 +1,201 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + + 2.3.8.RELEASE + + + com.lkx + farmershop + 0.0.1-SNAPSHOT + farmerShop + + Demo project for Spring Boot + + 1.8 + UTF-8 + UTF-8 + 3.4.2 + 1.2.75 + 5.5.7 + 0.9.1 + 5.1.1 + + + + + com.alibaba + druid-spring-boot-starter + 1.2.18 + + + + org.springframework.boot + spring-boot-starter + + + + org.springframework.boot + spring-boot-starter-web + + + + com.aliyun.oss + aliyun-sdk-oss + 3.15.1 + + + javax.xml.bind + jaxb-api + 2.3.1 + + + javax.activation + activation + 1.1.1 + + + + org.glassfish.jaxb + jaxb-runtime + 2.3.3 + + + + org.projectlombok + lombok + 1.18.20 + + + + + io.jsonwebtoken + jjwt + ${jwt.version} + + + + com.vdurmont + emoji-java + ${emoji-java.version} + + + + org.apache.commons + commons-pool2 + + + + cn.hutool + hutool-all + ${hutool.version} + + + + mysql + mysql-connector-java + runtime + + + + com.baomidou + mybatis-plus-boot-starter + ${mybatis-plus.version} + + + + com.alibaba + fastjson + ${fastjson.version} + + + + org.springframework.boot + spring-boot-configuration-processor + true + + + + + org.springframework.boot + spring-boot-starter-data-redis + + + + + org.springframework.boot + spring-boot-starter-amqp + + + + + com.aliyun + aliyun-java-sdk-core + 4.5.16 + + + com.aliyun + aliyun-java-sdk-dysmsapi + 2.1.0 + + + + com.aliyun + alibabacloud-dysmsapi20170525 + 2.0.24 + + + + + org.hibernate.validator + hibernate-validator + + + + com.baomidou + mybatis-plus-generator + 3.4.1 + + + org.freemarker + freemarker + 2.3.30 + + + + + + org.springframework.boot + spring-boot-starter-test + test + + + org.junit.vintage + junit-vintage-engine + + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + org.projectlombok + lombok + + + + + + + + diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/FarmerShopApplication.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/FarmerShopApplication.java new file mode 100644 index 0000000..08fcd1c --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/FarmerShopApplication.java @@ -0,0 +1,25 @@ +package com.lkx.farmershop; + +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.FilterRegistrationBean; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; +import org.springframework.context.annotation.Bean; +import org.springframework.scheduling.annotation.EnableScheduling; + +@MapperScan("com.lkx.farmershop.mapper") +@SpringBootApplication +@EnableScheduling +public class FarmerShopApplication extends SpringBootServletInitializer { + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { + return builder.sources(FarmerShopApplication.class); + } + + public static void main(String[] args) { + SpringApplication.run(FarmerShopApplication.class, args); + } +} + diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/AiOSS/AliOssProperties.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/AiOSS/AliOssProperties.java new file mode 100644 index 0000000..de4773b --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/AiOSS/AliOssProperties.java @@ -0,0 +1,17 @@ +package com.lkx.farmershop.common.AiOSS; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Component +@ConfigurationProperties(prefix = "alioss") +@Data +public class AliOssProperties { + + private String endpoint; + private String accessKeyId; + private String accessKeySecret; + private String bucketName; + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/AiOSS/AliOssUtil.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/AiOSS/AliOssUtil.java new file mode 100644 index 0000000..8d28947 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/AiOSS/AliOssUtil.java @@ -0,0 +1,70 @@ +package com.lkx.farmershop.common.AiOSS; + +import com.aliyun.oss.ClientException; +import com.aliyun.oss.OSS; +import com.aliyun.oss.OSSClientBuilder; +import com.aliyun.oss.OSSException; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.extern.slf4j.Slf4j; + +import java.io.ByteArrayInputStream; + +@Data +@AllArgsConstructor +@Slf4j +public class AliOssUtil { + + private String endpoint; + private String accessKeyId; + private String accessKeySecret; + private String bucketName; + +/* + * 文件上传 + * + * @param bytes + * @param objectName + * @return + +*/ + public String upload(byte[] bytes, String objectName) { + + // 创建OSSClient实例。 + OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); + + try { + // 创建PutObject请求。 + ossClient.putObject(bucketName, objectName, new ByteArrayInputStream(bytes)); + } catch (OSSException oe) { + System.out.println("Caught an OSSException, which means your request made it to OSS, " + + "but was rejected with an error response for some reason."); + System.out.println("Error Message:" + oe.getErrorMessage()); + System.out.println("Error Code:" + oe.getErrorCode()); + System.out.println("Request ID:" + oe.getRequestId()); + System.out.println("Host ID:" + oe.getHostId()); + } catch (ClientException ce) { + System.out.println("Caught an ClientException, which means the client encountered " + + "a serious internal problem while trying to communicate with OSS, " + + "such as not being able to access the network."); + System.out.println("Error Message:" + ce.getMessage()); + } finally { + if (ossClient != null) { + ossClient.shutdown(); + } + } + + //文件访问路径规则 https://BucketName.Endpoint/ObjectName + StringBuilder stringBuilder = new StringBuilder("https://"); + stringBuilder + .append(bucketName) + .append(".") + .append(endpoint) + .append("/") + .append(objectName); + + log.info("文件上传到:{}", stringBuilder.toString()); + + return stringBuilder.toString(); + } +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/AiOSS/OssConfiguration.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/AiOSS/OssConfiguration.java new file mode 100644 index 0000000..3417793 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/AiOSS/OssConfiguration.java @@ -0,0 +1,24 @@ +package com.lkx.farmershop.common.AiOSS; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * 配置类,用于创建AliOssUtil对象 + */ +@Configuration +@Slf4j +public class OssConfiguration { + + @Bean + @ConditionalOnMissingBean + public AliOssUtil aliOssUtil(AliOssProperties aliOssProperties){ + log.info("开始创建阿里云上传工具类对象:{}",aliOssProperties); + return new AliOssUtil(aliOssProperties.getEndpoint(), + aliOssProperties.getAccessKeyId(), + aliOssProperties.getAccessKeySecret(), + aliOssProperties.getBucketName()); + } +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/CodeGenerator.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/CodeGenerator.java new file mode 100644 index 0000000..a9d5c32 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/CodeGenerator.java @@ -0,0 +1,128 @@ +package com.lkx.farmershop.common; + + + +import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException; +import com.baomidou.mybatisplus.core.toolkit.StringPool; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.generator.AutoGenerator; +import com.baomidou.mybatisplus.generator.config.*; +import com.baomidou.mybatisplus.generator.config.po.TableInfo; +import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; +import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine; + +import java.util.ArrayList; +import java.util.List; +import java.util.Scanner; + +public class CodeGenerator { + + /** + *

+ * 读取控制台内容 + *

+ */ + public static String scanner(String tip) { + Scanner scanner = new Scanner(System.in); + StringBuilder help = new StringBuilder(); + help.append("请输入" + tip + ":"); + System.out.println(help.toString()); + if (scanner.hasNext()) { + String ipt = scanner.next(); + if (StringUtils.isNotBlank(ipt)) { + return ipt; + } + } + throw new MybatisPlusException("请输入正确的" + tip + "!"); + } + + public static void main(String[] args) { + // 代码生成器 + AutoGenerator mpg = new AutoGenerator(); + + // 全局配置 + GlobalConfig gc = new GlobalConfig(); + String projectPath = System.getProperty("Farmer.dir"); + gc.setOutputDir(projectPath + "/src/main/java"); + gc.setAuthor("lkx"); + gc.setOpen(false); + // gc.setSwagger2(true); 实体属性 Swagger2 注解 + mpg.setGlobalConfig(gc); + + // 数据源配置 + DataSourceConfig dsc = new DataSourceConfig(); + dsc.setUrl("jdbc:mysql://localhost:3306/farmer_friend?useSSL=false&serverTimezone=Asia/Shanghai"); + // dsc.setSchemaName("public"); + dsc.setDriverName("com.mysql.cj.jdbc.Driver"); + dsc.setUsername("root"); + dsc.setPassword("1234"); + mpg.setDataSource(dsc); + + // 包配置 + PackageConfig pc = new PackageConfig(); + pc.setParent("com.lkx.farmershop").setEntity("model.entity"); + mpg.setPackageInfo(pc); + + + // 如果模板引擎是 freemarker + String templatePath = "/templates/mapper.xml.ftl"; + // 如果模板引擎是 velocity + // String templatePath = "/templates/mapper.xml.vm"; + + // 自定义输出配置 + List focList = new ArrayList<>(); + // 自定义配置会被优先输出 + focList.add(new FileOutConfig(templatePath) { + @Override + public String outputFile(TableInfo tableInfo) { + // 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!! + return projectPath + "/src/main/resources/mapper/" + pc.getModuleName() + + "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML; + } + }); + /* + cfg.setFileCreate(new IFileCreate() { + @Override + public boolean isCreate(ConfigBuilder configBuilder, FileType fileType, String filePath) { + // 判断自定义文件夹是否需要创建 + checkDir("调用默认方法创建的目录,自定义目录用"); + if (fileType == FileType.MAPPER) { + // 已经生成 mapper 文件判断存在,不想重新生成返回 false + return !new File(filePath).exists(); + } + // 允许生成模板文件 + return true; + } + }); + */ + + + // 配置模板 + TemplateConfig templateConfig = new TemplateConfig(); + + // 配置自定义输出模板 + //指定自定义模板路径,注意不要带上.ftl/.vm, 会根据使用的模板引擎自动识别 + // templateConfig.setEntity("templates/entity2.java"); + // templateConfig.setService(); + // templateConfig.setController(); + + templateConfig.setXml(null); + mpg.setTemplate(templateConfig); + + // 策略配置 + StrategyConfig strategy = new StrategyConfig(); + strategy.setNaming(NamingStrategy.underline_to_camel); + strategy.setColumnNaming(NamingStrategy.underline_to_camel); + + strategy.setEntityLombokModel(true); + strategy.setRestControllerStyle(true); + // 公共父类 + // 写于父类中的公共字段 + strategy.setInclude(scanner("表名,多个英文逗号分割").split(",")); + strategy.setControllerMappingHyphenStyle(true); +// strategy.setTablePrefix(pc.getModuleName() + "_"); + mpg.setStrategy(strategy); + mpg.setTemplateEngine(new FreemarkerTemplateEngine()); + mpg.execute(); + } +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/JacksonObjectMapper.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/JacksonObjectMapper.java new file mode 100644 index 0000000..c3252ca --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/JacksonObjectMapper.java @@ -0,0 +1,58 @@ +package com.lkx.farmershop.common; + +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.module.SimpleModule; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer; + +import java.math.BigDecimal; +import java.math.BigInteger; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.format.DateTimeFormatter; + +import static com.fasterxml.jackson.databind.DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES; + +/** + * 对象映射器:基于jackson将Java对象转为json,或者将json转为Java对象 + * 将JSON解析为Java对象的过程称为 [从JSON反序列化Java对象] + * 从Java对象生成JSON的过程称为 [序列化Java对象到JSON] + */ +public class JacksonObjectMapper extends ObjectMapper { + + public static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd"; + public static final String DEFAULT_DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss"; + //public static final String DEFAULT_DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm"; + public static final String DEFAULT_TIME_FORMAT = "HH:mm:ss"; + + public JacksonObjectMapper() { + super(); + //收到未知属性时不报异常 + this.configure(FAIL_ON_UNKNOWN_PROPERTIES, false); + + //反序列化时,属性不存在的兼容处理 + this.getDeserializationConfig().withoutFeatures(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); + + SimpleModule simpleModule = new SimpleModule() + .addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT))) + .addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT))) + .addDeserializer(LocalDate.class, new LocalDateDeserializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_FORMAT))) + .addDeserializer(LocalTime.class, new LocalTimeDeserializer(DateTimeFormatter.ofPattern(DEFAULT_TIME_FORMAT))) + .addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT))) + .addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_FORMAT))) + .addSerializer(LocalTime.class, new LocalTimeSerializer(DateTimeFormatter.ofPattern(DEFAULT_TIME_FORMAT))) + .addSerializer(BigInteger.class, ToStringSerializer.instance) + .addSerializer(Long.class, ToStringSerializer.instance) + .addSerializer(BigDecimal.class, ToStringSerializer.instance); + + //注册功能模块 例如,可以添加自定义序列化器和反序列化器 + this.registerModule(simpleModule); + } +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/api/ApiErrorCode.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/api/ApiErrorCode.java new file mode 100644 index 0000000..1cb9c39 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/api/ApiErrorCode.java @@ -0,0 +1,52 @@ +package com.lkx.farmershop.common.api; + + +public enum ApiErrorCode implements IErrorCode { + + /** + * 成功 + */ + SUCCESS(200, "操作成功"), + /** + * 失败 + */ + FAILED(-1, "操作失败"), + /** + * 未登录,Token过期 + */ + UNAUTHORIZED(401, "暂未登录或token已经过期"), + /** + * 权限不足 + */ + FORBIDDEN(403, "权限不足"), + /** + * 参数校验错误 + */ + VALIDATE_FAILED(404, "参数检验失败"); + + private final Integer code; + private final String message; + + ApiErrorCode(int code, String message) { + this.code = code; + this.message = message; + } + + @Override + public Integer getCode() { + return code; + } + + @Override + public String getMessage() { + return message; + } + + @Override + public String toString() { + return "ApiErrorCode{" + + "code=" + code + + ", message='" + message + '\'' + + '}'; + } +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/api/ApiResult.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/api/ApiResult.java new file mode 100644 index 0000000..dd07c17 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/api/ApiResult.java @@ -0,0 +1,146 @@ +package com.lkx.farmershop.common.api; + + +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.Optional; + + +@Data +@NoArgsConstructor +public class ApiResult implements Serializable { + + private static final long serialVersionUID = -4153430394359594346L; + /** + * 业务状态码 + */ + private long code; + /** + * 结果集 + */ + private T data; + /** + * 接口描述 + */ + private String message; + + /** + * 全参 + * + * @param code 业务状态码 + * @param message 描述 + * @param data 结果集 + */ + public ApiResult(long code, String message, T data) { + this.code = code; + this.message = message; + this.data = data; + } + + public ApiResult(IErrorCode errorCode) { + errorCode = Optional.ofNullable(errorCode).orElse(ApiErrorCode.FAILED); + this.code = errorCode.getCode(); + this.message = errorCode.getMessage(); + } + + /** + * 成功 + * + * @param data 结果集 + * @return {code:200,message:操作成功,data:自定义} + */ + public static ApiResult success() { + return new ApiResult(ApiErrorCode.SUCCESS.getCode(), ApiErrorCode.SUCCESS.getMessage(), null); + } + + /** + * 成功 + * + * @param data 结果集 + * @return {code:200,message:操作成功,data:自定义} + */ + public static ApiResult success(T data) { + return new ApiResult(ApiErrorCode.SUCCESS.getCode(), ApiErrorCode.SUCCESS.getMessage(), data); + } + + /** + * 成功 + * + * @param data 结果集 + * @param message 自定义提示信息 + * @return {code:200,message:自定义,data:自定义} + */ + public static ApiResult success(T data, String message) { + return new ApiResult(ApiErrorCode.SUCCESS.getCode(), message, data); + } + + /** + * 失败返回结果 + */ + public static ApiResult failed() { + return failed(ApiErrorCode.FAILED); + } + + /** + * 失败返回结果 + * + * @param message 提示信息 + * @return {code:枚举ApiErrorCode取,message:自定义,data:null} + */ + public static ApiResult failed(String message) { + return new ApiResult(ApiErrorCode.FAILED.getCode(), message, null); + } + + /** + * 失败 + * + * @param errorCode 错误码 + * @return {code:封装接口取,message:封装接口取,data:null} + */ + public static ApiResult failed(IErrorCode errorCode) { + return new ApiResult(errorCode.getCode(), errorCode.getMessage(), null); + } + + /** + * 失败返回结果 + * + * @param errorCode 错误码 + * @param message 错误信息 + * @return {code:枚举ApiErrorCode取,message:自定义,data:null} + */ + public static ApiResult failed(IErrorCode errorCode, String message) { + return new ApiResult(errorCode.getCode(), message, null); + } + + /** + * 参数验证失败返回结果 + */ + public static ApiResult validateFailed() { + return failed(ApiErrorCode.VALIDATE_FAILED); + } + + /** + * 参数验证失败返回结果 + * + * @param message 提示信息 + */ + public static ApiResult validateFailed(String message) { + return new ApiResult(ApiErrorCode.VALIDATE_FAILED.getCode(), message, null); + } + + /** + * 未登录返回结果 + */ + public static ApiResult unauthorized(T data) { + return new ApiResult(ApiErrorCode.UNAUTHORIZED.getCode(), ApiErrorCode.UNAUTHORIZED.getMessage(), data); + } + + /** + * 未授权返回结果 + */ + public static ApiResult forbidden(T data) { + return new ApiResult(ApiErrorCode.FORBIDDEN.getCode(), ApiErrorCode.FORBIDDEN.getMessage(), data); + } +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/api/IErrorCode.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/api/IErrorCode.java new file mode 100644 index 0000000..2cc65ba --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/api/IErrorCode.java @@ -0,0 +1,18 @@ +package com.lkx.farmershop.common.api; + + +public interface IErrorCode { + /** + * 错误编码: -1失败;200成功 + * + * @return 错误编码 + */ + Integer getCode(); + + /** + * 错误描述 + * + * @return 错误描述 + */ + String getMessage(); +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/context/BaseContext.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/context/BaseContext.java new file mode 100644 index 0000000..d625593 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/context/BaseContext.java @@ -0,0 +1,22 @@ +package com.lkx.farmershop.common.context; + +import lombok.RequiredArgsConstructor; + +@RequiredArgsConstructor +public class BaseContext { + + public static ThreadLocal threadLocal = new ThreadLocal<>(); + + public static void setCurrentId(Long userId) { + threadLocal.set(userId); + } + + public static Long getCurrentId() { + return threadLocal.get(); + } + + public static void removeCurrentId() { + threadLocal.remove(); + } + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/exception/ApiAsserts.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/exception/ApiAsserts.java new file mode 100644 index 0000000..2afea6d --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/exception/ApiAsserts.java @@ -0,0 +1,24 @@ +package com.lkx.farmershop.common.exception; + +import com.lkx.farmershop.common.api.IErrorCode; + + +public class ApiAsserts { + /** + * 抛失败异常 + * + * @param message 说明 + */ + public static void fail(String message) { + throw new ApiException(message); + } + + /** + * 抛失败异常 + * + * @param errorCode 状态码 + */ + public static void fail(IErrorCode errorCode) { + throw new ApiException(errorCode); + } +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/exception/ApiException.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/exception/ApiException.java new file mode 100644 index 0000000..7e853f8 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/exception/ApiException.java @@ -0,0 +1,21 @@ +package com.lkx.farmershop.common.exception; + +import com.lkx.farmershop.common.api.IErrorCode; + + +public class ApiException extends RuntimeException { + private IErrorCode errorCode; + + public ApiException(IErrorCode errorCode) { + super(errorCode.getMessage()); + this.errorCode = errorCode; + } + + public ApiException(String message) { + super(message); + } + + public IErrorCode getErrorCode() { + return errorCode; + } +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/exception/GlobalExceptionHandler.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/exception/GlobalExceptionHandler.java new file mode 100644 index 0000000..a0211cd --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/exception/GlobalExceptionHandler.java @@ -0,0 +1,23 @@ +package com.lkx.farmershop.common.exception;//package com.knox.aurora.common.exception; + +import com.lkx.farmershop.common.api.ApiResult; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.Map; + +@ControllerAdvice +public class GlobalExceptionHandler { + /** + * 捕获自定义异常 + */ + @ResponseBody + @ExceptionHandler(value = ApiException.class) + public ApiResult> handle(ApiException e) { + if (e.getErrorCode() != null) { + return ApiResult.failed(e.getErrorCode()); + } + return ApiResult.failed(e.getMessage()); + } +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/handler/AutoFillHandler.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/handler/AutoFillHandler.java new file mode 100644 index 0000000..4079c5b --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/handler/AutoFillHandler.java @@ -0,0 +1,39 @@ +package com.lkx.farmershop.common.handler; + +import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; +import lombok.extern.slf4j.Slf4j; +import org.apache.ibatis.reflection.MetaObject; +import org.springframework.stereotype.Component; + +import java.time.LocalDateTime; + +/** + * 自动填充公共字段 + */ +@Component +@Slf4j +public class AutoFillHandler implements MetaObjectHandler { + + /** + * 插入 + * @param metaObject + */ + @Override + public void insertFill(MetaObject metaObject) { + metaObject.setValue("createTime", LocalDateTime.now()); + //metaObject.setValue("updateTime", LocalDateTime.now()); + } + + + + /** + * 更新 + * @param metaObject + */ + @Override + public void updateFill(MetaObject metaObject) { + metaObject.setValue("updateTime", LocalDateTime.now()); + } + + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/interceptor/JwtTokenUserInterceptor.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/interceptor/JwtTokenUserInterceptor.java new file mode 100644 index 0000000..312c9e6 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/interceptor/JwtTokenUserInterceptor.java @@ -0,0 +1,63 @@ +package com.lkx.farmershop.common.interceptor; + +import com.lkx.farmershop.common.context.BaseContext; +import com.lkx.farmershop.common.properties.JwtProperties; +import com.lkx.farmershop.jwt.NewJwtUtil; +import io.jsonwebtoken.Claims; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.context.annotation.Configuration; +import org.springframework.stereotype.Component; +import org.springframework.web.method.HandlerMethod; +import org.springframework.web.servlet.HandlerInterceptor; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * jwt令牌校验的拦截器 + */ +@Component +@Slf4j +@RequiredArgsConstructor +public class JwtTokenUserInterceptor implements HandlerInterceptor { + + private final JwtProperties jwtProperties; + + /** + * 校验jwt + * + * @param request + * @param response + * @param handler + * @return + * @throws Exception + */ + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + //判断当前拦截到的是Controller的方法还是其他资源 + //判断handler对象是否是HandlerMethod类型或其子类的实例 + if (!(handler instanceof HandlerMethod)) { + //当前拦截到的不是动态方法,直接放行 + return true; + } + + //1、从请求头中获取令牌 + //String token = request.getHeader(jwtProperties.getUserTokenName()); + String token = request.getHeader("Authorization"); + //2、校验令牌 + try { + log.info("jwt校验:{}", token); + Claims claims = NewJwtUtil.parseJWT(jwtProperties.getUserSecretKey(), token); + Long userId = Long.valueOf(claims.get("userId").toString()); + log.info("当前员工id:{}", userId); + BaseContext.setCurrentId(userId); + //3、通过,放行 + return true; + } catch (Exception ex) { + //4、不通过,响应401状态码 + response.setStatus(401); + return false; + } + } +} + diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/mybatisplus/MybatisPlusConfig.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/mybatisplus/MybatisPlusConfig.java new file mode 100644 index 0000000..1817f76 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/mybatisplus/MybatisPlusConfig.java @@ -0,0 +1,31 @@ +package com.lkx.farmershop.common.mybatisplus; + +import com.baomidou.mybatisplus.annotation.DbType; +import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer; +import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; +import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + + +@Configuration +@MapperScan("com.douyuehan.doubao.mapper") +public class MybatisPlusConfig { + + /** + * 新的分页插件,一缓和二缓遵循mybatis的规则, + * 需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题(该属性会在旧插件移除后一同移除) + */ + @Bean + public MybatisPlusInterceptor mybatisPlusInterceptor() { + MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); + interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); + return interceptor; + } + + @Bean + public ConfigurationCustomizer configurationCustomizer() { + return configuration -> configuration.setUseDeprecatedExecutor(false); + } +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/properties/JwtProperties.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/properties/JwtProperties.java new file mode 100644 index 0000000..b3068de --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/common/properties/JwtProperties.java @@ -0,0 +1,19 @@ +package com.lkx.farmershop.common.properties; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Component +@ConfigurationProperties(prefix = "user.jwt") +@Data +public class JwtProperties { + + /** + * 用户端微信用户生成jwt令牌相关配置 + */ + private String userSecretKey; + private long userTtl; + private String userTokenName; + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/config/GlobalWebMvcConfigurer.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/config/GlobalWebMvcConfigurer.java new file mode 100644 index 0000000..ec9c280 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/config/GlobalWebMvcConfigurer.java @@ -0,0 +1,64 @@ +package com.lkx.farmershop.config; + +import com.lkx.farmershop.common.JacksonObjectMapper; +import com.lkx.farmershop.common.interceptor.JwtTokenUserInterceptor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.http.converter.HttpMessageConverter; +import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; +import org.springframework.web.cors.CorsConfiguration; +import org.springframework.web.cors.UrlBasedCorsConfigurationSource; +import org.springframework.web.filter.CorsFilter; +import org.springframework.web.servlet.config.annotation.CorsRegistry; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +import java.util.List; + +@Slf4j +@Configuration +public class GlobalWebMvcConfigurer implements WebMvcConfigurer { + + @Autowired + private JwtTokenUserInterceptor jwtTokenUserInterceptor; + + //扩展mvc框架的消息转换器,基于Jackson + @Override + public void extendMessageConverters(List> converters) { + //创建消息转换器对象 + MappingJackson2HttpMessageConverter messageConverter = new MappingJackson2HttpMessageConverter(); + //设置对象转换器,底层使用Jackson奖java转为json + messageConverter.setObjectMapper(new JacksonObjectMapper()); + //将上面的消息转换器对象追加到mvc框架的转换器集合中 + converters.add(0,messageConverter); + } + + /** + * 注册自定义拦截器 + * @param registry + */ + public void addInterceptors(InterceptorRegistry registry) { + log.info("开始注册自定义拦截器..."); + + registry.addInterceptor(jwtTokenUserInterceptor) + .addPathPatterns("/user/**") + .addPathPatterns("/farmer/**") + .addPathPatterns("/order_form/**") + .addPathPatterns("/farmerOrders/**") + .addPathPatterns("/comments/addComments") + .addPathPatterns("/comments/deleteComments") + .addPathPatterns("/goods/addGood") + .addPathPatterns("/goods/homeSearch") + .addPathPatterns("/goods/showFarmerGoods") + .addPathPatterns("/message/getMessageTotal") + .addPathPatterns("/shoppingCart/**") + .addPathPatterns("/message/getMessage") + .excludePathPatterns("/farmer/register") + .excludePathPatterns("/farmer/login") + .excludePathPatterns("/user/login") + ; + + } +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/config/RestTemplateConfig.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/config/RestTemplateConfig.java new file mode 100644 index 0000000..7cb2a8e --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/config/RestTemplateConfig.java @@ -0,0 +1,16 @@ +package com.lkx.farmershop.config; + +import org.springframework.boot.web.client.RestTemplateBuilder; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.client.RestTemplate; + +@Configuration +public class RestTemplateConfig { + + @Bean + public RestTemplate restTemplate(RestTemplateBuilder builder){ + return new RestTemplate(); + } + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/constants/SystemConstants.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/constants/SystemConstants.java new file mode 100644 index 0000000..4144b8e --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/constants/SystemConstants.java @@ -0,0 +1,100 @@ +package com.lkx.farmershop.constants; + +import java.math.BigDecimal; + +public class SystemConstants { + /** + * 全部商品 + */ + public static final int ALL_GOODS = 0; + /** + * 热销精品 + */ + public static final int HOT_SALE_GOODS = 1; + /** + * 活动商品 + */ + public static final int ACTIVITY_GOODS = 2; + /** + * 默认排序 + */ + public static final int DEFAULT_SORT = 0; + /** + * 好评排序 + */ + public static final int SCORE_SORT = 1; + /** + * 销量排序 + */ + public static final int SALES_SORT = 2; + /** + * 全部状态的订单 + */ + public static final int ALL_ORDERS = 0; + /** + * 待发货 + */ + public static final int WAIT_DELIVER = 1; + /** + * 待收货 + */ + public static final int WAIT_RECEIVE = 2; + /** + * 待评价 + */ + public static final int WAIT_COMMENTS = 3; + /** + * 已完成 + */ + public static final int COMPLETED = 4; + /** + * 已取消 + */ + public static final int CANCELED = 5; + /** + * 运费. + */ + public static final BigDecimal FREIGHT = new BigDecimal("5.00"); + /** + * 可退款时间 + */ + public static final int CANCEL_TIME = 10; + /** + * 全部评论 + */ + public static final int ALL_COMMENTS = 0; + /** + * 有图(有图片的评论) + */ + public static final int HAVE_IMAGE = 1; + /** + * 好评 + */ + public static final int GOOD_COMMENTS = 2; + /** + * 中评 + */ + public static final int MEDIUM_COMMENTS = 3; + /** + * 差评 + */ + public static final int BAD_COMMENTS = 4; + + /** + * 退款中 + */ + public static final int REFUNDING = 0; + + /** + * 退款成功 + */ + public static final int REFUND_SUCCESS = 1; + + /** + * 拒绝退款 + */ + public static final int REFUSEREFUND = 2; + + + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/controller/CategoryController.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/controller/CategoryController.java new file mode 100644 index 0000000..ea5d3c4 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/controller/CategoryController.java @@ -0,0 +1,61 @@ +package com.lkx.farmershop.controller; + + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.lkx.farmershop.common.api.ApiResult; +import com.lkx.farmershop.common.context.BaseContext; +import com.lkx.farmershop.model.entity.Category; +import com.lkx.farmershop.model.entity.Goods; +import com.lkx.farmershop.model.vo.CategoryGoodsVO; +import com.lkx.farmershop.service.ICategoryService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + *

+ * 前端控制器 + *

+ * + * @author lkx + * @since 2024-02-04 + */ +@RestController +@RequestMapping("/category") +public class CategoryController { + + @Autowired + private ICategoryService categoryService; + + /** + * 获取此分类的商品 + * @param selectedProduct + * @param selectedSort + * @param categoryId + * @param page + * @param pageSize + * @return + */ + @GetMapping("/getCategoryGoods") + public ApiResult> getCategoryGoods(Integer selectedProduct, Integer selectedSort, Integer categoryId, int page, int pageSize){ + return categoryService.getCategoryGoods(selectedProduct, selectedSort, categoryId, page, pageSize); + } + + /** + * 获取所有分类 + * @return + */ + @GetMapping("/shoppingCategory") + public ApiResult> getShoppingCategory(){ + // 测试 + Long currentId = BaseContext.getCurrentId(); + + List list = categoryService.list(); + return ApiResult.success(list); + } + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/controller/CommentsController.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/controller/CommentsController.java new file mode 100644 index 0000000..d746526 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/controller/CommentsController.java @@ -0,0 +1,65 @@ +package com.lkx.farmershop.controller; + +import com.lkx.farmershop.common.api.ApiResult; +import com.lkx.farmershop.model.dto.CommentsDto; +import com.lkx.farmershop.model.vo.*; +import com.lkx.farmershop.service.CommentsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/comments") +public class CommentsController { + + @Autowired + private CommentsService commentsService; + + /** + * 用户发表评论 + * @param commentsDto + * @return + */ + @Transactional + @PostMapping("/addComments") + public ApiResult addComments(@RequestBody CommentsDto commentsDto){ + return commentsService.addComments(commentsDto); + } + + + /** + * 获取商品的评论 + * @param goodsId + * @return + */ + @GetMapping("/commentsList") + public ApiResult commentsList(Long goodsId, Integer commentsFilter, int page, int pageSize){ + return commentsService.commentsList(goodsId,commentsFilter, page, pageSize); + } + + /** + * 返回发表评论的页面的商品信息 + * @return + */ + @GetMapping("/commenting") + public ApiResult> commenting(Long orderId){ + return commentsService.commenting(orderId); + } + + /** + * 获取各类评论数量 + * @return + */ + @GetMapping("/getCommentsCount") + public ApiResult getCommentsCount(Long goodsId){ + return commentsService.getCommentsCount(goodsId); + } + + @GetMapping("/getFirstComments") + public ApiResult getFirstComments(Long goodsId){ + return commentsService.getFirstComments(goodsId); + } + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/controller/CommonController.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/controller/CommonController.java new file mode 100644 index 0000000..a79d569 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/controller/CommonController.java @@ -0,0 +1,37 @@ +package com.lkx.farmershop.controller; + + +import com.lkx.farmershop.common.AiOSS.AliOssUtil; +import com.lkx.farmershop.common.api.ApiResult; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.io.IOException; +import java.util.List; +import java.util.UUID; + +@RestController +@Slf4j +public class CommonController { + @Autowired + private AliOssUtil aliOssUtil; + + @PostMapping("/upload") + public ApiResult upload(MultipartFile file){ + try { + //原始文件名 + String originalFilename = file.getOriginalFilename(); + //截取原始文件名后缀 .jpg + String fileName= UUID.randomUUID().toString() +originalFilename.substring(originalFilename.lastIndexOf(".")); + + //文件的请求路径 + String filePath = aliOssUtil.upload(file.getBytes(), fileName); + return ApiResult.success(filePath); + } catch (IOException e) { + log.error("文件上传失败:{}",e); + } + return ApiResult.failed("上传失败"); + } +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/controller/FOrdersController.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/controller/FOrdersController.java new file mode 100644 index 0000000..f082aac --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/controller/FOrdersController.java @@ -0,0 +1,54 @@ +package com.lkx.farmershop.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.lkx.farmershop.common.api.ApiResult; +import com.lkx.farmershop.model.vo.FOrdersPageVo; +import com.lkx.farmershop.model.vo.FOrdersVo; +import com.lkx.farmershop.service.OrdersService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@RestController +@RequestMapping("/farmerOrders") +public class FOrdersController { + + @Autowired + private OrdersService ordersService; + + /** + * 农户确认发货 + * @return + */ + @PutMapping("/confirmDeliver") + public ApiResult confirmDeliver(Long orderId){ + return ordersService.confirmDeliver(orderId); + } + + /** + * 农户查看各状态下的用户订单 + * @param page 当前页码 + * @param pageSize 每页显示数 + * @param orderStatus 订单状态 + * @return ApiResult> + */ + @GetMapping("/getFOrderByStatus") + public ApiResult getOrderByStatus(Integer page, Integer pageSize, Integer orderStatus){ + return ordersService.getOrderByStatus(page, pageSize, orderStatus); + } + + + /** + * 卖家拒单 + * @return + */ + @PutMapping("/refuseOrders") + public ApiResult refuseOrders(Long orderId, String refuseReason){ + return ordersService.refuseOrders(orderId, refuseReason); + } + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/controller/FarmerController.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/controller/FarmerController.java new file mode 100644 index 0000000..740a730 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/controller/FarmerController.java @@ -0,0 +1,72 @@ +package com.lkx.farmershop.controller; + + +import com.lkx.farmershop.common.api.ApiResult; +import com.lkx.farmershop.model.dto.LoginDTO; +import com.lkx.farmershop.model.entity.Farmer; +import com.lkx.farmershop.service.IFarmerService; +import com.lkx.farmershop.utils.ValidateCodeUtils; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.ObjectUtils; +import org.springframework.web.bind.annotation.*; + +import java.util.HashMap; +import java.util.Map; + +/** + *

+ * 前端控制器 + *

+ * + * @author lkx + * @since 2024-02-05 + */ +@RestController +@RequestMapping("/farmer") +@Slf4j +public class FarmerController { + + @Autowired + private IFarmerService farmerService; + + @PostMapping("/register") + private ApiResult executeRegister(@RequestBody Farmer farmer){ + String message=farmerService.executeRegister(farmer); + return ApiResult.success(message); + } + + @GetMapping("/sendMsg") + public ApiResult sendMsg(String phoneNum) { + //获取手机号 + String phone = phoneNum; + + //生成随机的4位验证码 + String code = ValidateCodeUtils.generateValidateCode(4).toString(); + + //调用阿里云提供的短信服务API完成发送短信 + // SMSUtils.sendMessage("瑞吉外卖","SMS_283475471",phone,code); + + //需要将生成的验证码保存到Session + + return ApiResult.success(code); + + } + + @PostMapping("/login") + public ApiResult> login(@RequestBody LoginDTO dto) { + String token = farmerService.executeLogin(dto); + if (ObjectUtils.isEmpty(token)) { + return ApiResult.failed("账号密码错误"); + } + Map map = new HashMap<>(16); + Farmer one = farmerService.lambdaQuery().eq(Farmer::getPhoneNum, dto.getPhoneNum()).one(); + + log.info("token: {}", token); + + map.put("token", token); + map.put("avatar",one.getAvatar()); + map.put("name",one.getName()); + return ApiResult.success(map, "登录成功"); + } +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/controller/FarmerGoodsController.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/controller/FarmerGoodsController.java new file mode 100644 index 0000000..d03e2cc --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/controller/FarmerGoodsController.java @@ -0,0 +1,20 @@ +package com.lkx.farmershop.controller; + + +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; + +/** + *

+ * 前端控制器 + *

+ * + * @author lkx + * @since 2024-02-08 + */ +@RestController +@RequestMapping("/farmer-goods") +public class FarmerGoodsController { + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/controller/GoodsController.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/controller/GoodsController.java new file mode 100644 index 0000000..4763124 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/controller/GoodsController.java @@ -0,0 +1,210 @@ +package com.lkx.farmershop.controller; + + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.PageList; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.lkx.farmershop.common.AiOSS.AliOssUtil; +import com.lkx.farmershop.common.api.ApiResult; +import com.lkx.farmershop.common.context.BaseContext; +import com.lkx.farmershop.model.dto.GoodsDTO; +import com.lkx.farmershop.model.dto.GoodsDetailDTO; +import com.lkx.farmershop.model.entity.Farmer; +import com.lkx.farmershop.model.entity.FarmerGoods; +import com.lkx.farmershop.model.entity.Goods; +import com.lkx.farmershop.model.entity.GoodsSwiper; +import com.lkx.farmershop.model.vo.ShowBackGoodsVo; +import com.lkx.farmershop.model.vo.ShowBackVo; +import com.lkx.farmershop.service.IFarmerGoodsService; +import com.lkx.farmershop.service.IFarmerService; +import com.lkx.farmershop.service.IGoodsService; +import com.lkx.farmershop.service.IGoodsSwiperService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + + +/** + *

+ * 前端控制器 + *

+ * + * @author lkx + * @since 2024-02-04 + */ +@RestController +@Slf4j +@RequestMapping("/goods") +public class GoodsController { + + @Autowired + private IGoodsService goodsService; + @Autowired + private IFarmerGoodsService farmerGoodsService; + @Autowired + private IGoodsSwiperService goodsSwiperService; + @Autowired + private IFarmerService farmerService; + @Autowired + private AliOssUtil aliOssUtil; + + /** + * 根据条件搜索商品名称 + * @param query 搜索条件 + * @return ApiResult> 相关名称集合 + */ + @GetMapping("/searchByQuery") + public ApiResult> searchByQuery(String query){ + return goodsService.searchByQuery(query); + } + + /** + * 根据商品名称查询商品 + * @param goodsName 商品名称 + * @param pageNum 当前页码 + * @param pageSize 每页显示数 + * @return 商品分页集合 + */ + @GetMapping("/searchByGoodsName") + public ApiResult> searchByGoodsName(String goodsName, Integer pageNum, Integer pageSize){ + return goodsService.searchByGoodsName(goodsName, pageNum, pageSize); + } + + /** + * 精品推荐(推荐算法,根据用户购物车推荐商品) + * @param page 当前页码 + * @param pageSize 每页显示条数 + * @return 返回分页后的商品数据 + */ + @GetMapping("/homeSearch") + public ApiResult> homeSearch(int page,int pageSize){ + + /*Page pageInfo=new Page<>(page, pageSize); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.orderByDesc(Goods::getSales); + queryWrapper.orderByDesc(Goods::getScore); + goodsService.page(pageInfo,queryWrapper); + return ApiResult.success(pageInfo);*/ + return goodsService.homeSearch(page, pageSize); + + } + @GetMapping("/localSearch") + public ApiResult localSearch(double latitude,double longitude,int page,int pageSize){ + + Page pageInfo=new Page<>(page, pageSize); + List farmers = farmerService.lambdaQuery().between(Farmer::getLongitude, longitude - 0.1, longitude + 0.1) + .between(Farmer::getLatitude, latitude - 0.1, latitude + 0.1).list(); + List farmerGoods = new ArrayList<>(); + for (Farmer farmer : farmers) { + farmerGoods.addAll(farmerGoodsService.lambdaQuery().eq(FarmerGoods::getFarmerId, farmer.getFarmerId()).list()); + } + ListgoodsList=new ArrayList<>(); + for (FarmerGoods farmerGood : farmerGoods) { + goodsList.add(goodsService.lambdaQuery().eq(Goods::getGoodsId,farmerGood.getGoodsId()).one()); + } + pageInfo.setRecords(goodsList); + + //过滤已被删除的商品 + List records = pageInfo.getRecords(); + List collect = records.stream().filter(goods -> goods.getIsDelete() == 0).collect(Collectors.toList()); + pageInfo.setRecords(collect); + + return ApiResult.success(pageInfo); + + } + + @GetMapping("/showFarmerGoods") + public ApiResult showFarmerGoods(int page,int pageSize){ + Long farmerId = BaseContext.getCurrentId(); // 这里获取到了用户ID + + // 从 farmerGoods 表获取用户对应的 goodsId 列表 + List farmerGoodsList = farmerGoodsService.lambdaQuery() + .eq(FarmerGoods::getFarmerId, farmerId) + .list(); + if (farmerGoodsList.isEmpty()) { + return ApiResult.success(); + } + + List goodsIdList = farmerGoodsList.stream() + .map(FarmerGoods::getGoodsId) + .collect(Collectors.toList()); + + // 使用分页信息创建一个 Page 对象,用于分页查询 Goods 表 + Page pageInfo = new Page<>(page, pageSize); + + + // 在 Goods 表中分页查询对应的商品信息 + Page goodsPage = goodsService.lambdaQuery() + .in(Goods::getGoodsId, goodsIdList) + .page(pageInfo); + + //过滤已被删除的商品 + List records = goodsPage.getRecords(); + List collect = records.stream().filter(goods -> goods.getIsDelete()==0).collect(Collectors.toList()); + goodsPage.setRecords(collect); + + // 返回分页查询的结果 + return ApiResult.success(goodsPage); + + } + + /** + * 卖家(农户)添加商品 + * @param goodsDTO + * @return + */ + @PostMapping("/addGood") + @Transactional + public ApiResult addGoods(@RequestBody GoodsDTO goodsDTO){ + return goodsService.addGoods(goodsDTO); + } + + /** + * 卖家(农户)删除商品 + * @param goodsId + * @return + */ + @DeleteMapping("/deleteGoods") + @Transactional + public ApiResult deleteGoods(Long goodsId){ + return goodsService.deleteGoods(goodsId); + } + + /** + * 卖家(农户)更改商品 + * @param goodsDTO + * @return + */ + @PostMapping("/updateGoods") + @Transactional + public ApiResult updateGoods(@RequestBody GoodsDTO goodsDTO){ + return goodsService.updateGoods(goodsDTO); + } + + /** + * 查看商品详情 + * @param goodsId + * @return + */ + @GetMapping("/detail") + public ApiResult goodsDetail(Long goodsId){ + return goodsService.goodsDetail(goodsId); + } + + /** + * 修改商品信息页面的数据回显 + * @param goodsId + * @return + */ + @GetMapping("/showBack") + public ApiResult showBack(Long goodsId){ + return goodsService.showBack(goodsId); + } + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/controller/GoodsSwiperController.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/controller/GoodsSwiperController.java new file mode 100644 index 0000000..a6ca38b --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/controller/GoodsSwiperController.java @@ -0,0 +1,20 @@ +package com.lkx.farmershop.controller; + + +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; + +/** + *

+ * 前端控制器 + *

+ * + * @author lkx + * @since 2024-02-11 + */ +@RestController +@RequestMapping("/goods-swiper") +public class GoodsSwiperController { + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/controller/MessageController.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/controller/MessageController.java new file mode 100644 index 0000000..8a01b93 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/controller/MessageController.java @@ -0,0 +1,47 @@ +package com.lkx.farmershop.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.lkx.farmershop.common.api.ApiResult; +import com.lkx.farmershop.model.entity.UserMessage; +import com.lkx.farmershop.model.vo.OrderMessageVo; +import com.lkx.farmershop.service.UserMessageService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@RestController +@RequestMapping("/message") +public class MessageController { + + @Autowired + private UserMessageService userMessageService; + + /** + * 用户获取消息 + * @return + */ + @GetMapping("/getMessage") + public ApiResult> getMessage(int page, int pageSize){ + return userMessageService.getMessage(page, pageSize); + } + + /** + * 用户设置已读消息 + * @param messageId + * @return + */ + @PutMapping("/alreadyRead") + public ApiResult alreadyRead(Long messageId){ + return userMessageService.alreadyRead(messageId); + } + @GetMapping("/getMessageTotal") + public ApiResultgetMessageTotal(){ + return userMessageService.getMessageTotal(); + } + + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/controller/OrderController.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/controller/OrderController.java new file mode 100644 index 0000000..8b37298 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/controller/OrderController.java @@ -0,0 +1,113 @@ +package com.lkx.farmershop.controller; + +import com.lkx.farmershop.common.api.ApiResult; +import com.lkx.farmershop.model.dto.CancelDto; +import com.lkx.farmershop.model.dto.SettleAccountsDto; +import com.lkx.farmershop.model.dto.SubmitOrdersDto; +import com.lkx.farmershop.model.vo.*; +import com.lkx.farmershop.service.OrdersService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/order_form") +public class OrderController { + + @Autowired + private OrdersService ordersService; + + /** + * 购物车结算 + * @param accountsDtoList + * @return + */ + @PostMapping("/settleAccounts") + public ApiResult settleAccounts(@RequestBody List accountsDtoList){ + return ordersService.settleAccounts(accountsDtoList); + } + + /** + * 查询各种状态下的订单 + * @param orderStatus + * @return + */ + @GetMapping("/getOrders") + public ApiResult getOrders(Integer orderStatus, int page, int pageSize){ + return ordersService.getOrders(orderStatus, page, pageSize); + } + + /** + * 提交订单 + * @param submitOrdersDto + * @return + */ + @PostMapping("/submitOrders") + public ApiResult submitOrders(@RequestBody SubmitOrdersDto submitOrdersDto){ + return ordersService.submitOrders(submitOrdersDto); + } + + /** + * 获取订单详情 + * @param orderId + * @return + */ + @GetMapping("/getOrdersDetail") + public ApiResult getOrdersDetail(Long orderId){ + return ordersService.getOrdersDetail(orderId); + } + + /** + * 取消订单 + * @param cancelDto + * @return + */ + @PostMapping("/cancelOrders") + public ApiResult cancelOrders(@RequestBody CancelDto cancelDto){ + return ordersService.cancelOrders(cancelDto); + } + + + /** + * 确认收货 + * @param orderId + * @return + */ + @PutMapping("/confirmReceipt") + public ApiResult confirmReceipt(Long orderId){ + return ordersService.confirmReceipt(orderId); + } + + + @GetMapping("/buyAgain") + public ApiResult> buyAgain(Long orderId){ + return ordersService.buyAgain(orderId); + } + + + /** + * 回显商品信息(申请退货退款) + * @param orderNum 订单编号 + * @param goodsIdList 商品id集合 + * @return ReturnGoodsVO集合 + */ + @GetMapping("/returnGoods") + public ApiResult> returnGoods(String orderNum, @RequestParam List goodsIdList){ + return ordersService.returnGoods(orderNum, goodsIdList); + } + + /** + * 用户催发货 + * @param orderId + * @return + */ + @PutMapping("/urge") + public ApiResult urge(Long orderId){ + return ordersService.urge(orderId); + } + + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/controller/ReturnGoodsController.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/controller/ReturnGoodsController.java new file mode 100644 index 0000000..cdc9608 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/controller/ReturnGoodsController.java @@ -0,0 +1,81 @@ +package com.lkx.farmershop.controller; + + +import com.lkx.farmershop.common.api.ApiResult; +import com.lkx.farmershop.model.dto.CancelDto; +import com.lkx.farmershop.model.dto.ReturnGoodsDTO; +import com.lkx.farmershop.model.entity.ReturnGoods; +import com.lkx.farmershop.model.vo.FReturnGoodsVO; +import com.lkx.farmershop.service.IReturnGoodsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + *

+ * 退货表 前端控制器 + *

+ * + * @author lwc + * @since 2024-04-05 + */ +@RestController +@RequestMapping("/return-goods") +public class ReturnGoodsController { + + @Autowired + private IReturnGoodsService returnGoodsService; + + /** + * 添加退货商品 + * @param returnGoodsDTO 退货商品表DTO + * @return ApiResult + */ + @PostMapping("/addReturnGoods") + public ApiResult addReturnGoods(@RequestBody ReturnGoodsDTO returnGoodsDTO){ + return returnGoodsService.addReturnGoods(returnGoodsDTO); + } + + /** + * 退款成功 + * @param rtnGoodsId 退货表id + * @return ApiResult + */ + @PutMapping("/refundSuccess") + public ApiResult refundSuccess(Long rtnGoodsId){ + return returnGoodsService.refundSuccess(rtnGoodsId); + } + + /** + * 商家拒绝退款 + * @param rtnGoodsId 退货表id + * @return ApiResult + */ + @PutMapping("/refuseRefund") + public ApiResult refuseRefund(Long rtnGoodsId){ + return returnGoodsService.refuseRefund(rtnGoodsId); + } + + /** + * 农户分页查询退货商品(作废) + * @param pageNum 当前页码 + * @param pageSize 每页显示数 + * @return ApiResult> + */ + @GetMapping("/queryReturnGoods") + public ApiResult> queryReturnGoods(Integer pageNum, Integer pageSize){ + return returnGoodsService.queryReturnGoods(pageNum, pageSize); + } + + /** + * 再次申请退货 + * @param rtnGoodsId 退货表id + * @return ApiResult + */ + @PutMapping("/rtnAgain") + public ApiResult rtnAgain(Long rtnGoodsId){ + return returnGoodsService.rtnAgain(rtnGoodsId); + } +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/controller/ReturnVoucherController.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/controller/ReturnVoucherController.java new file mode 100644 index 0000000..d614e2a --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/controller/ReturnVoucherController.java @@ -0,0 +1,20 @@ +package com.lkx.farmershop.controller; + + +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; + +/** + *

+ * 前端控制器 + *

+ * + * @author lwc + * @since 2024-04-05 + */ +@RestController +@RequestMapping("/return-voucher") +public class ReturnVoucherController { + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/controller/ShoppingCartController.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/controller/ShoppingCartController.java new file mode 100644 index 0000000..990403b --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/controller/ShoppingCartController.java @@ -0,0 +1,66 @@ +package com.lkx.farmershop.controller; + +import com.lkx.farmershop.common.api.ApiResult; +import com.lkx.farmershop.model.dto.CartGoodsDto; +import com.lkx.farmershop.model.entity.Goods; +import com.lkx.farmershop.model.entity.ShoppingCart; +import com.lkx.farmershop.model.vo.ShoppingCartVo; +import com.lkx.farmershop.service.ShoppingCartService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@Slf4j +@RequestMapping("/shoppingCart") +public class ShoppingCartController { + + @Autowired + private ShoppingCartService shoppingCartService; + + /** + * 查询购物车 + * @return + */ + @GetMapping("/queryCart") + public ApiResult> queryCart(){ + return shoppingCartService.queryCart(); + } + + /** + * 将商品添加到购物车 + * @param cartGoodsDto + * @return + */ + @PostMapping("/addCart") + public ApiResult addCart(@RequestBody CartGoodsDto cartGoodsDto){ + return shoppingCartService.addCart(cartGoodsDto); + } + + /** + * 删除购物车商品 + * @return + */ + @PostMapping("/deleteCart") + @Transactional + public ApiResult deleteCart(@RequestBody String goodsId) { + log.info(goodsId.toString()); + Long goodId = Long.valueOf(goodsId); + return shoppingCartService.deleteCart(goodId); + } + + /** + * 修改购物车 + * @param cartGoodsDto + * @return + */ + @PutMapping("/updateCart") + public ApiResult updateCart(@RequestBody CartGoodsDto cartGoodsDto){ + return shoppingCartService.updateCart(cartGoodsDto); + } + + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/controller/SwiperController.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/controller/SwiperController.java new file mode 100644 index 0000000..9e2f111 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/controller/SwiperController.java @@ -0,0 +1,35 @@ +package com.lkx.farmershop.controller; + + +import com.lkx.farmershop.common.api.ApiResult; +import com.lkx.farmershop.model.entity.Swiper; +import com.lkx.farmershop.service.ISwiperService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + *

+ * 前端控制器 + *

+ * + * @author lkx + * @since 2024-02-06 + */ +@RestController +@RequestMapping("/swiper") +public class SwiperController { + @Autowired + private ISwiperService swiperService; + + + @GetMapping("/getSwiper") + public ApiResult> getSwiperList(){ + List list = swiperService.list(); + return ApiResult.success(list); + } +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/controller/UserController.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/controller/UserController.java new file mode 100644 index 0000000..7c356cc --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/controller/UserController.java @@ -0,0 +1,62 @@ +package com.lkx.farmershop.controller; + + +import com.lkx.farmershop.common.api.ApiResult; +import com.lkx.farmershop.common.properties.JwtProperties; +import com.lkx.farmershop.jwt.NewJwtUtil; +import com.lkx.farmershop.model.dto.UserLoginDTO; +import com.lkx.farmershop.model.entity.User; +import com.lkx.farmershop.model.vo.UserLoginVO; +import com.lkx.farmershop.service.IUserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; + +import java.util.HashMap; +import java.util.Map; + +/** + *

+ * 用户表 前端控制器 + *

+ * + * @author lwc + * @since 2024-03-21 + */ +@RestController +@RequestMapping("/user") +public class UserController { + + @Autowired + private IUserService userService; + @Autowired + private JwtProperties jwtProperties; + + /** + * 用户微信登录 + * @param userLoginDTO + * @return + */ + @PostMapping("/login") + public ApiResult wxlogin(@RequestBody UserLoginDTO userLoginDTO){ + // 用户微信登录 + User user = userService.wxlogin(userLoginDTO); + Map claims = new HashMap<>(); + Long userId = user.getId(); + claims.put("userId", userId); + String token = NewJwtUtil.createJWT( + jwtProperties.getUserSecretKey(), + jwtProperties.getUserTtl(), + claims); + UserLoginVO userLoginVO = UserLoginVO.builder() + .id(userId) + .openid(user.getOpenid()) + .token(token) + .build(); + return ApiResult.success(userLoginVO); + } + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/jwt/NewJwtUtil.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/jwt/NewJwtUtil.java new file mode 100644 index 0000000..f37b528 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/jwt/NewJwtUtil.java @@ -0,0 +1,61 @@ +package com.lkx.farmershop.jwt; + +import io.jsonwebtoken.Claims; +import io.jsonwebtoken.JwtBuilder; +import io.jsonwebtoken.Jwts; +import io.jsonwebtoken.SignatureAlgorithm; + +import java.nio.charset.StandardCharsets; +import java.util.Date; +import java.util.Map; + +public class NewJwtUtil { + + /** + * 生成jwt + * 使用Hs256算法, 私匙使用固定秘钥 + * + * @param secretKey jwt秘钥 + * @param ttlMillis jwt过期时间(毫秒) + * @param claims 设置的信息 + * @return + */ + public static String createJWT(String secretKey, long ttlMillis, Map claims) { + // 指定签名的时候使用的签名算法,也就是header那部分 + SignatureAlgorithm signatureAlgorithm = SignatureAlgorithm.HS256; + + // 生成JWT的时间 + long expMillis = System.currentTimeMillis() + ttlMillis; + Date exp = new Date(expMillis); + + // 设置jwt的body + JwtBuilder builder = Jwts.builder() + // 如果有私有声明,一定要先设置这个自己创建的私有的声明, + // 这个是给builder的claim赋值,一旦写在标准的声明赋值之后,就是覆盖了那些标准的声明的 + .setClaims(claims) + // 设置签名使用的签名算法和签名使用的秘钥 + .signWith(signatureAlgorithm, secretKey.getBytes(StandardCharsets.UTF_8)); + // 设置过期时间 + + + //将构建好的JWT生成字符串形式的结果 + return builder.compact(); + } + + /** + * Token解密 + * + * @param secretKey jwt秘钥 此秘钥一定要保留好在服务端, 不能暴露出去, + * @param token 否则sign就可以被伪造, 如果对接多个客户端建议改造成多个加密后的token + * @return + */ + public static Claims parseJWT(String secretKey, String token) { + // 得到DefaultJwtParser + Claims claims = Jwts.parser() + // 设置签名的秘钥 + .setSigningKey(secretKey.getBytes(StandardCharsets.UTF_8)) + // 设置需要解析的jwt + .parseClaimsJws(token).getBody(); + return claims; + } +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/ActivityGoodsMapper.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/ActivityGoodsMapper.java new file mode 100644 index 0000000..638b1af --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/ActivityGoodsMapper.java @@ -0,0 +1,17 @@ +package com.lkx.farmershop.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.lkx.farmershop.model.entity.ActivityGoods; +import org.apache.ibatis.annotations.Mapper; + +/** + * (ActivityGoods)表数据库访问层 + * + * @author makejava + * @since 2024-03-30 14:01:52 + */ +@Mapper +public interface ActivityGoodsMapper extends BaseMapper { + +} + diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/CategoryMapper.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/CategoryMapper.java new file mode 100644 index 0000000..797ba3b --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/CategoryMapper.java @@ -0,0 +1,18 @@ +package com.lkx.farmershop.mapper; + +import com.lkx.farmershop.model.entity.Category; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author lkx + * @since 2024-02-04 + */ +@Mapper +public interface CategoryMapper extends BaseMapper { + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/CommentPicMapper.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/CommentPicMapper.java new file mode 100644 index 0000000..ba3a116 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/CommentPicMapper.java @@ -0,0 +1,17 @@ +package com.lkx.farmershop.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.lkx.farmershop.model.entity.CommentPic; +import org.apache.ibatis.annotations.Mapper; + +/** + * (CommentPic)表数据库访问层 + * + * @author makejava + * @since 2024-04-04 17:32:31 + */ +@Mapper +public interface CommentPicMapper extends BaseMapper { + +} + diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/CommentsMapper.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/CommentsMapper.java new file mode 100644 index 0000000..3d36f20 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/CommentsMapper.java @@ -0,0 +1,17 @@ +package com.lkx.farmershop.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.lkx.farmershop.model.entity.Comments; +import org.apache.ibatis.annotations.Mapper; + +/** + * (Comments)表数据库访问层 + * + * @author makejava + * @since 2024-04-03 09:06:52 + */ +@Mapper +public interface CommentsMapper extends BaseMapper { + +} + diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/FarmerGoodsMapper.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/FarmerGoodsMapper.java new file mode 100644 index 0000000..437212d --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/FarmerGoodsMapper.java @@ -0,0 +1,16 @@ +package com.lkx.farmershop.mapper; + +import com.lkx.farmershop.model.entity.FarmerGoods; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author lkx + * @since 2024-02-08 + */ +public interface FarmerGoodsMapper extends BaseMapper { + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/FarmerMapper.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/FarmerMapper.java new file mode 100644 index 0000000..8e69e09 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/FarmerMapper.java @@ -0,0 +1,18 @@ +package com.lkx.farmershop.mapper; + +import com.lkx.farmershop.model.entity.Farmer; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author lkx + * @since 2024-02-05 + */ +@Mapper +public interface FarmerMapper extends BaseMapper { + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/GoodsMapper.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/GoodsMapper.java new file mode 100644 index 0000000..162c97e --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/GoodsMapper.java @@ -0,0 +1,18 @@ +package com.lkx.farmershop.mapper; + +import com.lkx.farmershop.model.entity.Goods; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author lkx + * @since 2024-02-04 + */ +@Mapper +public interface GoodsMapper extends BaseMapper { + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/GoodsSwiperMapper.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/GoodsSwiperMapper.java new file mode 100644 index 0000000..743d63d --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/GoodsSwiperMapper.java @@ -0,0 +1,16 @@ +package com.lkx.farmershop.mapper; + +import com.lkx.farmershop.model.entity.GoodsSwiper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author lkx + * @since 2024-02-11 + */ +public interface GoodsSwiperMapper extends BaseMapper { + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/OrdersGoodsMapper.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/OrdersGoodsMapper.java new file mode 100644 index 0000000..dbe7ab5 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/OrdersGoodsMapper.java @@ -0,0 +1,17 @@ +package com.lkx.farmershop.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.lkx.farmershop.model.entity.OrdersGoods; +import org.apache.ibatis.annotations.Mapper; + +/** + * (OrdersGoods)表数据库访问层 + * + * @author makejava + * @since 2024-03-31 20:05:54 + */ +@Mapper +public interface OrdersGoodsMapper extends BaseMapper { + +} + diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/OrdersMapper.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/OrdersMapper.java new file mode 100644 index 0000000..ed9e274 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/OrdersMapper.java @@ -0,0 +1,17 @@ +package com.lkx.farmershop.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.lkx.farmershop.model.entity.Orders; +import org.apache.ibatis.annotations.Mapper; + +/** + * (Orders)表数据库访问层 + * + * @author makejava + * @since 2024-03-31 20:05:29 + */ +@Mapper +public interface OrdersMapper extends BaseMapper { + +} + diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/ReturnGoodsMapper.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/ReturnGoodsMapper.java new file mode 100644 index 0000000..34c9832 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/ReturnGoodsMapper.java @@ -0,0 +1,18 @@ +package com.lkx.farmershop.mapper; + +import com.lkx.farmershop.model.entity.ReturnGoods; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** + *

+ * 退货表 Mapper 接口 + *

+ * + * @author lwc + * @since 2024-04-05 + */ +@Mapper +public interface ReturnGoodsMapper extends BaseMapper { + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/ReturnVoucherMapper.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/ReturnVoucherMapper.java new file mode 100644 index 0000000..e632f29 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/ReturnVoucherMapper.java @@ -0,0 +1,18 @@ +package com.lkx.farmershop.mapper; + +import com.lkx.farmershop.model.entity.ReturnVoucher; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author lwc + * @since 2024-04-05 + */ +@Mapper +public interface ReturnVoucherMapper extends BaseMapper { + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/ShoppingCartMapper.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/ShoppingCartMapper.java new file mode 100644 index 0000000..acecc61 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/ShoppingCartMapper.java @@ -0,0 +1,17 @@ +package com.lkx.farmershop.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.lkx.farmershop.model.entity.ShoppingCart; +import org.apache.ibatis.annotations.Mapper; + +/** + * (ShoppingCart)表数据库访问层 + * + * @author makejava + * @since 2024-03-21 22:44:14 + */ +@Mapper +public interface ShoppingCartMapper extends BaseMapper { + +} + diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/SwiperMapper.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/SwiperMapper.java new file mode 100644 index 0000000..6473e70 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/SwiperMapper.java @@ -0,0 +1,18 @@ +package com.lkx.farmershop.mapper; + +import com.lkx.farmershop.model.entity.Swiper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author lkx + * @since 2024-02-06 + */ +@Mapper +public interface SwiperMapper extends BaseMapper { + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/UrgencyOrdersMapper.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/UrgencyOrdersMapper.java new file mode 100644 index 0000000..5fb6c71 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/UrgencyOrdersMapper.java @@ -0,0 +1,17 @@ +package com.lkx.farmershop.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.lkx.farmershop.model.entity.UrgencyOrders; +import org.apache.ibatis.annotations.Mapper; + +/** + * (UrgencyOrders)表数据库访问层 + * + * @author makejava + * @since 2024-04-08 13:51:45 + */ +@Mapper +public interface UrgencyOrdersMapper extends BaseMapper { + +} + diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/UserMapper.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/UserMapper.java new file mode 100644 index 0000000..d81b4a6 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/UserMapper.java @@ -0,0 +1,21 @@ +package com.lkx.farmershop.mapper; + +import com.lkx.farmershop.model.entity.User; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + *

+ * 用户表 Mapper 接口 + *

+ * + * @author lwc + * @since 2024-03-21 + */ +@Mapper +public interface UserMapper extends BaseMapper { + + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/UserMessageMapper.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/UserMessageMapper.java new file mode 100644 index 0000000..25ddc8e --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/mapper/UserMessageMapper.java @@ -0,0 +1,17 @@ +package com.lkx.farmershop.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.lkx.farmershop.model.entity.UserMessage; +import org.apache.ibatis.annotations.Mapper; + +/** + * (UserMessage)表数据库访问层 + * + * @author makejava + * @since 2024-04-08 13:27:45 + */ +@Mapper +public interface UserMessageMapper extends BaseMapper { + +} + diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/dto/CancelDto.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/dto/CancelDto.java new file mode 100644 index 0000000..453e222 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/dto/CancelDto.java @@ -0,0 +1,14 @@ +package com.lkx.farmershop.model.dto; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class CancelDto { + + private Long orderId; + private String cancelReason; +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/dto/CartGoodsDto.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/dto/CartGoodsDto.java new file mode 100644 index 0000000..1bd39b3 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/dto/CartGoodsDto.java @@ -0,0 +1,18 @@ +package com.lkx.farmershop.model.dto; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class CartGoodsDto { + + //商品id + private Long goodsId; + //商品数量 + private Integer goodsCount; + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/dto/CommentsDetailDto.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/dto/CommentsDetailDto.java new file mode 100644 index 0000000..43a8f2c --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/dto/CommentsDetailDto.java @@ -0,0 +1,24 @@ +package com.lkx.farmershop.model.dto; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class CommentsDetailDto { + + //商品id + private Long goodsId; + //评分 + private BigDecimal commentScore; + //评论内容 + private String commentContent; + //评论图片 + private List commentImgList; + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/dto/CommentsDto.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/dto/CommentsDto.java new file mode 100644 index 0000000..b163ef0 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/dto/CommentsDto.java @@ -0,0 +1,19 @@ +package com.lkx.farmershop.model.dto; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class CommentsDto { + + private Long orderId; + + List detailDtoList; + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/dto/GoodsDTO.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/dto/GoodsDTO.java new file mode 100644 index 0000000..7283fb9 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/dto/GoodsDTO.java @@ -0,0 +1,15 @@ +package com.lkx.farmershop.model.dto; + +import com.lkx.farmershop.model.entity.Goods; +import com.lkx.farmershop.model.entity.GoodsSwiper; +import lombok.Data; +import org.springframework.web.multipart.MultipartFile; + +import java.util.List; + +@Data +public class GoodsDTO { + private Goods goods; + private List goodsSwiper; + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/dto/GoodsDetailDTO.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/dto/GoodsDetailDTO.java new file mode 100644 index 0000000..195b92e --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/dto/GoodsDetailDTO.java @@ -0,0 +1,16 @@ +package com.lkx.farmershop.model.dto; + +import com.lkx.farmershop.model.entity.Goods; +import com.lkx.farmershop.model.entity.GoodsSwiper; +import com.lkx.farmershop.model.entity.Swiper; +import lombok.Data; + +import java.util.List; + +@Data +public class GoodsDetailDTO { + private Long farmerId; + private Goods goods; + private List goodsSwipers; + private String location; +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/dto/LoginDTO.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/dto/LoginDTO.java new file mode 100644 index 0000000..65f9b26 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/dto/LoginDTO.java @@ -0,0 +1,15 @@ +package com.lkx.farmershop.model.dto; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; + +@Data +public class LoginDTO { + private String phoneNum; + + private String password; + + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/dto/RegisterDTO.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/dto/RegisterDTO.java new file mode 100644 index 0000000..084fb79 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/dto/RegisterDTO.java @@ -0,0 +1,28 @@ +package com.lkx.farmershop.model.dto; + +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.Email; +import javax.validation.constraints.NotEmpty; + +@Data +public class RegisterDTO { + @NotEmpty(message = "请输入账号") + @Length(min = 2, max = 15, message = "长度在2-15") + private String name; + + @NotEmpty(message = "请输入密码") + @Length(min = 6, max = 20, message = "长度在6-20") + private String pass; + + @NotEmpty(message = "请再次输入密码") + @Length(min = 6, max = 20, message = "长度在6-20") + private String checkPass; + + @NotEmpty(message = "请输入电子邮箱") + @Email(message = "邮箱格式不正确") + private String email; + + private int roleId; +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/dto/ReturnGoodsDTO.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/dto/ReturnGoodsDTO.java new file mode 100644 index 0000000..958bf44 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/dto/ReturnGoodsDTO.java @@ -0,0 +1,24 @@ +package com.lkx.farmershop.model.dto; + +import com.lkx.farmershop.model.entity.ReturnGoods; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + + +/** + * 退货商品表DTO + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class ReturnGoodsDTO { + + private ReturnGoods returnGoods; // 退货商品 + + List idList; // id集合 + + List voucherList; //凭证集合 +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/dto/SettleAccountsDto.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/dto/SettleAccountsDto.java new file mode 100644 index 0000000..deff8d9 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/dto/SettleAccountsDto.java @@ -0,0 +1,18 @@ +package com.lkx.farmershop.model.dto; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class SettleAccountsDto { + + private Long farmerId; + + private List cartGoodsDtoList; + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/dto/SubmitFarmerIdDto.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/dto/SubmitFarmerIdDto.java new file mode 100644 index 0000000..d0cb40d --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/dto/SubmitFarmerIdDto.java @@ -0,0 +1,26 @@ +package com.lkx.farmershop.model.dto; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class SubmitFarmerIdDto { + + //卖家id + private Long farmerId; + //0:快递,1:送货上门 + private Integer delivery; + //备注 + private String remark; + //运费 + private BigDecimal freight; + //商品信息 + private List cartGoodsDtoList; + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/dto/SubmitOrdersDto.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/dto/SubmitOrdersDto.java new file mode 100644 index 0000000..d62c671 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/dto/SubmitOrdersDto.java @@ -0,0 +1,24 @@ +package com.lkx.farmershop.model.dto; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class SubmitOrdersDto { + + //收货地址 + private String address; + // 手机号 + private String phone; + //收货人 + private String consignee; + //以商家分类的信息 + private List submitFarmerIdDtoList; + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/dto/UserLoginDTO.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/dto/UserLoginDTO.java new file mode 100644 index 0000000..1cf9eaa --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/dto/UserLoginDTO.java @@ -0,0 +1,25 @@ +package com.lkx.farmershop.model.dto; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 用户登录DTO + */ +@Data +public class UserLoginDTO implements Serializable { + + private String code; + + /** + * 用户名 + */ + private String username; + + /** + * 头像 + */ + private String avatar; + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/ActivityGoods.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/ActivityGoods.java new file mode 100644 index 0000000..eee9a91 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/ActivityGoods.java @@ -0,0 +1,38 @@ +package com.lkx.farmershop.model.entity; + + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; + +import java.time.LocalDateTime; + +/** + * (ActivityGoods)表实体类 + * + * @author makejava + * @since 2024-03-30 14:01:53 + */ +@SuppressWarnings("serial") +@Data +@AllArgsConstructor +@NoArgsConstructor +@TableName("activity_goods") +public class ActivityGoods { + //活动商品主键@TableId + private Long id; + + //商品id + private Long goodsId; + + @TableField(value = "create_time", fill = FieldFill.INSERT) + private LocalDateTime createTime; + @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; + +} + diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/Category.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/Category.java new file mode 100644 index 0000000..e0f8ba5 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/Category.java @@ -0,0 +1,26 @@ +package com.lkx.farmershop.model.entity; + +import java.io.Serializable; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

+ * + *

+ * + * @author lkx + * @since 2024-02-04 + */ +@Data +@EqualsAndHashCode(callSuper = false) +public class Category implements Serializable { + + private static final long serialVersionUID = 1L; + + private Integer categoryId; + + private String categoryName; + + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/CategoryGoods.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/CategoryGoods.java new file mode 100644 index 0000000..76c1c2c --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/CategoryGoods.java @@ -0,0 +1,10 @@ +package com.lkx.farmershop.model.entity; + +import lombok.Data; + +@Data +public class CategoryGoods { + private Integer id; + private String categoryId; + private String goodsId; +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/CommentPic.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/CommentPic.java new file mode 100644 index 0000000..204283d --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/CommentPic.java @@ -0,0 +1,34 @@ +package com.lkx.farmershop.model.entity; + + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; + +import java.io.Serializable; + +/** + * (CommentPic)表实体类 + * + * @author makejava + * @since 2024-04-04 17:32:31 + */ +@SuppressWarnings("serial") +@Data +@AllArgsConstructor +@NoArgsConstructor +@TableName("comment_pic") +public class CommentPic implements Serializable { + private static final long serialVersionUID = 1L; + + //主键 + private Long id; + //评论id + private Long commentId; + //图片 + private String commentImg; + +} + diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/Comments.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/Comments.java new file mode 100644 index 0000000..33a428f --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/Comments.java @@ -0,0 +1,49 @@ +package com.lkx.farmershop.model.entity; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +/** + * (Comments)表实体类 + * + * @author makejava + * @since 2024-04-03 09:06:52 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@TableName("comments") +@Builder +public class Comments implements Serializable{ + private static final long serialVersionUID = 1L; + + //评论id@TableId + private Long id; + + //评论所属用户id + private Long userId; + //商品id + private Long goodsId; + //评分 + private BigDecimal commentScore; + //评论内容 + private String commentContent; + //评论时间 + @TableField(value = "create_time", fill = FieldFill.INSERT) + private LocalDateTime createTime; + //是否有图 + private Integer havePic; + + +} + diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/Farmer.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/Farmer.java new file mode 100644 index 0000000..cb4b8bc --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/Farmer.java @@ -0,0 +1,70 @@ +package com.lkx.farmershop.model.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; + +/** + *

+ * + *

+ * + * @author lkx + * @since 2024-02-05 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = false) +public class Farmer implements Serializable { + + private static final long serialVersionUID = 1L; + @TableId + private Long farmerId; + + /** + * 店铺位置 + */ + private String location; + + /** + * 店铺名称 + */ + private String name; + + /** + * 农户密码 + */ + private String pass; + + /** + * 农户真实姓名 + */ + private String actualName; + + /** + * 农户身份证 + */ + + private String idCard; + + /** + * 手机号 + */ + + private String phoneNum; + + /** + * 店铺头像 + */ + private String avatar="https://child-start.oss-cn-shenzhen.aliyuncs.com/be436a56-108c-4295-ab63-3a83f04faf9b.jpg"; + + private double longitude; + + private double latitude; + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/FarmerGoods.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/FarmerGoods.java new file mode 100644 index 0000000..2a5b30a --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/FarmerGoods.java @@ -0,0 +1,32 @@ +package com.lkx.farmershop.model.entity; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; + +/** + *

+ * + *

+ * + * @author lkx + * @since 2024-02-08 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@TableName("farmer_goods") +public class FarmerGoods implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; + + private Long farmerId; + + private Long goodsId; + + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/Goods.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/Goods.java new file mode 100644 index 0000000..5cf04bb --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/Goods.java @@ -0,0 +1,89 @@ +package com.lkx.farmershop.model.entity; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.*; + +/** + *

+ * + *

+ * + * @author lkx + * @since 2024-02-04 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class Goods implements Serializable { + + private static final long serialVersionUID = 1L; + @TableId + private Long goodsId; + + private String goodsName; + + //商品库存 + private Integer goodsNumber; + + private BigDecimal goodsPrice; + + private String goodsLogo; + + @TableField(value = "create_time", fill = FieldFill.INSERT) + private LocalDateTime createTime; + @TableField(value = "update_time", fill = FieldFill.UPDATE) + private LocalDateTime updateTime; + + private String goodsDetail; + + private String goodsCategory; + + /** + * 0:不包邮,1:包邮 + */ + private Integer freeDelivery; + + /** + * 0:不支持送货上门,1:支持送货上门 + */ + private Integer homeDelivery; + + /** + * 商品销量 + */ + private Integer sales; + /** + * 发货时间 + */ + private Integer shoppingTime; + /** + * 商品评分 + */ + private BigDecimal score; + /** + * 价格的单位 + */ + @Builder.Default + private String unit="元/斤"; + /** + * 是否被删除,0:未被删除,1:已删除 + */ + @Builder.Default + private Integer isDelete = 0; + + @TableField(exist = false) + int cnt; //喜欢该论文的用户数量 + + @TableField(exist = false) + double w; //相似度(只在推荐时调用) +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/GoodsSwiper.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/GoodsSwiper.java new file mode 100644 index 0000000..e2d7c98 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/GoodsSwiper.java @@ -0,0 +1,33 @@ +package com.lkx.farmershop.model.entity; + +import java.io.Serializable; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + *

+ * + *

+ * + * @author lkx + * @since 2024-02-11 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@EqualsAndHashCode(callSuper = false) +public class GoodsSwiper implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; + + private Long goodsId; + + private String goodsSwiper; + + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/Orders.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/Orders.java new file mode 100644 index 0000000..4a6331f --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/Orders.java @@ -0,0 +1,66 @@ +package com.lkx.farmershop.model.entity; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +/** + * (Orders)表实体类 + * + * @author makejava + * @since 2024-03-31 20:05:29 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@TableName("orders") +public class Orders implements Serializable{ + private static final long serialVersionUID = 1L; + + //订单id@TableId + private Long id; + + //订单编号 + private String orderNum; + //用户id + private Long userId; + //卖家id + private Long farmerId; + //0:快递,1:送货上门 + private Integer delivery; + //创建时间 + @TableField(value = "create_time", fill = FieldFill.INSERT) + private LocalDateTime createTime; + //付款时间 + private LocalDateTime payTime; + //发货时间 + private LocalDateTime deliveryTime; + //收货时间 + private LocalDateTime receiveTime; + //订单状态 1待发货,2待收货,3待评价,4已完成,5已取消 + private Integer orderStatus; + //收货地址 + private String address; + //实付金额 + private BigDecimal actualPay; + //备注 + private String remark; + // 手机号 + private String phone; + //收货人 + private String consignee; + //运费 + private BigDecimal freight; + //订单取消原因 + private String cancelReason; + +} + diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/OrdersGoods.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/OrdersGoods.java new file mode 100644 index 0000000..7aa0c8f --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/OrdersGoods.java @@ -0,0 +1,42 @@ +package com.lkx.farmershop.model.entity; + + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; + +import java.io.Serializable; + +/** + * (OrdersGoods)表实体类 + * + * @author makejava + * @since 2024-03-31 20:05:54 + */ +@SuppressWarnings("serial") +@Data +@AllArgsConstructor +@NoArgsConstructor +@TableName("orders_goods") +public class OrdersGoods implements Serializable { + private static final long serialVersionUID = 1L; + + //订单和商品的联系表的主键@TableId + private Long id; + + //订单编号 + private String orderNum; + //商品id + private Long goodsId; + //商品数量 + private Integer goodsCount; + + public OrdersGoods(String orderNum, Long goodsId, Integer goodsCount) { + this.orderNum = orderNum; + this.goodsId = goodsId; + this.goodsCount = goodsCount; + } +} + diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/ReturnGoods.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/ReturnGoods.java new file mode 100644 index 0000000..71f9fd3 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/ReturnGoods.java @@ -0,0 +1,91 @@ +package com.lkx.farmershop.model.entity; + +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import java.io.Serializable; +import java.time.LocalDateTime; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +/** + *

+ * 退货表 + *

+ * + * @author lwc + * @since 2024-04-05 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@TableName("return_goods") +public class ReturnGoods implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 退货表id + */ + private Long id; + + /** + * 订单编号 + */ + private String orderNum; + + /** + * 农户id + */ + private Long farmerId; + + /** + * 用户id + */ + private Long userId; + + /** + * 商品id + */ + private String goodsId; + + /** + * 退货原因 + */ + private String rtnReason; + + /** + * 退货总数量 + */ + private Integer rtnCount; + + /** + * 退款总金额 + */ + private BigDecimal rtnMoney; + + /** + * 退货说明 + */ + private String rtnRemark; + + /** + * 收货状态 0:未收货 1:已收货 + */ + private Integer rtnStatus; + + /** + * 退款状态 0:退款中 1:退款成功 2:拒绝退款 + */ + private Integer refundStatus; + + /** + * 退款时间 + */ + private LocalDateTime rtnTime; +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/ReturnVoucher.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/ReturnVoucher.java new file mode 100644 index 0000000..f237c41 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/ReturnVoucher.java @@ -0,0 +1,47 @@ +package com.lkx.farmershop.model.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import java.io.Serializable; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +/** + *

+ * + *

+ * + * @author lwc + * @since 2024-04-05 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@TableName("return_voucher") +public class ReturnVoucher implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 凭证id + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 退货表id + */ + private Long rtnGoodsId; + + /** + * 凭证 + */ + private String voucher; + + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/ShoppingCart.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/ShoppingCart.java new file mode 100644 index 0000000..a004444 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/ShoppingCart.java @@ -0,0 +1,45 @@ +package com.lkx.farmershop.model.entity; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +/** + * (ShoppingCart)表实体类 + * + * @author makejava + * @since 2024-03-21 22:44:14 + */ +@SuppressWarnings("serial") +@Data +@AllArgsConstructor +@NoArgsConstructor +@TableName("shopping_cart") +public class ShoppingCart implements Serializable { + private static final long serialVersionUID = 1L; + + //购物车id@TableId + private Long id; + + //商品id + private Long goodsId; + //用户id + private Long userId; + //商品数量 + private Integer goodsCount; + + + + + +} + diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/Swiper.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/Swiper.java new file mode 100644 index 0000000..f44d213 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/Swiper.java @@ -0,0 +1,27 @@ +package com.lkx.farmershop.model.entity; + +import java.io.Serializable; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

+ * + *

+ * + * @author lkx + * @since 2024-02-06 + */ +@Data +@EqualsAndHashCode(callSuper = false) +public class Swiper implements Serializable { + + private static final long serialVersionUID = 1L; + + private Integer id; + + private String imageSrc; + + private Integer goodsId; + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/UrgencyOrders.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/UrgencyOrders.java new file mode 100644 index 0000000..81cf077 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/UrgencyOrders.java @@ -0,0 +1,36 @@ +package com.lkx.farmershop.model.entity; + + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; + +import java.io.Serializable; + +/** + * (UrgencyOrders)表实体类 + * + * @author makejava + * @since 2024-04-08 13:51:45 + */ +@SuppressWarnings("serial") +@Data +@AllArgsConstructor +@NoArgsConstructor +@TableName("urgency_orders") +public class UrgencyOrders implements Serializable { + private static final long serialVersionUID = 1L; + + //主键@TableId + private Long id; + + //订单id + private Long orderId; + //订单所属卖家id + private Long farmerId; + + +} + diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/User.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/User.java new file mode 100644 index 0000000..c76063d --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/User.java @@ -0,0 +1,56 @@ +package com.lkx.farmershop.model.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import java.io.Serializable; +import java.time.LocalDateTime; + +import lombok.*; +import lombok.experimental.Accessors; + +/** + *

+ * 用户表 + *

+ * + * @author lwc + * @since 2024-03-21 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@TableName("user") +public class User implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 用户id + */ + private Long id; + + + /** + * 微信用户唯一标识 + */ + private String openid; + + /** + * 用户名 + */ + private String username; + + + /** + * 头像 + */ + private String avatar; + + + /** + * 创建时间 + */ + private LocalDateTime createTime; +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/UserMessage.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/UserMessage.java new file mode 100644 index 0000000..239ee86 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/entity/UserMessage.java @@ -0,0 +1,48 @@ +package com.lkx.farmershop.model.entity; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +/** + * (UserMessage)表实体类 + * + * @author makejava + * @since 2024-04-08 13:27:45 + */ +@SuppressWarnings("serial") +@Data +@AllArgsConstructor +@NoArgsConstructor +@TableName("user_message") +public class UserMessage implements Serializable { + private static final long serialVersionUID = 1L; + + //主键@TableId + private Long id; + + //消息所属用户id + private Long userId; + //订单id + private Long orderId; + //订单通知 + private String orderMessage; + //拒绝订单的理由 + private String refuseReason; + //信息发送时间 + @TableField(value = "create_time", fill = FieldFill.INSERT) + private LocalDateTime createTime; + //是否已读,0:未读,1:已读 + private Integer isRead = 0; + + + +} + diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/CartGoodsVo.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/CartGoodsVo.java new file mode 100644 index 0000000..4d3252e --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/CartGoodsVo.java @@ -0,0 +1,47 @@ +package com.lkx.farmershop.model.vo; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class CartGoodsVo { + + //商品id + private Long goodsId; + //商品名称 + private String goodsName; + //商品详细信息 + private String goodsDetail; + //商品logo + private String goodsLogo; + //商品价格 + private BigDecimal goodsPrice; + /** + * 价格的单位 + */ + private String unit; + //购物车商品勾选状态 + private Boolean state=false; + //商品数量 + private Integer goodsCount; + + /** + * 0:不包邮,1:包邮 + */ + private Integer freeDelivery; + + /** + * 0:不支持送货上门,1:支持送货上门 + */ + private Integer homeDelivery; + + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/CategoryGoodsVO.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/CategoryGoodsVO.java new file mode 100644 index 0000000..eb28201 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/CategoryGoodsVO.java @@ -0,0 +1,16 @@ +package com.lkx.farmershop.model.vo; + +import com.lkx.farmershop.model.entity.Category; +import com.lkx.farmershop.model.entity.Goods; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class CategoryGoodsVO extends Category { + private List goodsList; +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/ComentsPageVo.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/ComentsPageVo.java new file mode 100644 index 0000000..4f74fff --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/ComentsPageVo.java @@ -0,0 +1,18 @@ +package com.lkx.farmershop.model.vo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class ComentsPageVo { + //总数据量 + private Long total; + //评论包装返回类 + private List commentsVoList; + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/CommentsCount.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/CommentsCount.java new file mode 100644 index 0000000..6107f4a --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/CommentsCount.java @@ -0,0 +1,34 @@ +package com.lkx.farmershop.model.vo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class CommentsCount { + + /** + * 全部评论数量 + */ + private Integer allCommentsCount = 0; + /** + * 有图评论数量 + */ + private Integer haveImageCount = 0; + /** + * 好评数量 + */ + private Integer goodsCommentsCount = 0; + /** + * 中评数量 + */ + private Integer mediumCommentsCount = 0; + /** + * 差评数量 + */ + private Integer badCommentsCount = 0; + + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/CommentsVo.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/CommentsVo.java new file mode 100644 index 0000000..9b88eff --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/CommentsVo.java @@ -0,0 +1,35 @@ +package com.lkx.farmershop.model.vo; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class CommentsVo { + + //评论id@TableId + private Long id; + //评论所属用户名称 + private String userName; + //评论所属用户的头像 + private String avatar; + //评分 + private BigDecimal commentScore; + //评论内容 + private String commentContent; + //评论时间 + private LocalDateTime createTime; + + //评论图片 + private List commentImgList; + + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/FOrdersPageVo.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/FOrdersPageVo.java new file mode 100644 index 0000000..4a9d154 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/FOrdersPageVo.java @@ -0,0 +1,19 @@ +package com.lkx.farmershop.model.vo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class FOrdersPageVo { + + //总数据量 + private Long total; + //订单包装返回类 + private List fOrdersVoList; + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/FOrdersVo.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/FOrdersVo.java new file mode 100644 index 0000000..a0572db --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/FOrdersVo.java @@ -0,0 +1,34 @@ +package com.lkx.farmershop.model.vo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class FOrdersVo { + + //订单id@TableId + private Long id; + //实付金额 + private BigDecimal actualPay; + //订单状态 + private Integer orderStatus; + // 退款理由 + private String rtnReason; + // 收货状态 0:未收货 1:已收货 + private Integer rtnStatus; + // 退货表id + private Long rtnGoodsId; + /** + * 退款状态 0:退款中 1:退款成功 2:拒绝退款 + */ + private Integer refundStatus; + //商品信息 + private List cartGoodsVoList; + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/FReturnGoodsVO.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/FReturnGoodsVO.java new file mode 100644 index 0000000..eb40593 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/FReturnGoodsVO.java @@ -0,0 +1,22 @@ +package com.lkx.farmershop.model.vo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.util.List; + +/** + * 农户退货商品表VO + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class FReturnGoodsVO { + + List returnGoodsVOList; // 退货商品表VO集合 + + private Integer totalGoodsCount; // 退货商品总数量 + private BigDecimal totalGoodsPrice; // 退货商品总价 +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/FarmerGoodsCountVo.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/FarmerGoodsCountVo.java new file mode 100644 index 0000000..5c832e3 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/FarmerGoodsCountVo.java @@ -0,0 +1,19 @@ +package com.lkx.farmershop.model.vo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class FarmerGoodsCountVo { + + //卖家id + private Long farmerId; + //商品id和数量 + private List cartGoodsDtoList; + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/FirstCommentsVo.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/FirstCommentsVo.java new file mode 100644 index 0000000..5f4f78a --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/FirstCommentsVo.java @@ -0,0 +1,25 @@ +package com.lkx.farmershop.model.vo; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class FirstCommentsVo { + + //总评论数 + private Integer totalComments; + //商品好评率 + private Integer favorableRate; + + //第一条评论 + private CommentsVo commentsVo; + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/GoodsCountVo.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/GoodsCountVo.java new file mode 100644 index 0000000..afd7f4b --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/GoodsCountVo.java @@ -0,0 +1,16 @@ +package com.lkx.farmershop.model.vo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class GoodsCountVo { + + private Long goodsId; + + private Integer goodsCount; + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/OrderDetailVo.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/OrderDetailVo.java new file mode 100644 index 0000000..6077eb9 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/OrderDetailVo.java @@ -0,0 +1,60 @@ +package com.lkx.farmershop.model.vo; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class OrderDetailVo { + //商品信息 + List cartGoodsVoList; + + //订单id + private Long id; + //订单编号 + private String orderNum; + //卖家id + private Long farmerId; + //卖家名称 + private String farmerName; + //订单状态 1待发货,2待收货,3待评价,4已完成,5已取消 + private Integer orderStatus; + //0:快递,1:送货上门 + private Integer delivery; + //创建时间 + @TableField(value = "create_time", fill = FieldFill.INSERT) + private LocalDateTime createTime; + //付款时间 + private LocalDateTime payTime; + //发货时间 + private LocalDateTime deliveryTime; + //收货时间 + private LocalDateTime receiveTime; + //收货地址 + private String address; + //实付金额 + private BigDecimal actualPay; + //备注 + private String remark; + // 手机号 + private String phone; + //收货人 + private String consignee; + //运费 + private BigDecimal freight; + + /** + * 退款状态 0:退款中 1:退款成功 2:拒绝退款 + */ + private Integer refundStatus; + + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/OrderMessageVo.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/OrderMessageVo.java new file mode 100644 index 0000000..43aac4c --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/OrderMessageVo.java @@ -0,0 +1,37 @@ +package com.lkx.farmershop.model.vo; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.time.LocalDateTime; +import java.util.Date; +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class OrderMessageVo { + + //消息id + private Long id; + //订单id + private Long orderId; + //订单通知 + private String orderMessage; + //信息发送时间 + private LocalDateTime createTime; + //拒绝订单的理由 + private String refuseReason; + //是否已读,0:未读,1:已读 + private Integer isRead = 0; + //农户名称 + private String farmerName; + + //订单的商品信息 + private List cartGoodsVoList; + + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/OrdersPageVo.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/OrdersPageVo.java new file mode 100644 index 0000000..6259ad4 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/OrdersPageVo.java @@ -0,0 +1,18 @@ +package com.lkx.farmershop.model.vo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class OrdersPageVo { + + //总数据量 + private Long total; + //订单包装返回类 + private List ordersVoList; +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/OrdersVo.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/OrdersVo.java new file mode 100644 index 0000000..e89597a --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/OrdersVo.java @@ -0,0 +1,37 @@ +package com.lkx.farmershop.model.vo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class OrdersVo { + + //订单id@TableId + private Long id; + //卖家id + private Long farmerId; + //卖家店名 + private String farmerName; + //卖家手机号 + private String phoneNum; + //实付金额 + private BigDecimal actualPay; + //订单状态 1待发货,2待收货,3待评价,4已完成,5已取消 + private Integer orderStatus; + /** + * 退款状态 0:退款中 1:退款成功 2:拒绝退款 + */ + private Integer refundStatus; + // 退货表id + private Long rtnGoodsId; + //商品信息 + private List cartGoodsVoList; + + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/ReturnGoodsVO.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/ReturnGoodsVO.java new file mode 100644 index 0000000..c5ca1f9 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/ReturnGoodsVO.java @@ -0,0 +1,35 @@ +package com.lkx.farmershop.model.vo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; + +/** + * 退货商品表VO + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class ReturnGoodsVO { + + /** + * 商品表获取 + */ + private String goodsName; //商品名称 + private BigDecimal goodsPrice; //商品价格 + private String unit; //价格的单位 + private String goodsDetail; //商品描述 + private String goodsLogo; // 商品logo + + /** + * 订单表获取 + */ + private BigDecimal rtnMoney; //退款金额 (商品数量 * 商品价格) + + /** + * 订单商品表获取 + */ + private Integer goodsCount; //商品数量 +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/SettleAccountsVo.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/SettleAccountsVo.java new file mode 100644 index 0000000..5942b77 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/SettleAccountsVo.java @@ -0,0 +1,20 @@ +package com.lkx.farmershop.model.vo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class SettleAccountsVo { + + //总价格 + private BigDecimal totalPrice; + //商家和商品信息 + private List settleInfoVoList; + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/SettleInfoVo.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/SettleInfoVo.java new file mode 100644 index 0000000..4130098 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/SettleInfoVo.java @@ -0,0 +1,21 @@ +package com.lkx.farmershop.model.vo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class SettleInfoVo { + + //商家id + private Long farmerId; + //商家名称 + private String farmerName; + //商品信息 + private List cartGoodsVoList; + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/ShoppingCartVo.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/ShoppingCartVo.java new file mode 100644 index 0000000..4138c8b --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/ShoppingCartVo.java @@ -0,0 +1,23 @@ +package com.lkx.farmershop.model.vo; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.util.List; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class ShoppingCartVo { + + //卖家id + private Long farmerId; + //卖家店名 + private String farmerName; + //购物车商品信息 + private List cartGoodsVoList; + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/ShowBackGoodsVo.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/ShowBackGoodsVo.java new file mode 100644 index 0000000..274f4d5 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/ShowBackGoodsVo.java @@ -0,0 +1,48 @@ +package com.lkx.farmershop.model.vo; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class ShowBackGoodsVo { + + //商品id + private Long goodsId; + //商品名称 + private String goodsName; + //商品库存 + private Integer goodsNumber; + private BigDecimal goodsPrice; + private String goodsLogo; + private String goodsDetail; + + private String goodsCategory; + /** + * 0:不包邮,1:包邮 + */ + private Integer freeDelivery; + + /** + * 0:不支持送货上门,1:支持送货上门 + */ + private Integer homeDelivery; + /** + * 发货时间 + */ + private Integer shoppingTime; + /** + * 价格的单位 + */ + private String unit; + + + + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/ShowBackVo.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/ShowBackVo.java new file mode 100644 index 0000000..518af52 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/ShowBackVo.java @@ -0,0 +1,18 @@ +package com.lkx.farmershop.model.vo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class ShowBackVo { + //商品信息 + private ShowBackGoodsVo showBackGoodsVo; + //商品图片 + private List swiperList; + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/SimpleGoodsVo.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/SimpleGoodsVo.java new file mode 100644 index 0000000..195ad75 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/SimpleGoodsVo.java @@ -0,0 +1,21 @@ +package com.lkx.farmershop.model.vo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class SimpleGoodsVo { + + //商品id + private Long goodsId; + //商品名称 + private String goodsName; + //商品详细信息 + private String goodsDetail; + //商品logo + private String goodsLogo; + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/SwiperVo.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/SwiperVo.java new file mode 100644 index 0000000..c7b9980 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/SwiperVo.java @@ -0,0 +1,14 @@ +package com.lkx.farmershop.model.vo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class SwiperVo { + //商品图片 + private String url; + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/UserLoginVO.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/UserLoginVO.java new file mode 100644 index 0000000..2f8668a --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/model/vo/UserLoginVO.java @@ -0,0 +1,23 @@ +package com.lkx.farmershop.model.vo; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * 微信登录VO + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class UserLoginVO implements Serializable { + + private Long id; + private String openid; + private String token; + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/ActivityGoodsService.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/ActivityGoodsService.java new file mode 100644 index 0000000..d5510aa --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/ActivityGoodsService.java @@ -0,0 +1,16 @@ +package com.lkx.farmershop.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.lkx.farmershop.model.entity.ActivityGoods; + + +/** + * (ActivityGoods)表服务接口 + * + * @author makejava + * @since 2024-03-30 14:01:56 + */ +public interface ActivityGoodsService extends IService { + +} + diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/CommentPicService.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/CommentPicService.java new file mode 100644 index 0000000..0ad9c07 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/CommentPicService.java @@ -0,0 +1,16 @@ +package com.lkx.farmershop.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.lkx.farmershop.model.entity.CommentPic; + + +/** + * (CommentPic)表服务接口 + * + * @author makejava + * @since 2024-04-04 17:32:33 + */ +public interface CommentPicService extends IService { + +} + diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/CommentsService.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/CommentsService.java new file mode 100644 index 0000000..c4b8c8a --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/CommentsService.java @@ -0,0 +1,30 @@ +package com.lkx.farmershop.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.lkx.farmershop.common.api.ApiResult; +import com.lkx.farmershop.model.dto.CommentsDto; +import com.lkx.farmershop.model.entity.Comments; +import com.lkx.farmershop.model.vo.*; + +import java.util.List; + + +/** + * (Comments)表服务接口 + * + * @author makejava + * @since 2024-04-03 09:06:54 + */ +public interface CommentsService extends IService { + + ApiResult addComments(CommentsDto commentsDto); + + ApiResult commentsList(Long goodsId, Integer commentsFilter, int page, int pageSize); + + ApiResult> commenting(Long orderId); + + ApiResult getCommentsCount(Long goodsId); + + ApiResult getFirstComments(Long goodsId); +} + diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/ICategoryService.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/ICategoryService.java new file mode 100644 index 0000000..bb47e4c --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/ICategoryService.java @@ -0,0 +1,23 @@ +package com.lkx.farmershop.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.lkx.farmershop.common.api.ApiResult; +import com.lkx.farmershop.model.entity.Category; +import com.baomidou.mybatisplus.extension.service.IService; +import com.lkx.farmershop.model.entity.Goods; +import com.lkx.farmershop.model.vo.CategoryGoodsVO; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author lkx + * @since 2024-02-04 + */ +public interface ICategoryService extends IService { + + ApiResult> getCategoryGoods(Integer goodsFilter, Integer orderMethod, Integer categoryId, int page, int pageSize); +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/IFarmerGoodsService.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/IFarmerGoodsService.java new file mode 100644 index 0000000..e050d29 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/IFarmerGoodsService.java @@ -0,0 +1,16 @@ +package com.lkx.farmershop.service; + +import com.lkx.farmershop.model.entity.FarmerGoods; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author lkx + * @since 2024-02-08 + */ +public interface IFarmerGoodsService extends IService { + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/IFarmerService.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/IFarmerService.java new file mode 100644 index 0000000..5385280 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/IFarmerService.java @@ -0,0 +1,20 @@ +package com.lkx.farmershop.service; + +import com.lkx.farmershop.model.dto.LoginDTO; +import com.lkx.farmershop.model.entity.Farmer; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author lkx + * @since 2024-02-05 + */ +public interface IFarmerService extends IService { + + String executeRegister(Farmer farmer); + + String executeLogin(LoginDTO dto); +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/IGoodsService.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/IGoodsService.java new file mode 100644 index 0000000..84380e5 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/IGoodsService.java @@ -0,0 +1,57 @@ +package com.lkx.farmershop.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.lkx.farmershop.common.api.ApiResult; +import com.lkx.farmershop.model.dto.GoodsDTO; +import com.lkx.farmershop.model.dto.GoodsDetailDTO; +import com.lkx.farmershop.model.entity.Goods; +import com.baomidou.mybatisplus.extension.service.IService; +import com.lkx.farmershop.model.vo.ShowBackGoodsVo; +import com.lkx.farmershop.model.vo.ShowBackVo; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author lkx + * @since 2024-02-04 + */ +public interface IGoodsService extends IService { + + ApiResult addGoods(GoodsDTO goodsDTO); + + ApiResult deleteGoods(Long goodsId); + + ApiResult updateGoods(GoodsDTO goodsDTO); + + /** + * 精品推荐(推荐算法,根据用户购物车推荐商品) + * @param page 当前页码 + * @param pageSize 每页显示条数 + * @return 返回分页后的商品数据 + */ + ApiResult> homeSearch(int page, int pageSize); + + ApiResult goodsDetail(Long goodsId); + + ApiResult showBack(Long goodsId); + + /** + * 根据条件搜索商品名称 + * @param query 搜索条件 + * @return ApiResult> 相关名称集合 + */ + ApiResult> searchByQuery(String query); + + /** + * 根据商品名称查询商品 + * @param goodsName 商品名称 + * @param pageNum 当前页码 + * @param pageSize 每页显示数 + * @return 商品集合 + */ + ApiResult> searchByGoodsName(String goodsName, Integer pageNum, Integer pageSize); +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/IGoodsSwiperService.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/IGoodsSwiperService.java new file mode 100644 index 0000000..04272fd --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/IGoodsSwiperService.java @@ -0,0 +1,16 @@ +package com.lkx.farmershop.service; + +import com.lkx.farmershop.model.entity.GoodsSwiper; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author lkx + * @since 2024-02-11 + */ +public interface IGoodsSwiperService extends IService { + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/IReturnGoodsService.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/IReturnGoodsService.java new file mode 100644 index 0000000..d63c81c --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/IReturnGoodsService.java @@ -0,0 +1,58 @@ +package com.lkx.farmershop.service; + +import com.lkx.farmershop.common.api.ApiResult; +import com.lkx.farmershop.model.dto.ReturnGoodsDTO; +import com.lkx.farmershop.model.entity.ReturnGoods; +import com.baomidou.mybatisplus.extension.service.IService; +import com.lkx.farmershop.model.vo.FReturnGoodsVO; +import org.springframework.data.domain.Page; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.List; + +/** + *

+ * 退货表 服务类 + *

+ * + * @author lwc + * @since 2024-04-05 + */ +public interface IReturnGoodsService extends IService { + + /** + * 添加退货商品 + * @param returnGoodsDTO 退货商品表DTO + * @return ApiResult + */ + ApiResult addReturnGoods(ReturnGoodsDTO returnGoodsDTO); + + /** + * 退款成功 + * @param rtnGoodsId 退货表id + * @return ApiResult + */ + ApiResult refundSuccess(Long rtnGoodsId); + + /** + * 商家拒绝退款 + * @param rtnGoodsId 退货表id + * @return ApiResult + */ + ApiResult refuseRefund(Long rtnGoodsId); + + /** + * 农户分页查询退货商品 + * @param pageNum 当前页码 + * @param pageSize 每页显示数 + * @return ApiResult> + */ + ApiResult> queryReturnGoods(Integer pageNum, Integer pageSize); + + /** + * 再次申请退货 + * @param rtnGoodsId 退货表id + * @return ApiResult + */ + ApiResult rtnAgain(Long rtnGoodsId); +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/IReturnVoucherService.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/IReturnVoucherService.java new file mode 100644 index 0000000..6bde3b9 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/IReturnVoucherService.java @@ -0,0 +1,16 @@ +package com.lkx.farmershop.service; + +import com.lkx.farmershop.model.entity.ReturnVoucher; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author lwc + * @since 2024-04-05 + */ +public interface IReturnVoucherService extends IService { + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/ISwiperService.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/ISwiperService.java new file mode 100644 index 0000000..4917b99 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/ISwiperService.java @@ -0,0 +1,16 @@ +package com.lkx.farmershop.service; + +import com.lkx.farmershop.model.entity.Swiper; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author lkx + * @since 2024-02-06 + */ +public interface ISwiperService extends IService { + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/IUserService.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/IUserService.java new file mode 100644 index 0000000..a314adb --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/IUserService.java @@ -0,0 +1,24 @@ +package com.lkx.farmershop.service; + +import com.lkx.farmershop.model.dto.UserLoginDTO; +import com.lkx.farmershop.model.entity.User; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 用户表 服务类 + *

+ * + * @author lwc + * @since 2024-03-21 + */ +public interface IUserService extends IService { + + /** + * 用户微信登录 + * @param userLoginDTO + * @return + */ + User wxlogin(UserLoginDTO userLoginDTO); + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/OrdersGoodsService.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/OrdersGoodsService.java new file mode 100644 index 0000000..2a4c679 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/OrdersGoodsService.java @@ -0,0 +1,16 @@ +package com.lkx.farmershop.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.lkx.farmershop.model.entity.OrdersGoods; + + +/** + * (OrdersGoods)表服务接口 + * + * @author makejava + * @since 2024-03-31 20:05:54 + */ +public interface OrdersGoodsService extends IService { + +} + diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/OrdersService.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/OrdersService.java new file mode 100644 index 0000000..8a0888b --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/OrdersService.java @@ -0,0 +1,63 @@ +package com.lkx.farmershop.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.lkx.farmershop.common.api.ApiResult; +import com.lkx.farmershop.model.dto.CancelDto; +import com.lkx.farmershop.model.dto.SettleAccountsDto; +import com.lkx.farmershop.model.dto.SubmitOrdersDto; +import com.lkx.farmershop.model.entity.Orders; +import com.lkx.farmershop.model.vo.*; + +import java.util.List; +import java.util.Map; + + +/** + * (Orders)表服务接口 + * + * @author makejava + * @since 2024-03-31 20:05:32 + */ +public interface OrdersService extends IService { + + ApiResult settleAccounts(List accountsDtoList); + + ApiResult getOrders(Integer orderStatus, int page, int pageSize); + + ApiResult submitOrders(SubmitOrdersDto submitOrdersDto); + + ApiResult getOrdersDetail(Long orderId); + + ApiResult cancelOrders(CancelDto cancelDto); + + ApiResult confirmReceipt(Long orderId); + +// ApiResult> getFOrders(Integer orderStatus); + + + ApiResult confirmDeliver(Long orderId); + + /** + * 农户查看各状态下的用户订单 + * @param page 当前页码 + * @param pageSize 每页显示数 + * @param orderStatus 订单状态 + * @return ApiResult> + */ + ApiResult getOrderByStatus(Integer page, Integer pageSize, Integer orderStatus); + + ApiResult> buyAgain(Long orderId); + + /** + * 回显商品信息(申请退货退款) + * @param orderNum 订单编号 + * @param goodsIdList 商品id集合 + * @return ReturnGoodsVO + */ + ApiResult> returnGoods(String orderNum, List goodsIdList); + + ApiResult urge(Long orderId); + + ApiResult refuseOrders(Long orderId, String refuseReason); +} \ No newline at end of file diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/ShoppingCartService.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/ShoppingCartService.java new file mode 100644 index 0000000..71302e0 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/ShoppingCartService.java @@ -0,0 +1,28 @@ +package com.lkx.farmershop.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.lkx.farmershop.common.api.ApiResult; +import com.lkx.farmershop.model.dto.CartGoodsDto; +import com.lkx.farmershop.model.entity.ShoppingCart; +import com.lkx.farmershop.model.vo.ShoppingCartVo; + +import java.util.List; + + +/** + * (ShoppingCart)表服务接口 + * + * @author makejava + * @since 2024-03-21 22:44:16 + */ +public interface ShoppingCartService extends IService { + + ApiResult> queryCart(); + + ApiResult addCart(CartGoodsDto cartGoodsDto); + + ApiResult deleteCart(Long goodsId); + + ApiResult updateCart(CartGoodsDto cartGoodsDto); +} + diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/UrgencyOrdersService.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/UrgencyOrdersService.java new file mode 100644 index 0000000..610a530 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/UrgencyOrdersService.java @@ -0,0 +1,16 @@ +package com.lkx.farmershop.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.lkx.farmershop.model.entity.UrgencyOrders; + + +/** + * (UrgencyOrders)表服务接口 + * + * @author makejava + * @since 2024-04-08 13:51:47 + */ +public interface UrgencyOrdersService extends IService { + +} + diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/UserMessageService.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/UserMessageService.java new file mode 100644 index 0000000..1d79bcf --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/UserMessageService.java @@ -0,0 +1,26 @@ +package com.lkx.farmershop.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.lkx.farmershop.common.api.ApiResult; +import com.lkx.farmershop.model.entity.UserMessage; +import com.lkx.farmershop.model.vo.OrderMessageVo; + +import java.util.List; + + +/** + * (UserMessage)表服务接口 + * + * @author makejava + * @since 2024-04-08 13:27:47 + */ +public interface UserMessageService extends IService { + + ApiResult> getMessage(int page, int pageSize); + + ApiResult alreadyRead(Long messageId); + + ApiResult getMessageTotal(); +} + diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/ActivityGoodsServiceImpl.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/ActivityGoodsServiceImpl.java new file mode 100644 index 0000000..4d9f5c0 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/ActivityGoodsServiceImpl.java @@ -0,0 +1,19 @@ +package com.lkx.farmershop.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.lkx.farmershop.mapper.ActivityGoodsMapper; +import com.lkx.farmershop.model.entity.ActivityGoods; +import com.lkx.farmershop.service.ActivityGoodsService; +import org.springframework.stereotype.Service; + +/** + * (ActivityGoods)表服务实现类 + * + * @author makejava + * @since 2024-03-30 14:01:56 + */ +@Service("activityGoodsService") +public class ActivityGoodsServiceImpl extends ServiceImpl implements ActivityGoodsService { + +} + diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/CategoryServiceImpl.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/CategoryServiceImpl.java new file mode 100644 index 0000000..8e40880 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/CategoryServiceImpl.java @@ -0,0 +1,94 @@ +package com.lkx.farmershop.service.impl; + +import com.baomidou.mybatisplus.core.metadata.OrderItem; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.lkx.farmershop.common.api.ApiResult; +import com.lkx.farmershop.constants.SystemConstants; +import com.lkx.farmershop.model.entity.ActivityGoods; +import com.lkx.farmershop.model.entity.Category; +import com.lkx.farmershop.mapper.CategoryMapper; +import com.lkx.farmershop.model.entity.Goods; +import com.lkx.farmershop.service.ActivityGoodsService; +import com.lkx.farmershop.service.ICategoryService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.lkx.farmershop.service.IGoodsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; +import java.util.stream.Collectors; + +/** + *

+ * 服务实现类 + *

+ * + * @author lkx + * @since 2024-02-04 + */ +@Service +public class CategoryServiceImpl extends ServiceImpl implements ICategoryService { + + @Autowired + private IGoodsService goodsService; + @Autowired + private ActivityGoodsService activityGoodsService; + + @Override + public ApiResult> getCategoryGoods(Integer goodsFilter, Integer orderMethod, Integer categoryId, int page, int pageSize) { + Page pageInfo=new Page<>(page, pageSize); + //所有商品 + if (goodsFilter == SystemConstants.ALL_GOODS){ + pageInfo = goodsService.lambdaQuery().eq(Goods::getGoodsCategory, categoryId.toString()).page(pageInfo); + } + //热销精品 + if(goodsFilter == SystemConstants.HOT_SALE_GOODS){ + pageInfo = goodsService.lambdaQuery().eq(Goods::getGoodsCategory, categoryId.toString()) + .orderByDesc(Goods::getSales) + .page(pageInfo); + } + //活动商品 + if (goodsFilter == SystemConstants.ACTIVITY_GOODS){ + List activityGoodsList = activityGoodsService.lambdaQuery().list(); + List goodsList = new ArrayList<>(); + if(activityGoodsList!=null){ + activityGoodsList.forEach(activityGoods -> { + Long goodsId = activityGoods.getGoodsId(); + Goods goods = goodsService.getById(goodsId); + if(goods.getGoodsCategory().equals(categoryId.toString())){ + goodsList.add(goods); + } + }); + } + + pageInfo.setRecords(goodsList); + pageInfo.setTotal(goodsList.size()); + + } + //销量排序 + if(orderMethod == SystemConstants.SALES_SORT){ + if(pageInfo != null){ + pageInfo.addOrder(OrderItem.desc("sales")); + } + } + //好评排序 + if(orderMethod == SystemConstants.SCORE_SORT){ + if(pageInfo != null){ + pageInfo.addOrder(OrderItem.desc("score")); + } + } + + //过滤已被删除的商品 + if(pageInfo != null){ + List goodsList = pageInfo.getRecords(); + List collect = goodsList.stream().filter(goods -> goods.getIsDelete() == 0).collect(Collectors.toList()); + pageInfo.setRecords(collect); + } + + return ApiResult.success(pageInfo); + } + + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/CommentPicServiceImpl.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/CommentPicServiceImpl.java new file mode 100644 index 0000000..537d21e --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/CommentPicServiceImpl.java @@ -0,0 +1,19 @@ +package com.lkx.farmershop.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.lkx.farmershop.mapper.CommentPicMapper; +import com.lkx.farmershop.model.entity.CommentPic; +import com.lkx.farmershop.service.CommentPicService; +import org.springframework.stereotype.Service; + +/** + * (CommentPic)表服务实现类 + * + * @author makejava + * @since 2024-04-04 17:32:33 + */ +@Service("commentPicService") +public class CommentPicServiceImpl extends ServiceImpl implements CommentPicService { + +} + diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/CommentsServiceImpl.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/CommentsServiceImpl.java new file mode 100644 index 0000000..1a95f84 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/CommentsServiceImpl.java @@ -0,0 +1,260 @@ +package com.lkx.farmershop.service.impl; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.lkx.farmershop.common.api.ApiResult; +import com.lkx.farmershop.common.context.BaseContext; +import com.lkx.farmershop.constants.SystemConstants; +import com.lkx.farmershop.mapper.CommentsMapper; +import com.lkx.farmershop.model.dto.CommentsDetailDto; +import com.lkx.farmershop.model.dto.CommentsDto; +import com.lkx.farmershop.model.entity.*; +import com.lkx.farmershop.model.vo.*; +import com.lkx.farmershop.service.*; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +/** + * (Comments)表服务实现类 + * + * @author makejava + * @since 2024-04-03 09:06:55 + */ +@Service("commentsService") +public class CommentsServiceImpl extends ServiceImpl implements CommentsService { + + @Autowired + private IGoodsService goodsService; + @Autowired + private IFarmerGoodsService farmerGoodsService; + @Autowired + private IUserService userService; + @Autowired + private OrdersService ordersService; + @Autowired + private OrdersGoodsService ordersGoodsService; + @Autowired + private CommentPicService commentPicService; + + @Override + @Transactional + public ApiResult addComments(CommentsDto commentsDto) { + + List detailDtoList = commentsDto.getDetailDtoList(); + Long userId = BaseContext.getCurrentId(); + + for (CommentsDetailDto detailDto : detailDtoList) { + Comments comments = new Comments(); + //复制传进来的数据 + BeanUtils.copyProperties(detailDto, comments); + + + //获取评论的图片 + List commentImgList = detailDto.getCommentImgList(); + if(commentImgList == null || commentImgList.size()==0){ + comments.setHavePic(0); + }else { + comments.setHavePic(1); + } + //给用户id赋值 + comments.setUserId(userId); + //保存到数据库 + save(comments); + + Long goodsId = detailDto.getGoodsId(); + + //如果没图片,则设置是否有图字段为0,否则为1 + if(commentImgList != null || commentImgList.size()!=0) { + + for (String s : commentImgList) { + //保存到评论图片表 + CommentPic commentPic = new CommentPic(); + commentPic.setCommentId(comments.getId()); + commentPic.setCommentImg(s); + + commentPicService.save(commentPic); + } + } + + //把评分平均到商品的评分 + Goods goods = goodsService.getById(goodsId); + BigDecimal score = goods.getScore(); + BigDecimal add = score.add(detailDto.getCommentScore()); + BigDecimal divide = add.divide(new BigDecimal("2.0"), RoundingMode.HALF_UP); + goods.setScore(divide); + //将修改保存到数据库 + goodsService.updateById(goods); + + } + //把这些商品所属订单状态改为已完成 + Long orderId = commentsDto.getOrderId(); + ordersService.lambdaUpdate().eq(Orders::getId, orderId) + .set(Orders::getOrderStatus, SystemConstants.COMPLETED) + .update(); + + return ApiResult.success("发表评论成功!"); + } + + + @Override + public ApiResult commentsList(Long goodsId, Integer commentsFilter, int page, int pageSize) { + //创建返回对象 + ComentsPageVo comentsPageVo = new ComentsPageVo(); + //判断查询的评论为哪类评论(commentsFilter),0:全部,1:有图, + // 2:好评(3分以上),3:中评(3分),4:差评(3分以下) + //查询此商品的评论 + Page pageInfo = new Page(page, pageSize); + + if(commentsFilter == SystemConstants.ALL_COMMENTS){ + pageInfo = lambdaQuery().eq(Comments::getGoodsId, goodsId).page(pageInfo); + }else if(commentsFilter == SystemConstants.HAVE_IMAGE){ + pageInfo = lambdaQuery().eq(Comments::getGoodsId, goodsId).eq(Comments::getHavePic, 1).page(pageInfo); + }else if(commentsFilter == SystemConstants.GOOD_COMMENTS){ + pageInfo = lambdaQuery().eq(Comments::getGoodsId, goodsId).gt(Comments::getCommentScore, 3).page(pageInfo); + }else if(commentsFilter == SystemConstants.MEDIUM_COMMENTS){ + pageInfo = lambdaQuery().eq(Comments::getGoodsId, goodsId).eq(Comments::getCommentScore, 3).page(pageInfo); + }else if(commentsFilter == SystemConstants.BAD_COMMENTS){ + pageInfo = lambdaQuery().eq(Comments::getGoodsId, goodsId).lt(Comments::getCommentScore, 3).page(pageInfo); + } + + + if(pageInfo == null){ + return ApiResult.success(null); + } + + List commentsList = pageInfo.getRecords(); + long total = pageInfo.getTotal(); + //设置总数据量 + comentsPageVo.setTotal(total); + + List commentsVoList = commentsList.stream().map(comments -> { + //创建返回类 + CommentsVo commentsVo = new CommentsVo(); + //复制评论数据 + BeanUtils.copyProperties(comments, commentsVo); + //获取评论所属的用户名 + Long userId = comments.getUserId(); + User user = userService.getById(userId); + //给用户头像赋值 + commentsVo.setAvatar(user.getAvatar()); + //给用户名赋值 + String username = user.getUsername(); + commentsVo.setUserName(username); + + //评论图片 + List commentPicList = commentPicService.lambdaQuery().eq(CommentPic::getCommentId, comments.getId()).list(); + if (commentPicList == null){ + List list = new ArrayList<>(); + commentsVo.setCommentImgList(list); + }else{ + List list = commentPicList.stream().map(CommentPic::getCommentImg).collect(Collectors.toList()); + commentsVo.setCommentImgList(list); + } + + return commentsVo; + }).collect(Collectors.toList()); + + comentsPageVo.setCommentsVoList(commentsVoList); + return ApiResult.success(comentsPageVo); + } + + @Override + public ApiResult> commenting(Long orderId) { + + //获取该订单的订单编号 + String orderNum = ordersService.getById(orderId).getOrderNum(); + + //获取该订单的商品 + List ordersGoodsList = ordersGoodsService.lambdaQuery() + .eq(OrdersGoods::getOrderNum, orderNum).list(); + + //转化成返回的类的集合 + List simpleGoodsVoList = ordersGoodsList.stream().map(ordersGoods -> { + //获取商品信息 + Long goodsId = ordersGoods.getGoodsId(); + Goods goods = goodsService.getById(goodsId); + SimpleGoodsVo simpleGoodsVo = new SimpleGoodsVo(); + + BeanUtils.copyProperties(goods, simpleGoodsVo); + return simpleGoodsVo; + }).collect(Collectors.toList()); + + return ApiResult.success(simpleGoodsVoList); + } + + @Override + public ApiResult getCommentsCount(Long goodsId) { + CommentsCount commentsCount = new CommentsCount(); + + //获取全部评论数 + Integer count = lambdaQuery().eq(Comments::getGoodsId, goodsId).count(); + commentsCount.setAllCommentsCount(count); + //获取有图评论数 + Integer count1 = lambdaQuery().eq(Comments::getGoodsId, goodsId).eq(Comments::getHavePic, 1).count(); + commentsCount.setHaveImageCount(count1); + //获取好评数 + Integer count2 = lambdaQuery().eq(Comments::getGoodsId, goodsId).gt(Comments::getCommentScore, 3).count(); + commentsCount.setGoodsCommentsCount(count2); + //获取中评数 + Integer count3 = lambdaQuery().eq(Comments::getGoodsId, goodsId).eq(Comments::getCommentScore, 3).count(); + commentsCount.setMediumCommentsCount(count3); + //获取差评数 + Integer count4 = lambdaQuery().eq(Comments::getGoodsId, goodsId).lt(Comments::getCommentScore, 3).count(); + commentsCount.setBadCommentsCount(count4); + + return ApiResult.success(commentsCount); + } + + @Override + public ApiResult getFirstComments(Long goodsId) { + //创建返回对象 + FirstCommentsVo firstCommentsVo = new FirstCommentsVo(); + //获取此商品的评论 + List commentsList = lambdaQuery().eq(Comments::getGoodsId, goodsId).list(); + if(commentsList == null || commentsList.size()==0){ + firstCommentsVo.setFavorableRate(0); + firstCommentsVo.setTotalComments(0); + firstCommentsVo.setCommentsVo(new CommentsVo()); + return ApiResult.success(firstCommentsVo); + } + //获取评论总数 + int totalComments = commentsList.size(); + firstCommentsVo.setTotalComments(totalComments); + //获取好评数量 + BigDecimal bigDecimal = new BigDecimal("3.0"); + long count = commentsList.stream().filter(comments -> comments.getCommentScore().compareTo(bigDecimal) > 0).count(); + + long round = Math.round((double) count / (double) totalComments * 100); + firstCommentsVo.setFavorableRate((int) round); + + + //获取第一条评论 + Comments comments = commentsList.get(0); + CommentsVo commentsVo = new CommentsVo(); + BeanUtils.copyProperties(comments, commentsVo); + //设置评论用户信息 + Long userId = comments.getUserId(); + User user = userService.getById(userId); + commentsVo.setUserName(user.getUsername()); + commentsVo.setAvatar(user.getAvatar()); + + //设置评论图片 + List commentPicList = commentPicService.lambdaQuery().eq(CommentPic::getCommentId, comments.getId()).list(); + List list = new ArrayList<>(); + if(commentPicList != null){ + list = commentPicList.stream().map(CommentPic::getCommentImg).collect(Collectors.toList()); + } + commentsVo.setCommentImgList(list); + firstCommentsVo.setCommentsVo(commentsVo); + return ApiResult.success(firstCommentsVo); + } +} + diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/FarmerGoodsServiceImpl.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/FarmerGoodsServiceImpl.java new file mode 100644 index 0000000..9c78ea7 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/FarmerGoodsServiceImpl.java @@ -0,0 +1,20 @@ +package com.lkx.farmershop.service.impl; + +import com.lkx.farmershop.model.entity.FarmerGoods; +import com.lkx.farmershop.mapper.FarmerGoodsMapper; +import com.lkx.farmershop.service.IFarmerGoodsService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author lkx + * @since 2024-02-08 + */ +@Service +public class FarmerGoodsServiceImpl extends ServiceImpl implements IFarmerGoodsService { + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/FarmerServiceImpl.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/FarmerServiceImpl.java new file mode 100644 index 0000000..ca5b7dc --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/FarmerServiceImpl.java @@ -0,0 +1,81 @@ +package com.lkx.farmershop.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.lkx.farmershop.common.properties.JwtProperties; +import com.lkx.farmershop.jwt.NewJwtUtil; +import com.lkx.farmershop.model.dto.LoginDTO; +import com.lkx.farmershop.model.entity.Farmer; +import com.lkx.farmershop.mapper.FarmerMapper; +import com.lkx.farmershop.service.IFarmerService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.ObjectUtils; + +import java.util.HashMap; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author lkx + * @since 2024-02-05 + */ +@Service +@Slf4j +public class FarmerServiceImpl extends ServiceImpl implements IFarmerService { + + @Autowired + private JwtProperties jwtProperties; + + @Override + public String executeRegister(Farmer farmer) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(Farmer::getPhoneNum, farmer.getPhoneNum()); + Farmer one = this.getOne(wrapper); + if (!ObjectUtils.isEmpty(one)) { + return "该手机号已注册"; + } + LambdaQueryWrapper wrapper1 = new LambdaQueryWrapper<>(); + wrapper1.eq(Farmer::getName, farmer.getName()); + Farmer one1 = this.getOne(wrapper1); + if (!ObjectUtils.isEmpty(one1)) { + return "该店铺名已存在"; + } + boolean save = this.save(farmer); + if (save) { + return "账号注册成功"; + } else { + return "账号注册失败,请稍后再试"; + } + } + + @Override + public String executeLogin(LoginDTO dto) { + String token = null; + try { + Farmer farmer = lambdaQuery().eq(Farmer::getPhoneNum, dto.getPhoneNum()).one(); + + String encodePwd = dto.getPassword(); + if (!encodePwd.equals(farmer.getPass())) { + throw new Exception("密码错误"); + } + //token = JwtUtil.generateToken(String.valueOf(farmer.getFarmerId())); + // 创建token + Map claims = new HashMap<>(); + Long farmerId = farmer.getFarmerId(); + claims.put("userId", farmerId); + token = NewJwtUtil.createJWT(jwtProperties.getUserSecretKey(), + jwtProperties.getUserTtl(), + claims); + } catch (Exception e) { + log.warn("用户不存在or密码验证失败=======>{}", dto.getPhoneNum()); + } + return token; + } + + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/GoodsServiceImpl.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/GoodsServiceImpl.java new file mode 100644 index 0000000..d4ffa61 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/GoodsServiceImpl.java @@ -0,0 +1,373 @@ +package com.lkx.farmershop.service.impl; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.lkx.farmershop.common.api.ApiResult; +import com.lkx.farmershop.common.context.BaseContext; +import com.lkx.farmershop.model.dto.GoodsDTO; +import com.lkx.farmershop.model.dto.GoodsDetailDTO; +import com.lkx.farmershop.model.entity.*; +import com.lkx.farmershop.mapper.GoodsMapper; +import com.lkx.farmershop.model.vo.ShowBackGoodsVo; +import com.lkx.farmershop.model.vo.ShowBackVo; +import com.lkx.farmershop.model.vo.SwiperVo; +import com.lkx.farmershop.service.*; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; +import java.util.TreeSet; +import java.util.stream.Collectors; + +/** + *

+ * 服务实现类 + *

+ * + * @author lkx + * @since 2024-02-04 + */ +@Service +public class GoodsServiceImpl extends ServiceImpl implements IGoodsService { + + @Autowired + private IFarmerGoodsService farmerGoodsService; + @Autowired + private IGoodsSwiperService goodsSwiperService; + @Autowired + private ISwiperService swiperService; + @Autowired + private IGoodsService goodsService; // 商品 + @Autowired + private ShoppingCartService shoppingCartService; //购物车 + @Autowired + private IUserService userService; //用户 + @Autowired + private ActivityGoodsService activityGoodsService; + @Autowired + private IFarmerService farmerService; + + /** + * 根据条件搜索商品名称 + * @param query 搜索条件 + * @return ApiResult> 相关名称集合 + */ + @Override + public ApiResult> searchByQuery(String query) { + + if(StrUtil.isBlank(query)){ + // 查询条件为空 + return ApiResult.failed("请输入查询条件!"); + } + + List goodsNameList = lambdaQuery() + .like(Goods::getGoodsName, query) // 搜索条件 + .orderByDesc(Goods::getScore) // 根据评分降序 + .last("limit 10") // 只查10条 + .list() + .stream() + .map(Goods::getGoodsName) //获取商品名称 + .collect(Collectors.toList()); + + return ApiResult.success(goodsNameList); + } + + /** + * 根据商品名称查询商品 + * @param goodsName 商品名称 + * @param pageNum 当前页码 + * @param pageSize 每页显示数 + * @return 商品集合 + */ + @Override + public ApiResult> searchByGoodsName(String goodsName, Integer pageNum, Integer pageSize) { + + if(StrUtil.isBlank(goodsName)){ + // 商品名称为空 + return ApiResult.failed("请选择商品名称!"); + } + + // 构建分页构造器 + Page goodsPage = new Page<>(pageNum, pageSize); + // 根据名称模糊查询 + page(goodsPage, new QueryWrapper().like("goods_name", goodsName)); + + // 返回 + return ApiResult.success(goodsPage); + } + + + @Override + public ApiResult addGoods(GoodsDTO goodsDTO) { + Long farmerId = BaseContext.getCurrentId(); + Goods goods = goodsDTO.getGoods(); + save(goods); + + Long goodsId = goods.getGoodsId(); + + List gSwiper = goodsDTO.getGoodsSwiper(); + List goodsSwipers = gSwiper.stream().map(swiper -> { + GoodsSwiper goodsSwiper = new GoodsSwiper(); + goodsSwiper.setGoodsSwiper(swiper); + goodsSwiper.setGoodsId(goodsId); + return goodsSwiper; + }).collect(Collectors.toList()); + goodsSwiperService.saveBatch(goodsSwipers); + FarmerGoods farmerGoods = new FarmerGoods(); + farmerGoods.setGoodsId(goodsId); + farmerGoods.setFarmerId(farmerId); + farmerGoodsService.save(farmerGoods); + return ApiResult.success("添加成功!"); + } + + @Override + public ApiResult deleteGoods(Long goodsId) { + //删除首页轮播图swiper + //删除商品轮播图goods_swiper + goodsSwiperService.lambdaUpdate().eq(GoodsSwiper::getGoodsId, goodsId).remove(); + //删除farmer_goods + farmerGoodsService.lambdaUpdate().eq(FarmerGoods::getGoodsId, goodsId).remove(); + //把是否已删除字段设为1 + goodsService.lambdaUpdate().eq(Goods::getGoodsId, goodsId).set(Goods::getIsDelete, 1).update(); + return ApiResult.success("删除成功!"); + } + + @Override + @Transactional + public ApiResult updateGoods(GoodsDTO goodsDTO) { + Goods goods = goodsDTO.getGoods(); + Long goodsId = goods.getGoodsId(); + //从数据库获取被修改的商品 + Goods theGoods = getById(goodsId); + + BeanUtils.copyProperties(goods, theGoods); + //把此商品原来的首页轮播图删除 + //更新此商品的轮播图,先删除,后添加 + goodsSwiperService.lambdaUpdate().eq(GoodsSwiper::getGoodsId, goodsId).remove(); + List goodsSwiperList = goodsDTO.getGoodsSwiper(); + List collect = goodsSwiperList.stream() + .map(goodsSwiper -> { + GoodsSwiper swiper = new GoodsSwiper(); + swiper.setGoodsId(goodsId); + swiper.setGoodsSwiper(goodsSwiper); + return swiper; + }).collect(Collectors.toList()); + goodsSwiperService.saveBatch(collect); + + //比较商品原价格与修改后的价格 + //查询新价格 + BigDecimal newGoodsPrice = goods.getGoodsPrice(); + + //查询旧价格 + Goods oldGoods = lambdaQuery().eq(Goods::getGoodsId, goods.getGoodsId()).one(); + BigDecimal oldGoodsPrice = oldGoods.getGoodsPrice(); + //若修改后价格变低,则将此商品添加到活动商品表 + if (newGoodsPrice.compareTo(oldGoodsPrice) < 0) { + //先判断此商品是否已在活动表中,已存在就更新其更新时间 + ActivityGoods one = activityGoodsService.lambdaQuery().eq(ActivityGoods::getGoodsId, goodsId).one(); + if (one != null) { + one.setUpdateTime(LocalDateTime.now()); + } else { + ActivityGoods activityGoods = new ActivityGoods(); + activityGoods.setGoodsId(goodsId); + activityGoodsService.save(activityGoods); + } + } + //若价格升高,并且商品再活动商品表中,则将其在活动商品表删除 + else { + if (activityGoodsService.lambdaQuery().eq(ActivityGoods::getGoodsId, goodsId).one() != null) { + activityGoodsService.removeById(goodsId); + } + } + + + //更新商品信息 + updateById(theGoods); + return ApiResult.success("修改成功!"); + } + + /** + * 精品推荐(推荐算法,根据用户购物车推荐商品) + * + * @param page 当前页码 + * @param pageSize 每页显示条数 + * @return 返回分页后的商品数据 + */ + @Override + public ApiResult> homeSearch(int page, int pageSize) { + // 获取当前用户id + Long currentId = BaseContext.getCurrentId(); + + //通过计算余弦相似度并取TopN, 返回为uid的用户生成的5个推荐文章 + List likeLists; //其他用户的购物车 + + List userList = userService.lambdaQuery().list(); //所有用户列表 + List goodsList = goodsService.lambdaQuery().list(); //所有商品列表 + + int[][] curMatrix = new int[goodsList.size() + 20][goodsList.size() + 20]; //当前矩阵 + int[][] comMatrix = new int[goodsList.size() + 20][goodsList.size() + 20]; //共现矩阵 + int[] N = new int[goodsList.size() + 100]; //喜欢每个物品的人数 + + for (User user : userList) { + if (user.getId().equals(currentId)) { + continue; //当前用户则跳过 + } + + likeLists = shoppingCartService //当前用户的购物车列表 + .lambdaQuery() + .eq(ShoppingCart::getUserId, user.getId()) + .list(); + + for (int i = 0; i < goodsList.size(); i++) { + for (int j = 0; j < goodsList.size(); j++) { + curMatrix[i][j] = 0; //清空矩阵 + } + } + + for (int i = 0; i < likeLists.size(); i++) { + int pid1 = likeLists.get(i).getGoodsId().intValue(); + ++N[pid1]; + for (int j = i + 1; j < likeLists.size(); j++) { + int pid2 = likeLists.get(j).getGoodsId().intValue(); + ++curMatrix[pid1][pid2]; + ++curMatrix[pid2][pid1]; //两两加一 + } + } + //累加所有矩阵, 得到共现矩阵 + for (int i = 0; i < goodsList.size(); i++) { + for (int j = 0; j < goodsList.size(); j++) { + int pid1 = goodsList.get(i).getGoodsId().intValue(), pid2 = goodsList.get(j).getGoodsId().intValue(); + comMatrix[pid1][pid2] += curMatrix[pid1][pid2]; + comMatrix[pid1][pid2] += curMatrix[pid1][pid2]; + } + } + } + + TreeSet preList = new TreeSet(new Comparator() { + @Override + public int compare(Goods o1, Goods o2) { + if (o1.getW() != o2.getW()) { + return (int) (o1.getW() - o2.getW()) * 100; + } else { + return o1.getCnt() - o2.getCnt(); + } + } + }); //预处理的列表 + + likeLists = shoppingCartService //当前用户的购物车列表 + .lambdaQuery() + .eq(ShoppingCart::getUserId, currentId) + .list(); + boolean[] used = new boolean[goodsList.size() + 20]; //判重数组 + for (ShoppingCart like : likeLists) { + int Nij = 0; //既喜欢i又喜欢j的人数 + double Wij; //相似度 + Goods tmp; //当前的论文 + + int i = like.getGoodsId().intValue(); + for (Goods paper : goodsList) { + if (like.getGoodsId().equals(paper.getGoodsId())) { + continue; + } + int j = paper.getGoodsId().intValue(); + + Nij = comMatrix[i][j]; + Wij = (double) Nij / Math.sqrt(N[i] * N[j]); //计算余弦相似度 + + tmp = goodsService.lambdaQuery().eq(Goods::getGoodsId, paper.getGoodsId()).one(); + tmp.setW(Wij); + + if (used[tmp.getGoodsId().intValue()]) { + continue; + } + preList.add(tmp); + used[tmp.getGoodsId().intValue()] = true; + } + } + + ArrayList recomLists = new ArrayList<>(); //生成的推荐结果 + for (int i = 0; preList.size() > 0 && i < 5; i++) { + recomLists.add(preList.pollLast()); + preList.pollLast(); + } + + // 获取根据评分排序的商品集合 + List descGoodsList = goodsService.lambdaQuery().orderByDesc(Goods::getScore).list(); + // 过滤掉已推荐的商品 + List remainGoodsList = descGoodsList.stream() + .filter(goods -> recomLists.stream().noneMatch(recom -> recom.getGoodsId().equals(goods.getGoodsId()))) + .collect(Collectors.toList()); + // 将剩余排好序的商品加入集合 + recomLists.addAll(remainGoodsList); + + // 设置分页构造器 + Page pageInfo = new Page<>(page, pageSize); + // 插入推荐集合 + pageInfo.setRecords(recomLists); + //page(pageInfo); + + //过滤已删除的商品 + List records = pageInfo.getRecords(); + List collect = records.stream().filter(goods -> goods.getIsDelete() == 0).collect(Collectors.toList()); + pageInfo.setRecords(collect); + + return ApiResult.success(pageInfo); + } + + @Override + public ApiResult goodsDetail(Long goodsId) { + Goods goods = goodsService.lambdaQuery().eq(Goods::getGoodsId, goodsId).one(); + List goodsSwipers = goodsSwiperService.lambdaQuery().eq(GoodsSwiper::getGoodsId, goodsId).list(); + FarmerGoods one = farmerGoodsService.lambdaQuery().eq(FarmerGoods::getGoodsId, goodsId).one(); + Farmer farmer = farmerService.lambdaQuery().eq(Farmer::getFarmerId, one.getFarmerId()).one(); + GoodsDetailDTO goodsDetailDTO=new GoodsDetailDTO(); + //获取卖家id + Long farmerId = farmerGoodsService.lambdaQuery().eq(FarmerGoods::getGoodsId, goodsId).one().getFarmerId(); + goodsDetailDTO.setFarmerId(farmerId); + goodsDetailDTO.setGoods(goods); + goodsDetailDTO.setLocation(farmer.getLocation()); + goodsDetailDTO.setGoodsSwipers(goodsSwipers); + return ApiResult.success(goodsDetailDTO); + } + + @Override + public ApiResult showBack(Long goodsId) { + //创建返回对象 + ShowBackVo showBackVo = new ShowBackVo(); + ShowBackGoodsVo showBackGoodsVo = new ShowBackGoodsVo(); + showBackGoodsVo.setGoodsId(goodsId); + + //获取该商品信息 + Goods goods = getById(goodsId); + BeanUtils.copyProperties(goods, showBackGoodsVo); + //获取该商品图片 + List goodsSwiperList = goodsSwiperService.lambdaQuery().eq(GoodsSwiper::getGoodsId, goodsId).list(); + if(goodsSwiperList == null){ + List swiperList = new ArrayList<>(); + showBackVo.setSwiperList(swiperList); + }else{ + List swiperList = goodsSwiperList.stream() + .map(goodsSwiper -> { + String swiper = goodsSwiper.getGoodsSwiper(); + SwiperVo swiperVo = new SwiperVo(); + swiperVo.setUrl(swiper); + return swiperVo; + }).collect(Collectors.toList()); + showBackVo.setSwiperList(swiperList); + } + + showBackVo.setShowBackGoodsVo(showBackGoodsVo); + return ApiResult.success(showBackVo); + } + + + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/GoodsSwiperServiceImpl.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/GoodsSwiperServiceImpl.java new file mode 100644 index 0000000..518d7d4 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/GoodsSwiperServiceImpl.java @@ -0,0 +1,20 @@ +package com.lkx.farmershop.service.impl; + +import com.lkx.farmershop.model.entity.GoodsSwiper; +import com.lkx.farmershop.mapper.GoodsSwiperMapper; +import com.lkx.farmershop.service.IGoodsSwiperService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author lkx + * @since 2024-02-11 + */ +@Service +public class GoodsSwiperServiceImpl extends ServiceImpl implements IGoodsSwiperService { + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/OrdersGoodsServiceImpl.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/OrdersGoodsServiceImpl.java new file mode 100644 index 0000000..b46004f --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/OrdersGoodsServiceImpl.java @@ -0,0 +1,19 @@ +package com.lkx.farmershop.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.lkx.farmershop.mapper.OrdersGoodsMapper; +import com.lkx.farmershop.model.entity.OrdersGoods; +import com.lkx.farmershop.service.OrdersGoodsService; +import org.springframework.stereotype.Service; + +/** + * (OrdersGoods)表服务实现类 + * + * @author makejava + * @since 2024-03-31 20:05:55 + */ +@Service("ordersGoodsService") +public class OrdersGoodsServiceImpl extends ServiceImpl implements OrdersGoodsService { + +} + diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/OrdersServiceImpl.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/OrdersServiceImpl.java new file mode 100644 index 0000000..0481a01 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/OrdersServiceImpl.java @@ -0,0 +1,772 @@ +package com.lkx.farmershop.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.lkx.farmershop.common.api.ApiResult; +import com.lkx.farmershop.common.context.BaseContext; +import com.lkx.farmershop.constants.SystemConstants; +import com.lkx.farmershop.mapper.OrdersMapper; +import com.lkx.farmershop.model.dto.*; +import com.lkx.farmershop.model.entity.*; +import com.lkx.farmershop.model.vo.*; +import com.lkx.farmershop.service.*; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.atomic.AtomicReference; +import java.util.stream.Collectors; + +/** + * (Orders)表服务实现类 + * + * @author makejava + * @since 2024-03-31 20:05:32 + */ +@Service("ordersService") +public class OrdersServiceImpl extends ServiceImpl implements OrdersService { + + @Autowired + private IFarmerService farmerService; + @Autowired + private OrdersGoodsService ordersGoodsService; + @Autowired + private IGoodsService goodsService; + @Autowired + private ShoppingCartService shoppingCartService; + @Autowired + private UrgencyOrdersService urgencyOrdersService; + @Autowired + private UserMessageService userMessageService; + @Autowired + private IReturnGoodsService returnGoodsService; + + @Override + public ApiResult settleAccounts(List accountsDtoList) { + //最终返回的对象 + SettleAccountsVo settleAccountsVo = new SettleAccountsVo(); + settleAccountsVo.setTotalPrice(new BigDecimal("0.00")); + + //给返回值信息赋值 + List settleInfoVoList = accountsDtoList.stream().map(settleAccountsDto -> { + SettleInfoVo settleInfoVo = new SettleInfoVo(); + Long farmerId = settleAccountsDto.getFarmerId(); + //给商家信息赋值 + settleInfoVo.setFarmerId(farmerId); + settleInfoVo.setFarmerName(farmerService.lambdaQuery().eq(Farmer::getFarmerId, farmerId).one().getName()); + + List cartGoodsDtoList = settleAccountsDto.getCartGoodsDtoList(); + //给商品信息赋值 + List cartGoodsVoList = cartGoodsDtoList.stream().map(cartGoodsDto -> { + Long goodsId = cartGoodsDto.getGoodsId(); + Integer goodsCount = cartGoodsDto.getGoodsCount(); + + //从数据库查询商品信息 + Goods goods = goodsService.lambdaQuery().eq(Goods::getGoodsId, goodsId).one(); + //创建用于储存商品信息的对象 + CartGoodsVo cartGoodsVo = new CartGoodsVo(); + //给商品信息赋值 + BeanUtils.copyProperties(goods, cartGoodsVo); + cartGoodsVo.setGoodsCount(goodsCount); + + //把商品数量乘以价格的值加到总价格里 + //获取商品价格 + BigDecimal goodsPrice = goods.getGoodsPrice(); + BigDecimal goodsCountDecimal = new BigDecimal(goodsCount); + BigDecimal totalPrice = settleAccountsVo.getTotalPrice(); + settleAccountsVo.setTotalPrice(totalPrice.add(goodsPrice.multiply(goodsCountDecimal))); + + return cartGoodsVo; + }).collect(Collectors.toList()); + + //给总价格加上运费 + BigDecimal totalPrice = settleAccountsVo.getTotalPrice(); + settleAccountsVo.setTotalPrice(totalPrice.add(SystemConstants.FREIGHT)); + + settleInfoVo.setCartGoodsVoList(cartGoodsVoList); + return settleInfoVo; + }).collect(Collectors.toList()); + + settleAccountsVo.setSettleInfoVoList(settleInfoVoList); + + return ApiResult.success(settleAccountsVo); + } + + @Override + public ApiResult getOrders(Integer orderStatus, int page, int pageSize) { + //创建返回对象 + OrdersPageVo ordersPageVo = new OrdersPageVo(); + // 售后 + if (orderStatus == 5) { + //获取当前用户id + Long userId = BaseContext.getCurrentId(); + + // 构建分页构造器 + Page pageInfo = new Page<>(page, pageSize); + // 获取该用户的售后单 + returnGoodsService.lambdaQuery() + .eq(ReturnGoods::getUserId, userId) + .orderByDesc(ReturnGoods::getRtnTime) + .page(pageInfo); + // 获取售后单集合 + List returnGoodsList = pageInfo.getRecords(); + // 插入分页总数 + ordersPageVo.setTotal(pageInfo.getTotal()); + + // 遍历退货表 + List ordersVoList = returnGoodsList.stream().map(returnGoods -> { + // 创建ordersVo + OrdersVo ordersVo = new OrdersVo(); + // 根据订单编号获取订单表 + Orders orders = lambdaQuery().eq(Orders::getOrderNum, returnGoods.getOrderNum()).one(); + // 拷贝相关数据 + BeanUtil.copyProperties(orders, ordersVo); + // 获取商家名 + Farmer farmer = farmerService.lambdaQuery() + .eq(Farmer::getFarmerId, returnGoods.getFarmerId()).one(); + // 给返回值设置商家名 + ordersVo.setFarmerName(farmer.getName()); + // 设置手机号 + ordersVo.setPhoneNum(farmer.getPhoneNum()); + // 设置退款状态 + ordersVo.setRefundStatus(returnGoods.getRefundStatus()); + // 设置退货单id + ordersVo.setRtnGoodsId(returnGoods.getId()); + + //构建商品信息集合 + List cartGoodsVoList = new ArrayList<>(); + //获取商品id + String goodsIdList = returnGoods.getGoodsId(); + // 根据逗号(,)划分id + String[] split = goodsIdList.split(","); + // 遍历商品id + for (String s : split) { + // 将id转为long类型 + Long goodsId = Long.valueOf(s); + // 根据订单编号 + 商品id获取商品数量 + Integer goodsCount = ordersGoodsService.lambdaQuery() + .eq(OrdersGoods::getOrderNum, returnGoods.getOrderNum()) + .eq(OrdersGoods::getGoodsId, goodsId) + .one() + .getGoodsCount(); + + //获取商品信息 + Goods goods = goodsService.getById(goodsId); + //给商品信息赋值 + CartGoodsVo cartGoodsVo = new CartGoodsVo(); + BeanUtils.copyProperties(goods, cartGoodsVo); + cartGoodsVo.setGoodsCount(goodsCount); + cartGoodsVoList.add(cartGoodsVo); + } + + ordersVo.setCartGoodsVoList(cartGoodsVoList); + return ordersVo; + }).collect(Collectors.toList()); + + ordersPageVo.setOrdersVoList(ordersVoList); + + } else { + Page pageInfo = new Page<>(page, pageSize); + //获取当前用户id + Long userId = BaseContext.getCurrentId(); + + List ordersList; + + if (orderStatus == SystemConstants.ALL_ORDERS) { + //如果传入的状态为0,则返回全部订单 + pageInfo = lambdaQuery().eq(Orders::getUserId, userId).page(pageInfo); + ordersList = pageInfo.getRecords(); + } else { + //获取该用户处于该状态下的订单 + pageInfo = lambdaQuery().eq(Orders::getUserId, userId) + .eq(Orders::getOrderStatus, orderStatus) + .page(pageInfo); + ordersList = pageInfo.getRecords(); + } + + //如果该用户处于该状态下的订单为空则直接返回 + if (ordersList == null || ordersList.size() == 0) { + List list = new ArrayList<>(); + ordersPageVo.setTotal(0L); + ordersPageVo.setOrdersVoList(list); + return ApiResult.success(ordersPageVo); + } + + ordersPageVo.setTotal(pageInfo.getTotal()); + + //给最终返回对象赋值(除商品信息以外) + List ordersVoList = ordersList.stream().map(orders -> { + OrdersVo ordersVo = new OrdersVo(); + BeanUtils.copyProperties(orders, ordersVo); + + //获取商家名 + Farmer farmer = farmerService.lambdaQuery() + .eq(Farmer::getFarmerId, orders.getFarmerId()).one(); + //给返回值设置商家名 + ordersVo.setFarmerName(farmer.getName()); + //设置手机号 + ordersVo.setPhoneNum(farmer.getPhoneNum()); + return ordersVo; + }).collect(Collectors.toList()); + + //给最终返回对象的商品信息赋值,来自于同一商家的放一起 + ordersVoList.forEach(ordersVo -> { + Long ordersId = ordersVo.getId(); + String orderNum = lambdaQuery().eq(Orders::getId, ordersId).one().getOrderNum(); + + //查询此订单的商品id和相应数量 + List ordersGoodsList = ordersGoodsService.lambdaQuery().eq(OrdersGoods::getOrderNum, orderNum).list(); + + //构建好商品信息集合 + List cartGoodsVoList = new ArrayList<>(); + //给商品信息赋值 + ordersGoodsList.forEach(ordersGoods -> { + CartGoodsVo cartGoodsVo = new CartGoodsVo(); + //给商品信息赋值 + Goods goods = goodsService.lambdaQuery().eq(Goods::getGoodsId, ordersGoods.getGoodsId()).one(); + BeanUtils.copyProperties(goods, cartGoodsVo); + + //给商品id和数量 + cartGoodsVo.setGoodsId(ordersGoods.getGoodsId()); + cartGoodsVo.setGoodsCount(ordersGoods.getGoodsCount()); + + //把信息加到要返回的集合 + cartGoodsVoList.add(cartGoodsVo); + }); + + //给返回值设置商品信息 + ordersVo.setCartGoodsVoList(cartGoodsVoList); + }); + + ordersPageVo.setOrdersVoList(ordersVoList); + } + + return ApiResult.success(ordersPageVo); + } + + @Override + @Transactional + public ApiResult submitOrders(SubmitOrdersDto submitOrdersDto) { + //取出以商家分类的数据 + List submitFarmerIdDtoList = submitOrdersDto.getSubmitFarmerIdDtoList(); + + //判断库存是否足够,库存不够则返回提示,库存足够则扣除对应库存数量 + for (SubmitFarmerIdDto submitFarmerIdDto : submitFarmerIdDtoList) { + List cartGoodsDtoList = submitFarmerIdDto.getCartGoodsDtoList(); + for (CartGoodsDto cartGoodsDto : cartGoodsDtoList) { + Long goodsId = cartGoodsDto.getGoodsId(); + Integer goodsCount = cartGoodsDto.getGoodsCount(); + + //在数据库中查询此商品 + Goods goods = goodsService.lambdaQuery().eq(Goods::getGoodsId, goodsId).one(); + //判断库存是否足够 + Integer goodsNumber = goods.getGoodsNumber(); + if (goodsNumber < goodsCount) { + return ApiResult.failed("库存不足!"); + } else { + //扣除对应库存数量 + goods.setGoodsNumber(goodsNumber - goodsCount); + //增加对应商品销量 + Integer sales = goods.getSales(); + goods.setSales(sales + goodsCount); + //把修改保存到数据库 + goodsService.updateById(goods); + } + } + } + + //给订单中除商品信息以外的数据赋值 + List ordersList = submitFarmerIdDtoList.stream().map(submitFarmerIdDto -> { + Orders orders = new Orders(); + //给商家信息赋值 + BeanUtils.copyProperties(submitFarmerIdDto, orders); + //给收货信息赋值 + orders.setAddress(submitOrdersDto.getAddress()); + orders.setConsignee(submitOrdersDto.getConsignee()); + orders.setPhone(submitOrdersDto.getPhone()); + //给用户id赋值 + Long userId = BaseContext.getCurrentId(); + orders.setUserId(userId); + //生成订单编号 + String orderNum = userId.toString() + System.currentTimeMillis(); + orders.setOrderNum(orderNum); + + //设置支付时间 + orders.setPayTime(LocalDateTime.now()); + //设置订单状态 + orders.setOrderStatus(SystemConstants.WAIT_DELIVER); + //设置运费 + orders.setFreight(SystemConstants.FREIGHT); + + //商品信息 + List cartGoodsDtoList = submitFarmerIdDto.getCartGoodsDtoList(); + cartGoodsDtoList.forEach(cartGoodsDto -> { + //取出商品id和数量 + Long goodsId = cartGoodsDto.getGoodsId(); + //从购物车删除此商品 + shoppingCartService.lambdaUpdate().eq(ShoppingCart::getUserId, userId) + .eq(ShoppingCart::getGoodsId, goodsId).remove(); + + Integer goodsCount = cartGoodsDto.getGoodsCount(); + OrdersGoods ordersGoods = new OrdersGoods(orderNum, goodsId, goodsCount); + //保存到数据库 + ordersGoodsService.save(ordersGoods); + + //实付金额里加上此商品价格乘以数量的值 + BigDecimal goodsPrice = goodsService.lambdaQuery().eq(Goods::getGoodsId, goodsId).one().getGoodsPrice(); + BigDecimal goodsCountDecimal = new BigDecimal(goodsCount.toString()); + + //给实付金额赋值 + BigDecimal oldPay = orders.getActualPay(); + if (oldPay == null) { + oldPay = new BigDecimal("0.00"); + } + orders.setActualPay(oldPay.add(goodsPrice.multiply(goodsCountDecimal))); + }); + //给订单实付款加上运费 + BigDecimal oldPay = orders.getActualPay(); + orders.setActualPay(oldPay.add(SystemConstants.FREIGHT)); + return orders; + }).collect(Collectors.toList()); + + //将订单数据保存到数据库 + saveBatch(ordersList); + return ApiResult.success("提交订单成功!"); + } + + @Override + public ApiResult getOrdersDetail(Long orderId) { + + //获取该订单信息 + Orders orders = getById(orderId); + + //创建最终返回值 + OrderDetailVo orderDetailVo = new OrderDetailVo(); + orderDetailVo.setId(orderId); + + //给返回值赋值 + BeanUtils.copyProperties(orders, orderDetailVo); + + //给商家名称赋值 + Long farmerId = orders.getFarmerId(); + Farmer farmer = farmerService.lambdaQuery().eq(Farmer::getFarmerId, farmerId).one(); + orderDetailVo.setFarmerName(farmer.getName()); + + // 获取退货单 + ReturnGoods returnGoods = returnGoodsService + .lambdaQuery() + .eq(ReturnGoods::getOrderNum, orders.getOrderNum()).one(); + if(returnGoods!=null) + orderDetailVo.setRefundStatus(returnGoods.getRefundStatus()); + else + orderDetailVo.setRefundStatus(-1); + //给商品信息赋值 + String orderNum = orders.getOrderNum(); + //查出此订单的商品id和数量 + List ordersGoodsList = ordersGoodsService.lambdaQuery() + .eq(OrdersGoods::getOrderNum, orderNum).list(); + + List cartGoodsVoList = ordersGoodsList.stream().map(ordersGoods -> { + CartGoodsVo cartGoodsVo = new CartGoodsVo(); + + //得到商品信息 + Long goodsId = ordersGoods.getGoodsId(); + Integer goodsCount = ordersGoods.getGoodsCount(); + + Goods goods = goodsService.lambdaQuery().eq(Goods::getGoodsId, goodsId).one(); + //拷贝商品信息 + BeanUtils.copyProperties(goods, cartGoodsVo); + //设置数量 + cartGoodsVo.setGoodsCount(goodsCount); + return cartGoodsVo; + }).collect(Collectors.toList()); + + //给返回值设置商品信息 + orderDetailVo.setCartGoodsVoList(cartGoodsVoList); + return ApiResult.success(orderDetailVo); + } + + @Override + @Transactional + public ApiResult cancelOrders(CancelDto cancelDto) { + //获取订单 + Orders orders = getById(cancelDto.getOrderId()); + + //判断订单是否已发货 + if (orders.getOrderStatus() == SystemConstants.WAIT_RECEIVE) { + //若已发货,则返回提示 + return ApiResult.failed("商品已发货,不可无理由退款"); + } + + //获取该订单对应商品id和数量 + List ordersGoodsList = ordersGoodsService.lambdaQuery() + .eq(OrdersGoods::getOrderNum, orders.getOrderNum()).list(); + + //添加回相应商品库存 + ordersGoodsList.forEach(ordersGoods -> { + Long goodsId = ordersGoods.getGoodsId(); + Integer goodsCount = ordersGoods.getGoodsCount(); + + //从数据库获取该商品 + Goods goods = goodsService.lambdaQuery().eq(Goods::getGoodsId, goodsId).one(); + //加回对应库存 + Integer goodsNumber = goods.getGoodsNumber(); + goods.setGoodsNumber(goodsNumber + goodsCount); + //减回对应销量 + Integer sales = goods.getSales(); + goods.setSales(sales - goodsCount); + //保存回数据库 + goodsService.updateById(goods); + + }); + + //删除订单(把订单状态改为已取消) + orders.setOrderStatus(SystemConstants.CANCELED); + //设置退款原因 + orders.setCancelReason(cancelDto.getCancelReason()); + updateById(orders); + + //若该订单为紧急订单,则从紧急订单表删除该订单数据 + urgencyOrdersService.lambdaUpdate().eq(UrgencyOrders::getOrderId, orders.getId()).remove(); + + return ApiResult.success("取消订单成功!"); + } + + @Override + public ApiResult confirmReceipt(Long orderId) { + + //在数据库修改此订单状态为待评价,设置收货时间 + lambdaUpdate().eq(Orders::getId, orderId) + .set(Orders::getOrderStatus, SystemConstants.WAIT_COMMENTS) + .set(Orders::getReceiveTime, LocalDateTime.now()) + .update(); + + //若该订单为紧急订单,则从紧急订单表删除该订单数据 + urgencyOrdersService.lambdaUpdate().eq(UrgencyOrders::getOrderId, orderId).remove(); + + return ApiResult.success("已确认收货!"); + } + + @Override + public ApiResult confirmDeliver(Long orderId) { + + //从数据库获取该订单 + Orders orders = getById(orderId); + //修改状态为已发货(待收货) + orders.setOrderStatus(SystemConstants.WAIT_RECEIVE); + //添加发货时间 + orders.setDeliveryTime(LocalDateTime.now()); + //修改保存到数据库 + updateById(orders); + + //若该订单为紧急订单,则从紧急订单表删除该订单数据 + urgencyOrdersService.lambdaUpdate().eq(UrgencyOrders::getOrderId, orderId).remove(); + + return ApiResult.success("发货成功!"); + } + + /** + * 农户查看各状态下的用户订单 + * + * @param page 当前页码 + * @param pageSize 每页显示数 + * @param orderStatus 订单状态 + * @return ApiResult> + */ + @Override + public ApiResult getOrderByStatus(Integer page, Integer pageSize, Integer orderStatus) { + + //创建返回对象 + FOrdersPageVo fOrdersPageVo = new FOrdersPageVo(); + + if (orderStatus == 4) { + // 对当前用户进行判断,4:true,农户, 5:false,用户 + //boolean flag = orderStatus == 4; + + // 获取当前农户id + Long id = BaseContext.getCurrentId(); + + // 构建分页构造器 + Page pageInfo = new Page<>(page, pageSize); + // 根据farmerId分页查询 + returnGoodsService.page(pageInfo, new QueryWrapper() + .eq("farmer_id", id) + .orderByDesc("rtn_time")); + // 设置查询总数 + fOrdersPageVo.setTotal(pageInfo.getTotal()); + + // 获取分页后的退货商品集合 + List returnGoodsList = pageInfo.getRecords(); + // 遍历退货商品集合 + List fOrdersVoList = returnGoodsList.stream().map(returnGoods -> { + // 根据订单编号获取订单表数据 + Orders orders = lambdaQuery().eq(Orders::getOrderNum, returnGoods.getOrderNum()).one(); + + // 创建FOrdersVo + FOrdersVo fOrdersVo = new FOrdersVo(); + fOrdersVo.setId(orders.getId()); + fOrdersVo.setOrderStatus(orders.getOrderStatus()); + fOrdersVo.setActualPay(orders.getActualPay()); + fOrdersVo.setRtnReason(returnGoods.getRtnReason()); // 设置退款原因 + fOrdersVo.setRtnStatus(returnGoods.getRtnStatus()); // 设置收货状态 + fOrdersVo.setRtnGoodsId(returnGoods.getId()); // 设置退货表id + fOrdersVo.setRefundStatus(returnGoods.getRefundStatus()); // 设置退款状态 + + // 创建CartGoodsVo集合 + List cartGoodsVoList = new ArrayList<>(); + //获取商品id + String goodsIdList = returnGoods.getGoodsId(); + // 根据逗号(,)划分id + String[] split = goodsIdList.split(","); + // 遍历商品id + for (String s : split) { + // 将id转为long类型 + Long goodsId = Long.valueOf(s); + // 根据订单编号 + 商品id获取商品数量 + Integer goodsCount = ordersGoodsService.lambdaQuery() + .eq(OrdersGoods::getOrderNum, returnGoods.getOrderNum()) + .eq(OrdersGoods::getGoodsId, goodsId) + .one() + .getGoodsCount(); + + //获取商品信息 + Goods goods = goodsService.getById(goodsId); + //给商品信息赋值 + CartGoodsVo cartGoodsVo = new CartGoodsVo(); + BeanUtils.copyProperties(goods, cartGoodsVo); + cartGoodsVo.setGoodsCount(goodsCount); + cartGoodsVoList.add(cartGoodsVo); + } + + fOrdersVo.setCartGoodsVoList(cartGoodsVoList); + return fOrdersVo; + }).collect(Collectors.toList()); + + fOrdersPageVo.setFOrdersVoList(fOrdersVoList); + + } else { + + // 获取当前农户id + Long farmerId = BaseContext.getCurrentId(); + // 构建分页构造器 + Page pageInfo = new Page<>(page, pageSize); + // 根据相关条件分页 + if (orderStatus == 0) { + List list = urgencyOrdersService.lambdaQuery().eq(UrgencyOrders::getFarmerId, farmerId).list(); + //获取订单id + if (list != null) { + List idList = list.stream().map(UrgencyOrders::getOrderId).collect(Collectors.toList()); + List ordersList = idList.stream().map(this::getById).collect(Collectors.toList()); + + pageInfo.setRecords(ordersList); + } else { + pageInfo.setRecords(new ArrayList<>()); + } + } else if (orderStatus == 1) { + page(pageInfo, new QueryWrapper() + .eq("farmer_id", farmerId) + .eq("order_status", SystemConstants.WAIT_DELIVER) + .eq("delivery", 0)); + } else if (orderStatus == 2) { + page(pageInfo, new QueryWrapper() + .eq("farmer_id", farmerId) + .eq("order_status", SystemConstants.WAIT_DELIVER) + .eq("delivery", 1)); + } else if (orderStatus == 3) { + page(pageInfo, new QueryWrapper() + .eq("farmer_id", farmerId) + .eq("order_status", SystemConstants.WAIT_COMMENTS) + .or() + .eq("farmer_id", farmerId) + .eq("order_status", SystemConstants.WAIT_RECEIVE) + .or() + .eq("farmer_id", farmerId) + .eq("order_status", SystemConstants.COMPLETED)); + } + + + // 获取分页后的集合 + List ordersList = pageInfo.getRecords(); + //获取总数据量 + fOrdersPageVo.setTotal(pageInfo.getTotal()); + + //给返回值的字段赋值 + List fOrdersVoList = ordersList.stream().map(orders -> { + FOrdersVo fOrdersVo = new FOrdersVo(); + fOrdersVo.setId(orders.getId()); + fOrdersVo.setOrderStatus(orders.getOrderStatus()); + fOrdersVo.setActualPay(orders.getActualPay()); + + //获取该订单的商品信息 + List ordersGoodsList = ordersGoodsService.lambdaQuery().eq(OrdersGoods::getOrderNum, orders.getOrderNum()).list(); + List cartGoodsVoList = ordersGoodsList.stream().map(ordersGoods -> { + Long goodsId = ordersGoods.getGoodsId(); + Integer goodsCount = ordersGoods.getGoodsCount(); + //获取商品信息 + Goods goods = goodsService.getById(goodsId); + //给商品信息赋值 + CartGoodsVo cartGoodsVo = new CartGoodsVo(); + BeanUtils.copyProperties(goods, cartGoodsVo); + cartGoodsVo.setGoodsCount(goodsCount); + return cartGoodsVo; + }).collect(Collectors.toList()); + + fOrdersVo.setCartGoodsVoList(cartGoodsVoList); + return fOrdersVo; + }).collect(Collectors.toList()); + + fOrdersPageVo.setFOrdersVoList(fOrdersVoList); + } + + + return ApiResult.success(fOrdersPageVo); + } + + @Override + public ApiResult> buyAgain(Long orderId) { + //创建返回对象 + FarmerGoodsCountVo farmerGoodsCountVo = new FarmerGoodsCountVo(); + //查询此订单 + Orders orders = getById(orderId); + + //拿到此订单的卖家id + Long farmerId = orders.getFarmerId(); + farmerGoodsCountVo.setFarmerId(farmerId); + //拿到该订单的商品id和数量 + List ordersGoodsList = ordersGoodsService.lambdaQuery().eq(OrdersGoods::getOrderNum, orders.getOrderNum()).list(); + List goodsCountVoList = ordersGoodsList.stream().map(ordersGoods -> { + GoodsCountVo goodsCountVo = new GoodsCountVo(); + goodsCountVo.setGoodsId(ordersGoods.getGoodsId()); + goodsCountVo.setGoodsCount(ordersGoods.getGoodsCount()); + return goodsCountVo; + }).collect(Collectors.toList()); + + farmerGoodsCountVo.setCartGoodsDtoList(goodsCountVoList); + + List farmerGoodsCountVoList = new ArrayList<>(); + farmerGoodsCountVoList.add(farmerGoodsCountVo); + + return ApiResult.success(farmerGoodsCountVoList); + } + + /** + * 回显商品信息(申请退货退款) + * + * @param orderNum 订单编号 + * @param goodsIdList 商品id集合 + * @return ReturnGoodsVO + */ + @Override + public ApiResult> returnGoods(String orderNum, List goodsIdList) { + + if (CollUtil.isEmpty(goodsIdList)) { + // 商品id集合为空 + return ApiResult.failed("商品信息为空!"); + } + + Integer totalGoodsCount = 0; // 退货商品总数 + BigDecimal totalGoodsPrice = new BigDecimal(0); // 退货商品总价 + + // 根据商品id集合查询商品表获取商品信息集合 + List goodsList = goodsService.lambdaQuery() + .in(CollUtil.isNotEmpty(goodsIdList), Goods::getGoodsId, goodsIdList).list(); + + // 创建ReturnGoodsVO集合 + List returnGoodsVOList = new ArrayList<>(); + + for (Goods goods : goodsList) { + // 将商品信息拷贝到returnGoodsVO + ReturnGoodsVO returnGoodsVO = BeanUtil.copyProperties(goods, ReturnGoodsVO.class); + + // 根据订单编号 + 商品id查询订单商品表获取商品数量 + Integer goodsCount = ordersGoodsService.lambdaQuery() + .eq(OrdersGoods::getOrderNum, orderNum) + .eq(OrdersGoods::getGoodsId, goods.getGoodsId()) + .one() + .getGoodsCount(); + + // 商品数量相加 + totalGoodsCount += goodsCount; + // 设置商品数量 + returnGoodsVO.setGoodsCount(goodsCount); + + // 设置退款金额 + BigDecimal bigDecimal = new BigDecimal(goodsCount); + // 商品价格 * 数量 + BigDecimal multiply = goods.getGoodsPrice().multiply(bigDecimal); + // 设置商品价格 + returnGoodsVO.setRtnMoney(multiply); + // 商品价格相加 + totalGoodsPrice = totalGoodsPrice.add(multiply); + + // 加入集合 + returnGoodsVOList.add(returnGoodsVO); + } + + // 创建map集合 + Map map = new HashMap<>(); + map.put("totalGoodsCount", totalGoodsCount); // 插入退货总数量 + map.put("totalGoodsPrice", totalGoodsPrice); // 插入退货商品总价 + map.put("returnGoodsVOList", returnGoodsVOList); // 插入退货商品集合 + + // 返回 + return ApiResult.success(map); + } + + @Override + public ApiResult urge(Long orderId) { + + //判断是否已经催过单 + Integer count = urgencyOrdersService.lambdaQuery().eq(UrgencyOrders::getOrderId, orderId).count(); + if (count > 0) { + return ApiResult.success("您已催过本订单"); + } + + //获取订单 + Orders orders = getById(orderId); + UrgencyOrders urgencyOrders = new UrgencyOrders(); + urgencyOrders.setOrderId(orderId); + urgencyOrders.setFarmerId(orders.getFarmerId()); + //把订单id加到紧急订单表 + urgencyOrdersService.save(urgencyOrders); + return ApiResult.success("催单成功!"); + } + + @Override + @Transactional + public ApiResult refuseOrders(Long orderId, String refuseReason) { + //获取订单 + Orders orders = getById(orderId); + //将订单状态改为已取消 + orders.setOrderStatus(SystemConstants.CANCELED); + //将修改保存到数据库 + updateById(orders); + + //若该订单是紧急订单,则从紧急订单表删除该订单 + urgencyOrdersService.lambdaUpdate().eq(UrgencyOrders::getOrderId, orderId).remove(); + + //发消息给用户提示订单已被拒绝 + UserMessage userMessage = new UserMessage(); + Long userId = orders.getUserId(); + userMessage.setUserId(userId); + userMessage.setOrderId(orderId); + userMessage.setOrderMessage("您的订单已被拒绝"); + userMessage.setRefuseReason(refuseReason); + //保存到数据库 + userMessageService.save(userMessage); + + return ApiResult.success("已拒绝该订单"); + } + + +} \ No newline at end of file diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/ReturnGoodsServiceImpl.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/ReturnGoodsServiceImpl.java new file mode 100644 index 0000000..c5cb994 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/ReturnGoodsServiceImpl.java @@ -0,0 +1,231 @@ +package com.lkx.farmershop.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +import com.lkx.farmershop.common.api.ApiResult; +import com.lkx.farmershop.common.context.BaseContext; +import com.lkx.farmershop.constants.SystemConstants; +import com.lkx.farmershop.model.dto.ReturnGoodsDTO; +import com.lkx.farmershop.model.entity.*; +import com.lkx.farmershop.mapper.ReturnGoodsMapper; +import com.lkx.farmershop.model.vo.FReturnGoodsVO; +import com.lkx.farmershop.service.IReturnGoodsService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.lkx.farmershop.service.IReturnVoucherService; +import com.lkx.farmershop.service.OrdersService; +import com.lkx.farmershop.service.UrgencyOrdersService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.stream.Collectors; + +/** + *

+ * 退货表 服务实现类 + *

+ * + * @author lwc + * @since 2024-04-05 + */ +@Service +public class ReturnGoodsServiceImpl extends ServiceImpl implements IReturnGoodsService { + + @Autowired + private IReturnVoucherService returnVoucherService; + + @Autowired + private OrdersService ordersService; + @Autowired + private UrgencyOrdersService urgencyOrdersService; + + /** + * 添加退货商品 + * + * @param returnGoodsDTO 退货商品表DTO + * @return ApiResult + */ + @Override + @Transactional + public ApiResult addReturnGoods(ReturnGoodsDTO returnGoodsDTO) { + + // 将退货商品表DTO数据拷贝到退货表 + ReturnGoods returnGoods = BeanUtil.copyProperties(returnGoodsDTO.getReturnGoods(), ReturnGoods.class); + + // 获取id集合 + List idList = returnGoodsDTO.getIdList(); + if(idList.size() == 1){ + // 只有一件商品,直接插入 + returnGoods.setGoodsId(idList.get(0).toString()); + } else { + // 有多件商品 + StringBuilder s = new StringBuilder(idList.get(0).toString()); + for (int i = 1; i < idList.size(); i++) { + s.append(",").append(idList.get(i)); + } + returnGoods.setGoodsId(s.toString()); + } + + // 根据订单编号获取订单 + Orders orders = ordersService.lambdaQuery() + .eq(Orders::getOrderNum, returnGoodsDTO.getReturnGoods().getOrderNum()) + .one(); + + // 设置农户id + returnGoods.setFarmerId(orders.getFarmerId()); + // 设置用户id + returnGoods.setUserId(orders.getUserId()); + + // 设置退款状态 0:退款中 + returnGoods.setRefundStatus(SystemConstants.REFUNDING); + // 设置退款时间 + returnGoods.setRtnTime(LocalDateTime.now()); + // 添加入数据库 + save(returnGoods); + + // 获取退货表id + Long id = returnGoods.getId(); + // 获取凭证集合 + List voucherList = returnGoodsDTO.getVoucherList(); + // 凭证集合不为空 + if (CollUtil.isNotEmpty(voucherList)) { + // 遍历 + List returnVoucherList = voucherList.stream().map(voucher -> { + // 创建退货凭证实体 + ReturnVoucher returnVoucher = new ReturnVoucher(); + // 设置退货表id + returnVoucher.setRtnGoodsId(id); + // 设置退货凭证 + returnVoucher.setVoucher(voucher); + // 返回 + return returnVoucher; + }).collect(Collectors.toList()); + + // 添加到数据库 + returnVoucherService.saveBatch(returnVoucherList); + } + + return ApiResult.success("退货申请成功!"); + } + + /** + * 退款成功 + * @param rtnGoodsId 退货表id + * @return ApiResult + */ + @Override + @Transactional + public ApiResult refundSuccess(Long rtnGoodsId) { + + if (rtnGoodsId == null) { + // 集合为空 + return ApiResult.failed("退货商品为空!"); + } + + // 设置退款状态 1:退款成功 + updateRefundStatus(rtnGoodsId, SystemConstants.REFUND_SUCCESS); + + // 获取订单编号 + String orderNum = lambdaQuery().eq(ReturnGoods::getId, rtnGoodsId).one().getOrderNum(); + // 根据订单编号获取订单状态 + Integer orderStatus = ordersService.lambdaQuery() + .eq(Orders::getOrderNum, orderNum).one().getOrderStatus(); + // 如果订单状态为待收货,则直接完成 + if(orderStatus == 2){ + // 根据订单编号更新订单表 + ordersService.lambdaUpdate() + .eq(Orders::getOrderNum, orderNum) + .set(Orders::getOrderStatus, SystemConstants.COMPLETED) // 4.已完成 + .update(); + } + + //若该订单是紧急订单,则从紧急订单表删除该订单 + Long orderId = ordersService.lambdaQuery().eq(Orders::getOrderNum, orderNum).one().getId(); + urgencyOrdersService.lambdaUpdate().eq(UrgencyOrders::getOrderId, orderId).remove(); + + return ApiResult.success("退款成功!"); + } + + /** + * 商家拒绝退款 + * @param rtnGoodsId 退货表id + * @return ApiResult + */ + @Override + public ApiResult refuseRefund(Long rtnGoodsId) { + + if (rtnGoodsId == null) { + // 集合为空 + return ApiResult.failed("退货商品为空!"); + } + + // 设置退款状态 2:拒绝退款 + updateRefundStatus(rtnGoodsId, SystemConstants.REFUSEREFUND); + + return ApiResult.success("商家拒绝退款!"); + } + + /** + * 农户分页查询退货商品 + * @param pageNum 当前页码 + * @param pageSize 每页显示数 + * @return ApiResult> + */ + @Override + public ApiResult> queryReturnGoods(Integer pageNum, Integer pageSize) { + // 构建分页构造器 + //Page returnGoodsPage + // 获取农户id + Long farmerId = BaseContext.getCurrentId(); + + // 根据农户id获取退货商品集合 + List returnGoodsList = lambdaQuery().eq(ReturnGoods::getFarmerId, farmerId).list(); + + + // 遍历退货商品集合 + for (ReturnGoods returnGoods : returnGoodsList) { + + } + + return null; + } + + /** + * 再次申请退货 + * @param rtnGoodsId 退货表id + * @return ApiResult + */ + @Override + public ApiResult rtnAgain(Long rtnGoodsId) { + + if(rtnGoodsId == null){ + return ApiResult.failed("商品信息为空!"); + } + + // 修改相关字段 + lambdaUpdate() + .eq(ReturnGoods::getId, rtnGoodsId) + .set(ReturnGoods::getRefundStatus, 0) + .set(ReturnGoods::getRtnTime, LocalDateTime.now()) + .update(); + + return ApiResult.success("申请成功!"); + } + + /** + * 设置退款状态 + * @param rtnGoodsId 退货表id + * @param refundStatus 退款状态 + */ + private void updateRefundStatus(Long rtnGoodsId, Integer refundStatus) { + lambdaUpdate() + .eq(ReturnGoods::getId, rtnGoodsId) + .set(ReturnGoods::getRefundStatus, refundStatus) // 1:退款成功 2:拒绝退款 + .update(); + } +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/ReturnVoucherServiceImpl.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/ReturnVoucherServiceImpl.java new file mode 100644 index 0000000..446ba37 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/ReturnVoucherServiceImpl.java @@ -0,0 +1,20 @@ +package com.lkx.farmershop.service.impl; + +import com.lkx.farmershop.model.entity.ReturnVoucher; +import com.lkx.farmershop.mapper.ReturnVoucherMapper; +import com.lkx.farmershop.service.IReturnVoucherService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author lwc + * @since 2024-04-05 + */ +@Service +public class ReturnVoucherServiceImpl extends ServiceImpl implements IReturnVoucherService { + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/ShoppingCartServiceImpl.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/ShoppingCartServiceImpl.java new file mode 100644 index 0000000..0cbb345 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/ShoppingCartServiceImpl.java @@ -0,0 +1,178 @@ +package com.lkx.farmershop.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.lkx.farmershop.common.api.ApiResult; +import com.lkx.farmershop.common.context.BaseContext; +import com.lkx.farmershop.mapper.ShoppingCartMapper; +import com.lkx.farmershop.model.dto.CartGoodsDto; +import com.lkx.farmershop.model.entity.*; +import com.lkx.farmershop.model.vo.CartGoodsVo; +import com.lkx.farmershop.model.vo.ShoppingCartVo; +import com.lkx.farmershop.service.IFarmerGoodsService; +import com.lkx.farmershop.service.IFarmerService; +import com.lkx.farmershop.service.IGoodsService; +import com.lkx.farmershop.service.ShoppingCartService; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.ObjectUtils; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * (ShoppingCart)表服务实现类 + * + * @author makejava + * @since 2024-03-21 22:44:16 + */ +@Service +public class ShoppingCartServiceImpl extends ServiceImpl implements ShoppingCartService { + + @Autowired + private IGoodsService goodsService; + @Autowired + private IFarmerGoodsService farmerGoodsService; + @Autowired + private IFarmerService farmerService; + + + @Override + public ApiResult> queryCart() { + List shoppingCartVos=new ArrayList<>(); + Long userId = BaseContext.getCurrentId(); + + if (ObjectUtils.isEmpty(userId)) { + return ApiResult.failed("请先登录!"); + } + + //获取该用户的购物车信息 + List shoppingCartList = lambdaQuery() + .eq(ShoppingCart::getUserId, userId).list(); + + if(shoppingCartList == null){ + return ApiResult.success(shoppingCartVos); + } + + //去重,来自同一卖家的信息 + Set shoppingCartSet = new TreeSet<>((o1, o2) -> { + Long farmerId1 = farmerGoodsService.lambdaQuery() + .eq(FarmerGoods::getGoodsId, o1.getGoodsId()) + .one().getFarmerId(); + Long farmerId2 = farmerGoodsService.lambdaQuery() + .eq(FarmerGoods::getGoodsId, o2.getGoodsId()) + .one().getFarmerId(); + + return farmerId1.compareTo(farmerId2); + }); + shoppingCartSet.addAll(shoppingCartList); + + + //添加除了商品信息外的信息 + for (ShoppingCart shoppingCart : shoppingCartSet) { + ShoppingCartVo shoppingCartVo = new ShoppingCartVo(); + Long farmerId = farmerGoodsService.lambdaQuery() + .eq(FarmerGoods::getGoodsId, shoppingCart.getGoodsId()) + .one().getFarmerId(); + Farmer farmer = farmerService.getById(farmerId); + + shoppingCartVo.setFarmerId(farmerId); + shoppingCartVo.setFarmerName(farmer.getName()); + shoppingCartVos.add(shoppingCartVo); + } + + //获取商品信息 + for (ShoppingCartVo shoppingCartVo : shoppingCartVos) { + Long farmerId = shoppingCartVo.getFarmerId(); + //从此用户购车中获取跟此卖家id相同的商品 + for (ShoppingCart shoppingCart : shoppingCartList) { + Long goodsId = shoppingCart.getGoodsId(); + Long farmerId1 = farmerGoodsService.lambdaQuery() + .eq(FarmerGoods::getGoodsId, goodsId) + .one().getFarmerId(); + + //将商品添加到同一个商家的商品集合 + if(farmerId.equals(farmerId1)){ + List cartGoodsVoList = shoppingCartVo.getCartGoodsVoList(); + if (cartGoodsVoList == null) { + cartGoodsVoList = new ArrayList<>(); + } + Goods goods = goodsService.lambdaQuery().eq(Goods::getGoodsId, goodsId).one(); + CartGoodsVo cartGoodsVo = new CartGoodsVo(); + BeanUtils.copyProperties(goods, cartGoodsVo); + cartGoodsVo.setGoodsCount(shoppingCart.getGoodsCount()); + cartGoodsVoList.add(cartGoodsVo); + shoppingCartVo.setCartGoodsVoList(cartGoodsVoList); + } + } + } + + return ApiResult.success(shoppingCartVos); + } + + @Override + public ApiResult addCart(CartGoodsDto cartGoodsDto) { + Long userId = BaseContext.getCurrentId(); + //用户id + if (ObjectUtils.isEmpty(userId)) { + return ApiResult.failed("请先登录!"); + } + Long goodsId = cartGoodsDto.getGoodsId(); + + //检查此用户购物车中是否已存在此商品 + ShoppingCart one = lambdaQuery().eq(ShoppingCart::getUserId, userId) + .eq(ShoppingCart::getGoodsId, goodsId) + .one(); + + //如果已存在,则数量直接增加相应个数,然后返回结果 + if (one != null) { + one.setGoodsCount(one.getGoodsCount() + cartGoodsDto.getGoodsCount()); + updateById(one); + return ApiResult.success("已添加到购物车!"); + } + + //将商品id添加到购物车信息 + ShoppingCart shoppingCart = new ShoppingCart(); + shoppingCart.setGoodsId(goodsId); + + //补全购物车信息 + //加入的某个商品的数量 + shoppingCart.setGoodsCount(cartGoodsDto.getGoodsCount()); + //用户id + shoppingCart.setUserId(userId); + + //添加到数据库 + save(shoppingCart); + return ApiResult.success("已添加到购物车!"); + } + + @Override + public ApiResult deleteCart(Long goodsId) { + Long userId = BaseContext.getCurrentId(); + if (ObjectUtils.isEmpty(userId)) { + return ApiResult.failed("请先登录!"); + } + //获取商品 + ShoppingCart one = lambdaQuery().eq(ShoppingCart::getUserId, userId).eq(ShoppingCart::getGoodsId, goodsId).one(); + removeById(one); + + return ApiResult.success("已将商品移出购物车!"); + } + + @Override + public ApiResult updateCart(CartGoodsDto cartGoodsDto) { + Long goodsId = cartGoodsDto.getGoodsId(); + Long userId = BaseContext.getCurrentId(); + if (ObjectUtils.isEmpty(userId)) { + return ApiResult.failed("请先登录!"); + } + //更新购物车中此商品的数量 + lambdaUpdate().eq(ShoppingCart::getGoodsId, goodsId) + .eq(ShoppingCart::getUserId, userId) + .set(ShoppingCart::getGoodsCount, cartGoodsDto.getGoodsCount()) + .update(); + + return ApiResult.success("购物车更新成功!"); + } +} + diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/SwiperServiceImpl.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/SwiperServiceImpl.java new file mode 100644 index 0000000..3b7b99b --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/SwiperServiceImpl.java @@ -0,0 +1,20 @@ +package com.lkx.farmershop.service.impl; + +import com.lkx.farmershop.model.entity.Swiper; +import com.lkx.farmershop.mapper.SwiperMapper; +import com.lkx.farmershop.service.ISwiperService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author lkx + * @since 2024-02-06 + */ +@Service +public class SwiperServiceImpl extends ServiceImpl implements ISwiperService { + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/UrgencyOrdersServiceImpl.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/UrgencyOrdersServiceImpl.java new file mode 100644 index 0000000..950f97a --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/UrgencyOrdersServiceImpl.java @@ -0,0 +1,19 @@ +package com.lkx.farmershop.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.lkx.farmershop.mapper.UrgencyOrdersMapper; +import com.lkx.farmershop.model.entity.UrgencyOrders; +import com.lkx.farmershop.service.UrgencyOrdersService; +import org.springframework.stereotype.Service; + +/** + * (UrgencyOrders)表服务实现类 + * + * @author makejava + * @since 2024-04-08 13:51:47 + */ +@Service("urgencyOrdersService") +public class UrgencyOrdersServiceImpl extends ServiceImpl implements UrgencyOrdersService { + +} + diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/UserMessageServiceImpl.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/UserMessageServiceImpl.java new file mode 100644 index 0000000..84fbdf1 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/UserMessageServiceImpl.java @@ -0,0 +1,110 @@ +package com.lkx.farmershop.service.impl; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.lkx.farmershop.common.api.ApiResult; +import com.lkx.farmershop.common.context.BaseContext; +import com.lkx.farmershop.mapper.UserMessageMapper; +import com.lkx.farmershop.model.entity.Farmer; +import com.lkx.farmershop.model.entity.Orders; +import com.lkx.farmershop.model.entity.OrdersGoods; +import com.lkx.farmershop.model.entity.UserMessage; +import com.lkx.farmershop.model.vo.CartGoodsVo; +import com.lkx.farmershop.model.vo.OrderMessageVo; +import com.lkx.farmershop.service.*; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * (UserMessage)表服务实现类 + * + * @author makejava + * @since 2024-04-08 13:27:47 + */ +@Service("userMessageService") +public class UserMessageServiceImpl extends ServiceImpl implements UserMessageService { + + @Autowired + private OrdersGoodsService ordersGoodsService; + @Autowired + private OrdersService ordersService; + @Autowired + private IGoodsService goodsService; + @Autowired + private IFarmerService farmerService; + + + @Override + public ApiResult> getMessage(int page, int pageSize) { + Page pageInfo = new Page<>(page, pageSize); + Page pageInfo1 = new Page<>(page, pageSize); + //获取当前用户id + Long userId = BaseContext.getCurrentId(); + //获取该用户的消息 + pageInfo1= lambdaQuery().eq(UserMessage::getUserId, userId).page(pageInfo1); + List messageList = pageInfo1.getRecords(); + if(messageList==null){ + return ApiResult.success(pageInfo); + } + + //给返回值赋值 + List orderMessageVoList = messageList.stream().map(message -> { + OrderMessageVo orderMessageVo = new OrderMessageVo(); + BeanUtils.copyProperties(message, orderMessageVo); + + //获取订单id + Long orderId = message.getOrderId(); + Orders orders = ordersService.getById(orderId); + + //获取农户名称 + String name = farmerService.lambdaQuery().eq(Farmer::getFarmerId, orders.getFarmerId()).one().getName(); + orderMessageVo.setFarmerName(name); + + //获取订单的商品数据 + List orderGoodsList = ordersGoodsService.lambdaQuery().eq(OrdersGoods::getOrderNum, orders.getOrderNum()) + .orderByDesc(OrdersGoods::getOrderNum).list(); + //给商品数据赋值 + List cartGoodsVoList = orderGoodsList.stream().map(ordersGoods -> { + CartGoodsVo cartGoodsVo = new CartGoodsVo(); + Long goodsId = ordersGoods.getGoodsId(); + Integer goodsCount = ordersGoods.getGoodsCount(); + + cartGoodsVo.setGoodsCount(goodsCount); + BeanUtils.copyProperties(goodsService.getById(goodsId), cartGoodsVo); + return cartGoodsVo; + }).collect(Collectors.toList()); + + orderMessageVo.setCartGoodsVoList(cartGoodsVoList); + return orderMessageVo; + }).collect(Collectors.toList()); + + pageInfo.setRecords(orderMessageVoList); + pageInfo.setTotal(pageInfo1.getTotal()); + + return ApiResult.success(pageInfo); + } + + @Override + public ApiResult alreadyRead(Long messageId) { + //获取此消息 + UserMessage message = getById(messageId); + //设置为已读 + message.setIsRead(0); + //保存修改到数据库 + updateById(message); + + return ApiResult.success("已设置为已读消息!"); + } + + @Override + public ApiResult getMessageTotal() { + Long id = BaseContext.getCurrentId(); + Integer count = lambdaQuery().eq(UserMessage::getUserId, id).eq(UserMessage::getIsRead,1).count(); + return ApiResult.success(count); + } +} + diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/UserServiceImpl.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/UserServiceImpl.java new file mode 100644 index 0000000..833a3cc --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/service/impl/UserServiceImpl.java @@ -0,0 +1,90 @@ +package com.lkx.farmershop.service.impl; + +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.lkx.farmershop.common.exception.ApiException; +import com.lkx.farmershop.model.dto.UserLoginDTO; +import com.lkx.farmershop.model.entity.User; +import com.lkx.farmershop.mapper.UserMapper; +import com.lkx.farmershop.service.IUserService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; +import org.springframework.web.client.RestTemplate; + +import java.time.LocalDateTime; +import java.util.HashMap; +import java.util.Map; + +/** + *

+ * 用户表 服务实现类 + *

+ * + * @author lwc + * @since 2024-03-21 + */ +@Service +@Slf4j +public class UserServiceImpl extends ServiceImpl implements IUserService { + + @Autowired + private RestTemplate restTemplate; + + //微信服务接口地址 + public static final String WX_LOGIN = "https://api.weixin.qq.com/sns/jscode2session"; + + private static final String APPID = "wx626e42ba6c2e97ca"; //APPID + private static final String SECRET = "2f521063a5452e663fc719bf39189f2b"; //SECRET + + + /** + * 用户微信登录 + * + * @param userLoginDTO + * @return + */ + @Override + public User wxlogin(UserLoginDTO userLoginDTO) { + String openid = getOpenid(userLoginDTO); + //判断openid是否为空,为空表示登录失败,抛出业务异常 + if (StrUtil.isEmpty(openid)) { + throw new ApiException("登录失败!"); + } + //判断当前用户是否为新用户 + User user = lambdaQuery().eq(User::getOpenid, openid).one(); + //如果是新用户,自动完成注册 + if (user == null) { + user = User.builder() + .openid(openid) + .createTime(LocalDateTime.now()) + .build(); + save(user); + } + //返回这个用户对象 + return user; + } + + //调用微信接口服务,获得当前微信用户的openid + private String getOpenid(UserLoginDTO userLoginDTO) { + Map paramMap = new HashMap<>(); + paramMap.put("appid", APPID); + paramMap.put("secret", SECRET); + paramMap.put("js_code", userLoginDTO.getCode()); + paramMap.put("grant_type", "authorization_code"); + ResponseEntity responseEntity = restTemplate.getForEntity + (WX_LOGIN + "?grant_type={grant_type}&appid={appid}&js_code={js_code}&secret={secret}" + , String.class + , paramMap); + String s = responseEntity.getBody(); + log.info(s); + //String s = HttpClientUtil.doGet(WX_LOGIN, paramMap); + //解析返回的JSON字符串 + JSONObject jsonObject = JSON.parseObject(s); + log.info("openid: {}", jsonObject.getString("openid")); + return jsonObject.getString("openid"); + } +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/task/ActivityGoodsTask.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/task/ActivityGoodsTask.java new file mode 100644 index 0000000..21cd23c --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/task/ActivityGoodsTask.java @@ -0,0 +1,33 @@ +package com.lkx.farmershop.task; + +import com.lkx.farmershop.model.entity.ActivityGoods; +import com.lkx.farmershop.service.ActivityGoodsService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.time.LocalDateTime; + +/** + * 管理活动商品 + */ +@Component +public class ActivityGoodsTask { + + @Autowired + private ActivityGoodsService activityGoodsService; + + /** + * 每天0点检查一次,删除在商品活动表中超过7天的商品(用更新时间来判断) + */ + @Scheduled(cron = "0 0 0 * * ?") + public void handleActivityGoods(){ + activityGoodsService.lambdaUpdate() + .lt(ActivityGoods::getUpdateTime, LocalDateTime.now().minusDays(7)) + .remove(); + } + + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/task/AutoCommentsTask.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/task/AutoCommentsTask.java new file mode 100644 index 0000000..227f065 --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/task/AutoCommentsTask.java @@ -0,0 +1,83 @@ +package com.lkx.farmershop.task; + +import com.lkx.farmershop.constants.SystemConstants; +import com.lkx.farmershop.model.entity.Comments; +import com.lkx.farmershop.model.entity.Goods; +import com.lkx.farmershop.model.entity.Orders; +import com.lkx.farmershop.model.entity.OrdersGoods; +import com.lkx.farmershop.service.CommentsService; +import com.lkx.farmershop.service.IGoodsService; +import com.lkx.farmershop.service.OrdersGoodsService; +import com.lkx.farmershop.service.OrdersService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.time.LocalDateTime; +import java.util.List; + +/** + * 超过时间未给商品评价,将自动评价 + */ +@Component +public class AutoCommentsTask { + + @Autowired + private OrdersService ordersService; + @Autowired + private CommentsService commentsService; + @Autowired + private OrdersGoodsService ordersGoodsService; + @Autowired + private IGoodsService goodsService; + + /** + * 每天0点检查,超七天未评价的订单将自动打满分评价 + */ + @Scheduled(cron = "0 0 0 * * ?") + public void handleAutoComments(){ + //查询超七天未评价的订单 + List ordersList = ordersService.lambdaQuery().eq(Orders::getOrderStatus, SystemConstants.WAIT_COMMENTS) + .lt(Orders::getReceiveTime, LocalDateTime.now().minusDays(7)).list(); + + ordersList.forEach(orders -> { + Long userId = orders.getUserId(); + //把订单状态变为已完成 + orders.setOrderStatus(SystemConstants.COMPLETED); + ordersService.updateById(orders); + //获取该订单的商品 + String orderNum = orders.getOrderNum(); + List ordersGoodsList = ordersGoodsService.lambdaQuery() + .eq(OrdersGoods::getOrderNum, orderNum).list(); + + ordersGoodsList.forEach(ordersGoods -> { + Long goodsId = ordersGoods.getGoodsId(); + //在评论表中添加这些商品的评分 + Comments comments = Comments.builder().userId(userId) + .goodsId(goodsId).commentScore(new BigDecimal("5.0")) + .commentContent("该用户没有做出评价").build(); + commentsService.save(comments); + + //把评分平均到商品评分 + Goods goods = goodsService.getById(goodsId); + BigDecimal score = goods.getScore(); + BigDecimal add = score.add(new BigDecimal("5.0")); + BigDecimal divide = add.divide(new BigDecimal("2.0"), RoundingMode.HALF_UP); + goods.setScore(divide); + //将修改保存到数据库 + goodsService.updateById(goods); + + }); + + + + }); + + + } + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/utils/MD5Utils.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/utils/MD5Utils.java new file mode 100644 index 0000000..f19745e --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/utils/MD5Utils.java @@ -0,0 +1,56 @@ +package com.lkx.farmershop.utils; + + +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; + + +public class MD5Utils { + + public static String getPwd(String pwd) { + try { + // 创建加密对象 + MessageDigest digest = MessageDigest.getInstance("md5"); + + // 调用加密对象的方法,加密的动作已经完成 + byte[] bs = digest.digest(pwd.getBytes()); + // 接下来,我们要对加密后的结果,进行优化,按照mysql的优化思路走 + // mysql的优化思路: + // 第一步,将数据全部转换成正数: + String hexString = ""; + for (byte b : bs) { + // 第一步,将数据全部转换成正数: + // 解释:为什么采用b&255 + /* + * b:它本来是一个byte类型的数据(1个字节) 255:是一个int类型的数据(4个字节) + * byte类型的数据与int类型的数据进行运算,会自动类型提升为int类型 eg: b: 1001 1100(原始数据) + * 运算时: b: 0000 0000 0000 0000 0000 0000 1001 1100 255: 0000 + * 0000 0000 0000 0000 0000 1111 1111 结果:0000 0000 0000 0000 + * 0000 0000 1001 1100 此时的temp是一个int类型的整数 + */ + int temp = b & 255; + // 第二步,将所有的数据转换成16进制的形式 + // 注意:转换的时候注意if正数>=0&&<16,那么如果使用Integer.toHexString(),可能会造成缺少位数 + // 因此,需要对temp进行判断 + if (temp < 16 && temp >= 0) { + // 手动补上一个“0” + hexString = hexString + "0" + Integer.toHexString(temp); + } else { + hexString = hexString + Integer.toHexString(temp); + } + } + return hexString; + } catch (NoSuchAlgorithmException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return ""; + } + + +// public static void main(String[] args) { +// String pwd = MD5Utils.getPwd("234"); +// System.out.println(pwd); +// } + +} diff --git a/doubao_community_backend-master/src/main/java/com/lkx/farmershop/utils/ValidateCodeUtils.java b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/utils/ValidateCodeUtils.java new file mode 100644 index 0000000..0b75f1c --- /dev/null +++ b/doubao_community_backend-master/src/main/java/com/lkx/farmershop/utils/ValidateCodeUtils.java @@ -0,0 +1,43 @@ +package com.lkx.farmershop.utils; + +import java.util.Random; + +/** + * 随机生成验证码工具类 + */ +public class ValidateCodeUtils { + /** + * 随机生成验证码 + * @param length 长度为4位或者6位 + * @return + */ + public static Integer generateValidateCode(int length){ + Integer code =null; + if(length == 4){ + code = new Random().nextInt(9999);//生成随机数,最大为9999 + if(code < 1000){ + code = code + 1000;//保证随机数为4位数字 + } + }else if(length == 6){ + code = new Random().nextInt(999999);//生成随机数,最大为999999 + if(code < 100000){ + code = code + 100000;//保证随机数为6位数字 + } + }else{ + throw new RuntimeException("只能生成4位或6位数字验证码"); + } + return code; + } + + /** + * 随机生成指定长度字符串验证码 + * @param length 长度 + * @return + */ + public static String generateValidateCode4String(int length){ + Random rdm = new Random(); + String hash1 = Integer.toHexString(rdm.nextInt()); + String capstr = hash1.substring(0, length); + return capstr; + } +} diff --git a/doubao_community_backend-master/src/main/resources/application-dev.yaml b/doubao_community_backend-master/src/main/resources/application-dev.yaml new file mode 100644 index 0000000..d73a885 --- /dev/null +++ b/doubao_community_backend-master/src/main/resources/application-dev.yaml @@ -0,0 +1,78 @@ + +server: + port: 8000 + + + +spring: + jackson: + date-format: yyyy-MM-dd HH:mm:ss + time-zone: Asia/Shanghai + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + username: root + password: Li1587264828. + url: jdbc:mysql://8.130.70.43:3306/farmer_friend?useUnicode=true&characterEncoding=utf8&autoReconnect=true&serverTimezone=GMT%2B8 + type: com.zaxxer.hikari.HikariDataSource + redis: + host: 47.113.194.250 + port: 6379 + AUTH: root + lettuce: + pool: + max-active: 10 + max-idle: 10 + min-idle: 1 + time-between-eviction-runs: 10s + database: 2 + servlet: + multipart: + max-file-size: 500MB + max-request-size: 500MB + hikari: + maximum-pool-size: 20 + max-lifetime: 120000 # 将 maxLifetime 设置为 30 分钟 + rabbitmq: + host: 192.168.101.101 # 你的虚拟机IP + port: 5672 # 端口 + virtual-host: /model # 虚拟主机 + username: model # 用户名 + password: 1234 # 密码 + +mybatis-plus: + configuration: + #在映射实体或者属性时,将数据库中表名和字段名中的下划线去掉,按照驼峰命名法映射 + #数据库中:address_book--->实体类中:AddressBook + map-underscore-to-camel-case: true + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl + global-config: + db-config: + id-type: auto +mybatis: + configuration: + use-generated-keys: true + map-underscore-to-camel-case: true + + + +logging: + level: + root: info + com.douyuehan.doubao: debug + +alioss: + endpoint: oss-cn-shenzhen.aliyuncs.com + accessKeyId: LTAI5tLp46kiDpecHUjTiPjk + accessKeySecret: DWt3yzHUa3xbq9Y9EQou3DJx7KQDlQ + bucketName: child-start + +user: + jwt: + # 用户端 + # 设置jwt签名加密时使用的秘钥 + user-secret-key: user + # 设置jwt过期时间 + user-ttl: 7200000 + # 设置前端传递过来的令牌名称 + user-token-name: Authorization + diff --git a/doubao_community_backend-master/src/main/resources/application-prod.yaml b/doubao_community_backend-master/src/main/resources/application-prod.yaml new file mode 100644 index 0000000..82e326c --- /dev/null +++ b/doubao_community_backend-master/src/main/resources/application-prod.yaml @@ -0,0 +1,20 @@ +server: + port: 8088 + +web: + domain: http://localhost + +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + username: root + password: Li1587264828. + url: jdbc:mysql://8.130.70.43:3306/doubao?useUnicode=true&characterEncoding=utf8&autoReconnect=true&serverTimezone=GMT%2B8 + type: com.zaxxer.hikari.HikariDataSource + +logging: + level: + root: info + com.douyuehan.doubao: info + + diff --git a/doubao_community_backend-master/src/main/resources/application.yaml b/doubao_community_backend-master/src/main/resources/application.yaml new file mode 100644 index 0000000..caf4dfc --- /dev/null +++ b/doubao_community_backend-master/src/main/resources/application.yaml @@ -0,0 +1,3 @@ +spring: + profiles: + active: dev \ No newline at end of file diff --git a/doubao_community_backend-master/src/main/resources/mapper/ReturnGoodsMapper.xml b/doubao_community_backend-master/src/main/resources/mapper/ReturnGoodsMapper.xml new file mode 100644 index 0000000..a954387 --- /dev/null +++ b/doubao_community_backend-master/src/main/resources/mapper/ReturnGoodsMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/doubao_community_backend-master/src/main/resources/mapper/ReturnVoucherMapper.xml b/doubao_community_backend-master/src/main/resources/mapper/ReturnVoucherMapper.xml new file mode 100644 index 0000000..46d465f --- /dev/null +++ b/doubao_community_backend-master/src/main/resources/mapper/ReturnVoucherMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/doubao_community_backend-master/src/main/resources/mapper/UserMapper.xml b/doubao_community_backend-master/src/main/resources/mapper/UserMapper.xml new file mode 100644 index 0000000..e8270bd --- /dev/null +++ b/doubao_community_backend-master/src/main/resources/mapper/UserMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/doubao_community_backend-master/src/test/java/com/douyuehan/doubao/FarmerShopApplicationTests.java b/doubao_community_backend-master/src/test/java/com/douyuehan/doubao/FarmerShopApplicationTests.java new file mode 100644 index 0000000..a5ac403 --- /dev/null +++ b/doubao_community_backend-master/src/test/java/com/douyuehan/doubao/FarmerShopApplicationTests.java @@ -0,0 +1,68 @@ +package com.douyuehan.doubao; + +import com.lkx.farmershop.model.entity.Goods; +import com.lkx.farmershop.model.entity.ShoppingCart; +import org.junit.jupiter.api.Test; +import org.springframework.beans.BeanUtils; +import org.springframework.boot.test.context.SpringBootTest; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +@SpringBootTest +class FarmerShopApplicationTests { + + @Test + void contextLoads() { + String cpm = "111,222"; + String[] splits = cpm.split(","); + List idList = new ArrayList<>(); + for (String split : splits) { + idList.add(Long.valueOf(split)); + } + System.out.println(idList); + } + + @Test + void context() { + String a = "111,222"; + String[] splits = a.split(","); + for (String split : splits) { + System.out.println(split); + } + List idList = Arrays.stream(splits).map(split -> { + Long id = Long.valueOf(split); + return id; + }).collect(Collectors.toList()); + System.out.println(idList); + } + + @Test + void testDate(){ + LocalDateTime a = LocalDateTime.now(); + + } + + @Test + void testDouble(){ + BigDecimal a = new BigDecimal("4.7"); + BigDecimal b = new BigDecimal("0.1"); + System.out.println(a.subtract(b)); + } + + @Test + void testCopy(){ + Goods goods = new Goods(); + goods.builder().goodsId(1L).goodsLogo("afdfddf").goodsCategory("fdfd"); + ShoppingCart shoppingCart = new ShoppingCart(); + BeanUtils.copyProperties(goods, shoppingCart); + System.out.println(goods); + System.out.println(shoppingCart); + } + + +} diff --git a/doubao_community_backend-master/src/test/java/com/lkx/farmershop/FarmerShopApplicationTests.java b/doubao_community_backend-master/src/test/java/com/lkx/farmershop/FarmerShopApplicationTests.java new file mode 100644 index 0000000..ea0fda7 --- /dev/null +++ b/doubao_community_backend-master/src/test/java/com/lkx/farmershop/FarmerShopApplicationTests.java @@ -0,0 +1,107 @@ +package com.lkx.farmershop; + +import com.lkx.farmershop.model.entity.*; +import com.lkx.farmershop.service.*; +import org.junit.jupiter.api.Test; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@SpringBootTest +public class FarmerShopApplicationTests { + + @Autowired + private IGoodsService goodsService; + @Autowired + private IFarmerService farmerService; + @Autowired + private ActivityGoodsService activityGoodsService; + @Autowired + private IReturnGoodsService returnGoodsService; + @Autowired + private UserMessageService userMessageService; + + @Test + void testCopy(){ + Goods goods =Goods.builder().goodsId(1L).goodsLogo("afdfddf").goodsCategory("fdfd").build(); + Goods goods1 = Goods.builder().goodsPrice(new BigDecimal("21.36")).goodsName("百草味").build(); + List goodsList = new ArrayList<>(); + goodsList.add(goods); + goodsList.add(goods1); + + ShoppingCart shoppingCart = new ShoppingCart(); + ShoppingCart shoppingCart1 = new ShoppingCart(); + List shoppingCarts = new ArrayList<>(); + shoppingCarts.add(shoppingCart); + shoppingCarts.add(shoppingCart1); + + + BeanUtils.copyProperties(goodsList, shoppingCarts); + System.out.println(goodsList); + System.out.println(shoppingCarts); + + } + + @Test + void testDate(){ + activityGoodsService.removeById(767); + + } + + @Test + void testCurrentTimeMillis(){ + long currentTimeMillis = System.currentTimeMillis(); + System.out.println(currentTimeMillis); + System.out.println(LocalDateTime.now()); + System.out.println(new Date().getTime()); + } + + @Test + void testFarmer(){ + Farmer byId = farmerService.getById(1); + System.out.println(byId.toString()); + } + + + @Test + void testRemove(){ + activityGoodsService.lambdaUpdate().eq(ActivityGoods::getGoodsId, 1).set(ActivityGoods::getGoodsId, 3).update(); + } + + + @Test + void testcopy2(){ + Goods a = new Goods(); + Goods b = new Goods(); + a.setGoodsName("asd");; + b.setGoodsName("kkk"); + b.setGoodsId(2L); + + BeanUtils.copyProperties(b,a); + System.out.println(a); + } + + @Test + void testUpdate(){ + // 设置退款状态 1:退款成功 + ReturnGoods returnGoods = new ReturnGoods(); + returnGoods.setOrderNum("11712314262512"); + returnGoodsService.lambdaUpdate() + .eq(ReturnGoods::getOrderNum, returnGoods.getOrderNum()) + .eq(ReturnGoods::getGoodsId, 1) + .set(ReturnGoods::getRefundStatus, 1) // 1.退款成功 + .update(); + + + } + + + +}