From e19a91b81199eeeb78a68c6fb08d853a8fc65035 Mon Sep 17 00:00:00 2001 From: tuyp Date: Tue, 22 Jul 2025 10:13:54 +0800 Subject: [PATCH] start --- .gitignore | 1 + .idea/compiler.xml | 22 ++++++++++++++++++++++ .idea/encodings.xml | 7 +++++++ .idea/inspectionProfiles/Project_Default.xml | 41 +++++++++++++++++++++++++++++++++++++++++ .idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_3.xml | 13 +++++++++++++ .idea/libraries/Maven__ch_qos_logback_logback_core_1_2_3.xml | 13 +++++++++++++ .idea/libraries/Maven__com_alibaba_druid_1_1_22.xml | 13 +++++++++++++ .idea/libraries/Maven__com_alibaba_druid_spring_boot_starter_1_1_22.xml | 13 +++++++++++++ .idea/libraries/Maven__com_alibaba_fastjson_1_2_58.xml | 13 +++++++++++++ .idea/libraries/Maven__com_aliyun_aliyun_java_sdk_core_4_4_6.xml | 13 +++++++++++++ .idea/libraries/Maven__com_aliyun_aliyun_java_sdk_dysmsapi_1_1_0.xml | 13 +++++++++++++ .idea/libraries/Maven__com_aliyun_aliyun_java_sdk_kms_2_11_0.xml | 13 +++++++++++++ .idea/libraries/Maven__com_aliyun_aliyun_java_sdk_ram_3_1_0.xml | 13 +++++++++++++ .idea/libraries/Maven__com_aliyun_oss_aliyun_sdk_oss_3_15_0.xml | 13 +++++++++++++ .idea/libraries/Maven__com_amdelamar_jhash_2_0_0.xml | 13 +++++++++++++ .idea/libraries/Maven__com_auth0_java_jwt_3_10_3.xml | 13 +++++++++++++ .idea/libraries/Maven__com_baomidou_mybatis_plus_3_3_0.xml | 13 +++++++++++++ .idea/libraries/Maven__com_baomidou_mybatis_plus_annotation_3_3_2.xml | 13 +++++++++++++ .idea/libraries/Maven__com_baomidou_mybatis_plus_boot_starter_3_3_0.xml | 13 +++++++++++++ .idea/libraries/Maven__com_baomidou_mybatis_plus_core_3_3_2.xml | 13 +++++++++++++ .idea/libraries/Maven__com_baomidou_mybatis_plus_extension_3_3_2.xml | 13 +++++++++++++ .idea/libraries/Maven__com_baomidou_mybatis_plus_generator_3_3_2.xml | 13 +++++++++++++ .idea/libraries/Maven__com_fasterxml_classmate_1_5_1.xml | 13 +++++++++++++ .idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_11_4.xml | 13 +++++++++++++ .idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_11_4.xml | 13 +++++++++++++ .idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_11_4.xml | 13 +++++++++++++ .idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_11_4.xml | 13 +++++++++++++ .idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_11_4.xml | 13 +++++++++++++ .idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_11_4.xml | 13 +++++++++++++ .idea/libraries/Maven__com_github_jsqlparser_jsqlparser_3_1.xml | 13 +++++++++++++ .idea/libraries/Maven__com_google_code_gson_gson_2_8_6.xml | 13 +++++++++++++ .idea/libraries/Maven__com_google_guava_guava_20_0.xml | 13 +++++++++++++ .idea/libraries/Maven__com_itextpdf_itext_asian_5_2_0.xml | 13 +++++++++++++ .idea/libraries/Maven__com_itextpdf_itextpdf_5_4_1.xml | 13 +++++++++++++ .idea/libraries/Maven__com_qcloud_cos_api_5_6_8.xml | 13 +++++++++++++ .idea/libraries/Maven__com_qcloud_vod_api_2_1_2.xml | 13 +++++++++++++ .idea/libraries/Maven__com_squareup_okhttp_okhttp_2_5_0.xml | 13 +++++++++++++ .idea/libraries/Maven__com_squareup_okio_okio_1_12_0.xml | 13 +++++++++++++ .idea/libraries/Maven__com_tencentcloudapi_tencentcloud_sdk_java_3_1_64.xml | 13 +++++++++++++ .idea/libraries/Maven__com_zaxxer_HikariCP_3_4_5.xml | 13 +++++++++++++ .idea/libraries/Maven__commons_beanutils_commons_beanutils_1_8_0.xml | 13 +++++++++++++ .idea/libraries/Maven__commons_codec_commons_codec_1_15.xml | 13 +++++++++++++ .idea/libraries/Maven__commons_collections_commons_collections_3_2_1.xml | 13 +++++++++++++ .idea/libraries/Maven__commons_lang_commons_lang_2_5.xml | 13 +++++++++++++ .idea/libraries/Maven__commons_logging_commons_logging_1_2.xml | 13 +++++++++++++ .idea/libraries/Maven__io_springfox_springfox_core_2_9_2.xml | 13 +++++++++++++ .idea/libraries/Maven__io_springfox_springfox_schema_2_9_2.xml | 13 +++++++++++++ .idea/libraries/Maven__io_springfox_springfox_spi_2_9_2.xml | 13 +++++++++++++ .idea/libraries/Maven__io_springfox_springfox_spring_web_2_9_2.xml | 13 +++++++++++++ .idea/libraries/Maven__io_springfox_springfox_swagger2_2_9_2.xml | 13 +++++++++++++ .idea/libraries/Maven__io_springfox_springfox_swagger_common_2_9_2.xml | 13 +++++++++++++ .idea/libraries/Maven__io_springfox_springfox_swagger_ui_2_9_2.xml | 13 +++++++++++++ .idea/libraries/Maven__io_swagger_swagger_annotations_1_5_20.xml | 13 +++++++++++++ .idea/libraries/Maven__io_swagger_swagger_models_1_5_20.xml | 13 +++++++++++++ .idea/libraries/Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml | 13 +++++++++++++ .idea/libraries/Maven__javax_activation_javax_activation_api_1_2_0.xml | 13 +++++++++++++ .idea/libraries/Maven__javax_xml_bind_jaxb_api_2_3_1.xml | 13 +++++++++++++ .idea/libraries/Maven__joda_time_joda_time_2_9_9.xml | 13 +++++++++++++ .idea/libraries/Maven__log4j_log4j_1_2_17.xml | 13 +++++++++++++ .idea/libraries/Maven__mysql_mysql_connector_java_8_0_23.xml | 13 +++++++++++++ .idea/libraries/Maven__net_bytebuddy_byte_buddy_1_10_22.xml | 13 +++++++++++++ .idea/libraries/Maven__net_sf_ezmorph_ezmorph_1_0_6.xml | 13 +++++++++++++ .idea/libraries/Maven__net_sf_json_lib_json_lib_jdk15_2_4.xml | 13 +++++++++++++ .idea/libraries/Maven__org_apache_commons_commons_lang3_3_9.xml | 13 +++++++++++++ .idea/libraries/Maven__org_apache_httpcomponents_httpclient_4_5_13.xml | 13 +++++++++++++ .idea/libraries/Maven__org_apache_httpcomponents_httpcore_4_4_14.xml | 13 +++++++++++++ .idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_13_3.xml | 13 +++++++++++++ .idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_13_3.xml | 13 +++++++++++++ .idea/libraries/Maven__org_apache_poi_poi_3_13.xml | 13 +++++++++++++ .idea/libraries/Maven__org_apache_poi_poi_ooxml_3_13.xml | 13 +++++++++++++ .idea/libraries/Maven__org_apache_poi_poi_ooxml_schemas_3_13.xml | 13 +++++++++++++ .idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_45.xml | 13 +++++++++++++ .idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_45.xml | 13 +++++++++++++ .idea/libraries/Maven__org_apache_xmlbeans_xmlbeans_2_6_0.xml | 13 +++++++++++++ .idea/libraries/Maven__org_aspectj_aspectjweaver_1_9_6.xml | 13 +++++++++++++ .idea/libraries/Maven__org_bouncycastle_bcprov_jdk15on_1_59.xml | 13 +++++++++++++ .idea/libraries/Maven__org_codehaus_jettison_jettison_1_1.xml | 13 +++++++++++++ .idea/libraries/Maven__org_freemarker_freemarker_2_3_31.xml | 13 +++++++++++++ .idea/libraries/Maven__org_glassfish_jakarta_el_3_0_3.xml | 13 +++++++++++++ .idea/libraries/Maven__org_ini4j_ini4j_0_5_4.xml | 13 +++++++++++++ .idea/libraries/Maven__org_jacoco_org_jacoco_agent_runtime_0_8_3.xml | 13 +++++++++++++ .idea/libraries/Maven__org_jdom_jdom2_2_0_6.xml | 13 +++++++++++++ .idea/libraries/Maven__org_mapstruct_mapstruct_1_2_0_Final.xml | 13 +++++++++++++ .idea/libraries/Maven__org_mybatis_mybatis_3_5_4.xml | 13 +++++++++++++ .idea/libraries/Maven__org_mybatis_mybatis_spring_2_0_4.xml | 13 +++++++++++++ .idea/libraries/Maven__org_projectlombok_lombok_1_18_20.xml | 13 +++++++++++++ .idea/libraries/Maven__org_scilab_forge_jlatexmath_1_0_7.xml | 13 +++++++++++++ .idea/libraries/Maven__org_scilab_forge_jlatexmath_font_cyrillic_1_0_7.xml | 13 +++++++++++++ .idea/libraries/Maven__org_scilab_forge_jlatexmath_font_greek_1_0_7.xml | 13 +++++++++++++ .idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_30.xml | 13 +++++++++++++ .idea/libraries/Maven__org_slf4j_slf4j_api_1_7_30.xml | 13 +++++++++++++ .idea/libraries/Maven__org_slf4j_slf4j_log4j12_1_7_30.xml | 13 +++++++++++++ .idea/libraries/Maven__org_springframework_boot_spring_boot_2_4_5.xml | 13 +++++++++++++ .idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_4_5.xml | 13 +++++++++++++ .idea/libraries/Maven__org_springframework_boot_spring_boot_configuration_processor_2_4_5.xml | 13 +++++++++++++ .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_4_5.xml | 13 +++++++++++++ .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_aop_2_4_5.xml | 13 +++++++++++++ .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_4_5.xml | 13 +++++++++++++ .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_4_5.xml | 13 +++++++++++++ .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_4_5.xml | 13 +++++++++++++ .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_4_5.xml | 13 +++++++++++++ .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_4_5.xml | 13 +++++++++++++ .idea/libraries/Maven__org_springframework_plugin_spring_plugin_core_1_2_0_RELEASE.xml | 13 +++++++++++++ .idea/libraries/Maven__org_springframework_plugin_spring_plugin_metadata_1_2_0_RELEASE.xml | 13 +++++++++++++ .idea/libraries/Maven__org_springframework_spring_aop_5_3_6.xml | 13 +++++++++++++ .idea/libraries/Maven__org_springframework_spring_beans_5_3_6.xml | 13 +++++++++++++ .idea/libraries/Maven__org_springframework_spring_context_5_3_6.xml | 13 +++++++++++++ .idea/libraries/Maven__org_springframework_spring_core_5_3_6.xml | 13 +++++++++++++ .idea/libraries/Maven__org_springframework_spring_expression_5_3_6.xml | 13 +++++++++++++ .idea/libraries/Maven__org_springframework_spring_jcl_5_3_6.xml | 13 +++++++++++++ .idea/libraries/Maven__org_springframework_spring_jdbc_5_3_6.xml | 13 +++++++++++++ .idea/libraries/Maven__org_springframework_spring_tx_5_3_6.xml | 13 +++++++++++++ .idea/libraries/Maven__org_springframework_spring_web_5_3_6.xml | 13 +++++++++++++ .idea/libraries/Maven__org_springframework_spring_webmvc_5_3_6.xml | 13 +++++++++++++ .idea/libraries/Maven__org_yaml_snakeyaml_1_27.xml | 13 +++++++++++++ .idea/libraries/Maven__stax_stax_api_1_0_1.xml | 13 +++++++++++++ .idea/misc.xml | 11 +++++++++++ .idea/modules.xml | 8 ++++++++ .idea/uiDesigner.xml | 124 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .idea/vcs.xml | 6 ++++++ .idea/workspace.xml | 554 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ logs/springboot-logback-error.log | 1134 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ logs/springboot-logback-info.log | 34 ++++++++++++++++++++++++++++++++++ logs/springboot-logback/error/2022-09-20-0.log.gz | Bin 0 -> 669 bytes logs/springboot-logback/error/2022-09-22-0.log.gz | Bin 0 -> 723 bytes logs/springboot-logback/error/2022-10-08-0.log.gz | Bin 0 -> 550 bytes logs/springboot-logback/error/2023-06-23-0.log.gz | Bin 0 -> 581 bytes logs/springboot-logback/error/2023-06-26-0.log.gz | Bin 0 -> 202 bytes logs/springboot-logback/error/2023-06-28-0.log.gz | Bin 0 -> 252 bytes logs/springboot-logback/error/2023-06-29-0.log.gz | Bin 0 -> 1655 bytes logs/springboot-logback/error/2023-06-30-0.log.gz | Bin 0 -> 3780 bytes logs/springboot-logback/error/2023-07-14-0.log.gz | Bin 0 -> 332 bytes logs/springboot-logback/error/2023-07-17-0.log.gz | Bin 0 -> 674 bytes logs/springboot-logback/error/2023-07-18-0.log.gz | Bin 0 -> 939 bytes logs/springboot-logback/error/2023-07-20-0.log.gz | Bin 0 -> 3582 bytes logs/springboot-logback/info/2022-11-15-0.log.gz | Bin 0 -> 1020 bytes logs/springboot-logback/info/2023-07-03-0.log.gz | Bin 0 -> 1255 bytes logs/springboot-logback/info/2023-07-04-0.log.gz | Bin 0 -> 1954 bytes logs/springboot-logback/info/2023-07-10-0.log.gz | Bin 0 -> 824 bytes logs/springboot-logback/info/2023-07-11-0.log.gz | Bin 0 -> 1474 bytes logs/springboot-logback/info/2023-07-12-0.log.gz | Bin 0 -> 4166 bytes logs/springboot-logback/info/2023-07-13-0.log.gz | Bin 0 -> 1875 bytes logs/springboot-logback/info/2023-07-14-0.log.gz | Bin 0 -> 2255 bytes logs/springboot-logback/info/2023-07-17-0.log.gz | Bin 0 -> 2077 bytes logs/springboot-logback/info/2023-07-18-0.log.gz | Bin 0 -> 3544 bytes logs/springboot-logback/info/2023-07-19-0.log.gz | Bin 0 -> 10268 bytes logs/springboot-logback/info/2023-07-20-0.log.gz | Bin 0 -> 7057 bytes logs/springboot-logback/info/2023-07-21-0.log.gz | Bin 0 -> 4139 bytes logs/springboot-logback/info/2023-07-28-0.log.gz | Bin 0 -> 4808 bytes logs/springboot-logback/info/2023-08-01-0.log.gz | Bin 0 -> 10134 bytes mvnw | 310 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ mvnw.cmd | 182 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ pom.xml | 213 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/MeishuApplication.java | 38 ++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/common/ResponseData.java | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/common/ResponseVO.java | 21 +++++++++++++++++++++ src/main/java/com/meishu/common/configure/AliyunSmsProperties.java | 19 +++++++++++++++++++ src/main/java/com/meishu/common/configure/MybatisPlusConfig.java | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/common/configure/RemoteProperties.java | 36 ++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/common/configure/RestTemplateConfig.java | 31 +++++++++++++++++++++++++++++++ src/main/java/com/meishu/common/configure/SwaggerConfig.java | 31 +++++++++++++++++++++++++++++++ src/main/java/com/meishu/common/configure/VODConfig.java | 27 +++++++++++++++++++++++++++ src/main/java/com/meishu/common/configure/WebConfig.java | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/common/configure/WebLogAspect.java | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/common/configure/WechatConfig.java | 24 ++++++++++++++++++++++++ src/main/java/com/meishu/common/constant/Code.java | 33 +++++++++++++++++++++++++++++++++ src/main/java/com/meishu/common/constant/WxConstant.java | 35 +++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/common/exception/GlobalExceptionHandler.java | 118 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/common/exception/HttpException.java | 45 +++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/common/handler/MetaHandler.java | 26 ++++++++++++++++++++++++++ src/main/java/com/meishu/common/interceptor/AuthenticationInterceptor.java | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/common/interceptor/LoginRequired.java | 20 ++++++++++++++++++++ src/main/java/com/meishu/controller/AdministerController.java | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/controller/BatchDictController.java | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/controller/BatchExamController.java | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/controller/BatchExamStudentController.java | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/controller/BatchStudentMappingController.java | 40 ++++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/controller/ExerciseDictController.java | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/controller/ExerciseDoneHistoryController.java | 46 ++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/controller/LabelDictController.java | 38 ++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/controller/PaperDictController.java | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/controller/PaperExercisesController.java | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/controller/StudentController.java | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/dto/batch/AddBatchDTO.java | 16 ++++++++++++++++ src/main/java/com/meishu/dto/exam/ExamPaperDTO.java | 14 ++++++++++++++ src/main/java/com/meishu/dto/exercise/LabelExercisesDTO.java | 14 ++++++++++++++ src/main/java/com/meishu/dto/paper/AddPaperExerciseDTO.java | 14 ++++++++++++++ src/main/java/com/meishu/dto/paper/PaperStudentExerciseDTO.java | 15 +++++++++++++++ src/main/java/com/meishu/dto/paper/SubmitDTO.java | 18 ++++++++++++++++++ src/main/java/com/meishu/dto/student/LoginDTO.java | 12 ++++++++++++ src/main/java/com/meishu/dto/userrole/AccountLoginDTO.java | 11 +++++++++++ src/main/java/com/meishu/dto/userrole/QueryStudentsDTO.java | 20 ++++++++++++++++++++ src/main/java/com/meishu/mapper/AdministerMapper.java | 22 ++++++++++++++++++++++ src/main/java/com/meishu/mapper/BatchDictMapper.java | 18 ++++++++++++++++++ src/main/java/com/meishu/mapper/BatchExamMapper.java | 23 +++++++++++++++++++++++ src/main/java/com/meishu/mapper/BatchExamsStudentsMapper.java | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/mapper/BatchStudentMappingMapper.java | 25 +++++++++++++++++++++++++ src/main/java/com/meishu/mapper/ExerciseDictMapper.java | 28 ++++++++++++++++++++++++++++ src/main/java/com/meishu/mapper/ExerciseDoneHistoryMapper.java | 23 +++++++++++++++++++++++ src/main/java/com/meishu/mapper/LabelDictMapper.java | 18 ++++++++++++++++++ src/main/java/com/meishu/mapper/PaperDictMapper.java | 42 ++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/mapper/PaperExercisesMapper.java | 26 ++++++++++++++++++++++++++ src/main/java/com/meishu/mapper/StudentMapper.java | 23 +++++++++++++++++++++++ src/main/java/com/meishu/model/AdministerDO.java | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/model/BatchDictDO.java | 39 +++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/model/BatchExamDO.java | 40 ++++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/model/BatchExamStudentsDO.java | 35 +++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/model/BatchStudentMappingDO.java | 45 +++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/model/ExerciseDictDO.java | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/model/ExerciseDoneHistoryDO.java | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/model/LabelDictDO.java | 34 ++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/model/PaperDictDO.java | 33 +++++++++++++++++++++++++++++++++ src/main/java/com/meishu/model/PaperExercisesDO.java | 33 +++++++++++++++++++++++++++++++++ src/main/java/com/meishu/model/StudentDO.java | 47 +++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/service/AdministerService.java | 29 +++++++++++++++++++++++++++++ src/main/java/com/meishu/service/BatchDictService.java | 27 +++++++++++++++++++++++++++ src/main/java/com/meishu/service/BatchExamService.java | 32 ++++++++++++++++++++++++++++++++ src/main/java/com/meishu/service/BatchExamStudentsService.java | 26 ++++++++++++++++++++++++++ src/main/java/com/meishu/service/BatchStudentMappingService.java | 21 +++++++++++++++++++++ src/main/java/com/meishu/service/ExerciseDictService.java | 33 +++++++++++++++++++++++++++++++++ src/main/java/com/meishu/service/ExerciseDoneHistoryService.java | 23 +++++++++++++++++++++++ src/main/java/com/meishu/service/LabelDictService.java | 20 ++++++++++++++++++++ src/main/java/com/meishu/service/PaperDictService.java | 35 +++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/service/PaperExercisesService.java | 25 +++++++++++++++++++++++++ src/main/java/com/meishu/service/StudentService.java | 31 +++++++++++++++++++++++++++++++ src/main/java/com/meishu/service/impl/AdministerServiceImpl.java | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/service/impl/BatchDictServiceImpl.java | 162 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/service/impl/BatchExamServiceImpl.java | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/service/impl/BatchExamStudentsServiceImpl.java | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/service/impl/BatchStudentMappingServiceImpl.java | 28 ++++++++++++++++++++++++++++ src/main/java/com/meishu/service/impl/ExerciseDictServiceImpl.java | 246 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/service/impl/ExerciseDoneHistoryServiceImpl.java | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/service/impl/LabelDictServiceImpl.java | 26 ++++++++++++++++++++++++++ src/main/java/com/meishu/service/impl/PaperDictServiceImpl.java | 147 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/service/impl/PaperExercisesServiceImpl.java | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/service/impl/StudentServiceImpl.java | 136 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/util/BaseModel.java | 35 +++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/util/CodeGenerator.java | 124 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/util/ConstantUtils.java | 37 +++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/util/DateFormatUtil.java | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/util/FileUtil.java | 34 ++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/util/JwtUtil.java | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/util/LatexUtils.java | 124 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/util/Localstorage.java | 21 +++++++++++++++++++++ src/main/java/com/meishu/util/MathUtil.java | 133 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/util/PDFUtil.java | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/util/RandomUtil.java | 19 +++++++++++++++++++ src/main/java/com/meishu/util/SecretUtils.java | 119 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/util/excel/ExcelColumn.java | 13 +++++++++++++ src/main/java/com/meishu/util/excel/ExcelColumnUtil.java | 21 +++++++++++++++++++++ src/main/java/com/meishu/util/excel/ExcelUtil.java | 347 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/util/tree/Node.java | 42 ++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/util/tree/NumberTree.java | 212 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/meishu/util/tree/SerialNumber.java | 28 ++++++++++++++++++++++++++++ src/main/java/com/meishu/vo/batch/BatchesVO.java | 14 ++++++++++++++ src/main/java/com/meishu/vo/exam/BatchExamStudentScoreVO.java | 14 ++++++++++++++ src/main/java/com/meishu/vo/exam/ExamPaperVO.java | 19 +++++++++++++++++++ src/main/java/com/meishu/vo/exam/ExamsVO.java | 25 +++++++++++++++++++++++++ src/main/java/com/meishu/vo/exercise/ExercisesWithAnswerVO.java | 21 +++++++++++++++++++++ src/main/java/com/meishu/vo/exercise/LabelExercisesVO.java | 12 ++++++++++++ src/main/java/com/meishu/vo/exercise/ScoreDetailsVO.java | 24 ++++++++++++++++++++++++ src/main/java/com/meishu/vo/exercise/UploadFileVO.java | 10 ++++++++++ src/main/java/com/meishu/vo/paper/ExercisesVO.java | 18 ++++++++++++++++++ src/main/java/com/meishu/vo/paper/PapersVO.java | 26 ++++++++++++++++++++++++++ src/main/java/com/meishu/vo/student/BatchStudentsVO.java | 17 +++++++++++++++++ src/main/java/com/meishu/vo/student/LoginVO.java | 13 +++++++++++++ src/main/java/com/meishu/vo/student/StudentExamsVO.java | 14 ++++++++++++++ src/main/java/com/meishu/vo/student/StudentVO.java | 14 ++++++++++++++ src/main/resources/application-dev.properties | 38 ++++++++++++++++++++++++++++++++++++++ src/main/resources/application-local.properties | 30 ++++++++++++++++++++++++++++++ src/main/resources/application-prod.properties | 33 +++++++++++++++++++++++++++++++++ src/main/resources/application.properties | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/resources/code.properties | 23 +++++++++++++++++++++++ src/main/resources/logback-spring.xml | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/resources/mapper/AdministerMapper.xml | 32 ++++++++++++++++++++++++++++++++ src/main/resources/mapper/BatchDictMapper.xml | 24 ++++++++++++++++++++++++ src/main/resources/mapper/BatchExamMapper.xml | 21 +++++++++++++++++++++ src/main/resources/mapper/BatchExamsStudentsMapper.xml | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/resources/mapper/BatchStudentMappingMapper.xml | 33 +++++++++++++++++++++++++++++++++ src/main/resources/mapper/ExerciseDictMapper.xml | 41 +++++++++++++++++++++++++++++++++++++++++ src/main/resources/mapper/ExerciseDoneHistoryMapper.xml | 26 ++++++++++++++++++++++++++ src/main/resources/mapper/LabelDictMapper.xml | 22 ++++++++++++++++++++++ src/main/resources/mapper/PaperDictMapper.xml | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/resources/mapper/PaperExercisesMapper.xml | 20 ++++++++++++++++++++ src/main/resources/mapper/StudentMapper.xml | 21 +++++++++++++++++++++ src/main/resources/mybatis-plus.properties | 12 ++++++++++++ src/main/resources/mybatis.xml | 9 +++++++++ src/main/resources/static/1.jpg | Bin 0 -> 66547 bytes src/main/resources/static/10.jpg | Bin 0 -> 116522 bytes src/main/resources/static/11.jpg | Bin 0 -> 34332 bytes src/main/resources/static/12.jpg | Bin 0 -> 208767 bytes src/main/resources/static/13.jpg | Bin 0 -> 105805 bytes src/main/resources/static/14.jpg | Bin 0 -> 65695 bytes src/main/resources/static/15.jpg | Bin 0 -> 165241 bytes src/main/resources/static/16.jpg | Bin 0 -> 174688 bytes src/main/resources/static/17.jpg | Bin 0 -> 54166 bytes src/main/resources/static/18.jpg | Bin 0 -> 112008 bytes src/main/resources/static/19.gif | Bin 0 -> 43468 bytes src/main/resources/static/2.jpg | Bin 0 -> 64210 bytes src/main/resources/static/20.jpg | Bin 0 -> 85579 bytes src/main/resources/static/21.jpg | Bin 0 -> 18391 bytes src/main/resources/static/22.jpg | Bin 0 -> 20247 bytes src/main/resources/static/23.jpg | Bin 0 -> 182946 bytes src/main/resources/static/24.jpg | Bin 0 -> 16384 bytes src/main/resources/static/25.gif | Bin 0 -> 42154 bytes src/main/resources/static/26.jpg | Bin 0 -> 361235 bytes src/main/resources/static/27.jpg | Bin 0 -> 203788 bytes src/main/resources/static/28.jpg | Bin 0 -> 34368 bytes src/main/resources/static/29.jpg | Bin 0 -> 193444 bytes src/main/resources/static/3.jpg | Bin 0 -> 40751 bytes src/main/resources/static/30.jpg | Bin 0 -> 44323 bytes src/main/resources/static/31.jpg | Bin 0 -> 84774 bytes src/main/resources/static/32.png | Bin 0 -> 1236591 bytes src/main/resources/static/33.png | Bin 0 -> 26306 bytes src/main/resources/static/34.png | Bin 0 -> 26423 bytes src/main/resources/static/4.jpg | Bin 0 -> 59022 bytes src/main/resources/static/5.jpg | Bin 0 -> 24045 bytes src/main/resources/static/6.jpg | Bin 0 -> 181851 bytes src/main/resources/static/7.jpg | Bin 0 -> 196203 bytes src/main/resources/static/8.jpg | Bin 0 -> 45501 bytes src/main/resources/static/9.jpg | Bin 0 -> 178300 bytes src/main/resources/templates/controller.java.ftl | 41 +++++++++++++++++++++++++++++++++++++++++ src/main/resources/templates/entity.java.ftl | 156 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/resources/templates/mapper.java.ftl | 22 ++++++++++++++++++++++ src/main/resources/templates/mapper.xml.ftl | 39 +++++++++++++++++++++++++++++++++++++++ src/main/resources/templates/service.java.ftl | 20 ++++++++++++++++++++ src/main/resources/templates/serviceImpl.java.ftl | 26 ++++++++++++++++++++++++++ target/classes/META-INF/spring-configuration-metadata.json | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ target/classes/META-INF/teachaicms.kotlin_module | Bin 0 -> 16 bytes target/classes/application-dev.properties | 38 ++++++++++++++++++++++++++++++++++++++ target/classes/application-local.properties | 30 ++++++++++++++++++++++++++++++ target/classes/application-prod.properties | 33 +++++++++++++++++++++++++++++++++ target/classes/application.properties | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ target/classes/code.properties | 23 +++++++++++++++++++++++ target/classes/com/meishu/MeishuApplication.class | Bin 0 -> 949 bytes target/classes/com/meishu/common/ResponseData.class | Bin 0 -> 3239 bytes target/classes/com/meishu/common/ResponseVO$ResponseVOBuilder.class | Bin 0 -> 2360 bytes target/classes/com/meishu/common/ResponseVO.class | Bin 0 -> 3963 bytes target/classes/com/meishu/common/configure/AliyunSmsProperties.class | Bin 0 -> 3072 bytes target/classes/com/meishu/common/configure/MybatisPlusConfig.class | Bin 0 -> 1607 bytes target/classes/com/meishu/common/configure/RemoteProperties.class | Bin 0 -> 1538 bytes target/classes/com/meishu/common/configure/RestTemplateConfig$WxMappingJackson2HttpMessageConverter.class | Bin 0 -> 1236 bytes target/classes/com/meishu/common/configure/RestTemplateConfig.class | Bin 0 -> 1088 bytes target/classes/com/meishu/common/configure/SwaggerConfig.class | Bin 0 -> 2115 bytes target/classes/com/meishu/common/configure/VODConfig.class | Bin 0 -> 3942 bytes target/classes/com/meishu/common/configure/WebConfig.class | Bin 0 -> 3208 bytes target/classes/com/meishu/common/configure/WebLogAspect.class | Bin 0 -> 2240 bytes target/classes/com/meishu/common/configure/WechatConfig.class | Bin 0 -> 3436 bytes target/classes/com/meishu/common/constant/Code.class | Bin 0 -> 2887 bytes target/classes/com/meishu/common/constant/WxConstant.class | Bin 0 -> 912 bytes target/classes/com/meishu/common/exception/GlobalExceptionHandler.class | Bin 0 -> 6971 bytes target/classes/com/meishu/common/exception/HttpException.class | Bin 0 -> 1222 bytes target/classes/com/meishu/common/handler/MetaHandler.class | Bin 0 -> 1071 bytes target/classes/com/meishu/common/interceptor/AuthenticationInterceptor.class | Bin 0 -> 3658 bytes target/classes/com/meishu/common/interceptor/LoginRequired.class | Bin 0 -> 520 bytes target/classes/com/meishu/controller/AdministerController.class | Bin 0 -> 2427 bytes target/classes/com/meishu/controller/BatchDictController.class | Bin 0 -> 2352 bytes target/classes/com/meishu/controller/BatchExamController.class | Bin 0 -> 2601 bytes target/classes/com/meishu/controller/BatchExamStudentController.class | Bin 0 -> 2027 bytes target/classes/com/meishu/controller/BatchStudentMappingController.class | Bin 0 -> 1586 bytes target/classes/com/meishu/controller/ExerciseDictController.class | Bin 0 -> 2952 bytes target/classes/com/meishu/controller/ExerciseDoneHistoryController.class | Bin 0 -> 2053 bytes target/classes/com/meishu/controller/LabelDictController.class | Bin 0 -> 1185 bytes target/classes/com/meishu/controller/PaperDictController.class | Bin 0 -> 3091 bytes target/classes/com/meishu/controller/PaperExercisesController.class | Bin 0 -> 2457 bytes target/classes/com/meishu/controller/StudentController.class | Bin 0 -> 2539 bytes target/classes/com/meishu/dto/batch/AddBatchDTO.class | Bin 0 -> 1881 bytes target/classes/com/meishu/dto/exam/ExamPaperDTO.class | Bin 0 -> 2397 bytes target/classes/com/meishu/dto/exercise/LabelExercisesDTO.class | Bin 0 -> 2517 bytes target/classes/com/meishu/dto/paper/AddPaperExerciseDTO.class | Bin 0 -> 2298 bytes target/classes/com/meishu/dto/paper/PaperStudentExerciseDTO.class | Bin 0 -> 2130 bytes target/classes/com/meishu/dto/paper/SubmitDTO.class | Bin 0 -> 3343 bytes target/classes/com/meishu/dto/student/LoginDTO.class | Bin 0 -> 1898 bytes target/classes/com/meishu/dto/userrole/AccountLoginDTO.class | Bin 0 -> 1928 bytes target/classes/com/meishu/dto/userrole/QueryStudentsDTO.class | Bin 0 -> 3830 bytes target/classes/com/meishu/mapper/AdministerMapper.class | Bin 0 -> 577 bytes target/classes/com/meishu/mapper/BatchDictMapper.class | Bin 0 -> 392 bytes target/classes/com/meishu/mapper/BatchExamMapper.class | Bin 0 -> 560 bytes target/classes/com/meishu/mapper/BatchExamsStudentsMapper.class | Bin 0 -> 1080 bytes target/classes/com/meishu/mapper/BatchStudentMappingMapper.class | Bin 0 -> 709 bytes target/classes/com/meishu/mapper/ExerciseDictMapper.class | Bin 0 -> 755 bytes target/classes/com/meishu/mapper/ExerciseDoneHistoryMapper.class | Bin 0 -> 660 bytes target/classes/com/meishu/mapper/LabelDictMapper.class | Bin 0 -> 392 bytes target/classes/com/meishu/mapper/PaperDictMapper.class | Bin 0 -> 1153 bytes target/classes/com/meishu/mapper/PaperExercisesMapper.class | Bin 0 -> 600 bytes target/classes/com/meishu/mapper/StudentMapper.class | Bin 0 -> 562 bytes target/classes/com/meishu/model/AdministerDO.class | Bin 0 -> 3259 bytes target/classes/com/meishu/model/BatchDictDO.class | Bin 0 -> 3241 bytes target/classes/com/meishu/model/BatchExamDO.class | Bin 0 -> 4120 bytes target/classes/com/meishu/model/BatchExamStudentsDO.class | Bin 0 -> 3800 bytes target/classes/com/meishu/model/BatchStudentMappingDO.class | Bin 0 -> 3794 bytes target/classes/com/meishu/model/ExerciseDictDO.class | Bin 0 -> 4665 bytes target/classes/com/meishu/model/ExerciseDoneHistoryDO.class | Bin 0 -> 5621 bytes target/classes/com/meishu/model/LabelDictDO.class | Bin 0 -> 2337 bytes target/classes/com/meishu/model/PaperDictDO.class | Bin 0 -> 2807 bytes target/classes/com/meishu/model/PaperExercisesDO.class | Bin 0 -> 2780 bytes target/classes/com/meishu/model/StudentDO.class | Bin 0 -> 3230 bytes target/classes/com/meishu/service/AdministerService.class | Bin 0 -> 791 bytes target/classes/com/meishu/service/BatchDictService.class | Bin 0 -> 671 bytes target/classes/com/meishu/service/BatchExamService.class | Bin 0 -> 780 bytes target/classes/com/meishu/service/BatchExamStudentsService.class | Bin 0 -> 929 bytes target/classes/com/meishu/service/BatchStudentMappingService.class | Bin 0 -> 596 bytes target/classes/com/meishu/service/ExerciseDictService.class | Bin 0 -> 960 bytes target/classes/com/meishu/service/ExerciseDoneHistoryService.class | Bin 0 -> 709 bytes target/classes/com/meishu/service/LabelDictService.class | Bin 0 -> 416 bytes target/classes/com/meishu/service/PaperDictService.class | Bin 0 -> 920 bytes target/classes/com/meishu/service/PaperExercisesService.class | Bin 0 -> 813 bytes target/classes/com/meishu/service/StudentService.class | Bin 0 -> 816 bytes target/classes/com/meishu/service/impl/AdministerServiceImpl.class | Bin 0 -> 5076 bytes target/classes/com/meishu/service/impl/BatchDictServiceImpl.class | Bin 0 -> 8751 bytes target/classes/com/meishu/service/impl/BatchExamServiceImpl.class | Bin 0 -> 8991 bytes target/classes/com/meishu/service/impl/BatchExamStudentsServiceImpl.class | Bin 0 -> 5317 bytes target/classes/com/meishu/service/impl/BatchStudentMappingServiceImpl.class | Bin 0 -> 1386 bytes target/classes/com/meishu/service/impl/ExerciseDictServiceImpl.class | Bin 0 -> 11394 bytes target/classes/com/meishu/service/impl/ExerciseDoneHistoryServiceImpl.class | Bin 0 -> 4635 bytes target/classes/com/meishu/service/impl/LabelDictServiceImpl.class | Bin 0 -> 1059 bytes target/classes/com/meishu/service/impl/PaperDictServiceImpl.class | Bin 0 -> 8399 bytes target/classes/com/meishu/service/impl/PaperExercisesServiceImpl.class | Bin 0 -> 5208 bytes target/classes/com/meishu/service/impl/StudentServiceImpl.class | Bin 0 -> 7550 bytes target/classes/com/meishu/util/BaseModel.class | Bin 0 -> 3002 bytes target/classes/com/meishu/util/CodeGenerator$1.class | Bin 0 -> 532 bytes target/classes/com/meishu/util/CodeGenerator$2.class | Bin 0 -> 1428 bytes target/classes/com/meishu/util/CodeGenerator.class | Bin 0 -> 7686 bytes target/classes/com/meishu/util/ConstantUtils.class | Bin 0 -> 1043 bytes target/classes/com/meishu/util/DateFormatUtil.class | Bin 0 -> 1816 bytes target/classes/com/meishu/util/FileUtil.class | Bin 0 -> 1506 bytes target/classes/com/meishu/util/JwtUtil.class | Bin 0 -> 3448 bytes target/classes/com/meishu/util/LatexUtils.class | Bin 0 -> 3037 bytes target/classes/com/meishu/util/Localstorage.class | Bin 0 -> 1568 bytes target/classes/com/meishu/util/MathUtil.class | Bin 0 -> 4492 bytes target/classes/com/meishu/util/PDFUtil.class | Bin 0 -> 5448 bytes target/classes/com/meishu/util/RandomUtil.class | Bin 0 -> 943 bytes target/classes/com/meishu/util/SecretUtils.class | Bin 0 -> 3119 bytes target/classes/com/meishu/util/excel/ExcelColumn.class | Bin 0 -> 533 bytes target/classes/com/meishu/util/excel/ExcelColumnUtil.class | Bin 0 -> 541 bytes target/classes/com/meishu/util/excel/ExcelUtil.class | Bin 0 -> 17164 bytes target/classes/com/meishu/util/tree/Node.class | Bin 0 -> 3625 bytes target/classes/com/meishu/util/tree/NumberTree.class | Bin 0 -> 8825 bytes target/classes/com/meishu/util/tree/SerialNumber.class | Bin 0 -> 1191 bytes target/classes/com/meishu/vo/batch/BatchesVO.class | Bin 0 -> 1910 bytes target/classes/com/meishu/vo/exam/BatchExamStudentScoreVO.class | Bin 0 -> 2456 bytes target/classes/com/meishu/vo/exam/ExamPaperVO.class | Bin 0 -> 3165 bytes target/classes/com/meishu/vo/exam/ExamsVO.class | Bin 0 -> 4535 bytes target/classes/com/meishu/vo/exercise/ExercisesWithAnswerVO.class | Bin 0 -> 3372 bytes target/classes/com/meishu/vo/exercise/LabelExercisesVO.class | Bin 0 -> 2129 bytes target/classes/com/meishu/vo/exercise/ScoreDetailsVO.class | Bin 0 -> 4769 bytes target/classes/com/meishu/vo/exercise/UploadFileVO.class | Bin 0 -> 1499 bytes target/classes/com/meishu/vo/paper/ExercisesVO.class | Bin 0 -> 3341 bytes target/classes/com/meishu/vo/paper/PapersVO.class | Bin 0 -> 4755 bytes target/classes/com/meishu/vo/student/BatchStudentsVO.class | Bin 0 -> 2901 bytes target/classes/com/meishu/vo/student/LoginVO.class | Bin 0 -> 2051 bytes target/classes/com/meishu/vo/student/StudentExamsVO.class | Bin 0 -> 2426 bytes target/classes/com/meishu/vo/student/StudentVO.class | Bin 0 -> 2434 bytes target/classes/logback-spring.xml | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ target/classes/mapper/AdministerMapper.xml | 32 ++++++++++++++++++++++++++++++++ target/classes/mapper/BatchDictMapper.xml | 24 ++++++++++++++++++++++++ target/classes/mapper/BatchExamMapper.xml | 21 +++++++++++++++++++++ target/classes/mapper/BatchExamsStudentsMapper.xml | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ target/classes/mapper/BatchStudentMappingMapper.xml | 33 +++++++++++++++++++++++++++++++++ target/classes/mapper/ExerciseDictMapper.xml | 41 +++++++++++++++++++++++++++++++++++++++++ target/classes/mapper/ExerciseDoneHistoryMapper.xml | 26 ++++++++++++++++++++++++++ target/classes/mapper/LabelDictMapper.xml | 22 ++++++++++++++++++++++ target/classes/mapper/PaperDictMapper.xml | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ target/classes/mapper/PaperExercisesMapper.xml | 20 ++++++++++++++++++++ target/classes/mapper/StudentMapper.xml | 21 +++++++++++++++++++++ target/classes/mybatis-plus.properties | 12 ++++++++++++ target/classes/mybatis.xml | 9 +++++++++ target/classes/static/1.jpg | Bin 0 -> 66547 bytes target/classes/static/10.jpg | Bin 0 -> 116522 bytes target/classes/static/11.jpg | Bin 0 -> 34332 bytes target/classes/static/12.jpg | Bin 0 -> 208767 bytes target/classes/static/13.jpg | Bin 0 -> 105805 bytes target/classes/static/14.jpg | Bin 0 -> 65695 bytes target/classes/static/15.jpg | Bin 0 -> 165241 bytes target/classes/static/16.jpg | Bin 0 -> 174688 bytes target/classes/static/17.jpg | Bin 0 -> 54166 bytes target/classes/static/18.jpg | Bin 0 -> 112008 bytes target/classes/static/19.gif | Bin 0 -> 43468 bytes target/classes/static/2.jpg | Bin 0 -> 64210 bytes target/classes/static/20.jpg | Bin 0 -> 85579 bytes target/classes/static/21.jpg | Bin 0 -> 18391 bytes target/classes/static/22.jpg | Bin 0 -> 20247 bytes target/classes/static/23.jpg | Bin 0 -> 182946 bytes target/classes/static/24.jpg | Bin 0 -> 16384 bytes target/classes/static/25.gif | Bin 0 -> 42154 bytes target/classes/static/26.jpg | Bin 0 -> 361235 bytes target/classes/static/27.jpg | Bin 0 -> 203788 bytes target/classes/static/28.jpg | Bin 0 -> 34368 bytes target/classes/static/29.jpg | Bin 0 -> 193444 bytes target/classes/static/3.jpg | Bin 0 -> 40751 bytes target/classes/static/30.jpg | Bin 0 -> 44323 bytes target/classes/static/31.jpg | Bin 0 -> 84774 bytes target/classes/static/32.png | Bin 0 -> 1236591 bytes target/classes/static/33.png | Bin 0 -> 26306 bytes target/classes/static/34.png | Bin 0 -> 26423 bytes target/classes/static/4.jpg | Bin 0 -> 59022 bytes target/classes/static/5.jpg | Bin 0 -> 24045 bytes target/classes/static/6.jpg | Bin 0 -> 181851 bytes target/classes/static/7.jpg | Bin 0 -> 196203 bytes target/classes/static/8.jpg | Bin 0 -> 45501 bytes target/classes/static/9.jpg | Bin 0 -> 178300 bytes target/classes/static/img/1.jpg | Bin 0 -> 1222 bytes target/classes/static/img/1689759697051UlRPM3g4RjF5Y1FxcktKVDFIcEYyUWVNd2l2c25GUTlOb1dJYTJNcGpZbzFudzg5QVNtK2xBPT0.jpg | Bin 0 -> 1106636 bytes target/classes/static/img/1689832431592tmp_1761f81855791993a84c6631ae7a434f482a4606a40d0636.jpg | Bin 0 -> 13245 bytes target/classes/static/img/16899235894131689923481019.png | Bin 0 -> 78261 bytes target/classes/static/img/1689923766029图片1.png | Bin 0 -> 1236591 bytes target/classes/static/img/16899239386521689923481019.png | Bin 0 -> 78261 bytes target/classes/static/img/1689923994992图片1.png | Bin 0 -> 1236591 bytes target/classes/static/img/16899244667821689923481019.png | Bin 0 -> 78261 bytes target/classes/static/img/1689924520974图片1.png | Bin 0 -> 1236591 bytes target/classes/static/img/1689924569182图片1.png | Bin 0 -> 1236591 bytes target/classes/static/img/1689924636414图片1.png | Bin 0 -> 1236591 bytes target/classes/static/img/1689926245085图片1.png | Bin 0 -> 1236591 bytes target/classes/static/img/1689926381453图片2.png | Bin 0 -> 1236591 bytes target/classes/static/img/16904466882761690446647678.jpg | Bin 0 -> 4018 bytes target/classes/static/img/16904470430491690446647678.jpg | Bin 0 -> 4018 bytes target/classes/static/img/16904471055331690446647678.jpg | Bin 0 -> 4018 bytes target/classes/static/img/16904486323771690448607180.jpg | Bin 0 -> 16795 bytes target/classes/static/img/16904487261871690448695674.png | Bin 0 -> 63442 bytes target/classes/static/img/16904488843531690448695674.png | Bin 0 -> 63442 bytes target/classes/static/img/work/Tomcat/localhost/ROOT/UlRPM3g4RjF5Y1FxcktKVDFIcEYyUWVNd2l2c25GUTlOb1dJYTJNcGpZbzFudzg5QVNtK2xBPT0.jpg1689758751436 | Bin 0 -> 1106636 bytes target/classes/static/img/work/Tomcat/localhost/ROOT/UlRPM3g4RjF5Y1FxcktKVDFIcEYyUWVNd2l2c25GUTlOb1dJYTJNcGpZbzFudzg5QVNtK2xBPT0.jpg1689758901616 | Bin 0 -> 1106636 bytes target/classes/templates/controller.java.ftl | 41 +++++++++++++++++++++++++++++++++++++++++ target/classes/templates/entity.java.ftl | 156 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ target/classes/templates/mapper.java.ftl | 22 ++++++++++++++++++++++ target/classes/templates/mapper.xml.ftl | 39 +++++++++++++++++++++++++++++++++++++++ target/classes/templates/service.java.ftl | 20 ++++++++++++++++++++ target/classes/templates/serviceImpl.java.ftl | 26 ++++++++++++++++++++++++++ target/kpk.jar | Bin 0 -> 87137689 bytes target/kpk.jar.original | Bin 0 -> 4629659 bytes target/maven-archiver/pom.properties | 3 +++ target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ target/teachcms.jar | Bin 0 -> 82675772 bytes target/teachcms.jar.original | Bin 0 -> 169812 bytes teachaicms.iml | 136 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 536 files changed, 12084 insertions(+) create mode 100644 .gitignore create mode 100644 .idea/compiler.xml create mode 100644 .idea/encodings.xml create mode 100644 .idea/inspectionProfiles/Project_Default.xml create mode 100644 .idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_3.xml create mode 100644 .idea/libraries/Maven__ch_qos_logback_logback_core_1_2_3.xml create mode 100644 .idea/libraries/Maven__com_alibaba_druid_1_1_22.xml create mode 100644 .idea/libraries/Maven__com_alibaba_druid_spring_boot_starter_1_1_22.xml create mode 100644 .idea/libraries/Maven__com_alibaba_fastjson_1_2_58.xml create mode 100644 .idea/libraries/Maven__com_aliyun_aliyun_java_sdk_core_4_4_6.xml create mode 100644 .idea/libraries/Maven__com_aliyun_aliyun_java_sdk_dysmsapi_1_1_0.xml create mode 100644 .idea/libraries/Maven__com_aliyun_aliyun_java_sdk_kms_2_11_0.xml create mode 100644 .idea/libraries/Maven__com_aliyun_aliyun_java_sdk_ram_3_1_0.xml create mode 100644 .idea/libraries/Maven__com_aliyun_oss_aliyun_sdk_oss_3_15_0.xml create mode 100644 .idea/libraries/Maven__com_amdelamar_jhash_2_0_0.xml create mode 100644 .idea/libraries/Maven__com_auth0_java_jwt_3_10_3.xml create mode 100644 .idea/libraries/Maven__com_baomidou_mybatis_plus_3_3_0.xml create mode 100644 .idea/libraries/Maven__com_baomidou_mybatis_plus_annotation_3_3_2.xml create mode 100644 .idea/libraries/Maven__com_baomidou_mybatis_plus_boot_starter_3_3_0.xml create mode 100644 .idea/libraries/Maven__com_baomidou_mybatis_plus_core_3_3_2.xml create mode 100644 .idea/libraries/Maven__com_baomidou_mybatis_plus_extension_3_3_2.xml create mode 100644 .idea/libraries/Maven__com_baomidou_mybatis_plus_generator_3_3_2.xml create mode 100644 .idea/libraries/Maven__com_fasterxml_classmate_1_5_1.xml create mode 100644 .idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_11_4.xml create mode 100644 .idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_11_4.xml create mode 100644 .idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_11_4.xml create mode 100644 .idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_11_4.xml create mode 100644 .idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_11_4.xml create mode 100644 .idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_11_4.xml create mode 100644 .idea/libraries/Maven__com_github_jsqlparser_jsqlparser_3_1.xml create mode 100644 .idea/libraries/Maven__com_google_code_gson_gson_2_8_6.xml create mode 100644 .idea/libraries/Maven__com_google_guava_guava_20_0.xml create mode 100644 .idea/libraries/Maven__com_itextpdf_itext_asian_5_2_0.xml create mode 100644 .idea/libraries/Maven__com_itextpdf_itextpdf_5_4_1.xml create mode 100644 .idea/libraries/Maven__com_qcloud_cos_api_5_6_8.xml create mode 100644 .idea/libraries/Maven__com_qcloud_vod_api_2_1_2.xml create mode 100644 .idea/libraries/Maven__com_squareup_okhttp_okhttp_2_5_0.xml create mode 100644 .idea/libraries/Maven__com_squareup_okio_okio_1_12_0.xml create mode 100644 .idea/libraries/Maven__com_tencentcloudapi_tencentcloud_sdk_java_3_1_64.xml create mode 100644 .idea/libraries/Maven__com_zaxxer_HikariCP_3_4_5.xml create mode 100644 .idea/libraries/Maven__commons_beanutils_commons_beanutils_1_8_0.xml create mode 100644 .idea/libraries/Maven__commons_codec_commons_codec_1_15.xml create mode 100644 .idea/libraries/Maven__commons_collections_commons_collections_3_2_1.xml create mode 100644 .idea/libraries/Maven__commons_lang_commons_lang_2_5.xml create mode 100644 .idea/libraries/Maven__commons_logging_commons_logging_1_2.xml create mode 100644 .idea/libraries/Maven__io_springfox_springfox_core_2_9_2.xml create mode 100644 .idea/libraries/Maven__io_springfox_springfox_schema_2_9_2.xml create mode 100644 .idea/libraries/Maven__io_springfox_springfox_spi_2_9_2.xml create mode 100644 .idea/libraries/Maven__io_springfox_springfox_spring_web_2_9_2.xml create mode 100644 .idea/libraries/Maven__io_springfox_springfox_swagger2_2_9_2.xml create mode 100644 .idea/libraries/Maven__io_springfox_springfox_swagger_common_2_9_2.xml create mode 100644 .idea/libraries/Maven__io_springfox_springfox_swagger_ui_2_9_2.xml create mode 100644 .idea/libraries/Maven__io_swagger_swagger_annotations_1_5_20.xml create mode 100644 .idea/libraries/Maven__io_swagger_swagger_models_1_5_20.xml create mode 100644 .idea/libraries/Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml create mode 100644 .idea/libraries/Maven__javax_activation_javax_activation_api_1_2_0.xml create mode 100644 .idea/libraries/Maven__javax_xml_bind_jaxb_api_2_3_1.xml create mode 100644 .idea/libraries/Maven__joda_time_joda_time_2_9_9.xml create mode 100644 .idea/libraries/Maven__log4j_log4j_1_2_17.xml create mode 100644 .idea/libraries/Maven__mysql_mysql_connector_java_8_0_23.xml create mode 100644 .idea/libraries/Maven__net_bytebuddy_byte_buddy_1_10_22.xml create mode 100644 .idea/libraries/Maven__net_sf_ezmorph_ezmorph_1_0_6.xml create mode 100644 .idea/libraries/Maven__net_sf_json_lib_json_lib_jdk15_2_4.xml create mode 100644 .idea/libraries/Maven__org_apache_commons_commons_lang3_3_9.xml create mode 100644 .idea/libraries/Maven__org_apache_httpcomponents_httpclient_4_5_13.xml create mode 100644 .idea/libraries/Maven__org_apache_httpcomponents_httpcore_4_4_14.xml create mode 100644 .idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_13_3.xml create mode 100644 .idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_13_3.xml create mode 100644 .idea/libraries/Maven__org_apache_poi_poi_3_13.xml create mode 100644 .idea/libraries/Maven__org_apache_poi_poi_ooxml_3_13.xml create mode 100644 .idea/libraries/Maven__org_apache_poi_poi_ooxml_schemas_3_13.xml create mode 100644 .idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_45.xml create mode 100644 .idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_45.xml create mode 100644 .idea/libraries/Maven__org_apache_xmlbeans_xmlbeans_2_6_0.xml create mode 100644 .idea/libraries/Maven__org_aspectj_aspectjweaver_1_9_6.xml create mode 100644 .idea/libraries/Maven__org_bouncycastle_bcprov_jdk15on_1_59.xml create mode 100644 .idea/libraries/Maven__org_codehaus_jettison_jettison_1_1.xml create mode 100644 .idea/libraries/Maven__org_freemarker_freemarker_2_3_31.xml create mode 100644 .idea/libraries/Maven__org_glassfish_jakarta_el_3_0_3.xml create mode 100644 .idea/libraries/Maven__org_ini4j_ini4j_0_5_4.xml create mode 100644 .idea/libraries/Maven__org_jacoco_org_jacoco_agent_runtime_0_8_3.xml create mode 100644 .idea/libraries/Maven__org_jdom_jdom2_2_0_6.xml create mode 100644 .idea/libraries/Maven__org_mapstruct_mapstruct_1_2_0_Final.xml create mode 100644 .idea/libraries/Maven__org_mybatis_mybatis_3_5_4.xml create mode 100644 .idea/libraries/Maven__org_mybatis_mybatis_spring_2_0_4.xml create mode 100644 .idea/libraries/Maven__org_projectlombok_lombok_1_18_20.xml create mode 100644 .idea/libraries/Maven__org_scilab_forge_jlatexmath_1_0_7.xml create mode 100644 .idea/libraries/Maven__org_scilab_forge_jlatexmath_font_cyrillic_1_0_7.xml create mode 100644 .idea/libraries/Maven__org_scilab_forge_jlatexmath_font_greek_1_0_7.xml create mode 100644 .idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_30.xml create mode 100644 .idea/libraries/Maven__org_slf4j_slf4j_api_1_7_30.xml create mode 100644 .idea/libraries/Maven__org_slf4j_slf4j_log4j12_1_7_30.xml create mode 100644 .idea/libraries/Maven__org_springframework_boot_spring_boot_2_4_5.xml create mode 100644 .idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_4_5.xml create mode 100644 .idea/libraries/Maven__org_springframework_boot_spring_boot_configuration_processor_2_4_5.xml create mode 100644 .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_4_5.xml create mode 100644 .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_aop_2_4_5.xml create mode 100644 .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_4_5.xml create mode 100644 .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_4_5.xml create mode 100644 .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_4_5.xml create mode 100644 .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_4_5.xml create mode 100644 .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_4_5.xml create mode 100644 .idea/libraries/Maven__org_springframework_plugin_spring_plugin_core_1_2_0_RELEASE.xml create mode 100644 .idea/libraries/Maven__org_springframework_plugin_spring_plugin_metadata_1_2_0_RELEASE.xml create mode 100644 .idea/libraries/Maven__org_springframework_spring_aop_5_3_6.xml create mode 100644 .idea/libraries/Maven__org_springframework_spring_beans_5_3_6.xml create mode 100644 .idea/libraries/Maven__org_springframework_spring_context_5_3_6.xml create mode 100644 .idea/libraries/Maven__org_springframework_spring_core_5_3_6.xml create mode 100644 .idea/libraries/Maven__org_springframework_spring_expression_5_3_6.xml create mode 100644 .idea/libraries/Maven__org_springframework_spring_jcl_5_3_6.xml create mode 100644 .idea/libraries/Maven__org_springframework_spring_jdbc_5_3_6.xml create mode 100644 .idea/libraries/Maven__org_springframework_spring_tx_5_3_6.xml create mode 100644 .idea/libraries/Maven__org_springframework_spring_web_5_3_6.xml create mode 100644 .idea/libraries/Maven__org_springframework_spring_webmvc_5_3_6.xml create mode 100644 .idea/libraries/Maven__org_yaml_snakeyaml_1_27.xml create mode 100644 .idea/libraries/Maven__stax_stax_api_1_0_1.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/uiDesigner.xml create mode 100644 .idea/vcs.xml create mode 100644 .idea/workspace.xml create mode 100644 logs/springboot-logback-error.log create mode 100644 logs/springboot-logback-info.log create mode 100644 logs/springboot-logback/error/2022-09-20-0.log.gz create mode 100644 logs/springboot-logback/error/2022-09-22-0.log.gz create mode 100644 logs/springboot-logback/error/2022-10-08-0.log.gz create mode 100644 logs/springboot-logback/error/2023-06-23-0.log.gz create mode 100644 logs/springboot-logback/error/2023-06-26-0.log.gz create mode 100644 logs/springboot-logback/error/2023-06-28-0.log.gz create mode 100644 logs/springboot-logback/error/2023-06-29-0.log.gz create mode 100644 logs/springboot-logback/error/2023-06-30-0.log.gz create mode 100644 logs/springboot-logback/error/2023-07-14-0.log.gz create mode 100644 logs/springboot-logback/error/2023-07-17-0.log.gz create mode 100644 logs/springboot-logback/error/2023-07-18-0.log.gz create mode 100644 logs/springboot-logback/error/2023-07-20-0.log.gz create mode 100644 logs/springboot-logback/info/2022-11-15-0.log.gz create mode 100644 logs/springboot-logback/info/2023-07-03-0.log.gz create mode 100644 logs/springboot-logback/info/2023-07-04-0.log.gz create mode 100644 logs/springboot-logback/info/2023-07-10-0.log.gz create mode 100644 logs/springboot-logback/info/2023-07-11-0.log.gz create mode 100644 logs/springboot-logback/info/2023-07-12-0.log.gz create mode 100644 logs/springboot-logback/info/2023-07-13-0.log.gz create mode 100644 logs/springboot-logback/info/2023-07-14-0.log.gz create mode 100644 logs/springboot-logback/info/2023-07-17-0.log.gz create mode 100644 logs/springboot-logback/info/2023-07-18-0.log.gz create mode 100644 logs/springboot-logback/info/2023-07-19-0.log.gz create mode 100644 logs/springboot-logback/info/2023-07-20-0.log.gz create mode 100644 logs/springboot-logback/info/2023-07-21-0.log.gz create mode 100644 logs/springboot-logback/info/2023-07-28-0.log.gz create mode 100644 logs/springboot-logback/info/2023-08-01-0.log.gz create mode 100644 mvnw create mode 100644 mvnw.cmd create mode 100644 pom.xml create mode 100644 src/main/java/com/meishu/MeishuApplication.java create mode 100644 src/main/java/com/meishu/common/ResponseData.java create mode 100644 src/main/java/com/meishu/common/ResponseVO.java create mode 100644 src/main/java/com/meishu/common/configure/AliyunSmsProperties.java create mode 100644 src/main/java/com/meishu/common/configure/MybatisPlusConfig.java create mode 100644 src/main/java/com/meishu/common/configure/RemoteProperties.java create mode 100644 src/main/java/com/meishu/common/configure/RestTemplateConfig.java create mode 100644 src/main/java/com/meishu/common/configure/SwaggerConfig.java create mode 100644 src/main/java/com/meishu/common/configure/VODConfig.java create mode 100644 src/main/java/com/meishu/common/configure/WebConfig.java create mode 100644 src/main/java/com/meishu/common/configure/WebLogAspect.java create mode 100644 src/main/java/com/meishu/common/configure/WechatConfig.java create mode 100644 src/main/java/com/meishu/common/constant/Code.java create mode 100644 src/main/java/com/meishu/common/constant/WxConstant.java create mode 100644 src/main/java/com/meishu/common/exception/GlobalExceptionHandler.java create mode 100644 src/main/java/com/meishu/common/exception/HttpException.java create mode 100644 src/main/java/com/meishu/common/handler/MetaHandler.java create mode 100644 src/main/java/com/meishu/common/interceptor/AuthenticationInterceptor.java create mode 100644 src/main/java/com/meishu/common/interceptor/LoginRequired.java create mode 100644 src/main/java/com/meishu/controller/AdministerController.java create mode 100644 src/main/java/com/meishu/controller/BatchDictController.java create mode 100644 src/main/java/com/meishu/controller/BatchExamController.java create mode 100644 src/main/java/com/meishu/controller/BatchExamStudentController.java create mode 100644 src/main/java/com/meishu/controller/BatchStudentMappingController.java create mode 100644 src/main/java/com/meishu/controller/ExerciseDictController.java create mode 100644 src/main/java/com/meishu/controller/ExerciseDoneHistoryController.java create mode 100644 src/main/java/com/meishu/controller/LabelDictController.java create mode 100644 src/main/java/com/meishu/controller/PaperDictController.java create mode 100644 src/main/java/com/meishu/controller/PaperExercisesController.java create mode 100644 src/main/java/com/meishu/controller/StudentController.java create mode 100644 src/main/java/com/meishu/dto/batch/AddBatchDTO.java create mode 100644 src/main/java/com/meishu/dto/exam/ExamPaperDTO.java create mode 100644 src/main/java/com/meishu/dto/exercise/LabelExercisesDTO.java create mode 100644 src/main/java/com/meishu/dto/paper/AddPaperExerciseDTO.java create mode 100644 src/main/java/com/meishu/dto/paper/PaperStudentExerciseDTO.java create mode 100644 src/main/java/com/meishu/dto/paper/SubmitDTO.java create mode 100644 src/main/java/com/meishu/dto/student/LoginDTO.java create mode 100644 src/main/java/com/meishu/dto/userrole/AccountLoginDTO.java create mode 100644 src/main/java/com/meishu/dto/userrole/QueryStudentsDTO.java create mode 100644 src/main/java/com/meishu/mapper/AdministerMapper.java create mode 100644 src/main/java/com/meishu/mapper/BatchDictMapper.java create mode 100644 src/main/java/com/meishu/mapper/BatchExamMapper.java create mode 100644 src/main/java/com/meishu/mapper/BatchExamsStudentsMapper.java create mode 100644 src/main/java/com/meishu/mapper/BatchStudentMappingMapper.java create mode 100644 src/main/java/com/meishu/mapper/ExerciseDictMapper.java create mode 100644 src/main/java/com/meishu/mapper/ExerciseDoneHistoryMapper.java create mode 100644 src/main/java/com/meishu/mapper/LabelDictMapper.java create mode 100644 src/main/java/com/meishu/mapper/PaperDictMapper.java create mode 100644 src/main/java/com/meishu/mapper/PaperExercisesMapper.java create mode 100644 src/main/java/com/meishu/mapper/StudentMapper.java create mode 100644 src/main/java/com/meishu/model/AdministerDO.java create mode 100644 src/main/java/com/meishu/model/BatchDictDO.java create mode 100644 src/main/java/com/meishu/model/BatchExamDO.java create mode 100644 src/main/java/com/meishu/model/BatchExamStudentsDO.java create mode 100644 src/main/java/com/meishu/model/BatchStudentMappingDO.java create mode 100644 src/main/java/com/meishu/model/ExerciseDictDO.java create mode 100644 src/main/java/com/meishu/model/ExerciseDoneHistoryDO.java create mode 100644 src/main/java/com/meishu/model/LabelDictDO.java create mode 100644 src/main/java/com/meishu/model/PaperDictDO.java create mode 100644 src/main/java/com/meishu/model/PaperExercisesDO.java create mode 100644 src/main/java/com/meishu/model/StudentDO.java create mode 100644 src/main/java/com/meishu/service/AdministerService.java create mode 100644 src/main/java/com/meishu/service/BatchDictService.java create mode 100644 src/main/java/com/meishu/service/BatchExamService.java create mode 100644 src/main/java/com/meishu/service/BatchExamStudentsService.java create mode 100644 src/main/java/com/meishu/service/BatchStudentMappingService.java create mode 100644 src/main/java/com/meishu/service/ExerciseDictService.java create mode 100644 src/main/java/com/meishu/service/ExerciseDoneHistoryService.java create mode 100644 src/main/java/com/meishu/service/LabelDictService.java create mode 100644 src/main/java/com/meishu/service/PaperDictService.java create mode 100644 src/main/java/com/meishu/service/PaperExercisesService.java create mode 100644 src/main/java/com/meishu/service/StudentService.java create mode 100644 src/main/java/com/meishu/service/impl/AdministerServiceImpl.java create mode 100644 src/main/java/com/meishu/service/impl/BatchDictServiceImpl.java create mode 100644 src/main/java/com/meishu/service/impl/BatchExamServiceImpl.java create mode 100644 src/main/java/com/meishu/service/impl/BatchExamStudentsServiceImpl.java create mode 100644 src/main/java/com/meishu/service/impl/BatchStudentMappingServiceImpl.java create mode 100644 src/main/java/com/meishu/service/impl/ExerciseDictServiceImpl.java create mode 100644 src/main/java/com/meishu/service/impl/ExerciseDoneHistoryServiceImpl.java create mode 100644 src/main/java/com/meishu/service/impl/LabelDictServiceImpl.java create mode 100644 src/main/java/com/meishu/service/impl/PaperDictServiceImpl.java create mode 100644 src/main/java/com/meishu/service/impl/PaperExercisesServiceImpl.java create mode 100644 src/main/java/com/meishu/service/impl/StudentServiceImpl.java create mode 100644 src/main/java/com/meishu/util/BaseModel.java create mode 100644 src/main/java/com/meishu/util/CodeGenerator.java create mode 100644 src/main/java/com/meishu/util/ConstantUtils.java create mode 100644 src/main/java/com/meishu/util/DateFormatUtil.java create mode 100644 src/main/java/com/meishu/util/FileUtil.java create mode 100644 src/main/java/com/meishu/util/JwtUtil.java create mode 100644 src/main/java/com/meishu/util/LatexUtils.java create mode 100644 src/main/java/com/meishu/util/Localstorage.java create mode 100644 src/main/java/com/meishu/util/MathUtil.java create mode 100644 src/main/java/com/meishu/util/PDFUtil.java create mode 100644 src/main/java/com/meishu/util/RandomUtil.java create mode 100644 src/main/java/com/meishu/util/SecretUtils.java create mode 100644 src/main/java/com/meishu/util/excel/ExcelColumn.java create mode 100644 src/main/java/com/meishu/util/excel/ExcelColumnUtil.java create mode 100644 src/main/java/com/meishu/util/excel/ExcelUtil.java create mode 100644 src/main/java/com/meishu/util/tree/Node.java create mode 100644 src/main/java/com/meishu/util/tree/NumberTree.java create mode 100644 src/main/java/com/meishu/util/tree/SerialNumber.java create mode 100644 src/main/java/com/meishu/vo/batch/BatchesVO.java create mode 100644 src/main/java/com/meishu/vo/exam/BatchExamStudentScoreVO.java create mode 100644 src/main/java/com/meishu/vo/exam/ExamPaperVO.java create mode 100644 src/main/java/com/meishu/vo/exam/ExamsVO.java create mode 100644 src/main/java/com/meishu/vo/exercise/ExercisesWithAnswerVO.java create mode 100644 src/main/java/com/meishu/vo/exercise/LabelExercisesVO.java create mode 100644 src/main/java/com/meishu/vo/exercise/ScoreDetailsVO.java create mode 100644 src/main/java/com/meishu/vo/exercise/UploadFileVO.java create mode 100644 src/main/java/com/meishu/vo/paper/ExercisesVO.java create mode 100644 src/main/java/com/meishu/vo/paper/PapersVO.java create mode 100644 src/main/java/com/meishu/vo/student/BatchStudentsVO.java create mode 100644 src/main/java/com/meishu/vo/student/LoginVO.java create mode 100644 src/main/java/com/meishu/vo/student/StudentExamsVO.java create mode 100644 src/main/java/com/meishu/vo/student/StudentVO.java create mode 100644 src/main/resources/application-dev.properties create mode 100644 src/main/resources/application-local.properties create mode 100644 src/main/resources/application-prod.properties create mode 100644 src/main/resources/application.properties create mode 100644 src/main/resources/code.properties create mode 100644 src/main/resources/logback-spring.xml create mode 100644 src/main/resources/mapper/AdministerMapper.xml create mode 100644 src/main/resources/mapper/BatchDictMapper.xml create mode 100644 src/main/resources/mapper/BatchExamMapper.xml create mode 100644 src/main/resources/mapper/BatchExamsStudentsMapper.xml create mode 100644 src/main/resources/mapper/BatchStudentMappingMapper.xml create mode 100644 src/main/resources/mapper/ExerciseDictMapper.xml create mode 100644 src/main/resources/mapper/ExerciseDoneHistoryMapper.xml create mode 100644 src/main/resources/mapper/LabelDictMapper.xml create mode 100644 src/main/resources/mapper/PaperDictMapper.xml create mode 100644 src/main/resources/mapper/PaperExercisesMapper.xml create mode 100644 src/main/resources/mapper/StudentMapper.xml create mode 100644 src/main/resources/mybatis-plus.properties create mode 100644 src/main/resources/mybatis.xml create mode 100644 src/main/resources/static/1.jpg create mode 100644 src/main/resources/static/10.jpg create mode 100644 src/main/resources/static/11.jpg create mode 100644 src/main/resources/static/12.jpg create mode 100644 src/main/resources/static/13.jpg create mode 100644 src/main/resources/static/14.jpg create mode 100644 src/main/resources/static/15.jpg create mode 100644 src/main/resources/static/16.jpg create mode 100644 src/main/resources/static/17.jpg create mode 100644 src/main/resources/static/18.jpg create mode 100644 src/main/resources/static/19.gif create mode 100644 src/main/resources/static/2.jpg create mode 100644 src/main/resources/static/20.jpg create mode 100644 src/main/resources/static/21.jpg create mode 100644 src/main/resources/static/22.jpg create mode 100644 src/main/resources/static/23.jpg create mode 100644 src/main/resources/static/24.jpg create mode 100644 src/main/resources/static/25.gif create mode 100644 src/main/resources/static/26.jpg create mode 100644 src/main/resources/static/27.jpg create mode 100644 src/main/resources/static/28.jpg create mode 100644 src/main/resources/static/29.jpg create mode 100644 src/main/resources/static/3.jpg create mode 100644 src/main/resources/static/30.jpg create mode 100644 src/main/resources/static/31.jpg create mode 100644 src/main/resources/static/32.png create mode 100644 src/main/resources/static/33.png create mode 100644 src/main/resources/static/34.png create mode 100644 src/main/resources/static/4.jpg create mode 100644 src/main/resources/static/5.jpg create mode 100644 src/main/resources/static/6.jpg create mode 100644 src/main/resources/static/7.jpg create mode 100644 src/main/resources/static/8.jpg create mode 100644 src/main/resources/static/9.jpg create mode 100644 src/main/resources/templates/controller.java.ftl create mode 100644 src/main/resources/templates/entity.java.ftl create mode 100644 src/main/resources/templates/mapper.java.ftl create mode 100644 src/main/resources/templates/mapper.xml.ftl create mode 100644 src/main/resources/templates/service.java.ftl create mode 100644 src/main/resources/templates/serviceImpl.java.ftl create mode 100644 target/classes/META-INF/spring-configuration-metadata.json create mode 100644 target/classes/META-INF/teachaicms.kotlin_module create mode 100644 target/classes/application-dev.properties create mode 100644 target/classes/application-local.properties create mode 100644 target/classes/application-prod.properties create mode 100644 target/classes/application.properties create mode 100644 target/classes/code.properties create mode 100644 target/classes/com/meishu/MeishuApplication.class create mode 100644 target/classes/com/meishu/common/ResponseData.class create mode 100644 target/classes/com/meishu/common/ResponseVO$ResponseVOBuilder.class create mode 100644 target/classes/com/meishu/common/ResponseVO.class create mode 100644 target/classes/com/meishu/common/configure/AliyunSmsProperties.class create mode 100644 target/classes/com/meishu/common/configure/MybatisPlusConfig.class create mode 100644 target/classes/com/meishu/common/configure/RemoteProperties.class create mode 100644 target/classes/com/meishu/common/configure/RestTemplateConfig$WxMappingJackson2HttpMessageConverter.class create mode 100644 target/classes/com/meishu/common/configure/RestTemplateConfig.class create mode 100644 target/classes/com/meishu/common/configure/SwaggerConfig.class create mode 100644 target/classes/com/meishu/common/configure/VODConfig.class create mode 100644 target/classes/com/meishu/common/configure/WebConfig.class create mode 100644 target/classes/com/meishu/common/configure/WebLogAspect.class create mode 100644 target/classes/com/meishu/common/configure/WechatConfig.class create mode 100644 target/classes/com/meishu/common/constant/Code.class create mode 100644 target/classes/com/meishu/common/constant/WxConstant.class create mode 100644 target/classes/com/meishu/common/exception/GlobalExceptionHandler.class create mode 100644 target/classes/com/meishu/common/exception/HttpException.class create mode 100644 target/classes/com/meishu/common/handler/MetaHandler.class create mode 100644 target/classes/com/meishu/common/interceptor/AuthenticationInterceptor.class create mode 100644 target/classes/com/meishu/common/interceptor/LoginRequired.class create mode 100644 target/classes/com/meishu/controller/AdministerController.class create mode 100644 target/classes/com/meishu/controller/BatchDictController.class create mode 100644 target/classes/com/meishu/controller/BatchExamController.class create mode 100644 target/classes/com/meishu/controller/BatchExamStudentController.class create mode 100644 target/classes/com/meishu/controller/BatchStudentMappingController.class create mode 100644 target/classes/com/meishu/controller/ExerciseDictController.class create mode 100644 target/classes/com/meishu/controller/ExerciseDoneHistoryController.class create mode 100644 target/classes/com/meishu/controller/LabelDictController.class create mode 100644 target/classes/com/meishu/controller/PaperDictController.class create mode 100644 target/classes/com/meishu/controller/PaperExercisesController.class create mode 100644 target/classes/com/meishu/controller/StudentController.class create mode 100644 target/classes/com/meishu/dto/batch/AddBatchDTO.class create mode 100644 target/classes/com/meishu/dto/exam/ExamPaperDTO.class create mode 100644 target/classes/com/meishu/dto/exercise/LabelExercisesDTO.class create mode 100644 target/classes/com/meishu/dto/paper/AddPaperExerciseDTO.class create mode 100644 target/classes/com/meishu/dto/paper/PaperStudentExerciseDTO.class create mode 100644 target/classes/com/meishu/dto/paper/SubmitDTO.class create mode 100644 target/classes/com/meishu/dto/student/LoginDTO.class create mode 100644 target/classes/com/meishu/dto/userrole/AccountLoginDTO.class create mode 100644 target/classes/com/meishu/dto/userrole/QueryStudentsDTO.class create mode 100644 target/classes/com/meishu/mapper/AdministerMapper.class create mode 100644 target/classes/com/meishu/mapper/BatchDictMapper.class create mode 100644 target/classes/com/meishu/mapper/BatchExamMapper.class create mode 100644 target/classes/com/meishu/mapper/BatchExamsStudentsMapper.class create mode 100644 target/classes/com/meishu/mapper/BatchStudentMappingMapper.class create mode 100644 target/classes/com/meishu/mapper/ExerciseDictMapper.class create mode 100644 target/classes/com/meishu/mapper/ExerciseDoneHistoryMapper.class create mode 100644 target/classes/com/meishu/mapper/LabelDictMapper.class create mode 100644 target/classes/com/meishu/mapper/PaperDictMapper.class create mode 100644 target/classes/com/meishu/mapper/PaperExercisesMapper.class create mode 100644 target/classes/com/meishu/mapper/StudentMapper.class create mode 100644 target/classes/com/meishu/model/AdministerDO.class create mode 100644 target/classes/com/meishu/model/BatchDictDO.class create mode 100644 target/classes/com/meishu/model/BatchExamDO.class create mode 100644 target/classes/com/meishu/model/BatchExamStudentsDO.class create mode 100644 target/classes/com/meishu/model/BatchStudentMappingDO.class create mode 100644 target/classes/com/meishu/model/ExerciseDictDO.class create mode 100644 target/classes/com/meishu/model/ExerciseDoneHistoryDO.class create mode 100644 target/classes/com/meishu/model/LabelDictDO.class create mode 100644 target/classes/com/meishu/model/PaperDictDO.class create mode 100644 target/classes/com/meishu/model/PaperExercisesDO.class create mode 100644 target/classes/com/meishu/model/StudentDO.class create mode 100644 target/classes/com/meishu/service/AdministerService.class create mode 100644 target/classes/com/meishu/service/BatchDictService.class create mode 100644 target/classes/com/meishu/service/BatchExamService.class create mode 100644 target/classes/com/meishu/service/BatchExamStudentsService.class create mode 100644 target/classes/com/meishu/service/BatchStudentMappingService.class create mode 100644 target/classes/com/meishu/service/ExerciseDictService.class create mode 100644 target/classes/com/meishu/service/ExerciseDoneHistoryService.class create mode 100644 target/classes/com/meishu/service/LabelDictService.class create mode 100644 target/classes/com/meishu/service/PaperDictService.class create mode 100644 target/classes/com/meishu/service/PaperExercisesService.class create mode 100644 target/classes/com/meishu/service/StudentService.class create mode 100644 target/classes/com/meishu/service/impl/AdministerServiceImpl.class create mode 100644 target/classes/com/meishu/service/impl/BatchDictServiceImpl.class create mode 100644 target/classes/com/meishu/service/impl/BatchExamServiceImpl.class create mode 100644 target/classes/com/meishu/service/impl/BatchExamStudentsServiceImpl.class create mode 100644 target/classes/com/meishu/service/impl/BatchStudentMappingServiceImpl.class create mode 100644 target/classes/com/meishu/service/impl/ExerciseDictServiceImpl.class create mode 100644 target/classes/com/meishu/service/impl/ExerciseDoneHistoryServiceImpl.class create mode 100644 target/classes/com/meishu/service/impl/LabelDictServiceImpl.class create mode 100644 target/classes/com/meishu/service/impl/PaperDictServiceImpl.class create mode 100644 target/classes/com/meishu/service/impl/PaperExercisesServiceImpl.class create mode 100644 target/classes/com/meishu/service/impl/StudentServiceImpl.class create mode 100644 target/classes/com/meishu/util/BaseModel.class create mode 100644 target/classes/com/meishu/util/CodeGenerator$1.class create mode 100644 target/classes/com/meishu/util/CodeGenerator$2.class create mode 100644 target/classes/com/meishu/util/CodeGenerator.class create mode 100644 target/classes/com/meishu/util/ConstantUtils.class create mode 100644 target/classes/com/meishu/util/DateFormatUtil.class create mode 100644 target/classes/com/meishu/util/FileUtil.class create mode 100644 target/classes/com/meishu/util/JwtUtil.class create mode 100644 target/classes/com/meishu/util/LatexUtils.class create mode 100644 target/classes/com/meishu/util/Localstorage.class create mode 100644 target/classes/com/meishu/util/MathUtil.class create mode 100644 target/classes/com/meishu/util/PDFUtil.class create mode 100644 target/classes/com/meishu/util/RandomUtil.class create mode 100644 target/classes/com/meishu/util/SecretUtils.class create mode 100644 target/classes/com/meishu/util/excel/ExcelColumn.class create mode 100644 target/classes/com/meishu/util/excel/ExcelColumnUtil.class create mode 100644 target/classes/com/meishu/util/excel/ExcelUtil.class create mode 100644 target/classes/com/meishu/util/tree/Node.class create mode 100644 target/classes/com/meishu/util/tree/NumberTree.class create mode 100644 target/classes/com/meishu/util/tree/SerialNumber.class create mode 100644 target/classes/com/meishu/vo/batch/BatchesVO.class create mode 100644 target/classes/com/meishu/vo/exam/BatchExamStudentScoreVO.class create mode 100644 target/classes/com/meishu/vo/exam/ExamPaperVO.class create mode 100644 target/classes/com/meishu/vo/exam/ExamsVO.class create mode 100644 target/classes/com/meishu/vo/exercise/ExercisesWithAnswerVO.class create mode 100644 target/classes/com/meishu/vo/exercise/LabelExercisesVO.class create mode 100644 target/classes/com/meishu/vo/exercise/ScoreDetailsVO.class create mode 100644 target/classes/com/meishu/vo/exercise/UploadFileVO.class create mode 100644 target/classes/com/meishu/vo/paper/ExercisesVO.class create mode 100644 target/classes/com/meishu/vo/paper/PapersVO.class create mode 100644 target/classes/com/meishu/vo/student/BatchStudentsVO.class create mode 100644 target/classes/com/meishu/vo/student/LoginVO.class create mode 100644 target/classes/com/meishu/vo/student/StudentExamsVO.class create mode 100644 target/classes/com/meishu/vo/student/StudentVO.class create mode 100644 target/classes/logback-spring.xml create mode 100644 target/classes/mapper/AdministerMapper.xml create mode 100644 target/classes/mapper/BatchDictMapper.xml create mode 100644 target/classes/mapper/BatchExamMapper.xml create mode 100644 target/classes/mapper/BatchExamsStudentsMapper.xml create mode 100644 target/classes/mapper/BatchStudentMappingMapper.xml create mode 100644 target/classes/mapper/ExerciseDictMapper.xml create mode 100644 target/classes/mapper/ExerciseDoneHistoryMapper.xml create mode 100644 target/classes/mapper/LabelDictMapper.xml create mode 100644 target/classes/mapper/PaperDictMapper.xml create mode 100644 target/classes/mapper/PaperExercisesMapper.xml create mode 100644 target/classes/mapper/StudentMapper.xml create mode 100644 target/classes/mybatis-plus.properties create mode 100644 target/classes/mybatis.xml create mode 100644 target/classes/static/1.jpg create mode 100644 target/classes/static/10.jpg create mode 100644 target/classes/static/11.jpg create mode 100644 target/classes/static/12.jpg create mode 100644 target/classes/static/13.jpg create mode 100644 target/classes/static/14.jpg create mode 100644 target/classes/static/15.jpg create mode 100644 target/classes/static/16.jpg create mode 100644 target/classes/static/17.jpg create mode 100644 target/classes/static/18.jpg create mode 100644 target/classes/static/19.gif create mode 100644 target/classes/static/2.jpg create mode 100644 target/classes/static/20.jpg create mode 100644 target/classes/static/21.jpg create mode 100644 target/classes/static/22.jpg create mode 100644 target/classes/static/23.jpg create mode 100644 target/classes/static/24.jpg create mode 100644 target/classes/static/25.gif create mode 100644 target/classes/static/26.jpg create mode 100644 target/classes/static/27.jpg create mode 100644 target/classes/static/28.jpg create mode 100644 target/classes/static/29.jpg create mode 100644 target/classes/static/3.jpg create mode 100644 target/classes/static/30.jpg create mode 100644 target/classes/static/31.jpg create mode 100644 target/classes/static/32.png create mode 100644 target/classes/static/33.png create mode 100644 target/classes/static/34.png create mode 100644 target/classes/static/4.jpg create mode 100644 target/classes/static/5.jpg create mode 100644 target/classes/static/6.jpg create mode 100644 target/classes/static/7.jpg create mode 100644 target/classes/static/8.jpg create mode 100644 target/classes/static/9.jpg create mode 100644 target/classes/static/img/1.jpg create mode 100644 target/classes/static/img/1689759697051UlRPM3g4RjF5Y1FxcktKVDFIcEYyUWVNd2l2c25GUTlOb1dJYTJNcGpZbzFudzg5QVNtK2xBPT0.jpg create mode 100644 target/classes/static/img/1689832431592tmp_1761f81855791993a84c6631ae7a434f482a4606a40d0636.jpg create mode 100644 target/classes/static/img/16899235894131689923481019.png create mode 100644 target/classes/static/img/1689923766029图片1.png create mode 100644 target/classes/static/img/16899239386521689923481019.png create mode 100644 target/classes/static/img/1689923994992图片1.png create mode 100644 target/classes/static/img/16899244667821689923481019.png create mode 100644 target/classes/static/img/1689924520974图片1.png create mode 100644 target/classes/static/img/1689924569182图片1.png create mode 100644 target/classes/static/img/1689924636414图片1.png create mode 100644 target/classes/static/img/1689926245085图片1.png create mode 100644 target/classes/static/img/1689926381453图片2.png create mode 100644 target/classes/static/img/16904466882761690446647678.jpg create mode 100644 target/classes/static/img/16904470430491690446647678.jpg create mode 100644 target/classes/static/img/16904471055331690446647678.jpg create mode 100644 target/classes/static/img/16904486323771690448607180.jpg create mode 100644 target/classes/static/img/16904487261871690448695674.png create mode 100644 target/classes/static/img/16904488843531690448695674.png create mode 100644 target/classes/static/img/work/Tomcat/localhost/ROOT/UlRPM3g4RjF5Y1FxcktKVDFIcEYyUWVNd2l2c25GUTlOb1dJYTJNcGpZbzFudzg5QVNtK2xBPT0.jpg1689758751436 create mode 100644 target/classes/static/img/work/Tomcat/localhost/ROOT/UlRPM3g4RjF5Y1FxcktKVDFIcEYyUWVNd2l2c25GUTlOb1dJYTJNcGpZbzFudzg5QVNtK2xBPT0.jpg1689758901616 create mode 100644 target/classes/templates/controller.java.ftl create mode 100644 target/classes/templates/entity.java.ftl create mode 100644 target/classes/templates/mapper.java.ftl create mode 100644 target/classes/templates/mapper.xml.ftl create mode 100644 target/classes/templates/service.java.ftl create mode 100644 target/classes/templates/serviceImpl.java.ftl create mode 100644 target/kpk.jar create mode 100644 target/kpk.jar.original create mode 100644 target/maven-archiver/pom.properties create mode 100644 target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst create mode 100644 target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst create mode 100644 target/teachcms.jar create mode 100644 target/teachcms.jar.original create mode 100644 teachaicms.iml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..bfa6a22 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +# Created by .ignore support plugin (hsz.mobi) diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..5a3d1ca --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..aa00ffa --- /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..bbc74a8 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,41 @@ + + + + \ 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..e2fb2e1 --- /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..a7b6930 --- /dev/null +++ b/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_alibaba_druid_1_1_22.xml b/.idea/libraries/Maven__com_alibaba_druid_1_1_22.xml new file mode 100644 index 0000000..4b49ca8 --- /dev/null +++ b/.idea/libraries/Maven__com_alibaba_druid_1_1_22.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_alibaba_druid_spring_boot_starter_1_1_22.xml b/.idea/libraries/Maven__com_alibaba_druid_spring_boot_starter_1_1_22.xml new file mode 100644 index 0000000..014cd85 --- /dev/null +++ b/.idea/libraries/Maven__com_alibaba_druid_spring_boot_starter_1_1_22.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_alibaba_fastjson_1_2_58.xml b/.idea/libraries/Maven__com_alibaba_fastjson_1_2_58.xml new file mode 100644 index 0000000..4c5b70b --- /dev/null +++ b/.idea/libraries/Maven__com_alibaba_fastjson_1_2_58.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_aliyun_aliyun_java_sdk_core_4_4_6.xml b/.idea/libraries/Maven__com_aliyun_aliyun_java_sdk_core_4_4_6.xml new file mode 100644 index 0000000..f0c57bc --- /dev/null +++ b/.idea/libraries/Maven__com_aliyun_aliyun_java_sdk_core_4_4_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_aliyun_aliyun_java_sdk_dysmsapi_1_1_0.xml b/.idea/libraries/Maven__com_aliyun_aliyun_java_sdk_dysmsapi_1_1_0.xml new file mode 100644 index 0000000..56d4212 --- /dev/null +++ b/.idea/libraries/Maven__com_aliyun_aliyun_java_sdk_dysmsapi_1_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..fa4f3d2 --- /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..c64ec20 --- /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_oss_aliyun_sdk_oss_3_15_0.xml b/.idea/libraries/Maven__com_aliyun_oss_aliyun_sdk_oss_3_15_0.xml new file mode 100644 index 0000000..e8e3807 --- /dev/null +++ b/.idea/libraries/Maven__com_aliyun_oss_aliyun_sdk_oss_3_15_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_amdelamar_jhash_2_0_0.xml b/.idea/libraries/Maven__com_amdelamar_jhash_2_0_0.xml new file mode 100644 index 0000000..5d9ee43 --- /dev/null +++ b/.idea/libraries/Maven__com_amdelamar_jhash_2_0_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_auth0_java_jwt_3_10_3.xml b/.idea/libraries/Maven__com_auth0_java_jwt_3_10_3.xml new file mode 100644 index 0000000..1cda498 --- /dev/null +++ b/.idea/libraries/Maven__com_auth0_java_jwt_3_10_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_baomidou_mybatis_plus_3_3_0.xml b/.idea/libraries/Maven__com_baomidou_mybatis_plus_3_3_0.xml new file mode 100644 index 0000000..0f6bccd --- /dev/null +++ b/.idea/libraries/Maven__com_baomidou_mybatis_plus_3_3_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_baomidou_mybatis_plus_annotation_3_3_2.xml b/.idea/libraries/Maven__com_baomidou_mybatis_plus_annotation_3_3_2.xml new file mode 100644 index 0000000..963e09f --- /dev/null +++ b/.idea/libraries/Maven__com_baomidou_mybatis_plus_annotation_3_3_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_baomidou_mybatis_plus_boot_starter_3_3_0.xml b/.idea/libraries/Maven__com_baomidou_mybatis_plus_boot_starter_3_3_0.xml new file mode 100644 index 0000000..f3c8ba9 --- /dev/null +++ b/.idea/libraries/Maven__com_baomidou_mybatis_plus_boot_starter_3_3_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_baomidou_mybatis_plus_core_3_3_2.xml b/.idea/libraries/Maven__com_baomidou_mybatis_plus_core_3_3_2.xml new file mode 100644 index 0000000..ef966cc --- /dev/null +++ b/.idea/libraries/Maven__com_baomidou_mybatis_plus_core_3_3_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_baomidou_mybatis_plus_extension_3_3_2.xml b/.idea/libraries/Maven__com_baomidou_mybatis_plus_extension_3_3_2.xml new file mode 100644 index 0000000..b1c37a1 --- /dev/null +++ b/.idea/libraries/Maven__com_baomidou_mybatis_plus_extension_3_3_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_baomidou_mybatis_plus_generator_3_3_2.xml b/.idea/libraries/Maven__com_baomidou_mybatis_plus_generator_3_3_2.xml new file mode 100644 index 0000000..9ce3685 --- /dev/null +++ b/.idea/libraries/Maven__com_baomidou_mybatis_plus_generator_3_3_2.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..b0c5918 --- /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..c5b0fc5 --- /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..20a7bb1 --- /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..4598b9d --- /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..46aad84 --- /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..4898a0a --- /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..1a25fbb --- /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_1.xml b/.idea/libraries/Maven__com_github_jsqlparser_jsqlparser_3_1.xml new file mode 100644 index 0000000..877d237 --- /dev/null +++ b/.idea/libraries/Maven__com_github_jsqlparser_jsqlparser_3_1.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..34dcded --- /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_google_guava_guava_20_0.xml b/.idea/libraries/Maven__com_google_guava_guava_20_0.xml new file mode 100644 index 0000000..52520f6 --- /dev/null +++ b/.idea/libraries/Maven__com_google_guava_guava_20_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_itextpdf_itext_asian_5_2_0.xml b/.idea/libraries/Maven__com_itextpdf_itext_asian_5_2_0.xml new file mode 100644 index 0000000..c630c04 --- /dev/null +++ b/.idea/libraries/Maven__com_itextpdf_itext_asian_5_2_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_itextpdf_itextpdf_5_4_1.xml b/.idea/libraries/Maven__com_itextpdf_itextpdf_5_4_1.xml new file mode 100644 index 0000000..c363e74 --- /dev/null +++ b/.idea/libraries/Maven__com_itextpdf_itextpdf_5_4_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_qcloud_cos_api_5_6_8.xml b/.idea/libraries/Maven__com_qcloud_cos_api_5_6_8.xml new file mode 100644 index 0000000..a2d4963 --- /dev/null +++ b/.idea/libraries/Maven__com_qcloud_cos_api_5_6_8.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_qcloud_vod_api_2_1_2.xml b/.idea/libraries/Maven__com_qcloud_vod_api_2_1_2.xml new file mode 100644 index 0000000..1659d25 --- /dev/null +++ b/.idea/libraries/Maven__com_qcloud_vod_api_2_1_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_squareup_okhttp_okhttp_2_5_0.xml b/.idea/libraries/Maven__com_squareup_okhttp_okhttp_2_5_0.xml new file mode 100644 index 0000000..721fcb7 --- /dev/null +++ b/.idea/libraries/Maven__com_squareup_okhttp_okhttp_2_5_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_squareup_okio_okio_1_12_0.xml b/.idea/libraries/Maven__com_squareup_okio_okio_1_12_0.xml new file mode 100644 index 0000000..fb63032 --- /dev/null +++ b/.idea/libraries/Maven__com_squareup_okio_okio_1_12_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_tencentcloudapi_tencentcloud_sdk_java_3_1_64.xml b/.idea/libraries/Maven__com_tencentcloudapi_tencentcloud_sdk_java_3_1_64.xml new file mode 100644 index 0000000..cec8f24 --- /dev/null +++ b/.idea/libraries/Maven__com_tencentcloudapi_tencentcloud_sdk_java_3_1_64.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..0250095 --- /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_beanutils_commons_beanutils_1_8_0.xml b/.idea/libraries/Maven__commons_beanutils_commons_beanutils_1_8_0.xml new file mode 100644 index 0000000..3357d6a --- /dev/null +++ b/.idea/libraries/Maven__commons_beanutils_commons_beanutils_1_8_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__commons_codec_commons_codec_1_15.xml b/.idea/libraries/Maven__commons_codec_commons_codec_1_15.xml new file mode 100644 index 0000000..86d0746 --- /dev/null +++ b/.idea/libraries/Maven__commons_codec_commons_codec_1_15.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__commons_collections_commons_collections_3_2_1.xml b/.idea/libraries/Maven__commons_collections_commons_collections_3_2_1.xml new file mode 100644 index 0000000..7150983 --- /dev/null +++ b/.idea/libraries/Maven__commons_collections_commons_collections_3_2_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__commons_lang_commons_lang_2_5.xml b/.idea/libraries/Maven__commons_lang_commons_lang_2_5.xml new file mode 100644 index 0000000..1002acb --- /dev/null +++ b/.idea/libraries/Maven__commons_lang_commons_lang_2_5.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..0929902 --- /dev/null +++ b/.idea/libraries/Maven__commons_logging_commons_logging_1_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_springfox_springfox_core_2_9_2.xml b/.idea/libraries/Maven__io_springfox_springfox_core_2_9_2.xml new file mode 100644 index 0000000..658bf32 --- /dev/null +++ b/.idea/libraries/Maven__io_springfox_springfox_core_2_9_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_springfox_springfox_schema_2_9_2.xml b/.idea/libraries/Maven__io_springfox_springfox_schema_2_9_2.xml new file mode 100644 index 0000000..8606bf0 --- /dev/null +++ b/.idea/libraries/Maven__io_springfox_springfox_schema_2_9_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_springfox_springfox_spi_2_9_2.xml b/.idea/libraries/Maven__io_springfox_springfox_spi_2_9_2.xml new file mode 100644 index 0000000..3224df9 --- /dev/null +++ b/.idea/libraries/Maven__io_springfox_springfox_spi_2_9_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_springfox_springfox_spring_web_2_9_2.xml b/.idea/libraries/Maven__io_springfox_springfox_spring_web_2_9_2.xml new file mode 100644 index 0000000..e23c377 --- /dev/null +++ b/.idea/libraries/Maven__io_springfox_springfox_spring_web_2_9_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_springfox_springfox_swagger2_2_9_2.xml b/.idea/libraries/Maven__io_springfox_springfox_swagger2_2_9_2.xml new file mode 100644 index 0000000..c50f57b --- /dev/null +++ b/.idea/libraries/Maven__io_springfox_springfox_swagger2_2_9_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_springfox_springfox_swagger_common_2_9_2.xml b/.idea/libraries/Maven__io_springfox_springfox_swagger_common_2_9_2.xml new file mode 100644 index 0000000..e086275 --- /dev/null +++ b/.idea/libraries/Maven__io_springfox_springfox_swagger_common_2_9_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_springfox_springfox_swagger_ui_2_9_2.xml b/.idea/libraries/Maven__io_springfox_springfox_swagger_ui_2_9_2.xml new file mode 100644 index 0000000..7778d50 --- /dev/null +++ b/.idea/libraries/Maven__io_springfox_springfox_swagger_ui_2_9_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_swagger_swagger_annotations_1_5_20.xml b/.idea/libraries/Maven__io_swagger_swagger_annotations_1_5_20.xml new file mode 100644 index 0000000..aca27ad --- /dev/null +++ b/.idea/libraries/Maven__io_swagger_swagger_annotations_1_5_20.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_swagger_swagger_models_1_5_20.xml b/.idea/libraries/Maven__io_swagger_swagger_models_1_5_20.xml new file mode 100644 index 0000000..262b7e8 --- /dev/null +++ b/.idea/libraries/Maven__io_swagger_swagger_models_1_5_20.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__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..a5ec74d --- /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__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..3ce7aba --- /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..0ef5e7f --- /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__joda_time_joda_time_2_9_9.xml b/.idea/libraries/Maven__joda_time_joda_time_2_9_9.xml new file mode 100644 index 0000000..aa27650 --- /dev/null +++ b/.idea/libraries/Maven__joda_time_joda_time_2_9_9.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__log4j_log4j_1_2_17.xml b/.idea/libraries/Maven__log4j_log4j_1_2_17.xml new file mode 100644 index 0000000..a2ac83c --- /dev/null +++ b/.idea/libraries/Maven__log4j_log4j_1_2_17.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__mysql_mysql_connector_java_8_0_23.xml b/.idea/libraries/Maven__mysql_mysql_connector_java_8_0_23.xml new file mode 100644 index 0000000..431e016 --- /dev/null +++ b/.idea/libraries/Maven__mysql_mysql_connector_java_8_0_23.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_10_22.xml b/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_10_22.xml new file mode 100644 index 0000000..e968977 --- /dev/null +++ b/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_10_22.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__net_sf_ezmorph_ezmorph_1_0_6.xml b/.idea/libraries/Maven__net_sf_ezmorph_ezmorph_1_0_6.xml new file mode 100644 index 0000000..4a36b82 --- /dev/null +++ b/.idea/libraries/Maven__net_sf_ezmorph_ezmorph_1_0_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__net_sf_json_lib_json_lib_jdk15_2_4.xml b/.idea/libraries/Maven__net_sf_json_lib_json_lib_jdk15_2_4.xml new file mode 100644 index 0000000..83e0901 --- /dev/null +++ b/.idea/libraries/Maven__net_sf_json_lib_json_lib_jdk15_2_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_9.xml b/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_9.xml new file mode 100644 index 0000000..3a66eab --- /dev/null +++ b/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_9.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..3111775 --- /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..9e73a8c --- /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..55c5dbb --- /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..cf093bf --- /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_poi_poi_3_13.xml b/.idea/libraries/Maven__org_apache_poi_poi_3_13.xml new file mode 100644 index 0000000..b4af2e7 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_poi_poi_3_13.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_poi_poi_ooxml_3_13.xml b/.idea/libraries/Maven__org_apache_poi_poi_ooxml_3_13.xml new file mode 100644 index 0000000..c851591 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_poi_poi_ooxml_3_13.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_poi_poi_ooxml_schemas_3_13.xml b/.idea/libraries/Maven__org_apache_poi_poi_ooxml_schemas_3_13.xml new file mode 100644 index 0000000..14dab26 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_poi_poi_ooxml_schemas_3_13.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_45.xml b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_45.xml new file mode 100644 index 0000000..ab850dc --- /dev/null +++ b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_45.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_45.xml b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_45.xml new file mode 100644 index 0000000..bbce856 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_45.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_xmlbeans_xmlbeans_2_6_0.xml b/.idea/libraries/Maven__org_apache_xmlbeans_xmlbeans_2_6_0.xml new file mode 100644 index 0000000..bf409a3 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_xmlbeans_xmlbeans_2_6_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_aspectj_aspectjweaver_1_9_6.xml b/.idea/libraries/Maven__org_aspectj_aspectjweaver_1_9_6.xml new file mode 100644 index 0000000..3d12be7 --- /dev/null +++ b/.idea/libraries/Maven__org_aspectj_aspectjweaver_1_9_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_bouncycastle_bcprov_jdk15on_1_59.xml b/.idea/libraries/Maven__org_bouncycastle_bcprov_jdk15on_1_59.xml new file mode 100644 index 0000000..eac201b --- /dev/null +++ b/.idea/libraries/Maven__org_bouncycastle_bcprov_jdk15on_1_59.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..88d3a41 --- /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_freemarker_freemarker_2_3_31.xml b/.idea/libraries/Maven__org_freemarker_freemarker_2_3_31.xml new file mode 100644 index 0000000..3ed0635 --- /dev/null +++ b/.idea/libraries/Maven__org_freemarker_freemarker_2_3_31.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..dd1f40f --- /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_ini4j_ini4j_0_5_4.xml b/.idea/libraries/Maven__org_ini4j_ini4j_0_5_4.xml new file mode 100644 index 0000000..a4ba2f2 --- /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_3.xml b/.idea/libraries/Maven__org_jacoco_org_jacoco_agent_runtime_0_8_3.xml new file mode 100644 index 0000000..422ff48 --- /dev/null +++ b/.idea/libraries/Maven__org_jacoco_org_jacoco_agent_runtime_0_8_3.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..f5e4e98 --- /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_mapstruct_mapstruct_1_2_0_Final.xml b/.idea/libraries/Maven__org_mapstruct_mapstruct_1_2_0_Final.xml new file mode 100644 index 0000000..fc94963 --- /dev/null +++ b/.idea/libraries/Maven__org_mapstruct_mapstruct_1_2_0_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_mybatis_mybatis_3_5_4.xml b/.idea/libraries/Maven__org_mybatis_mybatis_3_5_4.xml new file mode 100644 index 0000000..21e17da --- /dev/null +++ b/.idea/libraries/Maven__org_mybatis_mybatis_3_5_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_mybatis_mybatis_spring_2_0_4.xml b/.idea/libraries/Maven__org_mybatis_mybatis_spring_2_0_4.xml new file mode 100644 index 0000000..9af031a --- /dev/null +++ b/.idea/libraries/Maven__org_mybatis_mybatis_spring_2_0_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_projectlombok_lombok_1_18_20.xml b/.idea/libraries/Maven__org_projectlombok_lombok_1_18_20.xml new file mode 100644 index 0000000..255cbad --- /dev/null +++ b/.idea/libraries/Maven__org_projectlombok_lombok_1_18_20.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_scilab_forge_jlatexmath_1_0_7.xml b/.idea/libraries/Maven__org_scilab_forge_jlatexmath_1_0_7.xml new file mode 100644 index 0000000..dbd221d --- /dev/null +++ b/.idea/libraries/Maven__org_scilab_forge_jlatexmath_1_0_7.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_scilab_forge_jlatexmath_font_cyrillic_1_0_7.xml b/.idea/libraries/Maven__org_scilab_forge_jlatexmath_font_cyrillic_1_0_7.xml new file mode 100644 index 0000000..0c554cb --- /dev/null +++ b/.idea/libraries/Maven__org_scilab_forge_jlatexmath_font_cyrillic_1_0_7.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_scilab_forge_jlatexmath_font_greek_1_0_7.xml b/.idea/libraries/Maven__org_scilab_forge_jlatexmath_font_greek_1_0_7.xml new file mode 100644 index 0000000..e5b1b77 --- /dev/null +++ b/.idea/libraries/Maven__org_scilab_forge_jlatexmath_font_greek_1_0_7.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..7bd957f --- /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..f3b513d --- /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_slf4j_slf4j_log4j12_1_7_30.xml b/.idea/libraries/Maven__org_slf4j_slf4j_log4j12_1_7_30.xml new file mode 100644 index 0000000..767c983 --- /dev/null +++ b/.idea/libraries/Maven__org_slf4j_slf4j_log4j12_1_7_30.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_4_5.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_4_5.xml new file mode 100644 index 0000000..1323c85 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_4_5.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_4_5.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_4_5.xml new file mode 100644 index 0000000..e6eb6e0 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_4_5.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_4_5.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_configuration_processor_2_4_5.xml new file mode 100644 index 0000000..8a3d60c --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_configuration_processor_2_4_5.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_4_5.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_4_5.xml new file mode 100644 index 0000000..e626776 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_4_5.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_aop_2_4_5.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_aop_2_4_5.xml new file mode 100644 index 0000000..a7bb80b --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_aop_2_4_5.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_4_5.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_4_5.xml new file mode 100644 index 0000000..bc269b4 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_4_5.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_4_5.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_4_5.xml new file mode 100644 index 0000000..afd8d23 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_4_5.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_4_5.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_4_5.xml new file mode 100644 index 0000000..5c4ce65 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_4_5.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_4_5.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_4_5.xml new file mode 100644 index 0000000..e88adf0 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_4_5.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_4_5.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_4_5.xml new file mode 100644 index 0000000..479229b --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_4_5.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_plugin_spring_plugin_core_1_2_0_RELEASE.xml b/.idea/libraries/Maven__org_springframework_plugin_spring_plugin_core_1_2_0_RELEASE.xml new file mode 100644 index 0000000..eaadde0 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_plugin_spring_plugin_core_1_2_0_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_plugin_spring_plugin_metadata_1_2_0_RELEASE.xml b/.idea/libraries/Maven__org_springframework_plugin_spring_plugin_metadata_1_2_0_RELEASE.xml new file mode 100644 index 0000000..cea9ad8 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_plugin_spring_plugin_metadata_1_2_0_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_aop_5_3_6.xml b/.idea/libraries/Maven__org_springframework_spring_aop_5_3_6.xml new file mode 100644 index 0000000..e5ffa5b --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_aop_5_3_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_beans_5_3_6.xml b/.idea/libraries/Maven__org_springframework_spring_beans_5_3_6.xml new file mode 100644 index 0000000..7b74fca --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_beans_5_3_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_context_5_3_6.xml b/.idea/libraries/Maven__org_springframework_spring_context_5_3_6.xml new file mode 100644 index 0000000..3d18165 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_context_5_3_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_core_5_3_6.xml b/.idea/libraries/Maven__org_springframework_spring_core_5_3_6.xml new file mode 100644 index 0000000..de5d470 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_core_5_3_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_expression_5_3_6.xml b/.idea/libraries/Maven__org_springframework_spring_expression_5_3_6.xml new file mode 100644 index 0000000..d6f36ac --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_expression_5_3_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_jcl_5_3_6.xml b/.idea/libraries/Maven__org_springframework_spring_jcl_5_3_6.xml new file mode 100644 index 0000000..ce609ca --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_jcl_5_3_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_jdbc_5_3_6.xml b/.idea/libraries/Maven__org_springframework_spring_jdbc_5_3_6.xml new file mode 100644 index 0000000..e3c4b6d --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_jdbc_5_3_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_tx_5_3_6.xml b/.idea/libraries/Maven__org_springframework_spring_tx_5_3_6.xml new file mode 100644 index 0000000..0b594dc --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_tx_5_3_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_web_5_3_6.xml b/.idea/libraries/Maven__org_springframework_spring_web_5_3_6.xml new file mode 100644 index 0000000..5cb3402 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_web_5_3_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_webmvc_5_3_6.xml b/.idea/libraries/Maven__org_springframework_spring_webmvc_5_3_6.xml new file mode 100644 index 0000000..02fce18 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_spring_webmvc_5_3_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_yaml_snakeyaml_1_27.xml b/.idea/libraries/Maven__org_yaml_snakeyaml_1_27.xml new file mode 100644 index 0000000..23255c4 --- /dev/null +++ b/.idea/libraries/Maven__org_yaml_snakeyaml_1_27.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..d74ab77 --- /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..4361200 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,11 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..9252500 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ 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/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 0000000..0ea5c0c --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,554 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1646981188713 + + + 1647252315378 + + + 1647340300694 + + + 1659691523317 + + + 1661767777086 + + + 1664536865797 + + + 1673924361408 + + + 1681811762016 + + + 1687486384774 + + + 1690366906814 + + + + + + + + + + + + + + + + + + + + + + + + file://$PROJECT_DIR$/src/main/java/com/meishu/service/impl/AdministerServiceImpl.java + 53 + + + file://$PROJECT_DIR$/src/main/java/com/meishu/service/impl/PaperDictServiceImpl.java + 128 + + + file://$PROJECT_DIR$/src/main/java/com/meishu/service/impl/PaperDictServiceImpl.java + 141 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/logs/springboot-logback-error.log b/logs/springboot-logback-error.log new file mode 100644 index 0000000..771a1c1 --- /dev/null +++ b/logs/springboot-logback-error.log @@ -0,0 +1,1134 @@ +2023-07-21 11:07:23,337 [http-nio-23458-exec-1] ERROR com.meishu.common.exception.GlobalExceptionHandler:114 - path:/studentExams/exams +2023-07-21 11:07:23,339 [http-nio-23458-exec-1] ERROR com.meishu.common.exception.GlobalExceptionHandler:115 - ---- error message: ---java.lang.NullPointerException +2023-07-21 11:08:20,272 [http-nio-23458-exec-3] ERROR com.meishu.common.exception.GlobalExceptionHandler:114 - path:/studentExams/exams +2023-07-21 11:08:20,272 [http-nio-23458-exec-3] ERROR com.meishu.common.exception.GlobalExceptionHandler:115 - ---- error message: ---java.lang.NullPointerException +2023-07-21 11:09:52,535 [http-nio-23458-exec-9] ERROR com.meishu.common.exception.GlobalExceptionHandler:114 - path:/studentExams/exams +2023-07-21 11:09:52,536 [http-nio-23458-exec-9] ERROR com.meishu.common.exception.GlobalExceptionHandler:115 - ---- error message: ---java.lang.NullPointerException +2023-07-21 11:12:25,648 [http-nio-23458-exec-1] ERROR com.meishu.common.exception.GlobalExceptionHandler:114 - path:/studentExams/exams +2023-07-21 11:12:25,648 [http-nio-23458-exec-1] ERROR com.meishu.common.exception.GlobalExceptionHandler:115 - ---- error message: ---java.lang.NullPointerException +2023-07-27 15:09:31,316 [main] ERROR org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter:40 - + +*************************** +APPLICATION FAILED TO START +*************************** + +Description: + +Web server failed to start. Port 23458 was already in use. + +Action: + +Identify and stop the process that's listening on port 23458 or configure this application to listen on another port. + +2023-07-27 15:12:10,237 [main] ERROR org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter:40 - + +*************************** +APPLICATION FAILED TO START +*************************** + +Description: + +Web server failed to start. Port 23458 was already in use. + +Action: + +Identify and stop the process that's listening on port 23458 or configure this application to listen on another port. + +2023-07-28 10:07:38,069 [http-nio-23458-exec-5] ERROR com.meishu.common.exception.GlobalExceptionHandler:114 - path:/student/login +2023-07-28 10:07:38,070 [http-nio-23458-exec-5] ERROR com.meishu.common.exception.GlobalExceptionHandler:115 - ---- error message: ---java.lang.NullPointerException +2023-07-28 10:08:04,598 [http-nio-23458-exec-6] ERROR com.meishu.common.exception.GlobalExceptionHandler:114 - path:/student/login +2023-07-28 10:08:04,599 [http-nio-23458-exec-6] ERROR com.meishu.common.exception.GlobalExceptionHandler:115 - ---- error message: ---java.lang.NullPointerException +2023-07-28 10:08:59,062 [http-nio-23458-exec-7] ERROR com.meishu.common.exception.GlobalExceptionHandler:114 - path:/student/login +2023-07-28 10:08:59,062 [http-nio-23458-exec-7] ERROR com.meishu.common.exception.GlobalExceptionHandler:115 - ---- error message: ---java.lang.NullPointerException +2023-07-28 10:10:23,733 [http-nio-23458-exec-8] ERROR com.meishu.common.exception.GlobalExceptionHandler:114 - path:/student/login +2023-07-28 10:10:23,734 [http-nio-23458-exec-8] ERROR com.meishu.common.exception.GlobalExceptionHandler:115 - ---- error message: ---java.lang.NullPointerException +2023-07-28 10:10:29,374 [http-nio-23458-exec-9] ERROR com.meishu.common.exception.GlobalExceptionHandler:114 - path:/student/login +2023-07-28 10:10:29,374 [http-nio-23458-exec-9] ERROR com.meishu.common.exception.GlobalExceptionHandler:115 - ---- error message: ---java.lang.NullPointerException +2023-07-28 10:11:40,301 [http-nio-23458-exec-10] ERROR com.meishu.common.exception.GlobalExceptionHandler:114 - path:/student/login +2023-07-28 10:11:40,309 [http-nio-23458-exec-10] ERROR com.meishu.common.exception.GlobalExceptionHandler:115 - ---- error message: ---java.lang.NullPointerException +2023-07-28 10:13:35,684 [http-nio-23458-exec-1] ERROR com.meishu.common.exception.GlobalExceptionHandler:114 - path:/student/login +2023-07-28 10:13:35,684 [http-nio-23458-exec-1] ERROR com.meishu.common.exception.GlobalExceptionHandler:115 - ---- error message: ---java.lang.NullPointerException +2023-08-01 10:25:59,937 [http-nio-23458-exec-1] ERROR com.meishu.common.exception.GlobalExceptionHandler:114 - path:/batchExam/examPaper +2023-08-01 10:25:59,938 [http-nio-23458-exec-1] ERROR com.meishu.common.exception.GlobalExceptionHandler:115 - ---- error message: ---org.springframework.jdbc.BadSqlGrammarException: +### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column 't2.exerciseType' in 'field list' +### The error may exist in file [D:\code\kaopingxitong\target\classes\mapper\PaperDictMapper.xml] +### The error may involve defaultParameterMap +### The error occurred while setting parameters +### SQL: SELECT t2.id, t2.title, t2.items, t2.exerciseType FROM exercise_done_history t LEFT JOIN exercise_dict t2 ON t.exercise_id = t2.id WHERE t.delete_date IS NULL AND t2.delete_date IS NULL AND t.student_id = ? AND t.batch_exam_id = ? AND t.paper_id = ? order by t.orderNo +### Cause: java.sql.SQLSyntaxErrorException: Unknown column 't2.exerciseType' in 'field list' +; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column 't2.exerciseType' in 'field list' +2023-08-01 10:26:13,758 [http-nio-23458-exec-3] ERROR com.meishu.common.exception.GlobalExceptionHandler:114 - path:/batchExam/examPaper +2023-08-01 10:26:13,759 [http-nio-23458-exec-3] ERROR com.meishu.common.exception.GlobalExceptionHandler:115 - ---- error message: ---org.springframework.jdbc.BadSqlGrammarException: +### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column 't2.exerciseType' in 'field list' +### The error may exist in file [D:\code\kaopingxitong\target\classes\mapper\PaperDictMapper.xml] +### The error may involve defaultParameterMap +### The error occurred while setting parameters +### SQL: SELECT t2.id, t2.title, t2.items, t2.exerciseType FROM exercise_done_history t LEFT JOIN exercise_dict t2 ON t.exercise_id = t2.id WHERE t.delete_date IS NULL AND t2.delete_date IS NULL AND t.student_id = ? AND t.batch_exam_id = ? AND t.paper_id = ? order by t.orderNo +### Cause: java.sql.SQLSyntaxErrorException: Unknown column 't2.exerciseType' in 'field list' +; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column 't2.exerciseType' in 'field list' +2023-08-01 10:27:02,085 [http-nio-23458-exec-2] ERROR com.meishu.common.exception.GlobalExceptionHandler:114 - path:/batchExam/examPaper +2023-08-01 10:27:02,085 [http-nio-23458-exec-2] ERROR com.meishu.common.exception.GlobalExceptionHandler:115 - ---- error message: ---org.springframework.jdbc.BadSqlGrammarException: +### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column 't2.exerciseType' in 'field list' +### The error may exist in file [D:\code\kaopingxitong\target\classes\mapper\PaperDictMapper.xml] +### The error may involve defaultParameterMap +### The error occurred while setting parameters +### SQL: SELECT t2.id, t2.title, t2.items, t2.exerciseType FROM exercise_done_history t LEFT JOIN exercise_dict t2 ON t.exercise_id = t2.id WHERE t.delete_date IS NULL AND t2.delete_date IS NULL AND t.student_id = ? AND t.batch_exam_id = ? AND t.paper_id = ? order by t.orderNo +### Cause: java.sql.SQLSyntaxErrorException: Unknown column 't2.exerciseType' in 'field list' +; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column 't2.exerciseType' in 'field list' +2023-08-01 10:29:52,773 [http-nio-23458-exec-5] ERROR com.meishu.common.exception.GlobalExceptionHandler:114 - path:/batchExam/examPaper +2023-08-01 10:29:52,773 [http-nio-23458-exec-5] ERROR com.meishu.common.exception.GlobalExceptionHandler:115 - ---- error message: ---org.springframework.jdbc.BadSqlGrammarException: +### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column 't.orderNo' in 'order clause' +### The error may exist in file [D:\code\kaopingxitong\target\classes\mapper\PaperDictMapper.xml] +### The error may involve defaultParameterMap +### The error occurred while setting parameters +### SQL: SELECT t2.id, t2.title, t2.items, t2.exercise_type FROM exercise_done_history t LEFT JOIN exercise_dict t2 ON t.exercise_id = t2.id WHERE t.delete_date IS NULL AND t2.delete_date IS NULL AND t.student_id = ? AND t.batch_exam_id = ? AND t.paper_id = ? order by t.orderNo +### Cause: java.sql.SQLSyntaxErrorException: Unknown column 't.orderNo' in 'order clause' +; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column 't.orderNo' in 'order clause' +2023-08-01 10:29:57,201 [http-nio-23458-exec-6] ERROR com.meishu.common.exception.GlobalExceptionHandler:114 - path:/batchExam/examPaper +2023-08-01 10:29:57,201 [http-nio-23458-exec-6] ERROR com.meishu.common.exception.GlobalExceptionHandler:115 - ---- error message: ---org.springframework.jdbc.BadSqlGrammarException: +### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column 't.orderNo' in 'order clause' +### The error may exist in file [D:\code\kaopingxitong\target\classes\mapper\PaperDictMapper.xml] +### The error may involve defaultParameterMap +### The error occurred while setting parameters +### SQL: SELECT t2.id, t2.title, t2.items, t2.exercise_type FROM exercise_done_history t LEFT JOIN exercise_dict t2 ON t.exercise_id = t2.id WHERE t.delete_date IS NULL AND t2.delete_date IS NULL AND t.student_id = ? AND t.batch_exam_id = ? AND t.paper_id = ? order by t.orderNo +### Cause: java.sql.SQLSyntaxErrorException: Unknown column 't.orderNo' in 'order clause' +; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column 't.orderNo' in 'order clause' +2023-08-01 11:39:05,282 [main] ERROR com.alibaba.druid.pool.DruidDataSource:927 - init datasource error, url: jdbc:mysql://localhost:3306/kpk?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8 +java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up. + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110) + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89) + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63) + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73) + at com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:903) + at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:828) + at com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:453) + at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246) + at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198) + at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1644) + at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1710) + at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:923) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.lang.reflect.Method.invoke(Method.java:498) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1912) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1854) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1782) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:602) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) + at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:887) + at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791) + at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:541) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1334) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1177) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:564) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1501) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1399) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:657) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) + at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1413) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:657) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) + at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1413) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:944) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:144) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:782) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:774) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:339) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1340) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1329) + at com.meishu.MeishuApplication.main(MeishuApplication.java:20) +Caused by: com.mysql.cj.exceptions.CJException: Unknown database 'kpk' + at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) + at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) + at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) + at java.lang.reflect.Constructor.newInstance(Constructor.java:423) + at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61) + at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:105) + at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:151) + at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:129) + at com.mysql.cj.protocol.a.NativeProtocol.checkErrorMessage(NativeProtocol.java:794) + at com.mysql.cj.protocol.a.NativeProtocol.checkErrorMessage(NativeProtocol.java:719) + at com.mysql.cj.protocol.a.NativeProtocol.checkErrorMessage(NativeProtocol.java:687) + at com.mysql.cj.protocol.a.NativeProtocol.checkErrorMessage(NativeProtocol.java:136) + at com.mysql.cj.protocol.a.NativeAuthenticationProvider.proceedHandshakeWithPluggableAuthentication(NativeAuthenticationProvider.java:469) + at com.mysql.cj.protocol.a.NativeAuthenticationProvider.connect(NativeAuthenticationProvider.java:174) + at com.mysql.cj.protocol.a.NativeProtocol.connect(NativeProtocol.java:1350) + at com.mysql.cj.NativeSession.connect(NativeSession.java:157) + at com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:847) + ... 84 common frames omitted +2023-08-01 11:39:05,287 [main] ERROR com.alibaba.druid.pool.DruidDataSource:969 - {dataSource-1} init error +java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up. + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110) + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89) + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63) + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73) + at com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:903) + at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:828) + at com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:453) + at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246) + at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198) + at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1644) + at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1710) + at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:923) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.lang.reflect.Method.invoke(Method.java:498) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1912) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1854) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1782) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:602) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) + at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:887) + at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791) + at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:541) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1334) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1177) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:564) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1501) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1399) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:657) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) + at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1413) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:657) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) + at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1413) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:944) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:144) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:782) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:774) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:339) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1340) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1329) + at com.meishu.MeishuApplication.main(MeishuApplication.java:20) +Caused by: com.mysql.cj.exceptions.CJException: Unknown database 'kpk' + at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) + at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) + at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) + at java.lang.reflect.Constructor.newInstance(Constructor.java:423) + at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61) + at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:105) + at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:151) + at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:129) + at com.mysql.cj.protocol.a.NativeProtocol.checkErrorMessage(NativeProtocol.java:794) + at com.mysql.cj.protocol.a.NativeProtocol.checkErrorMessage(NativeProtocol.java:719) + at com.mysql.cj.protocol.a.NativeProtocol.checkErrorMessage(NativeProtocol.java:687) + at com.mysql.cj.protocol.a.NativeProtocol.checkErrorMessage(NativeProtocol.java:136) + at com.mysql.cj.protocol.a.NativeAuthenticationProvider.proceedHandshakeWithPluggableAuthentication(NativeAuthenticationProvider.java:469) + at com.mysql.cj.protocol.a.NativeAuthenticationProvider.connect(NativeAuthenticationProvider.java:174) + at com.mysql.cj.protocol.a.NativeProtocol.connect(NativeProtocol.java:1350) + at com.mysql.cj.NativeSession.connect(NativeSession.java:157) + at com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:847) + ... 84 common frames omitted +2023-08-01 11:39:05,313 [main] ERROR org.springframework.boot.SpringApplication:871 - Application run failed +org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'webConfig': Unsatisfied dependency expressed through field 'authenticationInterceptor'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'authenticationInterceptor': Unsatisfied dependency expressed through field 'administerMapper'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'administerMapper' defined in file [D:\code\kaopingxitong\target\classes\com\meishu\mapper\AdministerMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [com/alibaba/druid/spring/boot/autoconfigure/DruidDataSourceAutoConfigure.class]: Invocation of init method failed; nested exception is java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up. + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:660) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) + at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1413) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:944) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:144) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:782) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:774) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:339) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1340) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1329) + at com.meishu.MeishuApplication.main(MeishuApplication.java:20) +Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'authenticationInterceptor': Unsatisfied dependency expressed through field 'administerMapper'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'administerMapper' defined in file [D:\code\kaopingxitong\target\classes\com\meishu\mapper\AdministerMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [com/alibaba/druid/spring/boot/autoconfigure/DruidDataSourceAutoConfigure.class]: Invocation of init method failed; nested exception is java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up. + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:660) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) + at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1413) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:657) + ... 21 common frames omitted +Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'administerMapper' defined in file [D:\code\kaopingxitong\target\classes\com\meishu\mapper\AdministerMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [com/alibaba/druid/spring/boot/autoconfigure/DruidDataSourceAutoConfigure.class]: Invocation of init method failed; nested exception is java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up. + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1516) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1399) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:657) + ... 35 common frames omitted +Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [com/alibaba/druid/spring/boot/autoconfigure/DruidDataSourceAutoConfigure.class]: Invocation of init method failed; nested exception is java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up. + at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:800) + at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:541) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1334) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1177) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:564) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1501) + ... 46 common frames omitted +Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [com/alibaba/druid/spring/boot/autoconfigure/DruidDataSourceAutoConfigure.class]: Invocation of init method failed; nested exception is java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up. + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1786) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:602) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) + at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:887) + at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791) + ... 59 common frames omitted +Caused by: java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up. + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110) + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89) + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63) + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73) + at com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:903) + at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:828) + at com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:453) + at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246) + at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198) + at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1644) + at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1710) + at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:923) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.lang.reflect.Method.invoke(Method.java:498) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1912) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1854) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1782) + ... 70 common frames omitted +Caused by: com.mysql.cj.exceptions.CJException: Unknown database 'kpk' + at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) + at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) + at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) + at java.lang.reflect.Constructor.newInstance(Constructor.java:423) + at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61) + at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:105) + at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:151) + at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:129) + at com.mysql.cj.protocol.a.NativeProtocol.checkErrorMessage(NativeProtocol.java:794) + at com.mysql.cj.protocol.a.NativeProtocol.checkErrorMessage(NativeProtocol.java:719) + at com.mysql.cj.protocol.a.NativeProtocol.checkErrorMessage(NativeProtocol.java:687) + at com.mysql.cj.protocol.a.NativeProtocol.checkErrorMessage(NativeProtocol.java:136) + at com.mysql.cj.protocol.a.NativeAuthenticationProvider.proceedHandshakeWithPluggableAuthentication(NativeAuthenticationProvider.java:469) + at com.mysql.cj.protocol.a.NativeAuthenticationProvider.connect(NativeAuthenticationProvider.java:174) + at com.mysql.cj.protocol.a.NativeProtocol.connect(NativeProtocol.java:1350) + at com.mysql.cj.NativeSession.connect(NativeSession.java:157) + at com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:847) + ... 84 common frames omitted +2023-08-01 11:39:37,496 [main] ERROR com.alibaba.druid.pool.DruidDataSource:927 - init datasource error, url: jdbc:mysql://localhost:3306/kpk?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8 +java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up. + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110) + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89) + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63) + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73) + at com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:903) + at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:828) + at com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:453) + at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246) + at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198) + at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1644) + at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1710) + at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:923) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.lang.reflect.Method.invoke(Method.java:498) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1912) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1854) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1782) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:602) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) + at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:887) + at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791) + at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:541) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1334) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1177) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:564) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1501) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1399) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:657) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) + at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1413) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:657) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) + at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1413) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:944) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:144) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:782) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:774) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:339) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1340) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1329) + at com.meishu.MeishuApplication.main(MeishuApplication.java:20) +Caused by: com.mysql.cj.exceptions.CJException: Unknown database 'kpk' + at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) + at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) + at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) + at java.lang.reflect.Constructor.newInstance(Constructor.java:423) + at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61) + at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:105) + at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:151) + at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:129) + at com.mysql.cj.protocol.a.NativeProtocol.checkErrorMessage(NativeProtocol.java:794) + at com.mysql.cj.protocol.a.NativeProtocol.checkErrorMessage(NativeProtocol.java:719) + at com.mysql.cj.protocol.a.NativeProtocol.checkErrorMessage(NativeProtocol.java:687) + at com.mysql.cj.protocol.a.NativeProtocol.checkErrorMessage(NativeProtocol.java:136) + at com.mysql.cj.protocol.a.NativeAuthenticationProvider.proceedHandshakeWithPluggableAuthentication(NativeAuthenticationProvider.java:469) + at com.mysql.cj.protocol.a.NativeAuthenticationProvider.connect(NativeAuthenticationProvider.java:174) + at com.mysql.cj.protocol.a.NativeProtocol.connect(NativeProtocol.java:1350) + at com.mysql.cj.NativeSession.connect(NativeSession.java:157) + at com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:847) + ... 84 common frames omitted +2023-08-01 11:39:37,501 [main] ERROR com.alibaba.druid.pool.DruidDataSource:969 - {dataSource-1} init error +java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up. + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110) + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89) + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63) + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73) + at com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:903) + at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:828) + at com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:453) + at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246) + at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198) + at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1644) + at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1710) + at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:923) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.lang.reflect.Method.invoke(Method.java:498) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1912) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1854) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1782) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:602) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) + at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:887) + at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791) + at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:541) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1334) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1177) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:564) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1501) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1399) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:657) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) + at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1413) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:657) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) + at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1413) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:944) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:144) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:782) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:774) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:339) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1340) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1329) + at com.meishu.MeishuApplication.main(MeishuApplication.java:20) +Caused by: com.mysql.cj.exceptions.CJException: Unknown database 'kpk' + at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) + at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) + at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) + at java.lang.reflect.Constructor.newInstance(Constructor.java:423) + at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61) + at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:105) + at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:151) + at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:129) + at com.mysql.cj.protocol.a.NativeProtocol.checkErrorMessage(NativeProtocol.java:794) + at com.mysql.cj.protocol.a.NativeProtocol.checkErrorMessage(NativeProtocol.java:719) + at com.mysql.cj.protocol.a.NativeProtocol.checkErrorMessage(NativeProtocol.java:687) + at com.mysql.cj.protocol.a.NativeProtocol.checkErrorMessage(NativeProtocol.java:136) + at com.mysql.cj.protocol.a.NativeAuthenticationProvider.proceedHandshakeWithPluggableAuthentication(NativeAuthenticationProvider.java:469) + at com.mysql.cj.protocol.a.NativeAuthenticationProvider.connect(NativeAuthenticationProvider.java:174) + at com.mysql.cj.protocol.a.NativeProtocol.connect(NativeProtocol.java:1350) + at com.mysql.cj.NativeSession.connect(NativeSession.java:157) + at com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:847) + ... 84 common frames omitted +2023-08-01 11:39:37,527 [main] ERROR org.springframework.boot.SpringApplication:871 - Application run failed +org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'webConfig': Unsatisfied dependency expressed through field 'authenticationInterceptor'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'authenticationInterceptor': Unsatisfied dependency expressed through field 'administerMapper'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'administerMapper' defined in file [D:\code\kaopingxitong\target\classes\com\meishu\mapper\AdministerMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [com/alibaba/druid/spring/boot/autoconfigure/DruidDataSourceAutoConfigure.class]: Invocation of init method failed; nested exception is java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up. + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:660) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) + at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1413) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:944) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:144) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:782) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:774) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:339) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1340) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1329) + at com.meishu.MeishuApplication.main(MeishuApplication.java:20) +Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'authenticationInterceptor': Unsatisfied dependency expressed through field 'administerMapper'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'administerMapper' defined in file [D:\code\kaopingxitong\target\classes\com\meishu\mapper\AdministerMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [com/alibaba/druid/spring/boot/autoconfigure/DruidDataSourceAutoConfigure.class]: Invocation of init method failed; nested exception is java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up. + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:660) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) + at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1413) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:657) + ... 21 common frames omitted +Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'administerMapper' defined in file [D:\code\kaopingxitong\target\classes\com\meishu\mapper\AdministerMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [com/alibaba/druid/spring/boot/autoconfigure/DruidDataSourceAutoConfigure.class]: Invocation of init method failed; nested exception is java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up. + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1516) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1399) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:657) + ... 35 common frames omitted +Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [com/alibaba/druid/spring/boot/autoconfigure/DruidDataSourceAutoConfigure.class]: Invocation of init method failed; nested exception is java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up. + at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:800) + at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:541) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1334) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1177) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:564) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1501) + ... 46 common frames omitted +Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [com/alibaba/druid/spring/boot/autoconfigure/DruidDataSourceAutoConfigure.class]: Invocation of init method failed; nested exception is java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up. + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1786) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:602) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) + at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:887) + at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791) + ... 59 common frames omitted +Caused by: java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up. + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110) + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89) + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63) + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73) + at com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:903) + at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:828) + at com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:453) + at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246) + at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198) + at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1644) + at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1710) + at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:923) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.lang.reflect.Method.invoke(Method.java:498) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1912) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1854) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1782) + ... 70 common frames omitted +Caused by: com.mysql.cj.exceptions.CJException: Unknown database 'kpk' + at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) + at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) + at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) + at java.lang.reflect.Constructor.newInstance(Constructor.java:423) + at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61) + at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:105) + at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:151) + at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:129) + at com.mysql.cj.protocol.a.NativeProtocol.checkErrorMessage(NativeProtocol.java:794) + at com.mysql.cj.protocol.a.NativeProtocol.checkErrorMessage(NativeProtocol.java:719) + at com.mysql.cj.protocol.a.NativeProtocol.checkErrorMessage(NativeProtocol.java:687) + at com.mysql.cj.protocol.a.NativeProtocol.checkErrorMessage(NativeProtocol.java:136) + at com.mysql.cj.protocol.a.NativeAuthenticationProvider.proceedHandshakeWithPluggableAuthentication(NativeAuthenticationProvider.java:469) + at com.mysql.cj.protocol.a.NativeAuthenticationProvider.connect(NativeAuthenticationProvider.java:174) + at com.mysql.cj.protocol.a.NativeProtocol.connect(NativeProtocol.java:1350) + at com.mysql.cj.NativeSession.connect(NativeSession.java:157) + at com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:847) + ... 84 common frames omitted +2023-08-01 11:40:48,419 [main] ERROR com.alibaba.druid.pool.DruidDataSource:927 - init datasource error, url: jdbc:mysql://192.168.31.169:3306/kpk?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8 +java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up. + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110) + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89) + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63) + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73) + at com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:903) + at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:828) + at com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:453) + at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246) + at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198) + at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1644) + at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1710) + at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:923) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.lang.reflect.Method.invoke(Method.java:498) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1912) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1854) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1782) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:602) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) + at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:887) + at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791) + at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:541) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1334) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1177) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:564) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1501) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1399) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:657) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) + at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1413) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:657) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) + at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1413) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:944) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:144) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:782) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:774) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:339) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1340) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1329) + at com.meishu.MeishuApplication.main(MeishuApplication.java:20) +Caused by: com.mysql.cj.exceptions.CJException: null, message from server: "Host 'DESKTOP-HT5N4QL' is not allowed to connect to this MySQL server" + at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) + at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) + at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) + at java.lang.reflect.Constructor.newInstance(Constructor.java:423) + at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61) + at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:105) + at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:151) + at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:129) + at com.mysql.cj.protocol.a.NativeProtocol.rejectProtocol(NativeProtocol.java:373) + at com.mysql.cj.protocol.a.NativeProtocol.readServerCapabilities(NativeProtocol.java:502) + at com.mysql.cj.protocol.a.NativeProtocol.beforeHandshake(NativeProtocol.java:385) + at com.mysql.cj.protocol.a.NativeProtocol.connect(NativeProtocol.java:1348) + at com.mysql.cj.NativeSession.connect(NativeSession.java:157) + at com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:847) + ... 84 common frames omitted +2023-08-01 11:40:48,424 [main] ERROR com.alibaba.druid.pool.DruidDataSource:969 - {dataSource-1} init error +java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up. + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110) + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89) + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63) + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73) + at com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:903) + at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:828) + at com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:453) + at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246) + at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198) + at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1644) + at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1710) + at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:923) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.lang.reflect.Method.invoke(Method.java:498) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1912) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1854) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1782) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:602) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) + at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:887) + at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791) + at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:541) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1334) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1177) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:564) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1501) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1399) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:657) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) + at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1413) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:657) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) + at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1413) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:944) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:144) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:782) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:774) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:339) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1340) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1329) + at com.meishu.MeishuApplication.main(MeishuApplication.java:20) +Caused by: com.mysql.cj.exceptions.CJException: null, message from server: "Host 'DESKTOP-HT5N4QL' is not allowed to connect to this MySQL server" + at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) + at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) + at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) + at java.lang.reflect.Constructor.newInstance(Constructor.java:423) + at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61) + at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:105) + at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:151) + at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:129) + at com.mysql.cj.protocol.a.NativeProtocol.rejectProtocol(NativeProtocol.java:373) + at com.mysql.cj.protocol.a.NativeProtocol.readServerCapabilities(NativeProtocol.java:502) + at com.mysql.cj.protocol.a.NativeProtocol.beforeHandshake(NativeProtocol.java:385) + at com.mysql.cj.protocol.a.NativeProtocol.connect(NativeProtocol.java:1348) + at com.mysql.cj.NativeSession.connect(NativeSession.java:157) + at com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:847) + ... 84 common frames omitted +2023-08-01 11:40:48,449 [main] ERROR org.springframework.boot.SpringApplication:871 - Application run failed +org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'webConfig': Unsatisfied dependency expressed through field 'authenticationInterceptor'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'authenticationInterceptor': Unsatisfied dependency expressed through field 'administerMapper'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'administerMapper' defined in file [D:\code\kaopingxitong\target\classes\com\meishu\mapper\AdministerMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [com/alibaba/druid/spring/boot/autoconfigure/DruidDataSourceAutoConfigure.class]: Invocation of init method failed; nested exception is java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up. + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:660) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) + at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1413) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:944) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:144) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:782) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:774) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:339) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1340) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1329) + at com.meishu.MeishuApplication.main(MeishuApplication.java:20) +Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'authenticationInterceptor': Unsatisfied dependency expressed through field 'administerMapper'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'administerMapper' defined in file [D:\code\kaopingxitong\target\classes\com\meishu\mapper\AdministerMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [com/alibaba/druid/spring/boot/autoconfigure/DruidDataSourceAutoConfigure.class]: Invocation of init method failed; nested exception is java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up. + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:660) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) + at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1413) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:657) + ... 21 common frames omitted +Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'administerMapper' defined in file [D:\code\kaopingxitong\target\classes\com\meishu\mapper\AdministerMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [com/alibaba/druid/spring/boot/autoconfigure/DruidDataSourceAutoConfigure.class]: Invocation of init method failed; nested exception is java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up. + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1516) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1399) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:657) + ... 35 common frames omitted +Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [com/alibaba/druid/spring/boot/autoconfigure/DruidDataSourceAutoConfigure.class]: Invocation of init method failed; nested exception is java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up. + at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:800) + at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:541) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1334) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1177) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:564) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1501) + ... 46 common frames omitted +Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [com/alibaba/druid/spring/boot/autoconfigure/DruidDataSourceAutoConfigure.class]: Invocation of init method failed; nested exception is java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up. + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1786) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:602) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) + at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:887) + at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791) + ... 59 common frames omitted +Caused by: java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up. + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110) + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89) + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63) + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73) + at com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:903) + at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:828) + at com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:453) + at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246) + at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198) + at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1644) + at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1710) + at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:923) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.lang.reflect.Method.invoke(Method.java:498) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1912) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1854) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1782) + ... 70 common frames omitted +Caused by: com.mysql.cj.exceptions.CJException: null, message from server: "Host 'DESKTOP-HT5N4QL' is not allowed to connect to this MySQL server" + at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) + at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) + at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) + at java.lang.reflect.Constructor.newInstance(Constructor.java:423) + at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61) + at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:105) + at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:151) + at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:129) + at com.mysql.cj.protocol.a.NativeProtocol.rejectProtocol(NativeProtocol.java:373) + at com.mysql.cj.protocol.a.NativeProtocol.readServerCapabilities(NativeProtocol.java:502) + at com.mysql.cj.protocol.a.NativeProtocol.beforeHandshake(NativeProtocol.java:385) + at com.mysql.cj.protocol.a.NativeProtocol.connect(NativeProtocol.java:1348) + at com.mysql.cj.NativeSession.connect(NativeSession.java:157) + at com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:847) + ... 84 common frames omitted +2023-08-01 14:02:24,518 [http-nio-23458-exec-4] ERROR com.meishu.common.exception.GlobalExceptionHandler:114 - path:/paperDict/submit +2023-08-01 14:02:24,520 [http-nio-23458-exec-4] ERROR com.meishu.common.exception.GlobalExceptionHandler:115 - ---- error message: ---java.lang.NullPointerException +2023-08-01 14:10:57,873 [http-nio-23458-exec-1] ERROR com.meishu.common.exception.GlobalExceptionHandler:114 - path:/paperDict/submit +2023-08-01 14:10:57,873 [http-nio-23458-exec-1] ERROR com.meishu.common.exception.GlobalExceptionHandler:115 - ---- error message: ---java.lang.NullPointerException diff --git a/logs/springboot-logback-info.log b/logs/springboot-logback-info.log new file mode 100644 index 0000000..5b9a659 --- /dev/null +++ b/logs/springboot-logback-info.log @@ -0,0 +1,34 @@ +2023-08-25 14:54:16,405 [main] INFO org.springframework.boot.web.embedded.tomcat.TomcatWebServer:108 - Tomcat initialized with port(s): 23458 (http) +2023-08-25 14:54:16,426 [main] INFO org.apache.coyote.http11.Http11NioProtocol:173 - Initializing ProtocolHandler ["http-nio-23458"] +2023-08-25 14:54:16,427 [main] INFO org.apache.catalina.core.StandardService:173 - Starting service [Tomcat] +2023-08-25 14:54:16,428 [main] INFO org.apache.catalina.core.StandardEngine:173 - Starting Servlet engine: [Apache Tomcat/9.0.45] +2023-08-25 14:54:16,559 [main] INFO org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/]:173 - Initializing Spring embedded WebApplicationContext +2023-08-25 14:54:16,560 [main] INFO org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext:289 - Root WebApplicationContext: initialization completed in 2039 ms +2023-08-25 14:54:16,814 [main] INFO com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure:56 - Init DruidDataSource +2023-08-25 14:54:19,228 [main] INFO com.alibaba.druid.pool.DruidDataSource:994 - {dataSource-1} inited +2023-08-25 14:54:30,306 [main] INFO springfox.documentation.spring.web.PropertySourcedRequestMappingHandlerMapping:69 - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)] +2023-08-25 14:54:30,481 [main] INFO org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor:181 - Initializing ExecutorService 'applicationTaskExecutor' +2023-08-25 14:54:30,875 [main] INFO org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler:181 - Initializing ExecutorService 'taskScheduler' +2023-08-25 14:54:30,944 [main] INFO org.apache.coyote.http11.Http11NioProtocol:173 - Starting ProtocolHandler ["http-nio-23458"] +2023-08-25 14:54:30,972 [main] INFO org.springframework.boot.web.embedded.tomcat.TomcatWebServer:220 - Tomcat started on port(s): 23458 (http) with context path '' +2023-08-25 14:54:30,974 [main] INFO springfox.documentation.spring.web.plugins.DocumentationPluginsBootstrapper:160 - Context refreshed +2023-08-25 14:54:31,004 [main] INFO springfox.documentation.spring.web.plugins.DocumentationPluginsBootstrapper:163 - Found 1 custom documentation plugin(s) +2023-08-25 14:54:31,072 [main] INFO springfox.documentation.spring.web.scanners.ApiListingReferenceScanner:41 - Scanning for api listing references +2023-08-25 14:54:31,301 [main] INFO springfox.documentation.spring.web.readers.operation.CachingOperationNameGenerator:40 - Generating unique operation named: examsUsingPOST_1 +2023-08-25 14:54:31,357 [main] INFO springfox.documentation.spring.web.readers.operation.CachingOperationNameGenerator:40 - Generating unique operation named: exercisesUsingPOST_1 +2023-08-25 14:54:31,365 [main] INFO springfox.documentation.spring.web.readers.operation.CachingOperationNameGenerator:40 - Generating unique operation named: loginUsingPOST_1 +2023-08-25 14:55:40,320 [http-nio-23458-exec-1] INFO org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/]:173 - Initializing Spring DispatcherServlet 'dispatcherServlet' +2023-08-25 14:55:40,320 [http-nio-23458-exec-1] INFO org.springframework.web.servlet.DispatcherServlet:525 - Initializing Servlet 'dispatcherServlet' +2023-08-25 14:55:40,323 [http-nio-23458-exec-1] INFO org.springframework.web.servlet.DispatcherServlet:547 - Completed initialization in 2 ms +2023-08-25 14:57:21,960 [SpringContextShutdownHook] INFO org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler:218 - Shutting down ExecutorService 'taskScheduler' +2023-08-25 14:57:21,963 [SpringContextShutdownHook] INFO org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor:218 - Shutting down ExecutorService 'applicationTaskExecutor' +2023-08-25 14:57:21,970 [SpringContextShutdownHook] INFO com.alibaba.druid.pool.DruidDataSource:2029 - {dataSource-1} closing ... +2023-08-25 14:57:21,981 [SpringContextShutdownHook] INFO com.alibaba.druid.pool.DruidDataSource:2101 - {dataSource-1} closed +2023-08-25 14:59:02,619 [main] INFO org.springframework.boot.web.embedded.tomcat.TomcatWebServer:108 - Tomcat initialized with port(s): 23458 (http) +2023-08-25 14:59:02,631 [main] INFO org.apache.coyote.http11.Http11NioProtocol:173 - Initializing ProtocolHandler ["http-nio-23458"] +2023-08-25 14:59:02,632 [main] INFO org.apache.catalina.core.StandardService:173 - Starting service [Tomcat] +2023-08-25 14:59:02,632 [main] INFO org.apache.catalina.core.StandardEngine:173 - Starting Servlet engine: [Apache Tomcat/9.0.45] +2023-08-25 14:59:02,731 [main] INFO org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/]:173 - Initializing Spring embedded WebApplicationContext +2023-08-25 14:59:02,731 [main] INFO org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext:289 - Root WebApplicationContext: initialization completed in 1914 ms +2023-08-25 14:59:02,914 [main] INFO com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure:56 - Init DruidDataSource +2023-08-25 14:59:05,744 [main] INFO com.alibaba.druid.pool.DruidDataSource:994 - {dataSource-1} inited diff --git a/logs/springboot-logback/error/2022-09-20-0.log.gz b/logs/springboot-logback/error/2022-09-20-0.log.gz new file mode 100644 index 0000000..7409836 Binary files /dev/null and b/logs/springboot-logback/error/2022-09-20-0.log.gz differ diff --git a/logs/springboot-logback/error/2022-09-22-0.log.gz b/logs/springboot-logback/error/2022-09-22-0.log.gz new file mode 100644 index 0000000..68ecc43 Binary files /dev/null and b/logs/springboot-logback/error/2022-09-22-0.log.gz differ diff --git a/logs/springboot-logback/error/2022-10-08-0.log.gz b/logs/springboot-logback/error/2022-10-08-0.log.gz new file mode 100644 index 0000000..cadd08a Binary files /dev/null and b/logs/springboot-logback/error/2022-10-08-0.log.gz differ diff --git a/logs/springboot-logback/error/2023-06-23-0.log.gz b/logs/springboot-logback/error/2023-06-23-0.log.gz new file mode 100644 index 0000000..8d59e57 Binary files /dev/null and b/logs/springboot-logback/error/2023-06-23-0.log.gz differ diff --git a/logs/springboot-logback/error/2023-06-26-0.log.gz b/logs/springboot-logback/error/2023-06-26-0.log.gz new file mode 100644 index 0000000..602ed94 Binary files /dev/null and b/logs/springboot-logback/error/2023-06-26-0.log.gz differ diff --git a/logs/springboot-logback/error/2023-06-28-0.log.gz b/logs/springboot-logback/error/2023-06-28-0.log.gz new file mode 100644 index 0000000..01d1f6e Binary files /dev/null and b/logs/springboot-logback/error/2023-06-28-0.log.gz differ diff --git a/logs/springboot-logback/error/2023-06-29-0.log.gz b/logs/springboot-logback/error/2023-06-29-0.log.gz new file mode 100644 index 0000000..ab0ef37 Binary files /dev/null and b/logs/springboot-logback/error/2023-06-29-0.log.gz differ diff --git a/logs/springboot-logback/error/2023-06-30-0.log.gz b/logs/springboot-logback/error/2023-06-30-0.log.gz new file mode 100644 index 0000000..2745f65 Binary files /dev/null and b/logs/springboot-logback/error/2023-06-30-0.log.gz differ diff --git a/logs/springboot-logback/error/2023-07-14-0.log.gz b/logs/springboot-logback/error/2023-07-14-0.log.gz new file mode 100644 index 0000000..637f117 Binary files /dev/null and b/logs/springboot-logback/error/2023-07-14-0.log.gz differ diff --git a/logs/springboot-logback/error/2023-07-17-0.log.gz b/logs/springboot-logback/error/2023-07-17-0.log.gz new file mode 100644 index 0000000..40041e3 Binary files /dev/null and b/logs/springboot-logback/error/2023-07-17-0.log.gz differ diff --git a/logs/springboot-logback/error/2023-07-18-0.log.gz b/logs/springboot-logback/error/2023-07-18-0.log.gz new file mode 100644 index 0000000..25a4e03 Binary files /dev/null and b/logs/springboot-logback/error/2023-07-18-0.log.gz differ diff --git a/logs/springboot-logback/error/2023-07-20-0.log.gz b/logs/springboot-logback/error/2023-07-20-0.log.gz new file mode 100644 index 0000000..aadc73d Binary files /dev/null and b/logs/springboot-logback/error/2023-07-20-0.log.gz differ diff --git a/logs/springboot-logback/info/2022-11-15-0.log.gz b/logs/springboot-logback/info/2022-11-15-0.log.gz new file mode 100644 index 0000000..933b2d2 Binary files /dev/null and b/logs/springboot-logback/info/2022-11-15-0.log.gz differ diff --git a/logs/springboot-logback/info/2023-07-03-0.log.gz b/logs/springboot-logback/info/2023-07-03-0.log.gz new file mode 100644 index 0000000..9642234 Binary files /dev/null and b/logs/springboot-logback/info/2023-07-03-0.log.gz differ diff --git a/logs/springboot-logback/info/2023-07-04-0.log.gz b/logs/springboot-logback/info/2023-07-04-0.log.gz new file mode 100644 index 0000000..04a9d34 Binary files /dev/null and b/logs/springboot-logback/info/2023-07-04-0.log.gz differ diff --git a/logs/springboot-logback/info/2023-07-10-0.log.gz b/logs/springboot-logback/info/2023-07-10-0.log.gz new file mode 100644 index 0000000..5f17604 Binary files /dev/null and b/logs/springboot-logback/info/2023-07-10-0.log.gz differ diff --git a/logs/springboot-logback/info/2023-07-11-0.log.gz b/logs/springboot-logback/info/2023-07-11-0.log.gz new file mode 100644 index 0000000..1030027 Binary files /dev/null and b/logs/springboot-logback/info/2023-07-11-0.log.gz differ diff --git a/logs/springboot-logback/info/2023-07-12-0.log.gz b/logs/springboot-logback/info/2023-07-12-0.log.gz new file mode 100644 index 0000000..3f9f1ef Binary files /dev/null and b/logs/springboot-logback/info/2023-07-12-0.log.gz differ diff --git a/logs/springboot-logback/info/2023-07-13-0.log.gz b/logs/springboot-logback/info/2023-07-13-0.log.gz new file mode 100644 index 0000000..b3c28ca Binary files /dev/null and b/logs/springboot-logback/info/2023-07-13-0.log.gz differ diff --git a/logs/springboot-logback/info/2023-07-14-0.log.gz b/logs/springboot-logback/info/2023-07-14-0.log.gz new file mode 100644 index 0000000..7716bb7 Binary files /dev/null and b/logs/springboot-logback/info/2023-07-14-0.log.gz differ diff --git a/logs/springboot-logback/info/2023-07-17-0.log.gz b/logs/springboot-logback/info/2023-07-17-0.log.gz new file mode 100644 index 0000000..f69195f Binary files /dev/null and b/logs/springboot-logback/info/2023-07-17-0.log.gz differ diff --git a/logs/springboot-logback/info/2023-07-18-0.log.gz b/logs/springboot-logback/info/2023-07-18-0.log.gz new file mode 100644 index 0000000..698ef8f Binary files /dev/null and b/logs/springboot-logback/info/2023-07-18-0.log.gz differ diff --git a/logs/springboot-logback/info/2023-07-19-0.log.gz b/logs/springboot-logback/info/2023-07-19-0.log.gz new file mode 100644 index 0000000..eb0ea89 Binary files /dev/null and b/logs/springboot-logback/info/2023-07-19-0.log.gz differ diff --git a/logs/springboot-logback/info/2023-07-20-0.log.gz b/logs/springboot-logback/info/2023-07-20-0.log.gz new file mode 100644 index 0000000..c60e041 Binary files /dev/null and b/logs/springboot-logback/info/2023-07-20-0.log.gz differ diff --git a/logs/springboot-logback/info/2023-07-21-0.log.gz b/logs/springboot-logback/info/2023-07-21-0.log.gz new file mode 100644 index 0000000..7d667e0 Binary files /dev/null and b/logs/springboot-logback/info/2023-07-21-0.log.gz differ diff --git a/logs/springboot-logback/info/2023-07-28-0.log.gz b/logs/springboot-logback/info/2023-07-28-0.log.gz new file mode 100644 index 0000000..338fa55 Binary files /dev/null and b/logs/springboot-logback/info/2023-07-28-0.log.gz differ diff --git a/logs/springboot-logback/info/2023-08-01-0.log.gz b/logs/springboot-logback/info/2023-08-01-0.log.gz new file mode 100644 index 0000000..475ee9c Binary files /dev/null and b/logs/springboot-logback/info/2023-08-01-0.log.gz differ diff --git a/mvnw b/mvnw new file mode 100644 index 0000000..a16b543 --- /dev/null +++ b/mvnw @@ -0,0 +1,310 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# ---------------------------------------------------------------------------- + +# ---------------------------------------------------------------------------- +# Maven Start Up Batch script +# +# Required ENV vars: +# ------------------ +# JAVA_HOME - location of a JDK home dir +# +# Optional ENV vars +# ----------------- +# M2_HOME - location of maven2's installed home dir +# MAVEN_OPTS - parameters passed to the Java VM when running Maven +# e.g. to debug Maven itself, use +# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +# MAVEN_SKIP_RC - flag to disable loading of mavenrc files +# ---------------------------------------------------------------------------- + +if [ -z "$MAVEN_SKIP_RC" ] ; then + + if [ -f /etc/mavenrc ] ; then + . /etc/mavenrc + fi + + if [ -f "$HOME/.mavenrc" ] ; then + . "$HOME/.mavenrc" + fi + +fi + +# OS specific support. $var _must_ be set to either true or false. +cygwin=false; +darwin=false; +mingw=false +case "`uname`" in + CYGWIN*) cygwin=true ;; + MINGW*) mingw=true;; + Darwin*) darwin=true + # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home + # See https://developer.apple.com/library/mac/qa/qa1170/_index.html + if [ -z "$JAVA_HOME" ]; then + if [ -x "/usr/libexec/java_home" ]; then + export JAVA_HOME="`/usr/libexec/java_home`" + else + export JAVA_HOME="/Library/Java/Home" + fi + fi + ;; +esac + +if [ -z "$JAVA_HOME" ] ; then + if [ -r /etc/gentoo-release ] ; then + JAVA_HOME=`java-config --jre-home` + fi +fi + +if [ -z "$M2_HOME" ] ; then + ## resolve links - $0 may be a link to maven's home + PRG="$0" + + # need this for relative symlinks + while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG="`dirname "$PRG"`/$link" + fi + done + + saveddir=`pwd` + + M2_HOME=`dirname "$PRG"`/.. + + # make it fully qualified + M2_HOME=`cd "$M2_HOME" && pwd` + + cd "$saveddir" + # echo Using m2 at $M2_HOME +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --unix "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Mingw, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$M2_HOME" ] && + M2_HOME="`(cd "$M2_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="`which javac`" + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + if $darwin ; then + javaHome="`dirname \"$javaExecutable\"`" + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + else + javaExecutable="`readlink -f \"$javaExecutable\"`" + fi + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="`which java`" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + + if [ -z "$1" ] + then + echo "Path not specified to find_maven_basedir" + return 1 + fi + + basedir="$1" + wdir="$1" + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + # workaround for JBEAP-8937 (on Solaris 10/Sparc) + if [ -d "${wdir}" ]; then + wdir=`cd "$wdir/.."; pwd` + fi + # end of workaround + done + echo "${basedir}" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + echo "$(tr -s '\n' ' ' < "$1")" + fi +} + +BASE_DIR=`find_maven_basedir "$(pwd)"` +if [ -z "$BASE_DIR" ]; then + exit 1; +fi + +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found .mvn/wrapper/maven-wrapper.jar" + fi +else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." + fi + if [ -n "$MVNW_REPOURL" ]; then + jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + else + jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + fi + while IFS="=" read key value; do + case "$key" in (wrapperUrl) jarUrl="$value"; break ;; + esac + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Downloading from: $jarUrl" + fi + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" + if $cygwin; then + wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"` + fi + + if command -v wget > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found wget ... using wget" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + wget "$jarUrl" -O "$wrapperJarPath" + else + wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" + fi + elif command -v curl > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found curl ... using curl" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + curl -o "$wrapperJarPath" "$jarUrl" -f + else + curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f + fi + + else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Falling back to using Java to download" + fi + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + # For Cygwin, switch paths to Windows format before running javac + if $cygwin; then + javaClass=`cygpath --path --windows "$javaClass"` + fi + if [ -e "$javaClass" ]; then + if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Compiling MavenWrapperDownloader.java ..." + fi + # Compiling the Java class + ("$JAVA_HOME/bin/javac" "$javaClass") + fi + if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + # Running the downloader + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Running MavenWrapperDownloader.java ..." + fi + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} +if [ "$MVNW_VERBOSE" = true ]; then + echo $MAVEN_PROJECTBASEDIR +fi +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --path --windows "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` +fi + +# Provide a "standardized" way to retrieve the CLI args that will +# work with both Windows and non-Windows executions. +MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" +export MAVEN_CMD_LINE_ARGS + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +exec "$JAVACMD" \ + $MAVEN_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/mvnw.cmd b/mvnw.cmd new file mode 100644 index 0000000..c8d4337 --- /dev/null +++ b/mvnw.cmd @@ -0,0 +1,182 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM https://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Maven Start Up Batch script +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM M2_HOME - location of maven2's installed home dir +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" +if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + +FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( + IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + if "%MVNW_VERBOSE%" == "true" ( + echo Found %WRAPPER_JAR% + ) +) else ( + if not "%MVNW_REPOURL%" == "" ( + SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + ) + if "%MVNW_VERBOSE%" == "true" ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %DOWNLOAD_URL% + ) + + powershell -Command "&{"^ + "$webclient = new-object System.Net.WebClient;"^ + "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ + "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ + "}"^ + "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^ + "}" + if "%MVNW_VERBOSE%" == "true" ( + echo Finished downloading %WRAPPER_JAR% + ) +) +@REM End of extension + +@REM Provide a "standardized" way to retrieve the CLI args that will +@REM work with both Windows and non-Windows executions. +set MAVEN_CMD_LINE_ARGS=%* + +%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" +if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%" == "on" pause + +if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% + +exit /B %ERROR_CODE% diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..8bcac48 --- /dev/null +++ b/pom.xml @@ -0,0 +1,213 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 2.4.5 + + + com.meishu + teachaicms + 0.0.1 + teachaicms + Demo project for Spring Boot + + + UTF-8 + UTF-8 + 1.8 + 3.3.0 + 3.3.2 + 2.9.2 + 1.2.58 + 2.0.0 + 3.13 + 1.1.0 + 4.4.6 + 3.9 + 1.1.22 + 5.2.0 + 5.4.1 + 3.10.3 + + + + + org.springframework.boot + spring-boot-starter + + + + org.freemarker + freemarker + + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-aop + + + + com.tencentcloudapi + tencentcloud-sdk-java + 3.1.64 + + + + com.qcloud + vod_api + 2.1.2 + + + + org.springframework.boot + spring-boot-configuration-processor + true + + + + mysql + mysql-connector-java + runtime + + + + com.alibaba + druid-spring-boot-starter + ${druid.version} + + + + org.springframework.boot + spring-boot-starter-jdbc + + + + org.projectlombok + lombok + + + + + com.baomidou + mybatis-plus-boot-starter + ${mybatis-plus.version} + + + + com.baomidou + mybatis-plus-generator + ${generator.version} + + + + com.alibaba + fastjson + ${fastjson.version} + + + + io.springfox + springfox-swagger2 + ${swagger2.version} + + + + io.springfox + springfox-swagger-ui + ${swagger2.version} + + + + com.amdelamar + jhash + ${jhash.version} + + + + org.apache.poi + poi-ooxml + ${poi-ooxml.version} + + + + com.aliyun + aliyun-java-sdk-dysmsapi + ${dysmsapi.version} + + + com.aliyun + aliyun-java-sdk-core + ${sdk-core.version} + + + org.apache.commons + commons-lang3 + ${lang3.version} + + + + com.itextpdf + itext-asian + ${itext-asian.version} + + + + com.itextpdf + itextpdf + ${itextpdf.version} + + + + com.auth0 + java-jwt + ${java-jwt.version} + + + + net.sf.json-lib + json-lib + 2.4 + jdk15 + + + + org.scilab.forge + jlatexmath + 1.0.7 + + + + + com.aliyun.oss + aliyun-sdk-oss + 3.15.0 + + + + + kpk + + + org.springframework.boot + spring-boot-maven-plugin + + + + org.projectlombok + lombok + + + + + + + + diff --git a/src/main/java/com/meishu/MeishuApplication.java b/src/main/java/com/meishu/MeishuApplication.java new file mode 100644 index 0000000..a380b6f --- /dev/null +++ b/src/main/java/com/meishu/MeishuApplication.java @@ -0,0 +1,38 @@ +package com.meishu; + +import com.alibaba.druid.support.http.StatViewServlet; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletRegistrationBean; +import org.springframework.context.annotation.Bean; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@SpringBootApplication +@MapperScan(basePackages = {"com.meishu.mapper"}) +@EnableScheduling +public class MeishuApplication { + + public static void main(String[] args) { + SpringApplication.run(MeishuApplication.class, args); + } + +// @Bean +// public ServletRegistrationBean druidStatViewServlet() { +// //先配置管理后台的servLet,访问的入口为/druid/ +// ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean( +// new StatViewServlet(), "/druid/*"); +// // IP白名单 (没有配置或者为空,则允许所有访问) +// servletRegistrationBean.addInitParameter("allow", "127.0.0.1"); +// // IP黑名单 (存在共同时,deny优先于allow) +// servletRegistrationBean.addInitParameter("deny", ""); +// servletRegistrationBean.addInitParameter("loginUsername", "admin"); +// servletRegistrationBean.addInitParameter("loginPassword", "yhkl1234"); +// servletRegistrationBean.addInitParameter("resetEnable", "false"); +// return servletRegistrationBean; +// } + +} diff --git a/src/main/java/com/meishu/common/ResponseData.java b/src/main/java/com/meishu/common/ResponseData.java new file mode 100644 index 0000000..c80c3a8 --- /dev/null +++ b/src/main/java/com/meishu/common/ResponseData.java @@ -0,0 +1,54 @@ +package com.meishu.common; + +import com.meishu.common.configure.RemoteProperties; +import lombok.Data; +import org.springframework.boot.context.properties.EnableConfigurationProperties; + +/** + * 返回数据 + * + * @author DengMin + * @date 2019/08/27 13:57 + **/ +@Data +@EnableConfigurationProperties(RemoteProperties.class) +public class ResponseData { + + public static ResponseVO generateCreatedResponse(int code) { + return (ResponseVO) ResponseVO.builder() + .code(code) + .message(RemoteProperties.getMessage(code)) + .build(); + } + + public static ResponseVO generateCreatedResponse(int code, String message) { + return (ResponseVO) ResponseVO.builder() + .code(code) + .message(message) + .build(); + } + + public static ResponseVO generateCreatedResponse(int code, T data) { + return (ResponseVO) ResponseVO.builder() + .code(code) + .message(RemoteProperties.getMessage(code)) + .data(data) + .build(); + } + + public static ResponseVO generateCreatedResponse(int code, String message, T data) { + return (ResponseVO) ResponseVO.builder() + .code(code) + .message(message) + .data(data) + .build(); + } + + public static ResponseVO generateCreatedResponse(int code, String message, String path) { + return (ResponseVO) ResponseVO.builder() + .code(code) + .message(message) + .path(path) + .build(); + } +} \ No newline at end of file diff --git a/src/main/java/com/meishu/common/ResponseVO.java b/src/main/java/com/meishu/common/ResponseVO.java new file mode 100644 index 0000000..7cc4173 --- /dev/null +++ b/src/main/java/com/meishu/common/ResponseVO.java @@ -0,0 +1,21 @@ +package com.meishu.common; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class ResponseVO { + + private Integer code; + + private String message; + + private T data; + + private String path; +} \ No newline at end of file diff --git a/src/main/java/com/meishu/common/configure/AliyunSmsProperties.java b/src/main/java/com/meishu/common/configure/AliyunSmsProperties.java new file mode 100644 index 0000000..d47f388 --- /dev/null +++ b/src/main/java/com/meishu/common/configure/AliyunSmsProperties.java @@ -0,0 +1,19 @@ +package com.meishu.common.configure; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Data +@Component +@ConfigurationProperties(prefix = "sms") +public class AliyunSmsProperties { + + private String product; + + private String domain; + + private String accessKeyId; + + private String accessKeySecret; +} diff --git a/src/main/java/com/meishu/common/configure/MybatisPlusConfig.java b/src/main/java/com/meishu/common/configure/MybatisPlusConfig.java new file mode 100644 index 0000000..a95a738 --- /dev/null +++ b/src/main/java/com/meishu/common/configure/MybatisPlusConfig.java @@ -0,0 +1,54 @@ +package com.meishu.common.configure; + +import com.baomidou.mybatisplus.annotation.DbType; +import com.baomidou.mybatisplus.core.config.GlobalConfig; +import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; +import com.meishu.common.handler.MetaHandler; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * @author: tuyp + * @create: 2020-08-12 12:01 + */ +@Configuration +@ConditionalOnClass(value = {PaginationInterceptor.class}) +public class MybatisPlusConfig { + + /** + * 分页 + * @return + */ + @Bean + public PaginationInterceptor paginationInterceptor(){ + PaginationInterceptor paginationInterceptor = new PaginationInterceptor(); + paginationInterceptor.setDialectType(DbType.MYSQL.getDb()); + return paginationInterceptor; + } +// +// /** +// * 打印 sql +// */ +// @Bean +// public PerformanceInterceptor performanceInterceptor() { +// PerformanceInterceptor performanceInterceptor = new PerformanceInterceptor(); +// //格式化sql语句 +// Properties properties = new Properties(); +// properties.setProperty("format", "false"); +// performanceInterceptor.setProperties(properties); +// return performanceInterceptor; +// } + + /** + * 自动填充功能 + * @return + */ + @Bean + public GlobalConfig globalConfig() { + GlobalConfig globalConfig = new GlobalConfig(); + globalConfig.setMetaObjectHandler(new MetaHandler()); + return globalConfig; + } + +} diff --git a/src/main/java/com/meishu/common/configure/RemoteProperties.java b/src/main/java/com/meishu/common/configure/RemoteProperties.java new file mode 100644 index 0000000..043c5e9 --- /dev/null +++ b/src/main/java/com/meishu/common/configure/RemoteProperties.java @@ -0,0 +1,36 @@ +package com.meishu.common.configure; + +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.PropertySource; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.Map; + +/** + *

+ * 读取状态码 + *

+ * + * @author DengMin + * @date Created in 2020/08/24 + */ +@Component +@ConfigurationProperties(prefix = "meishu") +@PropertySource(value = "classpath:code.properties", encoding = "UTF-8") +public class RemoteProperties { + + private static Map codeMessage = new HashMap<>(); + + public static String getMessage(Integer code) { + return codeMessage.get(code); + } + + public Map getCodeMessage() { + return codeMessage; + } + + public void setCodeMessage(Map codeMessage) { + RemoteProperties.codeMessage = codeMessage; + } +} \ No newline at end of file diff --git a/src/main/java/com/meishu/common/configure/RestTemplateConfig.java b/src/main/java/com/meishu/common/configure/RestTemplateConfig.java new file mode 100644 index 0000000..5f9887c --- /dev/null +++ b/src/main/java/com/meishu/common/configure/RestTemplateConfig.java @@ -0,0 +1,31 @@ +package com.meishu.common.configure; + +import org.springframework.context.annotation.Bean; +import org.springframework.http.MediaType; +import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; +import org.springframework.stereotype.Component; +import org.springframework.web.client.RestTemplate; + +import java.util.ArrayList; +import java.util.List; + +@Component +public class RestTemplateConfig { + + @Bean + public RestTemplate restTemplate() { + RestTemplate restTemplate = new RestTemplate(); + restTemplate.getMessageConverters().add(new WxMappingJackson2HttpMessageConverter()); + return restTemplate; + } + + public class WxMappingJackson2HttpMessageConverter extends MappingJackson2HttpMessageConverter { + public WxMappingJackson2HttpMessageConverter(){ + List mediaTypes = new ArrayList<>(); + mediaTypes.add(MediaType.TEXT_PLAIN); + mediaTypes.add(MediaType.TEXT_HTML); + setSupportedMediaTypes(mediaTypes); + } + } + +} diff --git a/src/main/java/com/meishu/common/configure/SwaggerConfig.java b/src/main/java/com/meishu/common/configure/SwaggerConfig.java new file mode 100644 index 0000000..706afc6 --- /dev/null +++ b/src/main/java/com/meishu/common/configure/SwaggerConfig.java @@ -0,0 +1,31 @@ +package com.meishu.common.configure; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.swagger2.annotations.EnableSwagger2; + +@Configuration +@EnableSwagger2 +public class SwaggerConfig { + @Bean + public Docket createRestApi() { + return new Docket(DocumentationType.SWAGGER_2) + .pathMapping("/") + .select() + .apis(RequestHandlerSelectors.basePackage("com.meishu")) + .paths(PathSelectors.any()) + .build().apiInfo(new ApiInfoBuilder() + .title("考评库") + .description("接口文档规范") + .version("1.0") +// .contact(new Contact("啊啊啊啊","www.youkehulian.com","tcp@meishu.com")) +// .license("The Apache License") +// .licenseUrl("http://www.baidu.com") + .build()); + } +} diff --git a/src/main/java/com/meishu/common/configure/VODConfig.java b/src/main/java/com/meishu/common/configure/VODConfig.java new file mode 100644 index 0000000..b0574bb --- /dev/null +++ b/src/main/java/com/meishu/common/configure/VODConfig.java @@ -0,0 +1,27 @@ +package com.meishu.common.configure; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +/** + * @author: tuyp + * @create: 2020-06-01 16:46 + */ +@Component +@Data +@ConfigurationProperties(prefix = "vod") +public class VODConfig { + + private String appId; + + private String secretId; + + private String secretKey; + + private String api; + + private String region; + + private Integer classId; +} diff --git a/src/main/java/com/meishu/common/configure/WebConfig.java b/src/main/java/com/meishu/common/configure/WebConfig.java new file mode 100644 index 0000000..a8b746a --- /dev/null +++ b/src/main/java/com/meishu/common/configure/WebConfig.java @@ -0,0 +1,61 @@ +package com.meishu.common.configure; + +import com.meishu.common.interceptor.AuthenticationInterceptor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.CorsRegistry; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +/** + * @author DengMin + * @date 2020/07/06 + **/ +@Configuration +public class WebConfig implements WebMvcConfigurer { + + @Autowired + private AuthenticationInterceptor authenticationInterceptor; + + /** + * 跨域支持 + * + * @param registry + */ + @Override + public void addCorsMappings(CorsRegistry registry) { + registry.addMapping("/**") +// .allowCredentials(true) + .allowedOrigins("*") + .allowedMethods("GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS") + .maxAge(3600); + } + + /** + * Swagger + * @param registry + */ + @Override + public void addResourceHandlers(ResourceHandlerRegistry registry) { + registry.addResourceHandler("/**").addResourceLocations("classpath:/static/"); + registry.addResourceHandler("swagger-ui.html") + .addResourceLocations("classpath:/META-INF/resources/"); + registry.addResourceHandler("/webjars/**") + .addResourceLocations("classpath:/META-INF/resources/webjars/"); + } + + /** + * 鉴权 + * @param registry + */ + @Override + public void addInterceptors(InterceptorRegistry registry) { + registry.addInterceptor(authenticationInterceptor) + .excludePathPatterns("/static/*") + .addPathPatterns("/**"); + } + + + +} \ No newline at end of file diff --git a/src/main/java/com/meishu/common/configure/WebLogAspect.java b/src/main/java/com/meishu/common/configure/WebLogAspect.java new file mode 100644 index 0000000..c4deaf1 --- /dev/null +++ b/src/main/java/com/meishu/common/configure/WebLogAspect.java @@ -0,0 +1,56 @@ +package com.meishu.common.configure; + +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.annotation.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; +import org.springframework.web.context.request.RequestAttributes; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.http.HttpServletRequest; +import java.util.Arrays; + +@Aspect +@Component +public class WebLogAspect { + + private final Logger logger = LoggerFactory.getLogger(WebLogAspect.class); + + @Pointcut("execution(public * com.meishu.controller.*.*(..))")//切入点描述 这个是controller包的切入点 + public void controllerLog(){}//签名,可以理解成这个切入点的一个名称 + + @Pointcut("execution(public * com.meishu.controller.*.*(..))") + public void serviceImplLog(){} + + @Before("controllerLog()") //在切入点的方法run之前要干的 + public void logBeforeController(JoinPoint joinPoint) { + + + RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes(); + //这个RequestContextHolder是Springmvc提供来获得请求的东西 + HttpServletRequest request = ((ServletRequestAttributes)requestAttributes).getRequest(); + + // 记录下请求内容 + logger.info("####requestUrl : " + request.getRequestURL().toString()); + logger.info("####requestParam : " + Arrays.toString(joinPoint.getArgs())); + + } + +// @Around("serviceImplLog()") +// public Object afterController(ProceedingJoinPoint proceedingJoinPoint) { +// +// Object result = null; +// +// try{ +// result = proceedingJoinPoint.proceed(); +// logger.info("====reulst"+result); +// }catch (Throwable e){ +// MyException myException =(MyException)e; +// throw myException; +// } +// return result; +// } + +} \ No newline at end of file diff --git a/src/main/java/com/meishu/common/configure/WechatConfig.java b/src/main/java/com/meishu/common/configure/WechatConfig.java new file mode 100644 index 0000000..042038f --- /dev/null +++ b/src/main/java/com/meishu/common/configure/WechatConfig.java @@ -0,0 +1,24 @@ +package com.meishu.common.configure; + + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +@Data +@Configuration +@ConfigurationProperties(prefix = "wechat") +public class WechatConfig { + + private String appId; + + private String appSecret; + + private String msgUrl; + + private String templateId; + + private String agentId; + + +} diff --git a/src/main/java/com/meishu/common/constant/Code.java b/src/main/java/com/meishu/common/constant/Code.java new file mode 100644 index 0000000..58388c5 --- /dev/null +++ b/src/main/java/com/meishu/common/constant/Code.java @@ -0,0 +1,33 @@ +package com.meishu.common.constant; + +import lombok.Getter; + +@Getter +public enum Code { + + USERNAMENOTFOUND(1001, "用户不存在"), + BADCREDENTIALS(1002,"账户或者密码错误"), + ACCOUNTEXPIRED(1003,"账户过期"), + LOCKEDEXCEPTION(1004, "账户已锁定"), + DISABLEDEXCEPTION(1005,"账户已禁用"), + ACCESSDENIED(1006,"无权限访问"), + AUTHENTICATION(1007,"身份验证异常"), + NOHANDLERFOUND(1008,"找不到相应的视图处理器"), + PARAM_INVALID(1009, "参数不合法"), + TOKEN_EXCEPTION(1010, "无效的令牌"), + TOKEN_EXPIRED(1011, "令牌已过期"), + TOKEN_VERIFICATION_FAILED(1013, "令牌验证失败"), + OSS_ERROR(1012, "OSS文件上传异常"), + Network_ERROR(9000, "网络请求失败"), + SERVER_INTERNAL_ERROR(99999, "服务器内部错误"), + ; + + private Integer code; + + private String message; + + Code(Integer code, String message) { + this.code = code; + this.message = message; + } +} diff --git a/src/main/java/com/meishu/common/constant/WxConstant.java b/src/main/java/com/meishu/common/constant/WxConstant.java new file mode 100644 index 0000000..b9ad76d --- /dev/null +++ b/src/main/java/com/meishu/common/constant/WxConstant.java @@ -0,0 +1,35 @@ +package com.meishu.common.constant; + +public class WxConstant { + + /** + * app id + */ + public static final String APPID = "wx75ec06e9ce50ef73"; + + /** + * 秘钥 + */ + public static final String SECRENT = "c039d32804278503474dfcf7cb3944b9"; + + /** + * 获取访问用户身份 + */ + public static final String GETUSERINFO = "https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token={access_token}&code={code}"; + + /** + * 读取成员 + */ + public static final String GET = "https://qyapi.weixin.qq.com/cgi-bin/user/get?access_token={access_token}&userid={userid}"; + + /** + * 获取access_token + */ + public static final String GET_SUITE_TOKEN = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={appid}&secret={secret}"; + + + /** + * 扫码登陆回调地址 + */ + public static final String QR_REDIRECT_URL = "http://massadmin.youkehulian.com"; +} diff --git a/src/main/java/com/meishu/common/exception/GlobalExceptionHandler.java b/src/main/java/com/meishu/common/exception/GlobalExceptionHandler.java new file mode 100644 index 0000000..f20187c --- /dev/null +++ b/src/main/java/com/meishu/common/exception/GlobalExceptionHandler.java @@ -0,0 +1,118 @@ +package com.meishu.common.exception; + +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.meishu.common.ResponseData; +import com.meishu.common.ResponseVO; +import com.meishu.common.configure.RemoteProperties; +import com.meishu.common.constant.Code; +import lombok.extern.slf4j.Slf4j; +import org.apache.poi.ss.formula.functions.T; +import org.springframework.http.converter.HttpMessageNotReadableException; +import org.springframework.validation.BindException; +import org.springframework.web.HttpRequestMethodNotSupportedException; +import org.springframework.web.bind.MethodArgumentNotValidException; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.RestControllerAdvice; +import org.springframework.web.servlet.NoHandlerFoundException; + +import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; +import java.util.List; + +/** + * 异常处理 + * @author DengMin + * @date 2020/07/14 + **/ +@Slf4j +@RestControllerAdvice +public class GlobalExceptionHandler { + + /** + * 自定义异常 + * @param e + * @return + */ + @ExceptionHandler(value = HttpException.class) + public ResponseVO handlerException(HttpServletRequest request, HttpException e) { + String message = RemoteProperties.getMessage(e.getCode()); + if(StringUtils.isBlank(message)) { + message = e.getMessage(); + } + String url = request.getRequestURI(); + return ResponseData.generateCreatedResponse(e.getCode(), message, url); + } + + /** + * 404 + * @param request + * @return + */ + @ExceptionHandler(value = NoHandlerFoundException.class) + public ResponseVO NoHandlerFoundException(HttpServletRequest request) { + String url = request.getRequestURI(); + return ResponseData.generateCreatedResponse(Code.NOHANDLERFOUND.getCode(), Code.NOHANDLERFOUND.getMessage(), url); + } + + /** + * 请求方式错误 + * @param request + * @return + */ + @ExceptionHandler(value = HttpRequestMethodNotSupportedException.class) + public ResponseVO HttpRequestMethodNotSupportedException(HttpServletRequest request) { + String url = request.getRequestURI(); + return ResponseData.generateCreatedResponse(Code.NOHANDLERFOUND.getCode(), Code.NOHANDLERFOUND.getMessage(), url); + } + + /** + * 参数不合法 + * @param e + * @return + */ + @ExceptionHandler(MethodArgumentNotValidException.class) + public ResponseVO validateException(MethodArgumentNotValidException e){ + final List errList = new ArrayList<>(); + e.getBindingResult().getAllErrors().stream().forEach(x -> { + errList.add(x.getDefaultMessage()); + }); + return ResponseData.generateCreatedResponse(Code.PARAM_INVALID.getCode(), Code.PARAM_INVALID.getMessage(), errList.toString()); + } + + /** + * JSON 序列化异常 + * @param e + * @return + */ + @ExceptionHandler(HttpMessageNotReadableException.class) + public ResponseVO exceptionHandler(HttpMessageNotReadableException e) { + log.error(e.getMessage()); + return ResponseData.generateCreatedResponse(Code.PARAM_INVALID.getCode(), Code.PARAM_INVALID.getMessage()+":{"+e.getMessage()+"}"); + } + + /** + * 校验异常 + * @param e + * @return + */ + @ExceptionHandler(BindException.class) + public ResponseVO BindException(BindException e){ + final List errList = new ArrayList<>(); + e.getBindingResult().getAllErrors().stream().forEach(x -> { + errList.add(x.getDefaultMessage()); + }); + return ResponseData.generateCreatedResponse(Code.PARAM_INVALID.getCode(), Code.PARAM_INVALID.getMessage(), errList.toString()); + } + + /** + * 服务器内部错误 + * @return + */ + @ExceptionHandler(value = Exception.class) + public ResponseVO serverInternalError(Exception e, HttpServletRequest request) { + String url = request.getRequestURI(); + log.error("path:"+url); + log.error("---- error message: ---"+e.toString()); + return ResponseData.generateCreatedResponse(Code.SERVER_INTERNAL_ERROR.getCode(), Code.SERVER_INTERNAL_ERROR.getMessage(), url); + } +} \ No newline at end of file diff --git a/src/main/java/com/meishu/common/exception/HttpException.java b/src/main/java/com/meishu/common/exception/HttpException.java new file mode 100644 index 0000000..d38b63a --- /dev/null +++ b/src/main/java/com/meishu/common/exception/HttpException.java @@ -0,0 +1,45 @@ +package com.meishu.common.exception; + + +import com.meishu.common.configure.RemoteProperties; + +/** + * 异常处理 + * @author DengMin + * @date 2020/08/12 + **/ +public class HttpException extends RuntimeException{ + + private Integer code; + + private String message; + + public Integer getCode() { + return code; + } + + public void setCode(Integer code) { + this.code = code; + } + + @Override + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public HttpException(Integer code) { + super(RemoteProperties.getMessage(code)); + String message = RemoteProperties.getMessage(code); + this.message = message; + this.code = code; + } + + public HttpException(Integer code, String message) { + this.message = message; + this.code = code; + } +} diff --git a/src/main/java/com/meishu/common/handler/MetaHandler.java b/src/main/java/com/meishu/common/handler/MetaHandler.java new file mode 100644 index 0000000..3d42a8f --- /dev/null +++ b/src/main/java/com/meishu/common/handler/MetaHandler.java @@ -0,0 +1,26 @@ +package com.meishu.common.handler; + +import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; +import org.apache.ibatis.reflection.MetaObject; +import org.springframework.stereotype.Component; + +import java.time.LocalDateTime; + +/** + * 填充配置 + * @author DengMin + * @date 2020/07/21 + **/ +@Component +public class MetaHandler implements MetaObjectHandler { + + @Override + public void insertFill(MetaObject metaObject) { + this.setFieldValByName("createDate", LocalDateTime.now(), metaObject); + } + + @Override + public void updateFill(MetaObject metaObject) { + this.setFieldValByName("updateDate", LocalDateTime.now(), metaObject); + } +} diff --git a/src/main/java/com/meishu/common/interceptor/AuthenticationInterceptor.java b/src/main/java/com/meishu/common/interceptor/AuthenticationInterceptor.java new file mode 100644 index 0000000..a3dc6e7 --- /dev/null +++ b/src/main/java/com/meishu/common/interceptor/AuthenticationInterceptor.java @@ -0,0 +1,85 @@ +package com.meishu.common.interceptor; + +import com.auth0.jwt.interfaces.Claim; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.meishu.common.exception.HttpException; +import com.meishu.mapper.AdministerMapper; +import com.meishu.model.AdministerDO; +import com.meishu.util.JwtUtil; +import com.meishu.util.Localstorage; +import org.springframework.beans.factory.annotation.Autowired; +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; +import java.lang.reflect.Method; +import java.util.Map; + +/** + *

+ * 鉴权拦截器 + *

+ * + * @author DengMin + * @since 2021/4/14 + */ +@Component +public class AuthenticationInterceptor implements HandlerInterceptor { + + + @Autowired + private AdministerMapper administerMapper; + + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) { + // 不需要进行拦截 + if (!(handler instanceof HandlerMethod)) { + return true; + } + + HandlerMethod handlerMethod = (HandlerMethod) handler; + Method method = handlerMethod.getMethod(); + LoginRequired methodAnnotation = method.getAnnotation(LoginRequired.class); + if (methodAnnotation != null) { + String authorization = request.getHeader("Authorization"); + if (!StringUtils.isBlank(authorization)) { + String token = authorization; + if (authorization.startsWith("Bearer")) { + token = authorization.replace("Bearer ", ""); + } + /*Token不存在*/ + if (token == null || JwtUtil.isExpired(token) || !JwtUtil.verifyToken(token)) { + throw new HttpException(1010); + } + + Map claimMap = JwtUtil.getClaims(token); + if (claimMap != null) { + String[] role = methodAnnotation.value(); + String type = claimMap.get("type").asString(); + if (role.length > 0) { + if ("administer".equals(type)) { + AdministerDO administerDO = administerMapper.selectById(claimMap.get("id").asLong()); + if (administerDO != null) { + Localstorage.setUser(administerDO); + return true; + } + } else { + throw new HttpException(1010); + } + } else { + AdministerDO administerDO = administerMapper.selectById(claimMap.get("id").asLong()); + if (administerDO != null) { + Localstorage.setUser(administerDO); + return true; + } + } + } +// return true; + } + throw new HttpException(1010); + } + return true; + } +} diff --git a/src/main/java/com/meishu/common/interceptor/LoginRequired.java b/src/main/java/com/meishu/common/interceptor/LoginRequired.java new file mode 100644 index 0000000..0dab707 --- /dev/null +++ b/src/main/java/com/meishu/common/interceptor/LoginRequired.java @@ -0,0 +1,20 @@ +package com.meishu.common.interceptor; + +import java.lang.annotation.*; + +/** + *

+ * 自定义验证登陆注解 + *

+ * + * @author DengMin + * @since 2020/12/18 + */ +@Target({ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +@Inherited +public @interface LoginRequired { + + String[] value(); +} \ No newline at end of file diff --git a/src/main/java/com/meishu/controller/AdministerController.java b/src/main/java/com/meishu/controller/AdministerController.java new file mode 100644 index 0000000..33ccf4e --- /dev/null +++ b/src/main/java/com/meishu/controller/AdministerController.java @@ -0,0 +1,63 @@ +package com.meishu.controller; + + +import com.meishu.common.ResponseData; +import com.meishu.common.ResponseVO; +import com.meishu.model.AdministerDO; +import com.meishu.service.AdministerService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +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; + +/** + *

+ * 中心管理账户表 前端控制器 + *

+ * + * @author Tuyp + * @since 2021-04-25 + */ +@RestController +@Api(tags= "管理平台用户") +@RequestMapping("/administer") +public class AdministerController { + + @Autowired + private AdministerService administerService; + + @PostMapping("addAdminister") + @ApiOperation("添加管理员 accountName userName ") + public ResponseVO addAdminister(@RequestBody AdministerDO administerDO){ + return ResponseData.generateCreatedResponse(0,administerService.addAdminister(administerDO)); + } + + @PostMapping("administers") + @ApiOperation("查询管理员 userName") + public ResponseVO administers(@RequestBody AdministerDO administerDO){ + return ResponseData.generateCreatedResponse(0,administerService.administers(administerDO)); + } + + @PostMapping("updateAdminister") + @ApiOperation("编辑管理员id userName password") + public ResponseVO updateAdminister(@RequestBody AdministerDO administerDO){ + return ResponseData.generateCreatedResponse(0,administerService.updateAdminister(administerDO)); + } + + @PostMapping("deleteAdminister") + @ApiOperation("删除管理员 id") + public ResponseVO deleteAdminister(@RequestBody AdministerDO administerDO){ + return ResponseData.generateCreatedResponse(0,administerService.deleteAdminister(administerDO)); + } + + @PostMapping("login") + @ApiOperation("登录 accountName password") + public ResponseVO login(@RequestBody AdministerDO administerDO){ + return ResponseData.generateCreatedResponse(0,administerService.login(administerDO)); + } + +} diff --git a/src/main/java/com/meishu/controller/BatchDictController.java b/src/main/java/com/meishu/controller/BatchDictController.java new file mode 100644 index 0000000..dc65514 --- /dev/null +++ b/src/main/java/com/meishu/controller/BatchDictController.java @@ -0,0 +1,58 @@ +package com.meishu.controller; + + +import com.meishu.common.ResponseData; +import com.meishu.common.ResponseVO; +import com.meishu.dto.batch.AddBatchDTO; +import com.meishu.model.BatchDictDO; +import com.meishu.service.BatchDictService; +import io.swagger.annotations.ApiOperation; +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 io.swagger.annotations.Api; + +/** + *

+ * 批次字典表 前端控制器 + *

+ * + * @author Tuyp + * @since 2023-07-12 + */ +@RestController +@Api(tags = "批次字典表") +@RequestMapping("/batchDict") +public class BatchDictController { + + @Autowired + private BatchDictService batchDictService; + + @PostMapping("addBatch") + @ApiOperation("添加批次 batchName startDate endDate studentIds[studentId examCode]") + public ResponseVO addBatch(@RequestBody AddBatchDTO addBatchDTO){ + return ResponseData.generateCreatedResponse(0,batchDictService.addBatch(addBatchDTO)); + } + + @PostMapping("updateBatch") + @ApiOperation("修改批次 id batchName startDate endDate studentIds[studentId examCode]") + public ResponseVO updateBatch(@RequestBody AddBatchDTO addBatchDTO){ + return ResponseData.generateCreatedResponse(0,batchDictService.updateBatch(addBatchDTO)); + } + + @PostMapping("deleteBatch") + @ApiOperation("删除批次 id ") + public ResponseVO deleteBatch(@RequestBody BatchDictDO batchDictDO){ + return ResponseData.generateCreatedResponse(0,batchDictService.deleteBatch(batchDictDO)); + } + + @PostMapping("batches") + @ApiOperation("查询批次") + public ResponseVO batches(){ + return ResponseData.generateCreatedResponse(0,batchDictService.batches()); + } + +} diff --git a/src/main/java/com/meishu/controller/BatchExamController.java b/src/main/java/com/meishu/controller/BatchExamController.java new file mode 100644 index 0000000..f825e55 --- /dev/null +++ b/src/main/java/com/meishu/controller/BatchExamController.java @@ -0,0 +1,64 @@ +package com.meishu.controller; + + +import com.meishu.common.ResponseData; +import com.meishu.common.ResponseVO; +import com.meishu.dto.exam.ExamPaperDTO; +import com.meishu.model.BatchExamDO; +import com.meishu.service.BatchExamService; +import io.swagger.annotations.ApiOperation; +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 io.swagger.annotations.Api; + +/** + *

+ * 前端控制器 + *

+ * + * @author Tuyp + * @since 2023-07-12 + */ +@RestController +@Api(tags = "批次考试表") +@RequestMapping("/batchExam") +public class BatchExamController { + + @Autowired + private BatchExamService batchExamService; + + @PostMapping("exams") + @ApiOperation("查看批次下的考试 batchId 批次id") + public ResponseVO exams(@RequestBody BatchExamDO batchExamDO){ + return ResponseData.generateCreatedResponse(0,batchExamService.exams(batchExamDO)); + } + + @PostMapping("addExam") + @ApiOperation("添加考试 batchId examName paperId startDate endDate") + public ResponseVO addExam(@RequestBody BatchExamDO batchExamDO){ + return ResponseData.generateCreatedResponse(0,batchExamService.addExam(batchExamDO)); + } + + @PostMapping("deleteExam") + @ApiOperation("删除考试 id ") + public ResponseVO deleteExam(@RequestBody BatchExamDO batchExamDO){ + return ResponseData.generateCreatedResponse(0,batchExamService.deleteExam(batchExamDO)); + } + + @PostMapping("updateExam") + @ApiOperation("修改考试 id batchId examName paperId startDate endDate") + public ResponseVO updateExam(@RequestBody BatchExamDO batchExamDO){ + return ResponseData.generateCreatedResponse(0,batchExamService.updateExam(batchExamDO)); + } + + @PostMapping("examPaper") + @ApiOperation("查看考试的时间和试卷 userId paperId ExamId") + public ResponseVO examPaper(@RequestBody ExamPaperDTO examPaperDTO){ + return ResponseData.generateCreatedResponse(0,batchExamService.examPaper(examPaperDTO)); + } + +} diff --git a/src/main/java/com/meishu/controller/BatchExamStudentController.java b/src/main/java/com/meishu/controller/BatchExamStudentController.java new file mode 100644 index 0000000..1171a3b --- /dev/null +++ b/src/main/java/com/meishu/controller/BatchExamStudentController.java @@ -0,0 +1,52 @@ +package com.meishu.controller; + + +import com.meishu.common.ResponseData; +import com.meishu.common.ResponseVO; +import com.meishu.model.BatchExamStudentsDO; +import com.meishu.service.BatchExamStudentsService; +import io.swagger.annotations.ApiOperation; +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 io.swagger.annotations.Api; + +/** + *

+ * 学生考试映射表 前端控制器 + *

+ * + * @author Tuyp + * @since 2023-07-11 + */ +@RestController +@Api(tags = "学生考试映射表") +@RequestMapping("/studentExams") +public class BatchExamStudentController { + + @Autowired + private BatchExamStudentsService studentExamsService; + + @PostMapping("exams") + @ApiOperation("学生可以参加的考试 studentId 学生id batchId") + public ResponseVO exams(@RequestBody BatchExamStudentsDO studentExamsDO)throws Exception { + return ResponseData.generateCreatedResponse(0,studentExamsService.exams(studentExamsDO)); + } + + @PostMapping("studentExams") + @ApiOperation("学生考试记录 studentId") + public ResponseVO studentExams(@RequestBody BatchExamStudentsDO studentExamsDO){ + return ResponseData.generateCreatedResponse(0,studentExamsService.studentExams(studentExamsDO)); + } + + @PostMapping("batchExamStudentScore") + @ApiOperation("某个批次考试情况 batchExamId ") + public ResponseVO batchExamStudentScore(@RequestBody BatchExamStudentsDO batchExamStudentsDO ){ + return ResponseData.generateCreatedResponse(0,studentExamsService.batchExamStudentScore(batchExamStudentsDO)); + } + + +} diff --git a/src/main/java/com/meishu/controller/BatchStudentMappingController.java b/src/main/java/com/meishu/controller/BatchStudentMappingController.java new file mode 100644 index 0000000..b036765 --- /dev/null +++ b/src/main/java/com/meishu/controller/BatchStudentMappingController.java @@ -0,0 +1,40 @@ +package com.meishu.controller; + + +import com.meishu.common.ResponseData; +import com.meishu.common.ResponseVO; +import com.meishu.model.BatchStudentMappingDO; +import com.meishu.service.BatchStudentMappingService; +import io.swagger.annotations.ApiOperation; +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 io.swagger.annotations.Api; + +/** + *

+ * 前端控制器 + *

+ * + * @author Tuyp + * @since 2023-07-14 + */ +@RestController +@Api(tags = "批次-学生映射表") +@RequestMapping("/batchStudentMapping") +public class BatchStudentMappingController { + + @Autowired + private BatchStudentMappingService batchStudentMappingService; + + @PostMapping("batchStudents") + @ApiOperation("查看某一批次的学生 batchId") + public ResponseVO batchStudents(@RequestBody BatchStudentMappingDO batchStudentMappingDO){ + return ResponseData.generateCreatedResponse(0,batchStudentMappingService.batchStudents(batchStudentMappingDO)); + } + + +} diff --git a/src/main/java/com/meishu/controller/ExerciseDictController.java b/src/main/java/com/meishu/controller/ExerciseDictController.java new file mode 100644 index 0000000..0f918e4 --- /dev/null +++ b/src/main/java/com/meishu/controller/ExerciseDictController.java @@ -0,0 +1,65 @@ +package com.meishu.controller; + + +import com.meishu.common.ResponseData; +import com.meishu.common.ResponseVO; +import com.meishu.dto.exercise.LabelExercisesDTO; +import com.meishu.model.ExerciseDictDO; +import com.meishu.service.ExerciseDictService; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import io.swagger.annotations.Api; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; + +/** + *

+ * 习题库 前端控制器 + *

+ * + * @author Tuyp + * @since 2023-07-11 + */ +@RestController +@Api(tags = "习题库") +@RequestMapping("/exerciseDict") +public class ExerciseDictController { + + @Autowired + private ExerciseDictService exerciseDictService; + + @PostMapping("labelExercises") + @ApiOperation("查看题目 labelId pageSize pageNum") + public ResponseVO labelExercises(@RequestBody LabelExercisesDTO labelExercisesDTO){ + return ResponseData.generateCreatedResponse(0,exerciseDictService.labelExercises(labelExercisesDTO)); + } + + @PostMapping("deleteExercises") + @ApiOperation("删除考试题 id") + public ResponseVO deleteExercises(@RequestBody ExerciseDictDO exerciseDictDO){ + return ResponseData.generateCreatedResponse(0,exerciseDictService.deleteExercises(exerciseDictDO)); + } + + @PostMapping("addExercises") + @ApiOperation("新增考试题 exerciseType labelId title items rightAnswer detail") + public ResponseVO addExercises(@RequestBody ExerciseDictDO exerciseDictDO){ + return ResponseData.generateCreatedResponse(0,exerciseDictService.addExercises(exerciseDictDO)); + } + + @PostMapping("updateExercises") + @ApiOperation("修改考试题 id exerciseType labelId title items rightAnswer detail") + public ResponseVO updateExercises(@RequestBody ExerciseDictDO exerciseDictDO){ + return ResponseData.generateCreatedResponse(0,exerciseDictService.updateExercises(exerciseDictDO)); + } + + @PostMapping("uploadFile") + @ApiOperation("上传文件 file ") + public ResponseVO uploadFile(@RequestParam("file") MultipartFile multipartFile){ + return ResponseData.generateCreatedResponse(0,exerciseDictService.uploadFile(multipartFile)); + } + + +} diff --git a/src/main/java/com/meishu/controller/ExerciseDoneHistoryController.java b/src/main/java/com/meishu/controller/ExerciseDoneHistoryController.java new file mode 100644 index 0000000..1669b8a --- /dev/null +++ b/src/main/java/com/meishu/controller/ExerciseDoneHistoryController.java @@ -0,0 +1,46 @@ +package com.meishu.controller; + + +import com.meishu.common.ResponseData; +import com.meishu.common.ResponseVO; +import com.meishu.model.BatchExamStudentsDO; +import com.meishu.model.ExerciseDoneHistoryDO; +import com.meishu.service.ExerciseDoneHistoryService; +import io.swagger.annotations.ApiOperation; +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 io.swagger.annotations.Api; + +/** + *

+ * 学生做题历史记录表 前端控制器 + *

+ * + * @author Tuyp + * @since 2023-07-11 + */ +@RestController +@Api(tags = "学生做题历史记录表") +@RequestMapping("/exerciseDoneHistory") +public class ExerciseDoneHistoryController { + + @Autowired + private ExerciseDoneHistoryService exerciseDoneHistoryService; + + @PostMapping("scoreDetails") + @ApiOperation("某个批次具体考试情况 batchExamId studentId") + public ResponseVO scoreDetails(@RequestBody BatchExamStudentsDO batchExamStudentsDO){ + return ResponseData.generateCreatedResponse(0,exerciseDoneHistoryService.scoreDetails(batchExamStudentsDO)); + } + + @PostMapping("updateScore") + @ApiOperation("修改分数 id score") + public ResponseVO updateScore(@RequestBody ExerciseDoneHistoryDO exerciseDoneHistoryDO){ + return ResponseData.generateCreatedResponse(0,exerciseDoneHistoryService.updateScore(exerciseDoneHistoryDO)); + } + +} diff --git a/src/main/java/com/meishu/controller/LabelDictController.java b/src/main/java/com/meishu/controller/LabelDictController.java new file mode 100644 index 0000000..75ddfe4 --- /dev/null +++ b/src/main/java/com/meishu/controller/LabelDictController.java @@ -0,0 +1,38 @@ +package com.meishu.controller; + + +import com.meishu.common.ResponseData; +import com.meishu.common.ResponseVO; +import com.meishu.service.LabelDictService; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; +import io.swagger.annotations.Api; + +/** + *

+ * 标签表 前端控制器 + *

+ * + * @author Tuyp + * @since 2023-07-11 + */ +@RestController +@Api(tags = "标签表") +@RequestMapping("/labelDict") +public class LabelDictController { + + + @Autowired + private LabelDictService labelDictService; + + @PostMapping("labels") + @ApiOperation("查询所有标签") + public ResponseVO labels(){ + return ResponseData.generateCreatedResponse(0,labelDictService.labels()); + } + +} diff --git a/src/main/java/com/meishu/controller/PaperDictController.java b/src/main/java/com/meishu/controller/PaperDictController.java new file mode 100644 index 0000000..c055818 --- /dev/null +++ b/src/main/java/com/meishu/controller/PaperDictController.java @@ -0,0 +1,77 @@ +package com.meishu.controller; + + +import com.meishu.common.ResponseData; +import com.meishu.common.ResponseVO; +import com.meishu.dto.paper.SubmitDTO; +import com.meishu.model.PaperDictDO; +import com.meishu.model.PaperExercisesDO; +import com.meishu.service.PaperDictService; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import io.swagger.annotations.Api; + +/** + *

+ * 前端控制器 + *

+ * + * @author Tuyp + * @since 2023-07-11 + */ +@RestController +@Api(tags = "考试字典表") +@RequestMapping("/paperDict") +public class PaperDictController { + + @Autowired + private PaperDictService paperDictService; + + @PostMapping("/exercises") + @ApiOperation("查看试卷题目(没有答案版) paperId 考试id") + public ResponseVO exercises(@RequestBody PaperExercisesDO paperExercisesDO){ + return ResponseData.generateCreatedResponse(0,paperDictService.exercises(paperExercisesDO)); + } + + @PostMapping("submit") + @ApiOperation("提交答案 studentId 学生id batchExamId paperId 考试id paperStudentExerciseDTOS[exerciseId 题目id selectAnswer 答案] ") + public ResponseVO submit(@RequestBody SubmitDTO submitDTO){ + return ResponseData.generateCreatedResponse(0,paperDictService.submit(submitDTO)); + } + + @PostMapping("allPapers") + @ApiOperation("查看所有试卷") + public ResponseVO allPapers(){ + return ResponseData.generateCreatedResponse(0,paperDictService.allPapers()); + } + + @PostMapping("deletePaper") + @ApiOperation("删除试卷 id 试卷id") + public ResponseVO deletePaper(@RequestBody PaperDictDO paperDictDO){ + return ResponseData.generateCreatedResponse(0,paperDictService.deletePaper(paperDictDO)); + } + + @PostMapping("addPaper") + @ApiOperation("添加试卷 paperName paperType ") + public ResponseVO addPaper(@RequestBody PaperDictDO paperDictDO){ + return ResponseData.generateCreatedResponse(0,paperDictService.addPaper(paperDictDO)); + } + + @PostMapping("updatePaper") + @ApiOperation("添加试卷 id 试卷id paperName paperType") + public ResponseVO updatePaper(@RequestBody PaperDictDO paperDictDO){ + return ResponseData.generateCreatedResponse(0,paperDictService.updatePaper(paperDictDO)); + } + + @PostMapping("aa") + public void aa(){ + paperDictService.aa(); + } + + + + + +} diff --git a/src/main/java/com/meishu/controller/PaperExercisesController.java b/src/main/java/com/meishu/controller/PaperExercisesController.java new file mode 100644 index 0000000..c061f48 --- /dev/null +++ b/src/main/java/com/meishu/controller/PaperExercisesController.java @@ -0,0 +1,55 @@ +package com.meishu.controller; + + +import com.meishu.common.ResponseData; +import com.meishu.common.ResponseVO; +import com.meishu.dto.paper.AddPaperExerciseDTO; +import com.meishu.model.PaperExercisesDO; +import com.meishu.service.PaperExercisesService; +import com.meishu.vo.exercise.LabelExercisesVO; +import io.swagger.annotations.ApiOperation; +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 io.swagger.annotations.Api; + +/** + *

+ * 考试-题目映射表 前端控制器 + *

+ * + * @author Tuyp + * @since 2023-07-11 + */ +@RestController +@Api(tags = "考试-题目映射表") +@RequestMapping("/paperExercises") +public class PaperExercisesController { + + @Autowired + private PaperExercisesService paperExercisesService; + + @PostMapping("exercises") + @ApiOperation("查看试卷里的题目(有答案版) paperId") + public ResponseVO exercises(@RequestBody PaperExercisesDO paperExercisesDO){ + return ResponseData.generateCreatedResponse(0,paperExercisesService.exercises(paperExercisesDO)); + } + + @PostMapping("deletePaperExercise") + @ApiOperation("删除考试卷里的题目 paperExerciseId 返回的映射id ") + public ResponseVO deletePaperExercise(@RequestBody LabelExercisesVO labelExercisesVO){ + return ResponseData.generateCreatedResponse(0,paperExercisesService.deletePaperExercise(labelExercisesVO)); + } + + @PostMapping("addPaperExercise") + @ApiOperation("新增考试题目 paperId exerciseIds[]") + public ResponseVO addPaperExercise(@RequestBody AddPaperExerciseDTO addPaperExerciseDTO){ + return ResponseData.generateCreatedResponse(0,paperExercisesService.addPaperExercise(addPaperExerciseDTO)); + } + + + +} diff --git a/src/main/java/com/meishu/controller/StudentController.java b/src/main/java/com/meishu/controller/StudentController.java new file mode 100644 index 0000000..a529e5f --- /dev/null +++ b/src/main/java/com/meishu/controller/StudentController.java @@ -0,0 +1,66 @@ +package com.meishu.controller; + + +import com.meishu.common.ResponseData; +import com.meishu.common.ResponseVO; +import com.meishu.dto.student.LoginDTO; +import com.meishu.model.StudentDO; +import com.meishu.service.StudentService; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +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 io.swagger.annotations.Api; + +/** + *

+ * 学生表 前端控制器 + *

+ * + * @author Tuyp + * @since 2023-07-11 + */ +@RestController +@Api(tags = "学生表") +@RequestMapping("/student") +public class StudentController { + + @Autowired + private StudentService studentService; + + @PostMapping("login") + @ApiOperation("登录 idCard examCode ") + public ResponseVO login(@RequestBody LoginDTO loginDTO)throws Exception{ + return ResponseData.generateCreatedResponse(0,studentService.login(loginDTO)); + } + + @PostMapping("students") + @ApiOperation("查看学生 userName") + public ResponseVO students(@RequestBody StudentDO studentDO){ + return ResponseData.generateCreatedResponse(0,studentService.students(studentDO)); + } + + @PostMapping("deleteStudent") + @ApiOperation("删除学生 id ") + public ResponseVO deleteStudent(@RequestBody StudentDO studentDO){ + return ResponseData.generateCreatedResponse(0,studentService.deleteStudent(studentDO)); + } + + @PostMapping("updateStudent") + @ApiOperation("编辑学生 id userName idCard companyName") + public ResponseVO updateStudent(@RequestBody StudentDO studentDO){ + return ResponseData.generateCreatedResponse(0,studentService.updateStudent(studentDO)); + } + + @PostMapping("addStudent") + @ApiOperation("添加学生 userName idCard companyName") + public ResponseVO addStudent(@RequestBody StudentDO studentDO){ + return ResponseData.generateCreatedResponse(0,studentService.addStudent(studentDO)); + } + + +} diff --git a/src/main/java/com/meishu/dto/batch/AddBatchDTO.java b/src/main/java/com/meishu/dto/batch/AddBatchDTO.java new file mode 100644 index 0000000..33678db --- /dev/null +++ b/src/main/java/com/meishu/dto/batch/AddBatchDTO.java @@ -0,0 +1,16 @@ +package com.meishu.dto.batch; + +import com.meishu.model.BatchDictDO; +import com.meishu.model.BatchExamStudentsDO; +import com.meishu.model.BatchStudentMappingDO; +import lombok.Data; + +import java.util.List; + +@Data +public class AddBatchDTO extends BatchDictDO { + + private List studentIds; + + +} diff --git a/src/main/java/com/meishu/dto/exam/ExamPaperDTO.java b/src/main/java/com/meishu/dto/exam/ExamPaperDTO.java new file mode 100644 index 0000000..c59fd24 --- /dev/null +++ b/src/main/java/com/meishu/dto/exam/ExamPaperDTO.java @@ -0,0 +1,14 @@ +package com.meishu.dto.exam; + +import lombok.Data; + +@Data +public class ExamPaperDTO { + + private Long userId; + + private Long examId; + + private Long paperId; + +} diff --git a/src/main/java/com/meishu/dto/exercise/LabelExercisesDTO.java b/src/main/java/com/meishu/dto/exercise/LabelExercisesDTO.java new file mode 100644 index 0000000..f610c38 --- /dev/null +++ b/src/main/java/com/meishu/dto/exercise/LabelExercisesDTO.java @@ -0,0 +1,14 @@ +package com.meishu.dto.exercise; + +import lombok.Data; + +@Data +public class LabelExercisesDTO { + + private Integer pageSize; + + private Integer pageNum; + + private Long labelId; + +} diff --git a/src/main/java/com/meishu/dto/paper/AddPaperExerciseDTO.java b/src/main/java/com/meishu/dto/paper/AddPaperExerciseDTO.java new file mode 100644 index 0000000..667ab98 --- /dev/null +++ b/src/main/java/com/meishu/dto/paper/AddPaperExerciseDTO.java @@ -0,0 +1,14 @@ +package com.meishu.dto.paper; + +import lombok.Data; + +import java.util.List; + +@Data +public class AddPaperExerciseDTO { + + private Long paperId; + + private List exerciseIds; + +} diff --git a/src/main/java/com/meishu/dto/paper/PaperStudentExerciseDTO.java b/src/main/java/com/meishu/dto/paper/PaperStudentExerciseDTO.java new file mode 100644 index 0000000..816f7b7 --- /dev/null +++ b/src/main/java/com/meishu/dto/paper/PaperStudentExerciseDTO.java @@ -0,0 +1,15 @@ +package com.meishu.dto.paper; + +import lombok.Data; + +@Data +public class PaperStudentExerciseDTO { + + /** + * 实际上是exerciseDoneHistory的id + */ + private Long exerciseId; + + private String selectAnswer; + +} diff --git a/src/main/java/com/meishu/dto/paper/SubmitDTO.java b/src/main/java/com/meishu/dto/paper/SubmitDTO.java new file mode 100644 index 0000000..355471e --- /dev/null +++ b/src/main/java/com/meishu/dto/paper/SubmitDTO.java @@ -0,0 +1,18 @@ +package com.meishu.dto.paper; + +import lombok.Data; + +import java.util.List; + +@Data +public class SubmitDTO { + + private Long studentId; + + private Long paperId; + + private Long batchExamId; + + private List paperStudentExerciseDTOS; + +} diff --git a/src/main/java/com/meishu/dto/student/LoginDTO.java b/src/main/java/com/meishu/dto/student/LoginDTO.java new file mode 100644 index 0000000..2d28760 --- /dev/null +++ b/src/main/java/com/meishu/dto/student/LoginDTO.java @@ -0,0 +1,12 @@ +package com.meishu.dto.student; + +import lombok.Data; + +@Data +public class LoginDTO { + + private String examCode; + + private String idCard; + +} diff --git a/src/main/java/com/meishu/dto/userrole/AccountLoginDTO.java b/src/main/java/com/meishu/dto/userrole/AccountLoginDTO.java new file mode 100644 index 0000000..1327125 --- /dev/null +++ b/src/main/java/com/meishu/dto/userrole/AccountLoginDTO.java @@ -0,0 +1,11 @@ +package com.meishu.dto.userrole; + +import lombok.Data; + +@Data +public class AccountLoginDTO { + + private String idCard; + + private String password; +} diff --git a/src/main/java/com/meishu/dto/userrole/QueryStudentsDTO.java b/src/main/java/com/meishu/dto/userrole/QueryStudentsDTO.java new file mode 100644 index 0000000..909b6fc --- /dev/null +++ b/src/main/java/com/meishu/dto/userrole/QueryStudentsDTO.java @@ -0,0 +1,20 @@ +package com.meishu.dto.userrole; + +import lombok.Data; + +@Data +public class QueryStudentsDTO { + + private Integer pageSize; + + private Integer pageNum; + + private String userName; + + private String session; + + private String grade; + + private String userStatus; + +} diff --git a/src/main/java/com/meishu/mapper/AdministerMapper.java b/src/main/java/com/meishu/mapper/AdministerMapper.java new file mode 100644 index 0000000..c5c4fa8 --- /dev/null +++ b/src/main/java/com/meishu/mapper/AdministerMapper.java @@ -0,0 +1,22 @@ +package com.meishu.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.meishu.model.AdministerDO; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + *

+ * 中心管理账户表 Mapper 接口 + *

+ * + * @author Tuyp + * @since 2021-04-25 + */ +@Repository +public interface AdministerMapper extends BaseMapper { + + List administers(String userName); + +} diff --git a/src/main/java/com/meishu/mapper/BatchDictMapper.java b/src/main/java/com/meishu/mapper/BatchDictMapper.java new file mode 100644 index 0000000..3d70620 --- /dev/null +++ b/src/main/java/com/meishu/mapper/BatchDictMapper.java @@ -0,0 +1,18 @@ +package com.meishu.mapper; + +import com.meishu.model.BatchDictDO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springframework.stereotype.Repository; + +/** + *

+ * 批次字典表 Mapper 接口 + *

+ * + * @author Tuyp + * @since 2023-07-12 + */ + @Repository +public interface BatchDictMapper extends BaseMapper { + +} diff --git a/src/main/java/com/meishu/mapper/BatchExamMapper.java b/src/main/java/com/meishu/mapper/BatchExamMapper.java new file mode 100644 index 0000000..12fd506 --- /dev/null +++ b/src/main/java/com/meishu/mapper/BatchExamMapper.java @@ -0,0 +1,23 @@ +package com.meishu.mapper; + +import com.meishu.model.BatchExamDO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.meishu.vo.exam.ExamsVO; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author Tuyp + * @since 2023-07-12 + */ +@Repository +public interface BatchExamMapper extends BaseMapper { + + List exams(Long batchId); + +} diff --git a/src/main/java/com/meishu/mapper/BatchExamsStudentsMapper.java b/src/main/java/com/meishu/mapper/BatchExamsStudentsMapper.java new file mode 100644 index 0000000..4839bc8 --- /dev/null +++ b/src/main/java/com/meishu/mapper/BatchExamsStudentsMapper.java @@ -0,0 +1,50 @@ +package com.meishu.mapper; + +import com.meishu.model.BatchExamStudentsDO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.meishu.vo.exam.BatchExamStudentScoreVO; +import com.meishu.vo.paper.PapersVO; +import com.meishu.vo.student.StudentExamsVO; +import com.meishu.vo.student.StudentVO; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + *

+ * 学生考试映射表 Mapper 接口 + *

+ * + * @author Tuyp + * @since 2023-07-11 + */ +@Repository +public interface BatchExamsStudentsMapper extends BaseMapper { + + /** + * 学生可以参加的考试 + */ + List exams(Long studentId); + + /** + * 考试 成绩 + */ + List studentScore(Long studentId); + + /** + * 查看某个批次考试下的考生 + */ + List batchExamStudents(Long batchExamId); + + /** + * 查看某个批次考试下的考生 + */ + List batchExamStudentIds(Long batchExamId); + + /** + * 某个批次下的考试情况 + */ + List batchExamStudentScore(Long batchExamId); + + +} diff --git a/src/main/java/com/meishu/mapper/BatchStudentMappingMapper.java b/src/main/java/com/meishu/mapper/BatchStudentMappingMapper.java new file mode 100644 index 0000000..9f513ff --- /dev/null +++ b/src/main/java/com/meishu/mapper/BatchStudentMappingMapper.java @@ -0,0 +1,25 @@ +package com.meishu.mapper; + +import com.meishu.model.BatchStudentMappingDO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.meishu.vo.student.BatchStudentsVO; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author Tuyp + * @since 2023-07-14 + */ +@Repository +public interface BatchStudentMappingMapper extends BaseMapper { + + List batchStudents(Long batchId); + + List batchStudentIds(Long batchId); + +} diff --git a/src/main/java/com/meishu/mapper/ExerciseDictMapper.java b/src/main/java/com/meishu/mapper/ExerciseDictMapper.java new file mode 100644 index 0000000..69d8ed8 --- /dev/null +++ b/src/main/java/com/meishu/mapper/ExerciseDictMapper.java @@ -0,0 +1,28 @@ +package com.meishu.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.meishu.model.ExerciseDictDO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.meishu.vo.exercise.LabelExercisesVO; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + *

+ * 习题库 Mapper 接口 + *

+ * + * @author Tuyp + * @since 2023-07-11 + */ +@Repository +public interface ExerciseDictMapper extends BaseMapper { + + /** + * 通过标签去找题目 + */ + IPage labelExercises(IPage iPage,Long labelId); + + +} diff --git a/src/main/java/com/meishu/mapper/ExerciseDoneHistoryMapper.java b/src/main/java/com/meishu/mapper/ExerciseDoneHistoryMapper.java new file mode 100644 index 0000000..2ab8087 --- /dev/null +++ b/src/main/java/com/meishu/mapper/ExerciseDoneHistoryMapper.java @@ -0,0 +1,23 @@ +package com.meishu.mapper; + +import com.meishu.model.ExerciseDoneHistoryDO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.meishu.vo.exercise.ScoreDetailsVO; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + *

+ * 学生做题历史记录表 Mapper 接口 + *

+ * + * @author Tuyp + * @since 2023-07-11 + */ +@Repository +public interface ExerciseDoneHistoryMapper extends BaseMapper { + + List scoreDetails(Long batchExamId, Long studentId); + +} diff --git a/src/main/java/com/meishu/mapper/LabelDictMapper.java b/src/main/java/com/meishu/mapper/LabelDictMapper.java new file mode 100644 index 0000000..8455fc4 --- /dev/null +++ b/src/main/java/com/meishu/mapper/LabelDictMapper.java @@ -0,0 +1,18 @@ +package com.meishu.mapper; + +import com.meishu.model.LabelDictDO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springframework.stereotype.Repository; + +/** + *

+ * 标签表 Mapper 接口 + *

+ * + * @author Tuyp + * @since 2023-07-11 + */ + @Repository +public interface LabelDictMapper extends BaseMapper { + +} diff --git a/src/main/java/com/meishu/mapper/PaperDictMapper.java b/src/main/java/com/meishu/mapper/PaperDictMapper.java new file mode 100644 index 0000000..048a965 --- /dev/null +++ b/src/main/java/com/meishu/mapper/PaperDictMapper.java @@ -0,0 +1,42 @@ +package com.meishu.mapper; + +import com.meishu.model.PaperDictDO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.meishu.vo.exercise.ExercisesWithAnswerVO; +import com.meishu.vo.paper.ExercisesVO; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author Tuyp + * @since 2023-07-11 + */ +@Repository +public interface PaperDictMapper extends BaseMapper { + + List exercises(Long paperId); + + /** + * 查看某个卷子某个题型的题目 + */ + List exercisesWithAnswer(Long paperId,String exerciseType); + + /** + 查看卷子有哪几种题型 + */ + List exerciseTypes(Long paperId); + + /** + * 查看学生做的题目 + */ + List examExercises(Long examId,Long studentId,Long paperId); + + + + +} diff --git a/src/main/java/com/meishu/mapper/PaperExercisesMapper.java b/src/main/java/com/meishu/mapper/PaperExercisesMapper.java new file mode 100644 index 0000000..5f0dc93 --- /dev/null +++ b/src/main/java/com/meishu/mapper/PaperExercisesMapper.java @@ -0,0 +1,26 @@ +package com.meishu.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.meishu.model.PaperExercisesDO; +import com.meishu.vo.exercise.LabelExercisesVO; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + *

+ * 考试-题目映射表 Mapper 接口 + *

+ * + * @author Tuyp + * @since 2023-07-11 + */ +@Repository +public interface PaperExercisesMapper extends BaseMapper { + + /** + * 通过考试id取查卷子 + */ + List getPaperExercises(Long paperId); + +} diff --git a/src/main/java/com/meishu/mapper/StudentMapper.java b/src/main/java/com/meishu/mapper/StudentMapper.java new file mode 100644 index 0000000..e1562ba --- /dev/null +++ b/src/main/java/com/meishu/mapper/StudentMapper.java @@ -0,0 +1,23 @@ +package com.meishu.mapper; + +import com.meishu.model.StudentDO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + *

+ * 学生表 Mapper 接口 + *

+ * + * @author Tuyp + * @since 2023-07-11 + */ + @Repository +public interface StudentMapper extends BaseMapper { + + List students(String userName); + +} diff --git a/src/main/java/com/meishu/model/AdministerDO.java b/src/main/java/com/meishu/model/AdministerDO.java new file mode 100644 index 0000000..bc20ca7 --- /dev/null +++ b/src/main/java/com/meishu/model/AdministerDO.java @@ -0,0 +1,48 @@ +package com.meishu.model; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.meishu.util.BaseModel; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

+ * 中心管理账户表 + *

+ * + * @author Tuyp + * @since 2021-04-25 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("administer") +public class AdministerDO extends BaseModel { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 成员名称 + */ + private String userName; + + /** + * 账号 + */ + private String accountName; + + /** + * 密码 + */ + private String password; + + + +} diff --git a/src/main/java/com/meishu/model/BatchDictDO.java b/src/main/java/com/meishu/model/BatchDictDO.java new file mode 100644 index 0000000..6500a48 --- /dev/null +++ b/src/main/java/com/meishu/model/BatchDictDO.java @@ -0,0 +1,39 @@ +package com.meishu.model; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import java.time.LocalDateTime; +import com.meishu.util.BaseModel; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

+ * 批次字典表 + *

+ * + * @author Tuyp + * @since 2023-07-12 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("batch_dict") +public class BatchDictDO extends BaseModel { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 批次名称 + */ + private String batchName; + + private String startDate; + + private String endDate; + + +} diff --git a/src/main/java/com/meishu/model/BatchExamDO.java b/src/main/java/com/meishu/model/BatchExamDO.java new file mode 100644 index 0000000..c06fffc --- /dev/null +++ b/src/main/java/com/meishu/model/BatchExamDO.java @@ -0,0 +1,40 @@ +package com.meishu.model; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import java.time.LocalDateTime; +import com.meishu.util.BaseModel; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

+ * + *

+ * + * @author Tuyp + * @since 2023-07-12 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("batch_exam") +public class BatchExamDO extends BaseModel { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + private Long batchId; + + private String examName; + + private String startDate; + + private String endDate; + + private Long paperId; + + +} diff --git a/src/main/java/com/meishu/model/BatchExamStudentsDO.java b/src/main/java/com/meishu/model/BatchExamStudentsDO.java new file mode 100644 index 0000000..4d6645e --- /dev/null +++ b/src/main/java/com/meishu/model/BatchExamStudentsDO.java @@ -0,0 +1,35 @@ +package com.meishu.model; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.meishu.util.BaseModel; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

+ * 学生考试映射表 + *

+ * + * @author Tuyp + * @since 2023-07-11 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("batch_exam_students") +public class BatchExamStudentsDO extends BaseModel { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + private Long studentId; + + private Long batchExamId; + + private String examCode; + + private Integer score; +} diff --git a/src/main/java/com/meishu/model/BatchStudentMappingDO.java b/src/main/java/com/meishu/model/BatchStudentMappingDO.java new file mode 100644 index 0000000..08e4f6f --- /dev/null +++ b/src/main/java/com/meishu/model/BatchStudentMappingDO.java @@ -0,0 +1,45 @@ +package com.meishu.model; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import java.time.LocalDateTime; +import java.util.Date; + +import com.meishu.util.BaseModel; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

+ * + *

+ * + * @author Tuyp + * @since 2023-07-14 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("batch_student_mapping") +public class BatchStudentMappingDO extends BaseModel { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + private Long batchId; + + private Long studentId; + + /** + * 准考证号 + */ + private String examCode; + + /** + * 签到时间 + */ + private Date signDate; + +} diff --git a/src/main/java/com/meishu/model/ExerciseDictDO.java b/src/main/java/com/meishu/model/ExerciseDictDO.java new file mode 100644 index 0000000..da9bc7c --- /dev/null +++ b/src/main/java/com/meishu/model/ExerciseDictDO.java @@ -0,0 +1,59 @@ +package com.meishu.model; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.meishu.util.BaseModel; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

+ * 习题库 + *

+ * + * @author Tuyp + * @since 2023-07-11 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("exercise_dict") +public class ExerciseDictDO extends BaseModel { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + /** + * 题目类型 选择/填空 + */ + private String exerciseType; + + /** + * 标签id + */ + private Long labelId; + + /** + * 题目 + */ + private String title; + + /** + * 选项 + */ + private String items; + + /** + * 正确答案 + */ + private String rightAnswer; + + /** + * 解析 + */ + private String detail; + + +} diff --git a/src/main/java/com/meishu/model/ExerciseDoneHistoryDO.java b/src/main/java/com/meishu/model/ExerciseDoneHistoryDO.java new file mode 100644 index 0000000..7ca4e0d --- /dev/null +++ b/src/main/java/com/meishu/model/ExerciseDoneHistoryDO.java @@ -0,0 +1,69 @@ +package com.meishu.model; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.meishu.util.BaseModel; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

+ * 学生做题历史记录表 + *

+ * + * @author Tuyp + * @since 2023-07-11 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("exercise_done_history") +public class ExerciseDoneHistoryDO extends BaseModel { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 学生id + */ + private Long studentId; + + /** + * 习题id + */ + private Long exerciseId; + + /** + * + */ + private Long batchExamId; + + /** + * 考试id + */ + private Long paperId; + + /** + * 做题答案 /已读 + */ + private String answer; + + /** + * 结果 0:错误 1:正确 + */ + private Integer result; + + /** + * 分数 + */ + private Integer score; + + /** + * 顺序 + */ + private Integer orderNo; + + +} diff --git a/src/main/java/com/meishu/model/LabelDictDO.java b/src/main/java/com/meishu/model/LabelDictDO.java new file mode 100644 index 0000000..27a13e6 --- /dev/null +++ b/src/main/java/com/meishu/model/LabelDictDO.java @@ -0,0 +1,34 @@ +package com.meishu.model; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.meishu.util.BaseModel; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

+ * 标签表 + *

+ * + * @author Tuyp + * @since 2023-07-11 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("label_dict") +public class LabelDictDO extends BaseModel { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 标签 + */ + private String label; + + +} diff --git a/src/main/java/com/meishu/model/PaperDictDO.java b/src/main/java/com/meishu/model/PaperDictDO.java new file mode 100644 index 0000000..731e578 --- /dev/null +++ b/src/main/java/com/meishu/model/PaperDictDO.java @@ -0,0 +1,33 @@ +package com.meishu.model; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import java.time.LocalDateTime; +import com.meishu.util.BaseModel; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

+ * + *

+ * + * @author Tuyp + * @since 2023-07-11 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("paper_dict") +public class PaperDictDO extends BaseModel { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + private String paperName; + + private String paperType; + +} diff --git a/src/main/java/com/meishu/model/PaperExercisesDO.java b/src/main/java/com/meishu/model/PaperExercisesDO.java new file mode 100644 index 0000000..ef30e15 --- /dev/null +++ b/src/main/java/com/meishu/model/PaperExercisesDO.java @@ -0,0 +1,33 @@ +package com.meishu.model; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.meishu.util.BaseModel; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

+ * 考试-题目映射表 + *

+ * + * @author Tuyp + * @since 2023-07-11 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("paper_exercises") +public class PaperExercisesDO extends BaseModel { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + private Long paperId; + + private Long exerciseId; + + +} diff --git a/src/main/java/com/meishu/model/StudentDO.java b/src/main/java/com/meishu/model/StudentDO.java new file mode 100644 index 0000000..58a9009 --- /dev/null +++ b/src/main/java/com/meishu/model/StudentDO.java @@ -0,0 +1,47 @@ +package com.meishu.model; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.meishu.util.BaseModel; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

+ * 学生表 + *

+ * + * @author Tuyp + * @since 2023-07-11 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("student") +public class StudentDO extends BaseModel { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 用户名 + */ + private String userName; + + /** + * 身份证号 + */ + private String idCard; + + /** + * 单位名称 + */ + private String companyName; + + +} diff --git a/src/main/java/com/meishu/service/AdministerService.java b/src/main/java/com/meishu/service/AdministerService.java new file mode 100644 index 0000000..86c6c8e --- /dev/null +++ b/src/main/java/com/meishu/service/AdministerService.java @@ -0,0 +1,29 @@ +package com.meishu.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.meishu.model.AdministerDO; +import org.apache.commons.lang3.StringUtils; + +import java.util.List; + +/** + *

+ * 中心管理账户表 服务类 + *

+ * + * @author Tuyp + * @since 2021-04-25 + */ +public interface AdministerService extends IService { + + String addAdminister(AdministerDO administerDO); + + List administers(AdministerDO administerDO); + + String updateAdminister(AdministerDO administerDO); + + String deleteAdminister(AdministerDO administerDO); + + AdministerDO login(AdministerDO administerDO); + +} diff --git a/src/main/java/com/meishu/service/BatchDictService.java b/src/main/java/com/meishu/service/BatchDictService.java new file mode 100644 index 0000000..3230838 --- /dev/null +++ b/src/main/java/com/meishu/service/BatchDictService.java @@ -0,0 +1,27 @@ +package com.meishu.service; + +import com.meishu.dto.batch.AddBatchDTO; +import com.meishu.model.BatchDictDO; +import com.baomidou.mybatisplus.extension.service.IService; +import com.meishu.vo.batch.BatchesVO; + +import java.util.List; + +/** + *

+ * 批次字典表 服务类 + *

+ * + * @author Tuyp + * @since 2023-07-12 + */ +public interface BatchDictService extends IService { + + String addBatch(AddBatchDTO addBatchDTO); + + String updateBatch(AddBatchDTO addBatchDTO); + + String deleteBatch(BatchDictDO batchDictDO); + + List batches(); +} diff --git a/src/main/java/com/meishu/service/BatchExamService.java b/src/main/java/com/meishu/service/BatchExamService.java new file mode 100644 index 0000000..e5d6d2f --- /dev/null +++ b/src/main/java/com/meishu/service/BatchExamService.java @@ -0,0 +1,32 @@ +package com.meishu.service; + +import com.meishu.dto.exam.ExamPaperDTO; +import com.meishu.model.BatchDictDO; +import com.meishu.model.BatchExamDO; +import com.baomidou.mybatisplus.extension.service.IService; +import com.meishu.vo.exam.ExamPaperVO; +import com.meishu.vo.exam.ExamsVO; +import io.swagger.annotations.Example; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author Tuyp + * @since 2023-07-12 + */ +public interface BatchExamService extends IService { + + List exams(BatchExamDO batchExamDO); + + String addExam(BatchExamDO batchExamDO); + + String deleteExam(BatchExamDO batchExamDO); + + String updateExam(BatchExamDO batchExamDO); + + ExamPaperVO examPaper(ExamPaperDTO examPaperDTO); +} diff --git a/src/main/java/com/meishu/service/BatchExamStudentsService.java b/src/main/java/com/meishu/service/BatchExamStudentsService.java new file mode 100644 index 0000000..7f378a0 --- /dev/null +++ b/src/main/java/com/meishu/service/BatchExamStudentsService.java @@ -0,0 +1,26 @@ +package com.meishu.service; + +import com.meishu.model.BatchExamStudentsDO; +import com.baomidou.mybatisplus.extension.service.IService; +import com.meishu.vo.exam.BatchExamStudentScoreVO; +import com.meishu.vo.paper.PapersVO; +import com.meishu.vo.student.StudentExamsVO; + +import java.util.List; + +/** + *

+ * 学生考试映射表 服务类 + *

+ * + * @author Tuyp + * @since 2023-07-11 + */ +public interface BatchExamStudentsService extends IService { + + List exams(BatchExamStudentsDO studentExamsDO)throws Exception; + + List studentExams(BatchExamStudentsDO studentExamsDO); + + List batchExamStudentScore(BatchExamStudentsDO batchExamStudentsDO); +} diff --git a/src/main/java/com/meishu/service/BatchStudentMappingService.java b/src/main/java/com/meishu/service/BatchStudentMappingService.java new file mode 100644 index 0000000..6e12aeb --- /dev/null +++ b/src/main/java/com/meishu/service/BatchStudentMappingService.java @@ -0,0 +1,21 @@ +package com.meishu.service; + +import com.meishu.model.BatchStudentMappingDO; +import com.baomidou.mybatisplus.extension.service.IService; +import com.meishu.vo.student.BatchStudentsVO; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author Tuyp + * @since 2023-07-14 + */ +public interface BatchStudentMappingService extends IService { + + List batchStudents(BatchStudentMappingDO batchStudentMappingDO); + +} diff --git a/src/main/java/com/meishu/service/ExerciseDictService.java b/src/main/java/com/meishu/service/ExerciseDictService.java new file mode 100644 index 0000000..f351867 --- /dev/null +++ b/src/main/java/com/meishu/service/ExerciseDictService.java @@ -0,0 +1,33 @@ +package com.meishu.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.meishu.dto.exercise.LabelExercisesDTO; +import com.meishu.model.ExerciseDictDO; +import com.baomidou.mybatisplus.extension.service.IService; +import com.meishu.vo.exercise.LabelExercisesVO; +import com.meishu.vo.exercise.UploadFileVO; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; + +/** + *

+ * 习题库 服务类 + *

+ * + * @author Tuyp + * @since 2023-07-11 + */ +public interface ExerciseDictService extends IService { + + UploadFileVO uploadFile(MultipartFile multipartFile); + + IPage labelExercises(LabelExercisesDTO labelExercisesDTO); + + String deleteExercises(ExerciseDictDO exerciseDictDO); + + String addExercises(ExerciseDictDO exerciseDictDO); + + String updateExercises(ExerciseDictDO exerciseDictDO); +} diff --git a/src/main/java/com/meishu/service/ExerciseDoneHistoryService.java b/src/main/java/com/meishu/service/ExerciseDoneHistoryService.java new file mode 100644 index 0000000..8262f8d --- /dev/null +++ b/src/main/java/com/meishu/service/ExerciseDoneHistoryService.java @@ -0,0 +1,23 @@ +package com.meishu.service; + +import com.meishu.model.BatchExamStudentsDO; +import com.meishu.model.ExerciseDoneHistoryDO; +import com.baomidou.mybatisplus.extension.service.IService; +import com.meishu.vo.exercise.ScoreDetailsVO; + +import java.util.List; + +/** + *

+ * 学生做题历史记录表 服务类 + *

+ * + * @author Tuyp + * @since 2023-07-11 + */ +public interface ExerciseDoneHistoryService extends IService { + + List scoreDetails(BatchExamStudentsDO batchExamStudentsDO); + + String updateScore(ExerciseDoneHistoryDO exerciseDoneHistoryDO); +} diff --git a/src/main/java/com/meishu/service/LabelDictService.java b/src/main/java/com/meishu/service/LabelDictService.java new file mode 100644 index 0000000..30e3751 --- /dev/null +++ b/src/main/java/com/meishu/service/LabelDictService.java @@ -0,0 +1,20 @@ +package com.meishu.service; + +import com.meishu.model.LabelDictDO; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

+ * 标签表 服务类 + *

+ * + * @author Tuyp + * @since 2023-07-11 + */ +public interface LabelDictService extends IService { + + List labels(); + +} diff --git a/src/main/java/com/meishu/service/PaperDictService.java b/src/main/java/com/meishu/service/PaperDictService.java new file mode 100644 index 0000000..3e72c5b --- /dev/null +++ b/src/main/java/com/meishu/service/PaperDictService.java @@ -0,0 +1,35 @@ +package com.meishu.service; + +import com.meishu.dto.paper.SubmitDTO; +import com.meishu.model.PaperDictDO; +import com.baomidou.mybatisplus.extension.service.IService; +import com.meishu.model.PaperExercisesDO; +import com.meishu.model.PaperExercisesDO; +import com.meishu.vo.paper.ExercisesVO; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author Tuyp + * @since 2023-07-11 + */ +public interface PaperDictService extends IService { + + List exercises(PaperExercisesDO paperExercisesDO); + + String submit(SubmitDTO submitDTO); + + List allPapers(); + + String deletePaper(PaperDictDO paperDictDO); + + String addPaper(PaperDictDO paperDictDO); + + String updatePaper(PaperDictDO paperDictDO); + + void aa(); +} diff --git a/src/main/java/com/meishu/service/PaperExercisesService.java b/src/main/java/com/meishu/service/PaperExercisesService.java new file mode 100644 index 0000000..67e2176 --- /dev/null +++ b/src/main/java/com/meishu/service/PaperExercisesService.java @@ -0,0 +1,25 @@ +package com.meishu.service; + +import com.meishu.dto.paper.AddPaperExerciseDTO; +import com.baomidou.mybatisplus.extension.service.IService; +import com.meishu.model.PaperExercisesDO; +import com.meishu.vo.exercise.LabelExercisesVO; + +import java.util.List; + +/** + *

+ * 考试-题目映射表 服务类 + *

+ * + * @author Tuyp + * @since 2023-07-11 + */ +public interface PaperExercisesService extends IService { + + List exercises(PaperExercisesDO paperExercisesDO); + + String deletePaperExercise(LabelExercisesVO labelExercisesVO); + + String addPaperExercise(AddPaperExerciseDTO addPaperExerciseDTO); +} diff --git a/src/main/java/com/meishu/service/StudentService.java b/src/main/java/com/meishu/service/StudentService.java new file mode 100644 index 0000000..dd0728d --- /dev/null +++ b/src/main/java/com/meishu/service/StudentService.java @@ -0,0 +1,31 @@ +package com.meishu.service; + +import com.meishu.dto.student.LoginDTO; +import com.meishu.model.StudentDO; +import com.baomidou.mybatisplus.extension.service.IService; +import com.meishu.vo.student.LoginVO; +import org.apache.commons.lang3.StringUtils; + +import java.util.List; + +/** + *

+ * 学生表 服务类 + *

+ * + * @author Tuyp + * @since 2023-07-11 + */ +public interface StudentService extends IService { + + LoginVO login(LoginDTO loginDTO)throws Exception; + + List students(StudentDO studentDO); + + String deleteStudent(StudentDO studentDO); + + String updateStudent(StudentDO studentDO); + + String addStudent(StudentDO studentDO); + +} diff --git a/src/main/java/com/meishu/service/impl/AdministerServiceImpl.java b/src/main/java/com/meishu/service/impl/AdministerServiceImpl.java new file mode 100644 index 0000000..449123b --- /dev/null +++ b/src/main/java/com/meishu/service/impl/AdministerServiceImpl.java @@ -0,0 +1,72 @@ +package com.meishu.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.meishu.common.exception.HttpException; +import com.meishu.mapper.AdministerMapper; +import com.meishu.model.AdministerDO; +import com.meishu.service.AdministerService; +import com.meishu.util.ConstantUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 中心管理账户表 服务实现类 + *

+ * + * @author Tuyp + * @since 2021-04-25 + */ +@Service +public class AdministerServiceImpl extends ServiceImpl implements AdministerService { + + public String addAdminister(AdministerDO administerDO) { + + int count = this.baseMapper.selectCount(new QueryWrapper() + .lambda() + .eq(AdministerDO::getAccountName, administerDO.getAccountName())); + + if (count > 0) { + throw new HttpException(10002); + } + administerDO.setPassword("123456"); + this.baseMapper.insert(administerDO); + + return ConstantUtils.ADD_SUCCESS; + } + + public List administers(AdministerDO administerDO) { + return this.baseMapper.administers(administerDO.getUserName()); + } + + public String updateAdminister(AdministerDO administerDO) { + AdministerDO administerDO1 = this.baseMapper.selectById(administerDO.getId()); + if (StringUtils.isNotEmpty(administerDO1.getPassword())) { + administerDO1.setPassword(administerDO1.getPassword()); + } + return ConstantUtils.SET_SUCCESS; + } + + public String deleteAdminister(AdministerDO administerDO) { + this.baseMapper.deleteById(administerDO.getId()); + return ConstantUtils.DELETE_SUCCESS; + } + + public AdministerDO login(AdministerDO administerDO) { + + AdministerDO administerDO1 = this.baseMapper.selectOne(new QueryWrapper() + .lambda() + .eq(AdministerDO::getAccountName, administerDO.getAccountName()) + .eq(AdministerDO::getPassword, administerDO.getPassword())); + + if (null == administerDO1) { + throw new HttpException(10003); + } + + return administerDO1; + } + +} diff --git a/src/main/java/com/meishu/service/impl/BatchDictServiceImpl.java b/src/main/java/com/meishu/service/impl/BatchDictServiceImpl.java new file mode 100644 index 0000000..4490912 --- /dev/null +++ b/src/main/java/com/meishu/service/impl/BatchDictServiceImpl.java @@ -0,0 +1,162 @@ +package com.meishu.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.meishu.common.exception.HttpException; +import com.meishu.dto.batch.AddBatchDTO; +import com.meishu.mapper.BatchExamMapper; +import com.meishu.mapper.BatchExamsStudentsMapper; +import com.meishu.mapper.BatchStudentMappingMapper; +import com.meishu.model.BatchDictDO; +import com.meishu.mapper.BatchDictMapper; +import com.meishu.model.BatchExamDO; +import com.meishu.model.BatchExamStudentsDO; +import com.meishu.model.BatchStudentMappingDO; +import com.meishu.service.BatchDictService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.meishu.util.ConstantUtils; +import com.meishu.vo.batch.BatchesVO; +import com.meishu.vo.student.BatchStudentsVO; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +/** + *

+ * 批次字典表 服务实现类 + *

+ * + * @author Tuyp + * @since 2023-07-12 + */ +@Service +public class BatchDictServiceImpl extends ServiceImpl implements BatchDictService { + + @Autowired + private BatchExamMapper batchExamMapper; + + @Autowired + private BatchStudentMappingMapper batchStudentMappingMapper; + + @Autowired + private BatchExamsStudentsMapper batchExamsStudentsMapper; + + public String addBatch(AddBatchDTO addBatchDTO) { + + int count = this.baseMapper.selectCount(new QueryWrapper() + .lambda() + .eq(BatchDictDO::getBatchName, addBatchDTO.getBatchName())); + + if (count > 0) { + throw new HttpException(40001); + } + + BatchDictDO batchDictDO = new BatchDictDO(); + BeanUtils.copyProperties(addBatchDTO,batchDictDO); + this.baseMapper.insert(batchDictDO); + List batchExamStudentsDOS = addBatchDTO.getStudentIds(); + for (BatchStudentMappingDO besd : batchExamStudentsDOS) { + besd.setBatchId(batchDictDO.getId()); + batchStudentMappingMapper.insert(besd); + + //批次下的考试 + List batchExamDOS = batchExamMapper.selectList(new QueryWrapper() + .lambda() + .eq(BatchExamDO::getBatchId,batchDictDO.getId())); + for (BatchExamDO batchExamDO : batchExamDOS){ + BatchExamStudentsDO batchExamStudentsDO = new BatchExamStudentsDO(); + batchExamStudentsDO.setBatchExamId(batchExamDO.getId()); + batchExamStudentsDO.setStudentId(besd.getStudentId()); + batchExamStudentsDO.setExamCode(besd.getExamCode()); + batchExamMapper.insert(batchExamDO); + } + + } + return ConstantUtils.ADD_SUCCESS; + } + + public String updateBatch(AddBatchDTO addBatchDTO) { + + int count = this.baseMapper.selectCount(new QueryWrapper() + .lambda() + .eq(BatchDictDO::getBatchName, addBatchDTO.getBatchName()) + .ne(BatchDictDO::getId, addBatchDTO.getId())); + + if (count > 0) { + throw new HttpException(40001); + } + + BatchDictDO batchDictDO = new BatchDictDO(); + BeanUtils.copyProperties(addBatchDTO,batchDictDO); + + this.baseMapper.updateById(batchDictDO); + + //先删 + batchStudentMappingMapper.delete(new QueryWrapper() + .lambda() + .eq(BatchStudentMappingDO::getBatchId,batchDictDO.getId())); + + //批次下的考试 + List batchExamDOS = batchExamMapper.selectList(new QueryWrapper() + .lambda() + .eq(BatchExamDO::getBatchId,batchDictDO.getId())); + for (BatchExamDO batchExamDO : batchExamDOS){ + batchExamsStudentsMapper.delete(new QueryWrapper() + .lambda() + .eq(BatchExamStudentsDO::getBatchExamId,batchExamDO.getId())); + } + + //后增 + List batchStudentMappingDOS = addBatchDTO.getStudentIds(); + + for (BatchStudentMappingDO batchStudentMappingDO : batchStudentMappingDOS){ + batchStudentMappingDO.setBatchId(batchDictDO.getId()); + batchStudentMappingMapper.insert(batchStudentMappingDO); + for (BatchExamDO batchExamDO : batchExamDOS){ + BatchExamStudentsDO batchExamStudentsDO = new BatchExamStudentsDO(); + batchExamStudentsDO.setBatchExamId(batchExamDO.getId()); + batchExamStudentsDO.setStudentId(batchStudentMappingDO.getStudentId()); + batchExamStudentsDO.setExamCode(batchExamStudentsDO.getExamCode()); + batchExamsStudentsMapper.insert(batchExamStudentsDO); + } + } + return ConstantUtils.SET_SUCCESS; + } + + public String deleteBatch(BatchDictDO batchDictDO){ + + //当前批次下有考试 的话删不掉 + + Integer count = batchExamMapper.selectCount(new QueryWrapper() + .lambda() + .eq(BatchExamDO::getBatchId, batchDictDO.getId())); + + if (count>0){ + throw new HttpException(50001); + } + + this.baseMapper.deleteById(batchDictDO.getId()); + return ConstantUtils.DELETE_SUCCESS; + } + + public List batches(){ + + List batchesVOS = new ArrayList<>(); + + List batchDictDOS = this.baseMapper.selectList(null); + for (BatchDictDO batchDictDO : batchDictDOS){ + BatchesVO batchesVO = new BatchesVO(); + BeanUtils.copyProperties(batchDictDO,batchesVO); + //查看 该批次下的学生 + List batchStudentsVOS = batchStudentMappingMapper.batchStudents(batchDictDO.getId()); + batchesVO.setBatchStudentsVOS(batchStudentsVOS); + batchesVOS.add(batchesVO); + } + + return batchesVOS; + } + +} diff --git a/src/main/java/com/meishu/service/impl/BatchExamServiceImpl.java b/src/main/java/com/meishu/service/impl/BatchExamServiceImpl.java new file mode 100644 index 0000000..af8ab1d --- /dev/null +++ b/src/main/java/com/meishu/service/impl/BatchExamServiceImpl.java @@ -0,0 +1,151 @@ +package com.meishu.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.meishu.dto.exam.ExamPaperDTO; +import com.meishu.mapper.BatchExamsStudentsMapper; +import com.meishu.mapper.ExerciseDoneHistoryMapper; +import com.meishu.mapper.PaperDictMapper; +import com.meishu.model.*; +import com.meishu.mapper.BatchExamMapper; +import com.meishu.service.BatchExamService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.meishu.util.ConstantUtils; +import com.meishu.vo.exam.ExamPaperVO; +import com.meishu.vo.exam.ExamsVO; +import com.meishu.vo.exercise.ExercisesWithAnswerVO; +import com.meishu.vo.paper.ExercisesVO; +import com.meishu.vo.student.StudentVO; +import net.sf.json.JSONArray; +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.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author Tuyp + * @since 2023-07-12 + */ +@Service +public class BatchExamServiceImpl extends ServiceImpl implements BatchExamService { + + @Autowired + private BatchExamsStudentsMapper batchExamsStudentsMapper; + + @Autowired + private PaperDictMapper paperDictMapper; + + @Autowired + private ExerciseDoneHistoryMapper exerciseDoneHistoryMapper; + + public List exams(BatchExamDO batchExamDO) { + + List exams = this.baseMapper.exams(batchExamDO.getBatchId()); + + for (ExamsVO examsVO : exams) { + //考生名单 + List studentVOS = batchExamsStudentsMapper.batchExamStudents(examsVO.getId()); + examsVO.setStudentVOS(studentVOS); + } + return exams; + } + + @Transactional(rollbackFor = Exception.class) + public String addExam(BatchExamDO batchExamDO) { + this.baseMapper.insert(batchExamDO); + return ConstantUtils.ADD_SUCCESS; + } + + @Transactional(rollbackFor = Exception.class) + public String deleteExam(BatchExamDO batchExamDO) { + + this.baseMapper.deleteById(batchExamDO.getId()); + + batchExamsStudentsMapper.delete(new QueryWrapper() + .lambda() + .eq(BatchExamStudentsDO::getBatchExamId, batchExamDO.getId())); + + return ConstantUtils.DELETE_SUCCESS; + } + + public String updateExam(BatchExamDO batchExamDO) { + + this.baseMapper.updateById(batchExamDO); + + return ConstantUtils.SET_SUCCESS; + } + + public ExamPaperVO examPaper(ExamPaperDTO examPaperDTO) { + + ExamPaperVO examPaperVO = new ExamPaperVO(); + BatchExamDO batchExamDO = this.baseMapper.selectById(examPaperDTO.getExamId()); + + examPaperVO.setStartDate(batchExamDO.getStartDate()); + examPaperVO.setEndDate(batchExamDO.getEndDate()); + examPaperVO.setExamName(batchExamDO.getExamName()); + + //查看是否已经查看过卷子,没有的话重新生成一次,有的话就用以前的 + int count = exerciseDoneHistoryMapper.selectCount(new QueryWrapper() + .lambda() + .eq(ExerciseDoneHistoryDO::getStudentId, examPaperDTO.getUserId()) + .eq(ExerciseDoneHistoryDO::getBatchExamId, examPaperDTO.getExamId())); + + //试卷 不返回答案 + List exercisesVOS = new ArrayList<>(); + + if (count == 0) { + List exercisesWithAnswerVOS = new ArrayList<>(); + //查卷子题型 + List types = paperDictMapper.exerciseTypes(examPaperDTO.getPaperId()); + //每个 题型的题目随机 然后组卷 + for (String type : types) { + List exerciseTmp = paperDictMapper.exercisesWithAnswer(examPaperDTO.getPaperId(), type); + Collections.shuffle(exerciseTmp); + exercisesWithAnswerVOS.addAll(exerciseTmp); + } + //返回 + int i = 1; + for (ExercisesWithAnswerVO exercise : exercisesWithAnswerVOS) { + ExercisesVO exercisesVO = new ExercisesVO(); + BeanUtils.copyProperties(exercise, exercisesVO); + ExerciseDoneHistoryDO exerciseDoneHistoryDO = new ExerciseDoneHistoryDO(); + exerciseDoneHistoryDO.setStudentId(examPaperDTO.getUserId()); + exerciseDoneHistoryDO.setBatchExamId(examPaperDTO.getExamId()); + exerciseDoneHistoryDO.setPaperId(examPaperDTO.getPaperId()); + exerciseDoneHistoryDO.setExerciseId(exercise.getId()); + exerciseDoneHistoryDO.setOrderNo(i); + exerciseDoneHistoryMapper.insert(exerciseDoneHistoryDO); + if ("填空题".equals(exercise.getExerciseType()) || "主观题".equals(exercise.getExerciseType())) { + JSONArray jsonArray = JSONArray.fromObject(exercise.getRightAnswer()); + exercisesVO.setCnt(jsonArray.size()); + } + exercisesVO.setId(exerciseDoneHistoryDO.getId()); + exercisesVOS.add(exercisesVO); + i++; + } + } else { + List exercisesWithAnswerVOS = paperDictMapper.examExercises(examPaperDTO.getExamId(), examPaperDTO.getUserId(), examPaperDTO.getPaperId()); + for (ExercisesWithAnswerVO exercise : exercisesWithAnswerVOS) { + ExercisesVO exercisesVO = new ExercisesVO(); + BeanUtils.copyProperties(exercise, exercisesVO); + if ("填空题".equals(exercise.getExerciseType()) || "主观题".equals(exercise.getExerciseType())) { + JSONArray jsonArray = JSONArray.fromObject(exercise.getRightAnswer()); + exercisesVO.setCnt(jsonArray.size()); + } + exercisesVOS.add(exercisesVO); + } + } + + examPaperVO.setExercises(exercisesVOS); + return examPaperVO; + } + +} diff --git a/src/main/java/com/meishu/service/impl/BatchExamStudentsServiceImpl.java b/src/main/java/com/meishu/service/impl/BatchExamStudentsServiceImpl.java new file mode 100644 index 0000000..b2f4468 --- /dev/null +++ b/src/main/java/com/meishu/service/impl/BatchExamStudentsServiceImpl.java @@ -0,0 +1,63 @@ +package com.meishu.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.meishu.model.BatchExamStudentsDO; +import com.meishu.mapper.BatchExamsStudentsMapper; +import com.meishu.service.BatchExamStudentsService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.meishu.vo.exam.BatchExamStudentScoreVO; +import com.meishu.vo.paper.PapersVO; +import com.meishu.vo.student.StudentExamsVO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; + +/** + *

+ * 学生考试映射表 服务实现类 + *

+ * + * @author Tuyp + * @since 2023-07-11 + */ +@Service +public class BatchExamStudentsServiceImpl extends ServiceImpl implements BatchExamStudentsService { + + public List exams(BatchExamStudentsDO studentExamsDO) throws Exception{ + List exams = this.baseMapper.exams(studentExamsDO.getStudentId()); + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + for (PapersVO vo : exams) { + //未开始 进行中 已结束 + if (simpleDateFormat.parse(vo.getStartDate()).after(new Date())) { + vo.setStatus("未开始"); + } else if (simpleDateFormat.parse(vo.getEndDate()).before(new Date())) { + vo.setStatus("已结束"); + } else { + vo.setStatus("进行中"); + } + //是否已经参加过考试了 + BatchExamStudentsDO batchExamStudentsDO = this.baseMapper.selectOne(new QueryWrapper() + .lambda() + .eq(BatchExamStudentsDO::getBatchExamId,vo.getId()) + .eq(BatchExamStudentsDO::getStudentId,studentExamsDO.getStudentId())); + if (null == batchExamStudentsDO.getScore()){ + vo.setSubmitStatus(false); + }else { + vo.setSubmitStatus(true); + } + } + return exams; + } + + public List studentExams(BatchExamStudentsDO studentExamsDO) { + return this.baseMapper.studentScore(studentExamsDO.getStudentId()); + } + + public List batchExamStudentScore(BatchExamStudentsDO batchExamStudentsDO) { + return this.baseMapper.batchExamStudentScore(batchExamStudentsDO.getBatchExamId()); + } + +} diff --git a/src/main/java/com/meishu/service/impl/BatchStudentMappingServiceImpl.java b/src/main/java/com/meishu/service/impl/BatchStudentMappingServiceImpl.java new file mode 100644 index 0000000..29164fb --- /dev/null +++ b/src/main/java/com/meishu/service/impl/BatchStudentMappingServiceImpl.java @@ -0,0 +1,28 @@ +package com.meishu.service.impl; + +import com.meishu.common.ResponseData; +import com.meishu.model.BatchStudentMappingDO; +import com.meishu.mapper.BatchStudentMappingMapper; +import com.meishu.service.BatchStudentMappingService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.meishu.vo.student.BatchStudentsVO; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author Tuyp + * @since 2023-07-14 + */ +@Service +public class BatchStudentMappingServiceImpl extends ServiceImpl implements BatchStudentMappingService { + + public List batchStudents(BatchStudentMappingDO batchStudentMappingDO){ + return this.baseMapper.batchStudents(batchStudentMappingDO.getBatchId()); + } + +} diff --git a/src/main/java/com/meishu/service/impl/ExerciseDictServiceImpl.java b/src/main/java/com/meishu/service/impl/ExerciseDictServiceImpl.java new file mode 100644 index 0000000..e4b1915 --- /dev/null +++ b/src/main/java/com/meishu/service/impl/ExerciseDictServiceImpl.java @@ -0,0 +1,246 @@ +package com.meishu.service.impl; + +import com.aliyun.oss.ClientException; +import com.aliyun.oss.OSS; +import com.aliyun.oss.OSSClientBuilder; +import com.aliyun.oss.OSSException; +import com.aliyun.oss.model.*; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.meishu.common.exception.HttpException; +import com.meishu.dto.exercise.LabelExercisesDTO; +import com.meishu.mapper.PaperExercisesMapper; +import com.meishu.model.ExerciseDictDO; +import com.meishu.mapper.ExerciseDictMapper; +import com.meishu.model.PaperExercisesDO; +import com.meishu.service.ExerciseDictService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.meishu.util.ConstantUtils; +import com.meishu.vo.exercise.LabelExercisesVO; +import com.meishu.vo.exercise.UploadFileVO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.List; + +/** + *

+ * 习题库 服务实现类 + *

+ * + * @author Tuyp + * @since 2023-07-11 + */ +@Service +public class ExerciseDictServiceImpl extends ServiceImpl implements ExerciseDictService { + + @Autowired + private PaperExercisesMapper paperExercisesMapper; + + + @Value("${spring.profiles.active}") + private String env; + + public static final String keyId = "LTAI5tPAH7P7WQVeowo517BE"; + + public static final String secret = "0ueqhIfdAZyw5lWlBVSLpAxTtx37RY"; + + public IPage labelExercises(LabelExercisesDTO labelExercisesDTO) { + Page pager = new Page(labelExercisesDTO.getPageNum(), labelExercisesDTO.getPageSize()); + return this.baseMapper.labelExercises(pager, labelExercisesDTO.getLabelId()); + } + + + public String deleteExercises(ExerciseDictDO exerciseDictDO) { + + int count = paperExercisesMapper.selectCount(new QueryWrapper() + .lambda() + .eq(PaperExercisesDO::getExerciseId, exerciseDictDO.getId())); + + if (count > 0) { + throw new HttpException(30001); + } + + this.baseMapper.deleteById(exerciseDictDO.getId()); + return ConstantUtils.DELETE_SUCCESS; + } + + public String addExercises(ExerciseDictDO exerciseDictDO) { + this.baseMapper.insert(exerciseDictDO); + return ConstantUtils.ADD_SUCCESS; + } + + public String updateExercises(ExerciseDictDO exerciseDictDO) { + this.baseMapper.updateById(exerciseDictDO); + return ConstantUtils.ADD_SUCCESS; + } + + public UploadFileVO uploadFile(MultipartFile multipartFile) { + + UploadFileVO uploadFileVO = new UploadFileVO(); + + + // Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。 + String endpoint = "http://oss-cn-shanghai.aliyuncs.com"; + // 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。 + String accessKeyId = keyId; + String accessKeySecret = secret; + // 填写Bucket名称,例如examplebucket。 +// String bucketName = "zhongzhi-cms"; + // 填写Object完整路径,例如exampledir/exampleobject.txt。Object完整路径中不能包含Bucket名称。 + String objectName = System.currentTimeMillis() + "_" + multipartFile.getOriginalFilename(); + + // 创建OSSClient实例。 + OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); + +// if (env.equals("dev")) { +// env = "teachaicms-test"; +// } +// if (env.equals("prod")) { + env = "teachaicms"; +// } + try { + // 创建InitiateMultipartUploadRequest对象。 + InitiateMultipartUploadRequest request = new InitiateMultipartUploadRequest(env, objectName); + + // 如果需要在初始化分片时设置请求头,请参考以下示例代码。 + ObjectMetadata metadata = new ObjectMetadata(); + metadata.setContentType(multipartFile.getContentType()); + metadata.setContentDisposition("inline"); + metadata.setHeader("x-oss-force-download", false); + request.setObjectMetadata(metadata); + // 如果需要在初始化分片时设置请求头,请参考以下示例代码。 + // ObjectMetadata metadata = new ObjectMetadata(); + // metadata.setHeader(OSSHeaders.OSS_STORAGE_CLASS, StorageClass.Standard.toString()); + // 指定该Object的网页缓存行为。 + // metadata.setCacheControl("no-cache"); + // 指定该Object被下载时的名称。 + // metadata.setContentDisposition("attachment;filename=oss_MultipartUpload.txt"); + // 指定该Object的内容编码格式。 + // metadata.setContentEncoding(OSSConstants.DEFAULT_CHARSET_NAME); + // 指定初始化分片上传时是否覆盖同名Object。此处设置为true,表示禁止覆盖同名Object。 + // metadata.setHeader("x-oss-forbid-overwrite", "true"); + // 指定上传该Object的每个part时使用的服务器端加密方式。 + // metadata.setHeader(OSSHeaders.OSS_SERVER_SIDE_ENCRYPTION, ObjectMetadata.KMS_SERVER_SIDE_ENCRYPTION); + // 指定Object的加密算法。如果未指定此选项,表明Object使用AES256加密算法。 + // metadata.setHeader(OSSHeaders.OSS_SERVER_SIDE_DATA_ENCRYPTION, ObjectMetadata.KMS_SERVER_SIDE_ENCRYPTION); + // 指定KMS托管的用户主密钥。 + // metadata.setHeader(OSSHeaders.OSS_SERVER_SIDE_ENCRYPTION_KEY_ID, "9468da86-3509-4f8d-a61e-6eab1eac****"); + // 指定Object的存储类型。 + // metadata.setHeader(OSSHeaders.OSS_STORAGE_CLASS, StorageClass.Standard); + // 指定Object的对象标签,可同时设置多个标签。 + // metadata.setHeader(OSSHeaders.OSS_TAGGING, "a:1"); + // request.setObjectMetadata(metadata); + + // 初始化分片。 + InitiateMultipartUploadResult upresult = ossClient.initiateMultipartUpload(request); + // 返回uploadId,它是分片上传事件的唯一标识。您可以根据该uploadId发起相关的操作,例如取消分片上传、查询分片上传等。 + String uploadId = upresult.getUploadId(); + + // partETags是PartETag的集合。PartETag由分片的ETag和分片号组成。 + List partETags = new ArrayList(); + // 每个分片的大小,用于计算文件有多少个分片。单位为字节。 + final long partSize = 1 * 1024 * 1024L; //1 MB。 + + // 根据上传的数据大小计算分片数。以本地文件为例,说明如何通过File.length()获取上传数据的大小。 +// final File sampleFile = new File("D:\\localpath\\examplefile.txt"); +// long fileLength = sampleFile.length(); +// int partCount = (int) (fileLength / partSize); +// if (fileLength % partSize != 0) { +// partCount++; +// } + + long fileLength = multipartFile.getSize(); + int partCount = (int) (fileLength / partSize); + if (fileLength % partSize != 0) { + partCount++; + } + + // 遍历分片上传。 + for (int i = 0; i < partCount; i++) { + long startPos = i * partSize; + long curPartSize = (i + 1 == partCount) ? (fileLength - startPos) : partSize; + UploadPartRequest uploadPartRequest = new UploadPartRequest(); + uploadPartRequest.setBucketName(env); + uploadPartRequest.setKey(objectName); + uploadPartRequest.setUploadId(uploadId); + // 设置上传的分片流。 + // 以本地文件为例说明如何创建FIleInputstream,并通过InputStream.skip()方法跳过指定数据。 + InputStream instream = multipartFile.getInputStream(); + instream.skip(startPos); + uploadPartRequest.setInputStream(instream); + // 设置分片大小。除了最后一个分片没有大小限制,其他的分片最小为100 KB。 + uploadPartRequest.setPartSize(curPartSize); + // 设置分片号。每一个上传的分片都有一个分片号,取值范围是1~10000,如果超出此范围,OSS将返回InvalidArgument错误码。 + uploadPartRequest.setPartNumber(i + 1); + // 每个分片不需要按顺序上传,甚至可以在不同客户端上传,OSS会按照分片号排序组成完整的文件。 + UploadPartResult uploadPartResult = ossClient.uploadPart(uploadPartRequest); + // 每次上传分片之后,OSS的返回结果包含PartETag。PartETag将被保存在partETags中。 + partETags.add(uploadPartResult.getPartETag()); + } + + + // 创建CompleteMultipartUploadRequest对象。 + // 在执行完成分片上传操作时,需要提供所有有效的partETags。OSS收到提交的partETags后,会逐一验证每个分片的有效性。当所有的数据分片验证通过后,OSS将把这些分片组合成一个完整的文件。 + CompleteMultipartUploadRequest completeMultipartUploadRequest = + new CompleteMultipartUploadRequest(env, objectName, uploadId, partETags); + + // 如果需要在完成分片上传的同时设置文件访问权限,请参考以下示例代码。 + // completeMultipartUploadRequest.setObjectACL(CannedAccessControlList.Private); + // 指定是否列举当前UploadId已上传的所有Part。仅在Java SDK为3.14.0及以上版本时,支持通过服务端List分片数据来合并完整文件时,将CompleteMultipartUploadRequest中的partETags设置为null。 + // Map headers = new HashMap(); + // 如果指定了x-oss-complete-all:yes,则OSS会列举当前UploadId已上传的所有Part,然后按照PartNumber的序号排序并执行CompleteMultipartUpload操作。 + // 如果指定了x-oss-complete-all:yes,则不允许继续指定body,否则报错。 + // headers.put("x-oss-complete-all","yes"); + // completeMultipartUploadRequest.setHeaders(headers); + + // 完成分片上传。 + CompleteMultipartUploadResult completeMultipartUploadResult = ossClient.completeMultipartUpload(completeMultipartUploadRequest); + uploadFileVO.setImageUrl(completeMultipartUploadResult.getLocation()); + System.out.println(completeMultipartUploadResult.getLocation()); + } 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()); + } catch (FileNotFoundException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } finally { + if (ossClient != null) { + ossClient.shutdown(); + } + } + + return uploadFileVO; + } + + /** + * 创建文件目录 + * + * @param path + */ + public void createDir(String path) { + File dir = new File(path); + if (!dir.exists()) { + dir.mkdir(); + } + } +} diff --git a/src/main/java/com/meishu/service/impl/ExerciseDoneHistoryServiceImpl.java b/src/main/java/com/meishu/service/impl/ExerciseDoneHistoryServiceImpl.java new file mode 100644 index 0000000..239f0b7 --- /dev/null +++ b/src/main/java/com/meishu/service/impl/ExerciseDoneHistoryServiceImpl.java @@ -0,0 +1,55 @@ +package com.meishu.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.meishu.mapper.BatchExamsStudentsMapper; +import com.meishu.model.BatchExamStudentsDO; +import com.meishu.model.ExerciseDoneHistoryDO; +import com.meishu.mapper.ExerciseDoneHistoryMapper; +import com.meishu.service.ExerciseDoneHistoryService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.meishu.util.ConstantUtils; +import com.meishu.vo.exercise.ScoreDetailsVO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 学生做题历史记录表 服务实现类 + *

+ * + * @author Tuyp + * @since 2023-07-11 + */ +@Service +public class ExerciseDoneHistoryServiceImpl extends ServiceImpl implements ExerciseDoneHistoryService { + + @Autowired + private ExerciseDoneHistoryMapper exerciseDoneHistoryMapper; + + @Autowired + private BatchExamsStudentsMapper batchExamsStudentsMapper; + + public List scoreDetails(BatchExamStudentsDO batchExamStudentsDO) { + return this.baseMapper.scoreDetails(batchExamStudentsDO.getBatchExamId(), batchExamStudentsDO.getStudentId()); + } + + public String updateScore(ExerciseDoneHistoryDO exerciseDoneHistoryDO) { + + ExerciseDoneHistoryDO exerciseDoneHistoryDO1 = exerciseDoneHistoryMapper.selectById(exerciseDoneHistoryDO.getId()); + exerciseDoneHistoryDO1.setScore(exerciseDoneHistoryDO.getScore()); + exerciseDoneHistoryMapper.updateById(exerciseDoneHistoryDO1); + + BatchExamStudentsDO batchExamStudentsDO = batchExamsStudentsMapper.selectOne(new QueryWrapper() + .lambda() + .eq(BatchExamStudentsDO::getBatchExamId,exerciseDoneHistoryDO1.getBatchExamId()) + .eq(BatchExamStudentsDO::getStudentId,exerciseDoneHistoryDO1.getStudentId())); + batchExamStudentsDO.setScore(exerciseDoneHistoryDO.getScore()); + batchExamsStudentsMapper.updateById(batchExamStudentsDO); + + return ConstantUtils.SET_SUCCESS; + } + + +} diff --git a/src/main/java/com/meishu/service/impl/LabelDictServiceImpl.java b/src/main/java/com/meishu/service/impl/LabelDictServiceImpl.java new file mode 100644 index 0000000..6477c2c --- /dev/null +++ b/src/main/java/com/meishu/service/impl/LabelDictServiceImpl.java @@ -0,0 +1,26 @@ +package com.meishu.service.impl; + +import com.meishu.model.LabelDictDO; +import com.meishu.mapper.LabelDictMapper; +import com.meishu.service.LabelDictService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 标签表 服务实现类 + *

+ * + * @author Tuyp + * @since 2023-07-11 + */ +@Service +public class LabelDictServiceImpl extends ServiceImpl implements LabelDictService { + + public List labels() { + return this.baseMapper.selectList(null); + } + +} diff --git a/src/main/java/com/meishu/service/impl/PaperDictServiceImpl.java b/src/main/java/com/meishu/service/impl/PaperDictServiceImpl.java new file mode 100644 index 0000000..24fe677 --- /dev/null +++ b/src/main/java/com/meishu/service/impl/PaperDictServiceImpl.java @@ -0,0 +1,147 @@ +package com.meishu.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.meishu.common.exception.HttpException; +import com.meishu.dto.paper.PaperStudentExerciseDTO; +import com.meishu.dto.paper.SubmitDTO; +import com.meishu.mapper.ExerciseDictMapper; +import com.meishu.mapper.ExerciseDoneHistoryMapper; +import com.meishu.mapper.BatchExamsStudentsMapper; +import com.meishu.model.*; +import com.meishu.mapper.PaperDictMapper; +import com.meishu.service.PaperDictService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.meishu.util.ConstantUtils; +import com.meishu.vo.paper.ExercisesVO; +import net.sf.json.JSONArray; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author Tuyp + * @since 2023-07-11 + */ +@Service +public class PaperDictServiceImpl extends ServiceImpl implements PaperDictService { + + @Autowired + private ExerciseDictMapper exerciseDictMapper; + + @Autowired + private BatchExamsStudentsMapper studentExamsMapper; + + @Autowired + private ExerciseDoneHistoryMapper exerciseDoneHistoryMapper; + + public List exercises(PaperExercisesDO paperExercisesDO) { + return this.baseMapper.exercises(paperExercisesDO.getPaperId()); + } + + @Transactional(rollbackFor = Exception.class) + public String submit(SubmitDTO submitDTO) { + + int rightCount = 0; + + BatchExamStudentsDO studentExamsDO = studentExamsMapper.selectOne(new QueryWrapper() + .lambda() + .eq(BatchExamStudentsDO::getStudentId, submitDTO.getStudentId()) + .eq(BatchExamStudentsDO::getBatchExamId, submitDTO.getBatchExamId())); + + List examStudentExerciseDTOS = submitDTO.getPaperStudentExerciseDTOS(); + for (PaperStudentExerciseDTO examStudentExerciseDTO : examStudentExerciseDTOS) { + + ExerciseDoneHistoryDO exerciseDoneHistoryDO = exerciseDoneHistoryMapper.selectById(examStudentExerciseDTO.getExerciseId()); + exerciseDoneHistoryDO.setAnswer(examStudentExerciseDTO.getSelectAnswer()); + ExerciseDictDO exerciseDict = exerciseDictMapper.selectById(exerciseDoneHistoryDO.getExerciseId()); + if ("填空题".equals(exerciseDict.getExerciseType())){ + JSONArray jsonArray = JSONArray.fromObject(exerciseDict.getRightAnswer()); + String[] studentAnswers = examStudentExerciseDTO.getSelectAnswer().split(","); + for (int i = 0; i < jsonArray.size(); i++) { + if (i allPapers() { + return this.baseMapper.selectList(null); + } + + public String deletePaper(PaperDictDO examDictDO) { + this.baseMapper.deleteById(examDictDO.getId()); + return ConstantUtils.DELETE_SUCCESS; + } + + public String addPaper(PaperDictDO examDictDO) { + this.baseMapper.insert(examDictDO); + return ConstantUtils.ADD_SUCCESS; + } + + public String updatePaper(PaperDictDO examDictDO) { + this.baseMapper.updateById(examDictDO); + return ConstantUtils.ADD_SUCCESS; + } + + public void aa(){ + + List exerciseDoneHistoryDOS = exerciseDoneHistoryMapper.selectList(new QueryWrapper() + .lambda() + .ge(ExerciseDoneHistoryDO::getId,4951)); + + for (ExerciseDoneHistoryDO exerciseDoneHistoryDO : exerciseDoneHistoryDOS){ + int rightCount = 0; + ExerciseDictDO exerciseDictDO = exerciseDictMapper.selectById(exerciseDoneHistoryDO.getExerciseId()); + + JSONArray jsonArray = JSONArray.fromObject(exerciseDictDO.getRightAnswer()); + String[] studentAnswers = exerciseDoneHistoryDO.getAnswer().split(","); + for (int i = 0; i < jsonArray.size(); i++) { + if (i + * 考试-题目映射表 服务实现类 + *

+ * + * @author Tuyp + * @since 2023-07-11 + */ +@Service +public class PaperExercisesServiceImpl extends ServiceImpl implements PaperExercisesService { + + public List exercises(PaperExercisesDO paperExercisesDO) { + return this.baseMapper.getPaperExercises(paperExercisesDO.getPaperId()); + } + + public String deletePaperExercise(LabelExercisesVO labelExercisesVO) { + this.baseMapper.deleteById(labelExercisesVO.getPaperExerciseId()); + return ConstantUtils.DELETE_SUCCESS; + } + + public String addPaperExercise(AddPaperExerciseDTO addPaperExerciseDTO) { + + List exerciseIds = addPaperExerciseDTO.getExerciseIds(); + + for (Long exerciseId : exerciseIds){ + int count = this.baseMapper.selectCount(new QueryWrapper() + .lambda() + .eq(PaperExercisesDO::getPaperId,addPaperExerciseDTO.getPaperId()) + .eq(PaperExercisesDO::getExerciseId,exerciseId)); + PaperExercisesDO paperExercisesDO = new PaperExercisesDO(); + paperExercisesDO.setPaperId(addPaperExerciseDTO.getPaperId()); + paperExercisesDO.setExerciseId(exerciseId); + if (count > 0){ + throw new HttpException(30002); + } + this.baseMapper.insert(paperExercisesDO); + } + return ConstantUtils.ADD_SUCCESS; + } + +} diff --git a/src/main/java/com/meishu/service/impl/StudentServiceImpl.java b/src/main/java/com/meishu/service/impl/StudentServiceImpl.java new file mode 100644 index 0000000..f0c86eb --- /dev/null +++ b/src/main/java/com/meishu/service/impl/StudentServiceImpl.java @@ -0,0 +1,136 @@ +package com.meishu.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.meishu.common.exception.HttpException; +import com.meishu.dto.student.LoginDTO; +import com.meishu.mapper.BatchDictMapper; +import com.meishu.mapper.BatchExamsStudentsMapper; +import com.meishu.mapper.BatchStudentMappingMapper; +import com.meishu.model.BatchDictDO; +import com.meishu.model.BatchStudentMappingDO; +import com.meishu.model.StudentDO; +import com.meishu.mapper.StudentMapper; +import com.meishu.model.BatchExamStudentsDO; +import com.meishu.service.StudentService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.meishu.util.ConstantUtils; +import com.meishu.vo.student.LoginVO; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; + +/** + *

+ * 学生表 服务实现类 + *

+ * + * @author Tuyp + * @since 2023-07-11 + */ +@Service +public class StudentServiceImpl extends ServiceImpl implements StudentService { + + @Autowired + private BatchExamsStudentsMapper batchExamsStudentsMapper; + + @Autowired + private BatchStudentMappingMapper batchStudentMappingMapper; + + @Autowired + private BatchDictMapper batchDictMapper; + + public LoginVO login(LoginDTO loginDTO) throws Exception{ + + StudentDO studentDO1 = this.baseMapper.selectOne(new QueryWrapper() + .lambda() + .eq(StudentDO::getIdCard, loginDTO.getIdCard())); + + if (null == studentDO1){ + throw new HttpException(10001); + } + + BatchStudentMappingDO batchStudentMappingDO = batchStudentMappingMapper.selectOne(new QueryWrapper() + .lambda() + .eq(BatchStudentMappingDO::getStudentId, studentDO1.getId()) + .eq(BatchStudentMappingDO::getExamCode, loginDTO.getExamCode())); + + if (null == batchStudentMappingDO) { + throw new HttpException(10001); + } + + BatchDictDO batchDictDO = batchDictMapper.selectById(batchStudentMappingDO.getBatchId()); + + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + if (simpleDateFormat.parse(batchDictDO.getStartDate()).after(new Date())||simpleDateFormat.parse(batchDictDO.getEndDate()).before(new Date())){ + throw new HttpException(10004); + } + + //签到 取第一次 + if (null == batchStudentMappingDO.getSignDate()){ + batchStudentMappingDO.setSignDate(new Date()); + batchStudentMappingMapper.updateById(batchStudentMappingDO); + } + + LoginVO loginVO = new LoginVO(); + loginVO.setId(studentDO1.getId()); + loginVO.setUserName(studentDO1.getUserName()); + loginVO.setExamCode(batchStudentMappingDO.getExamCode()); + loginVO.setCompanyName(studentDO1.getCompanyName()); + loginVO.setBatchId(batchStudentMappingDO.getBatchId()); + return loginVO; + } + + public List students(StudentDO studentDO) { + return this.baseMapper.students(studentDO.getUserName()); + } + + public String deleteStudent(StudentDO studentDO) { + + Integer count = batchExamsStudentsMapper.selectCount(new QueryWrapper() + .lambda() + .eq(BatchExamStudentsDO::getStudentId, studentDO.getId())); + if (count > 0) { + throw new HttpException(20001); + } + this.baseMapper.deleteById(studentDO.getId()); + return ConstantUtils.DELETE_SUCCESS; + } + + public String updateStudent(StudentDO studentDO) { + + StudentDO studentDO1 = this.baseMapper.selectById(studentDO.getId()); + + if (StringUtils.isNotEmpty(studentDO.getIdCard())) { + studentDO1.setIdCard(studentDO.getIdCard()); + } + + if (StringUtils.isNotEmpty(studentDO.getCompanyName())) { + studentDO1.setCompanyName(studentDO.getCompanyName()); + } + + if (StringUtils.isNotEmpty(studentDO.getUserName())) { + studentDO1.setUserName(studentDO.getUserName()); + } + this.baseMapper.updateById(studentDO1); + return ConstantUtils.SET_SUCCESS; + } + + public String addStudent(StudentDO studentDO) { + + int coount = this.baseMapper.selectCount(new QueryWrapper() + .lambda() + .eq(StudentDO::getIdCard, studentDO.getIdCard())); + + if (coount > 0) { + throw new HttpException(10002); + } + + this.baseMapper.insert(studentDO); + return ConstantUtils.ADD_SUCCESS; + } + +} diff --git a/src/main/java/com/meishu/util/BaseModel.java b/src/main/java/com/meishu/util/BaseModel.java new file mode 100644 index 0000000..8017603 --- /dev/null +++ b/src/main/java/com/meishu/util/BaseModel.java @@ -0,0 +1,35 @@ +package com.meishu.util; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.FieldStrategy; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableLogic; +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +public abstract class BaseModel { + + /** + * 创建时间 + */ + @JsonIgnore + @TableField(insertStrategy = FieldStrategy.NEVER, updateStrategy = FieldStrategy.NEVER, value = "create_date", fill = FieldFill.INSERT) + private LocalDateTime createDate; + + /** + * 更新时间 + */ + @JsonIgnore + @TableField(insertStrategy = FieldStrategy.NEVER, updateStrategy = FieldStrategy.NEVER, value = "update_date", fill = FieldFill.UPDATE) + private LocalDateTime updateDate; + + /** + * 删除时间 + */ + @JsonIgnore + @TableLogic + private LocalDateTime deleteDate; +} diff --git a/src/main/java/com/meishu/util/CodeGenerator.java b/src/main/java/com/meishu/util/CodeGenerator.java new file mode 100644 index 0000000..64203ae --- /dev/null +++ b/src/main/java/com/meishu/util/CodeGenerator.java @@ -0,0 +1,124 @@ +package com.meishu.util; + +import com.baomidou.mybatisplus.annotation.DbType; +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.InjectionConfig; +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.ResourceBundle; +import java.util.Scanner; + +/** + * Mybatis-Plus CodeGenerator + * + * @author DengMin + * @date 2020/07/02 + **/ +public class CodeGenerator { + + public static String scanner(String tip) { + StringBuilder help = new StringBuilder(); + help.append("1.生成全部表 2.输入需要生成表名"); + System.out.println(help.toString()); + Scanner scanner = new Scanner(System.in); + Integer ipt = Integer.valueOf(scanner.next()); + if(ipt == 1) { + return ""; + } else if(ipt == 2) { + StringBuilder help1 = new StringBuilder(); + help1.append("请输入" + tip + ":"); + System.out.println(help1.toString()); + Scanner scanner1 = new Scanner(System.in); + if (scanner1.hasNext()) { + String name = scanner1.next(); + if (StringUtils.isNotEmpty(name)) { + return name; + } + } + throw new MybatisPlusException("请输入正确的" + tip + "!"); + } + return scanner(tip); + } + + public static void main(String[] args) { + final ResourceBundle rb = ResourceBundle.getBundle("mybatis-plus"); + // 代码生成器 + AutoGenerator mpg = new AutoGenerator(); + + // 全局配置 + GlobalConfig gc = new GlobalConfig(); + gc.setOutputDir(System.getProperty("user.dir") + rb.getString("outputDir")); + gc.setOpen(false); + gc.setBaseResultMap(true); + gc.setBaseColumnList(true); + gc.setAuthor(rb.getString("author")); + gc.setMapperName("%sMapper"); + gc.setEntityName("%sDO"); + gc.setServiceName("%sService"); + gc.setServiceImplName("%sServiceImpl"); + gc.setControllerName("%sController"); + mpg.setGlobalConfig(gc); + + // 数据源配置 + DataSourceConfig dsc = new DataSourceConfig(); + dsc.setDbType(DbType.MYSQL); + dsc.setUrl(rb.getString("url")); + dsc.setDriverName(rb.getString("driverName")); + dsc.setUsername(rb.getString("userName")); + dsc.setPassword(rb.getString("password")); + mpg.setDataSource(dsc); + + // 包配置 + PackageConfig pc = new PackageConfig(); + pc.setParent(rb.getString("setParent")); + pc.setController("controller"); + pc.setService("service"); + pc.setServiceImpl("service.impl"); + pc.setEntity("model"); + pc.setMapper("mapper"); + mpg.setPackageInfo(pc); + + // 自定义配置 + InjectionConfig cfg = new InjectionConfig() { + @Override + public void initMap() { + // to do nothing + } + }; + List focList = new ArrayList<>(); + focList.add(new FileOutConfig("/templates/mapper.xml.ftl") { + @Override + public String outputFile(TableInfo tableInfo) { + // 自定义输入文件名称 + return System.getProperty("user.dir")+ rb.getString("mapperPath") + tableInfo.getMapperName() + StringPool.DOT_XML; + } + }); + cfg.setFileOutConfigList(focList); + mpg.setCfg(cfg); + mpg.setTemplate(new TemplateConfig().setXml(null)); + + // 策略配置 + StrategyConfig strategy = new StrategyConfig(); + strategy.setNaming(NamingStrategy.underline_to_camel); + strategy.setColumnNaming(NamingStrategy.underline_to_camel); + strategy.setSuperEntityClass(BaseModel.class); + strategy.setEntityLombokModel(true); + strategy.setRestControllerStyle(true); + String [] tables = scanner("表名,多个英文逗号分割").split(","); + if(StringUtils.isNotBlank(tables[0])) { + strategy.setInclude(tables); + } + strategy.setControllerMappingHyphenStyle(true); + mpg.setStrategy(strategy); + mpg.setTemplateEngine(new FreemarkerTemplateEngine()); + mpg.execute(); + } +} \ No newline at end of file diff --git a/src/main/java/com/meishu/util/ConstantUtils.java b/src/main/java/com/meishu/util/ConstantUtils.java new file mode 100644 index 0000000..5462e2e --- /dev/null +++ b/src/main/java/com/meishu/util/ConstantUtils.java @@ -0,0 +1,37 @@ +package com.meishu.util; + + +/** + * 枚举类 + */ +public class ConstantUtils { + + public static final String DELETE_SUCCESS = "删除成功"; + + public static final String ADD_SUCCESS = "新增成功"; + + public static final String SUCCESS_SEND_OUT = "发送成功"; + + public static final String FAIL_SEND_OUT = "发送失败"; + + public static final String SUCCESS_UPDATE = "更新成功"; + + public static final String SET_SUCCESS = "设置成功"; + + public static final String ALREADY_DONE = "已完成"; + + public static final String VERIFY_NAME = "有课互联"; + + public static final String NOTICE_NAME = "有课进度通知"; + + public static final String KEJI_NAME = "有课互联科技"; + + public static final String COMPRESS_SUCCESS = "压缩成功"; + + public static final String SCHOOL = "上海市市西中学"; + + public static final String CHECK_STATUS = "审核通过"; + + public static final String ADMINISTER_TERMINATE = "administer"; + +} diff --git a/src/main/java/com/meishu/util/DateFormatUtil.java b/src/main/java/com/meishu/util/DateFormatUtil.java new file mode 100644 index 0000000..32f6011 --- /dev/null +++ b/src/main/java/com/meishu/util/DateFormatUtil.java @@ -0,0 +1,79 @@ +package com.meishu.util; + +import java.text.SimpleDateFormat; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.Date; +import java.util.Locale; + +/** + * 处理时间工具 + * + * @author DengMin + * @date 2019/08/27 13:56 + **/ +public class DateFormatUtil { + + public final static String YEAR = "yyyy"; + public final static String FMT_sdf14_L = "yyyy-MM-dd HH:mm:ss"; + public final static String FMT_sdf_yMd = "yyyy-MM-dd"; + public final static String FMT_sdf_yM = "yyyy-M"; + public final static String FMT_sdf_yMM = "yyyy-MM"; + public final static String FMT_sdf_Hm = "H:mm"; + public final static String FMT_sdf_HHmm = "HH:mm"; + public final static String cron = "s m H d M ? yyyy"; + + /** + * Date转String,自定义格式 + * @param date + * @param pattern + * @return + */ + public static String format(Date date, String pattern) { + try { + SimpleDateFormat sdf = new SimpleDateFormat(pattern); + return sdf.format(date); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + /** + * String转Date,自定义格式 + * @param date + * @param pattern + * @return + */ + public static Date parse(String date, String pattern) { + try { + SimpleDateFormat sdf = new SimpleDateFormat(pattern); + return sdf.parse(date); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + /** + * 比较两个时间 + * .after 大于 + * .before 小于 + * @param d1 + * @param d2 + * @return + */ + public static boolean compare(Date d1, Date d2 ) { + return !d1.after(d2); + } + + /** + * Data转Cron + * @param date + * @return + */ + public static String getCron(Date date) { + SimpleDateFormat sdf = new SimpleDateFormat("s m H d M ? yyyy"); + return sdf.format(date); + } +} diff --git a/src/main/java/com/meishu/util/FileUtil.java b/src/main/java/com/meishu/util/FileUtil.java new file mode 100644 index 0000000..4e91bec --- /dev/null +++ b/src/main/java/com/meishu/util/FileUtil.java @@ -0,0 +1,34 @@ +package com.meishu.util; + +import org.springframework.web.multipart.MultipartFile; + +import java.io.File; + +public class FileUtil { + + public static String uploadFile(MultipartFile multipartFile) { + final String originalFilename = multipartFile.getOriginalFilename(); + String savePath = "E:\\pics\\" + originalFilename; + try { + createDir("E:\\zzj\\xrk\\"); + multipartFile.transferTo(new File(savePath)); + return "上传完成,文件上传至:" + savePath; + } catch (Exception ex) { + ex.printStackTrace(); + return "文件上传异常"; + } + } + + /** + * 创建文件目录 + * + * @param path + */ + public static void createDir(String path) { + File dir = new File(path); + if (!dir.exists()) { + dir.mkdir(); + } + } + +} diff --git a/src/main/java/com/meishu/util/JwtUtil.java b/src/main/java/com/meishu/util/JwtUtil.java new file mode 100644 index 0000000..e4a4cfe --- /dev/null +++ b/src/main/java/com/meishu/util/JwtUtil.java @@ -0,0 +1,96 @@ +package com.meishu.util; + +import com.auth0.jwt.JWT; +import com.auth0.jwt.JWTVerifier; +import com.auth0.jwt.algorithms.Algorithm; +import com.auth0.jwt.interfaces.Claim; + +import java.util.Date; +import java.util.Map; + +/** + *

+ * Token工具 + *

+ * + * @author DengMin + * @since 2021/4/14 + */ +public class JwtUtil { + + private static Long EXPIRE_TIME = 24 * 60 * 60 * 1000L; + + private static String SECRET = "PBKDF2SHA256:64000:18:24:N:GFHZ6Y0PTEUDYCJI3K6SOOXWYEKPOZED:WBWFJMX5DF252E0HR3BF3P/D"; + + /** + * 生成Token + * @param id + * @return + */ + public static String generateToken(Long id, String type) { + Date expireDate = new Date(System.currentTimeMillis() + EXPIRE_TIME); + return JWT.create() + .withClaim("id", id) + .withClaim("type", type) + .withAudience() + .withExpiresAt(expireDate) + .withIssuedAt(new Date()) + .sign(Algorithm.HMAC256(SECRET)); + } + + /** + * 检验token是否正确 + * @param token + * @return + */ + public static boolean verifyToken(String token) { + try { + Algorithm algorithm = Algorithm.HMAC256(SECRET); + JWTVerifier verifier = JWT.require(algorithm).build(); + verifier.verify(token); + return true; + } catch (Exception e) { + return false; + } + } + + /** + * 获取用户自定义Claim集合 + * @param token + * @return + */ + public static Map getClaims(String token) { + Algorithm algorithm = Algorithm.HMAC256(SECRET); + JWTVerifier verifier = JWT.require(algorithm).build(); + Map claims = verifier.verify(token).getClaims(); + return claims; + } + + /** + * 获取过期时间 + * @param token + * @return + */ + public static Date getExpiresAt(String token) { + Algorithm algorithm = Algorithm.HMAC256(SECRET); + return JWT + .require(algorithm) + .build() + .verify(token) + .getExpiresAt(); + } + + /** + * 验证token是否失效 + * @param token + * @return true: 过期, false: 没过期 + */ + public static boolean isExpired(String token) { + try { + final Date expiration = getExpiresAt(token); + return expiration.before(new Date()); + } catch (Exception e) { + return true; + } + } +} diff --git a/src/main/java/com/meishu/util/LatexUtils.java b/src/main/java/com/meishu/util/LatexUtils.java new file mode 100644 index 0000000..dac38fc --- /dev/null +++ b/src/main/java/com/meishu/util/LatexUtils.java @@ -0,0 +1,124 @@ +package com.meishu.util; + +import org.scilab.forge.jlatexmath.TeXConstants; +import org.scilab.forge.jlatexmath.TeXFormula; +import org.scilab.forge.jlatexmath.TeXIcon; + +import javax.imageio.ImageIO; +import javax.swing.*; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.io.*; + +/** + * @author: tuyp + * @create: 2020-08-08 21:19 + */ +public class LatexUtils { + + /** + * @Description: 将base64编码字符串转换为图片 + * @Author: + * @CreateTime: + * @param imgStr + * base64编码字符串 + * @param path + * 图片路径-具体到文件 + * @return + */ + public static boolean generateImage(String imgStr, String path) { + if (imgStr == null) { + return false; + } +// BASE64Decoder decoder = new BASE64Decoder(); + try { +// byte[] b = decoder.decodeBuffer(imgStr); +// for (int i = 0; i < b.length; i++) { +// if (b[i] < 0) { +// b[i] += 256; +// } +// } +// OutputStream out = new FileOutputStream(path); +// out.write(b); +// out.flush(); +// out.close(); + return true; + } catch (Exception e) { + // TODO: handle exception + return false; + } + } + + /** + * @Description: 根据图片地址转换为base64编码字符串 + * @Author: + * @CreateTime: + * @return + */ +// public static String getImageStr(String imgFile) { +// InputStream inputStream = null; +// byte[] data = null; +// try { +// inputStream = new FileInputStream(imgFile); +// data = new byte[inputStream.available()]; +// inputStream.read(data); +// inputStream.close(); +// } catch (IOException e) { +// e.printStackTrace(); +// } +// // 加密 +// BASE64Encoder encoder = new BASE64Encoder(); +// return encoder.encode(data); +// } + + // latex 转 imgbase64 + public static String latex2Png(String latex) { + try { + TeXFormula formula = new TeXFormula(latex); + // render the formla to an icon of the same size as the formula. + TeXIcon icon = formula.createTeXIcon(TeXConstants.STYLE_DISPLAY, 20); + // insert a border + icon.setInsets(new Insets(1, 1, 1, 1)); + // now create an actual image of the rendered equation + BufferedImage image = new BufferedImage(icon.getIconWidth(), icon.getIconHeight(), BufferedImage.TYPE_BYTE_GRAY); + Graphics2D g2 = image.createGraphics(); + g2.setColor(Color.white); + g2.fillRect(0, 0, icon.getIconWidth(), icon.getIconHeight()); + JLabel jl = new JLabel(); + jl.setForeground(new Color(0, 0, 0)); + icon.paintIcon(jl, g2, 0, 0); + // at this point the image is created, you could also save it with ImageIO + // saveImage(image, "png", "F:\\b.png"); +// ImageIO.write(image, "png", new File("F:\\c.png")); + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + try { + ImageIO.write(image, "png", outputStream); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + return null; + } + byte[] buffer = outputStream.toByteArray(); +// BASE64Encoder encoder = new BASE64Encoder(); + return ("data:image/png;base64,"); + } catch (Exception e) { + // e.printStackTrace(); + // ExceptionUtil.log(log, e); + System.err.println("公式解析有误:\n" + latex); + // e.printStackTrace(); + return null; + } + } + + public static void main(String[] args) { + String str = latex2Png("\\(\\sqrt[3]{2+x}\\)"); + System.out.println(str); + + + + +// String omml =Latex_Word.latexToWord(str); +// System.out.println(omml); + } + +} diff --git a/src/main/java/com/meishu/util/Localstorage.java b/src/main/java/com/meishu/util/Localstorage.java new file mode 100644 index 0000000..926b833 --- /dev/null +++ b/src/main/java/com/meishu/util/Localstorage.java @@ -0,0 +1,21 @@ +package com.meishu.util; + +import org.springframework.web.bind.annotation.RestController; + +@RestController +public class Localstorage { + + private static final ThreadLocal local = ThreadLocal.withInitial(() -> null); + + public static void setUser(Object admin) { + Localstorage.local.set(admin); + } + + public static Object getUser() { + return Localstorage.local.get(); + } + + public static void remove() { + Localstorage.local.remove(); + } +} diff --git a/src/main/java/com/meishu/util/MathUtil.java b/src/main/java/com/meishu/util/MathUtil.java new file mode 100644 index 0000000..304acd3 --- /dev/null +++ b/src/main/java/com/meishu/util/MathUtil.java @@ -0,0 +1,133 @@ +package com.meishu.util; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.Random; + +public class MathUtil { + + public static String getRandomCode(int randomLength) { + StringBuilder str = new StringBuilder(); + Random random = new Random(); + for (int i = 0; i < randomLength; i++) { + str.append(random.nextInt(10)); + } + return str.toString(); + } + + public static String getRandomString(int length) { + StringBuilder val = new StringBuilder(); + Random random = new Random(); + for (int i = 0; i < length; ++i) { + String charOrNum = random.nextInt(3) % 3 == 0 ? "num" : "char"; + if ("char".equalsIgnoreCase(charOrNum)) { + int temp = random.nextInt(2) % 2 == 0 ? 65 : 97; + val.append((char) (random.nextInt(26) + temp)); + } else { + val.append(random.nextInt(10)); + } + } + return val.toString(); + } + + //习题/视频 ==> 秒钟向上取整 + public static String ceilSecond(int length) { + return String.valueOf((int) Math.ceil((double) length / 60)); + } + + //视频秒数处理 + public static String vodLength(int i) { + if (i > 60) { + if (i % 60 >= 10) { + return i / 60 + ":" + i % 60; + } else { + return i / 60 + ":0" + i % 60; + } + } else { + if (i % 60 >= 10) { + return "00:" + i; + } else { + return "00:0" + i; + } + } + } + + //文件大小处理 + public static String fileUnit(int i) { + if (i / 1024 > 1024) { + return String.format("%.2f", (double) i / 1024 / 1024) + "M"; + } else { + return String.format("%.2f", (double) i / 1024) + "K"; + } + } + + //单个题目秒数处理 + public static String exerciseLength(int i) { + if (i >= 60 * 60) { + return i / 60 / 60 + "时" + (i - 60 * 60) / 60 + "分" + i % 60 + "秒"; + } else if (i >= 60) { + return i / 60 + "分" + i % 60 + "秒"; + } else { + return i % 60 + "秒"; + } + } + + // 除法取整 + public static String getAvgIndex(BigDecimal counts, BigDecimal total) { + if (BigDecimal.ZERO.equals(total)) { + return "0"; + } else { + return counts.divide(total, RoundingMode.CEILING).stripTrailingZeros().toPlainString(); + } + } + + //百分比 取整 返回字符串 + public static String getPercentAvgIndex(BigDecimal counts, BigDecimal total) { + if (BigDecimal.ZERO.equals(total) || BigDecimal.ZERO.equals(counts)) { + return "0%"; + } else { + return counts.multiply(new BigDecimal(100)).divide(total, RoundingMode.CEILING).stripTrailingZeros().toPlainString() + "%"; + } + } + + //百分比 不带%输出 + public static String getPercentAvgIndexWithPercent(BigDecimal counts, BigDecimal total) { + if (BigDecimal.ZERO.equals(total) || BigDecimal.ZERO.equals(counts)) { + return "0"; + } else { + return counts.multiply(new BigDecimal(100)).divide(total,2,BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString(); + } + } + + + //习题序号生成规则 sid 从数据取出某科目某知识点的最大的序号 + public static String getExeCode(String sid) { + Integer integer = Integer.valueOf(sid.substring(9)); + return sid.substring(0, 9) + (++integer); + } + + // 整型a 整型b a/b 向上取整 + public static Integer intDivCeil(long a, int b) { + return (int) Math.ceil((double) a / b); + } + + // 整型a 整型b a/b 向下取整 + public static Integer intDivFloorPercent(long a, int b) { + return (int) Math.floor((double) a * 100 / b); + } + + public static Integer getRandomNum(Integer i){ + Random random = new Random(); + return random.nextInt(i); + } + +// public static void main(String[] args) { +// for (int i= 1;i<100;i++){ +// System.out.println(getRandomNum(2)); +// } +// } + + + + +} diff --git a/src/main/java/com/meishu/util/PDFUtil.java b/src/main/java/com/meishu/util/PDFUtil.java new file mode 100644 index 0000000..4997ac1 --- /dev/null +++ b/src/main/java/com/meishu/util/PDFUtil.java @@ -0,0 +1,111 @@ +package com.meishu.util; + +import com.itextpdf.text.BaseColor; +import com.itextpdf.text.DocumentException; +import com.itextpdf.text.Element; +import com.itextpdf.text.pdf.BaseFont; +import com.itextpdf.text.pdf.PdfPTable; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Component; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.nio.charset.StandardCharsets; + +@Slf4j +@Component +public class PDFUtil { + + static BaseFont baseFont; + + { + try { + baseFont = BaseFont.createFont("https://zhongzhi-cms.oss-cn-shanghai.aliyuncs.com/STSONG.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); + } catch (Exception e) { + e.printStackTrace(); + } + } + + + public static void tableStyle(PdfPTable table, int[] cellsWidth) throws DocumentException { + table.setWidths(cellsWidth); + table.setWidthPercentage(100); + table.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER); + table.getDefaultCell().setVerticalAlignment(Element.ALIGN_MIDDLE); + table.getDefaultCell().setFixedHeight(30); + table.getDefaultCell().setBackgroundColor(BaseColor.BLUE); + table.getDefaultCell().setPadding(0); + table.getDefaultCell().setBorderWidth(0); + } + + /** + * 流化下载 + * + * @param bytes + * @param filename + */ + public static void renderPdf(final byte[] bytes, final String filename, String type) { + ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + HttpServletResponse response = servletRequestAttributes.getResponse(); + initResponseHeader(response, "application/" + type); + setFileDownloadHeader(response, filename, "." + type); + if (null != bytes) { + try { + response.getOutputStream().write(bytes); + response.getOutputStream().flush(); + } catch (IOException e) { + throw new IllegalArgumentException(e); + } + } + } + + /** + * 分析并设置contentType与headers. + */ + private static HttpServletResponse initResponseHeader(HttpServletResponse response, final String contentType, final String... headers) { + // 分析headers参数 + String encoding = "utf-8"; + boolean noCache = true; + for (String header : headers) { + String headerName = StringUtils.substringBefore(header, ":"); + String headerValue = StringUtils.substringAfter(header, ":"); + if (StringUtils.equalsIgnoreCase(headerName, "utf-8")) { + encoding = headerValue; + } else if (StringUtils.equalsIgnoreCase(headerName, "no-cache")) { + noCache = Boolean.parseBoolean(headerValue); + } else { + throw new IllegalArgumentException(headerName + "不是一个合法的header类型"); + } + } + // 设置headers参数 + String fullContentType = contentType + ";charset=" + encoding; + response.setContentType(fullContentType); + if (noCache) { + // Http 1.0 header + response.setDateHeader("Expires", 0); + response.addHeader("Pragma", "no-cache"); + // Http 1.1 header + response.setHeader("Cache-Control", "no-cache"); + } + return response; + } + + /** + * 设置让浏览器弹出下载对话框的Header. + * + * @param + */ + public static void setFileDownloadHeader(HttpServletResponse response, String fileName, String fileType) { + try { + // 中文文件名支持 + String encodedfileName = new String(fileName.getBytes(StandardCharsets.UTF_8), "ISO8859-1"); + response.setHeader("Content-Disposition", "attachment; filename=\"" + encodedfileName + fileType + "\""); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + } +} diff --git a/src/main/java/com/meishu/util/RandomUtil.java b/src/main/java/com/meishu/util/RandomUtil.java new file mode 100644 index 0000000..63e1af6 --- /dev/null +++ b/src/main/java/com/meishu/util/RandomUtil.java @@ -0,0 +1,19 @@ +package com.meishu.util; + +import java.util.Random; + +public class RandomUtil { + + public static int getCode() { + return (int)((Math.random() * 9 + 1) * 100000); + } + + public static String getRandomCode(int randomLength) { + StringBuilder str = new StringBuilder(); + Random random = new Random(); + for (int i = 0; i < randomLength; i++) { + str.append(random.nextInt(10)); + } + return str.toString(); + } +} diff --git a/src/main/java/com/meishu/util/SecretUtils.java b/src/main/java/com/meishu/util/SecretUtils.java new file mode 100644 index 0000000..68c7a04 --- /dev/null +++ b/src/main/java/com/meishu/util/SecretUtils.java @@ -0,0 +1,119 @@ +package com.meishu.util; + +import org.apache.commons.codec.binary.Hex; + +import java.math.BigInteger; +import java.nio.charset.StandardCharsets; +import java.security.MessageDigest; +import java.util.Random; +import java.util.UUID; + +public class SecretUtils { + + /** + * 对用户登录密码进行MD5加密 + * + * @param str + * @return + */ + + public static String getMD5String(String str) { + try { + // 生成一个MD5加密计算摘要 + MessageDigest md = MessageDigest.getInstance("MD5"); + // 计算md5函数 + md.update(str.getBytes()); + // digest()最后确定返回md5 hash值,返回值为8位字符串。因为md5 hash值是16位的hex值,实际上就是8位的字符 + // BigInteger函数则将8位的字符串转换成16位hex值,用字符串来表示;得到字符串形式的hash值 + //一个byte是八位二进制,也就是2位十六进制字符(2的8次方等于16的2次方) + return new BigInteger(1, md.digest()).toString(16); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + /** + * 对字符串进行SHA加密 + * + * @param + */ + public static String getSHAString(String str) { + try { + MessageDigest sha = MessageDigest.getInstance("SHA-1"); + + byte[] byteArray = str.getBytes(StandardCharsets.UTF_8); + byte[] md5Bytes = sha.digest(byteArray); + StringBuffer hexValue = new StringBuffer(); + for (int i = 0; i < md5Bytes.length; i++) { + int val = ((int) md5Bytes[i]) & 0xff; + if (val < 16) { + hexValue.append("0"); + } + hexValue.append(Integer.toHexString(val)); + } + + return hexValue.toString(); + } catch (Exception e) { + return null; + } + + } + + + private static byte[] md5(String s) + { + MessageDigest algorithm; + try + { + algorithm = MessageDigest.getInstance("MD5"); + algorithm.reset(); + algorithm.update(s.getBytes(StandardCharsets.UTF_8)); + byte[] messageDigest = algorithm.digest(); + return messageDigest; + } + catch (Exception e) + { + e.getMessage(); + } + return null; + } + + private static final String toHex(byte[] hash) + { + if (hash == null) + { + return null; + } + StringBuffer buf = new StringBuffer(hash.length * 2); + int i; + + for (i = 0; i < hash.length; i++) + { + if ((hash[i] & 0xff) < 0x10) + { + buf.append("0"); + } + buf.append(Long.toString(hash[i] & 0xff, 16)); + } + return buf.toString(); + } + + public static String hash(String s) + { + try + { + return new String(toHex(md5(s)).getBytes(StandardCharsets.UTF_8), StandardCharsets.UTF_8); + } + catch (Exception e) + { + return s; + } + } + + public static void main(String[] args) { + String uuid = UUID.randomUUID().toString(); + System.out.println(uuid); + System.out.println(hash(uuid+"ixihs")); + } +} \ No newline at end of file diff --git a/src/main/java/com/meishu/util/excel/ExcelColumn.java b/src/main/java/com/meishu/util/excel/ExcelColumn.java new file mode 100644 index 0000000..82d7e1c --- /dev/null +++ b/src/main/java/com/meishu/util/excel/ExcelColumn.java @@ -0,0 +1,13 @@ +package com.meishu.util.excel; + +import java.lang.annotation.*; + +@Target(ElementType.FIELD) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface ExcelColumn { + + String value() default ""; + + int col() default 1; +} diff --git a/src/main/java/com/meishu/util/excel/ExcelColumnUtil.java b/src/main/java/com/meishu/util/excel/ExcelColumnUtil.java new file mode 100644 index 0000000..256820b --- /dev/null +++ b/src/main/java/com/meishu/util/excel/ExcelColumnUtil.java @@ -0,0 +1,21 @@ +package com.meishu.util.excel; + +import java.lang.annotation.*; + +/** + *

+ * excel 字段 + *

+ * + * @author DengMin + * @date Created in 2020/08/28 + */ +@Target({ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface ExcelColumnUtil { + + String value() default ""; + + int col() default 0; +} diff --git a/src/main/java/com/meishu/util/excel/ExcelUtil.java b/src/main/java/com/meishu/util/excel/ExcelUtil.java new file mode 100644 index 0000000..4807cb8 --- /dev/null +++ b/src/main/java/com/meishu/util/excel/ExcelUtil.java @@ -0,0 +1,347 @@ +package com.meishu.util.excel; + +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.BooleanUtils; +import org.apache.commons.lang3.CharUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.math.NumberUtils; +import org.apache.poi.hssf.usermodel.HSSFDateUtil; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.*; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.springframework.http.MediaType; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.lang.reflect.Constructor; +import java.lang.reflect.Field; +import java.math.BigDecimal; +import java.net.URLEncoder; +import java.util.*; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +/** + * Excel工具 + * + * @author DengMin + * @date 2019/08/27 13:57 + **/ +@Slf4j +public class ExcelUtil { + + private final static String EXCEL2003 = "xls"; + + private final static String EXCEL2007 = "xlsx"; + + /** + * 导入excel文件 + * @param path + * @param cls + * @param file + * @param + * @return + */ + public static List readExcel(String path, Class cls, MultipartFile file) { + String fileName = file.getOriginalFilename(); + if(!fileName.matches("^.+\\.(?i)(xls)$") && !fileName.matches("^.+\\.(?i)(xlsx)$")) { + log.info("上传文件格式不正确"); +// throw new HTTPException(10022); + } + + List dataList = new ArrayList<>(); + Workbook workbook = null; + try { + InputStream is = file.getInputStream(); + if (fileName.endsWith(EXCEL2007)) { + // FileInputStream is = new FileInputStream(new File(path)); + workbook = new XSSFWorkbook(is); + } + + if(fileName.endsWith(EXCEL2003)) { + // FileInputStream is = new FileInputStream(new File(path)); + workbook = new HSSFWorkbook(is); + } + + if (workbook != null) { + Map> classMap = new HashMap<>(); + List fields = Stream.of(cls.getDeclaredFields()).collect(Collectors.toList()); + fields.forEach(field -> { + ExcelColumnUtil annotation = field.getAnnotation(ExcelColumnUtil.class); + if (annotation != null) { + String value = annotation.value(); + if(StringUtils.isBlank(value)) { + return; + } + + if(!classMap.containsKey(value)) { + classMap.put(value, new ArrayList<>()); + } + + field.setAccessible(true); + classMap.get(value).add(field); + } + }); + //索引-->columns + Map> reflectionMap = new HashMap<>(); + //默认读取第一个sheet + Sheet sheet = workbook.getSheetAt(0); + + boolean firstRow = true; + for (int i = 0; i <= sheet.getLastRowNum(); i++) { + Row row = sheet.getRow(i); + //提取标题 + if (firstRow) { + for (int j = 0; j <= row.getLastCellNum(); j++) { + Cell cell = row.getCell(j); + String cellValue = getCellValue(cell); + if (classMap.containsKey(cellValue)) { + reflectionMap.put(j, classMap.get(cellValue)); + } + } + + firstRow = false; + } else { + //忽略空白行 + if (row == null) { + continue; + } + + try { + T t = cls.newInstance(); + //判断是否为空白行 + boolean allBlank = true; + for (int j = 0; j <= row.getLastCellNum(); j++) { + if (reflectionMap.containsKey(j)) { + Cell cell = row.getCell(j); + String cellValue = getCellValue(cell); + if (StringUtils.isNotBlank(cellValue)) { + allBlank = false; + } + List fieldList = reflectionMap.get(j); + fieldList.forEach(x -> { + try { + handleField(t, cellValue, x); + } catch (Exception e) { + e.printStackTrace(); + log.error(String.format("reflect field:%s value:%s exception!", x.getName(), cellValue), e); + } + }); + } + } + + if(!allBlank) { + dataList.add(t); + } + } catch (Exception e) { + e.printStackTrace(); + log.error(String.format("parse row:%s exception!", i), e); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + log.error(String.format("parse excel exception!"), e); + } finally { + if (workbook != null) { + try { + workbook.close(); + } catch (Exception e) { + e.printStackTrace(); + log.error(String.format("parse excel exception!"), e); + } + } + } + return dataList; + } + + /** + * 导出excel文件 + * @param list + * @param cls + * @param + */ + public static void writeExcel(List list, Class cls) { + ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + HttpServletResponse response = servletRequestAttributes.getResponse(); + Field[] fields = cls.getDeclaredFields(); + List fieldList = Arrays.stream(fields).filter(field -> { + ExcelColumn annotation = field.getAnnotation(ExcelColumn.class); + if(annotation != null) { + field.setAccessible(true); + return true; + } + return false; + }).sorted(Comparator.comparing(field -> { + int col = 0; + ExcelColumn annotation = field.getAnnotation(ExcelColumn.class); + if(annotation != null) { + col = annotation.col(); + } + return col; + })).collect(Collectors.toList()); + + Workbook wb = new XSSFWorkbook(); + Sheet sheet = wb.createSheet(); + AtomicInteger ai = new AtomicInteger(); + { + Row row = sheet.createRow(ai.getAndIncrement()); + AtomicInteger at = new AtomicInteger(); + fieldList.forEach(field -> { + ExcelColumn annotation = field.getAnnotation(ExcelColumn.class); + String columnName = ""; + if (annotation != null) { + columnName = annotation.value(); + } + Cell cell = row.createCell(at.getAndIncrement()); + CellStyle cellStyle = wb.createCellStyle(); + cellStyle.setFillForegroundColor(IndexedColors.PALE_BLUE.getIndex()); + Font font = wb.createFont(); + font.setBoldweight(Font.BOLDWEIGHT_BOLD); + cellStyle.setFont(font); + cell.setCellStyle(cellStyle); + cell.setCellValue(columnName); + }); + + if (list != null) { + list.forEach(data -> { + Row r = sheet.createRow(ai.getAndIncrement()); + AtomicInteger a = new AtomicInteger(); + fieldList.forEach(field -> { + try { + Class type = field.getType(); + Object value = field.get(data); + Cell cell = r.createCell(a.getAndIncrement()); + if (value != null) { + cell.setCellValue(value.toString()); + } + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + }); + }); + for (int i = 0; i < list.size(); i++) { + sheet.autoSizeColumn(i); + } + } + String fileName = String.valueOf(new Date().getTime()); + buildExcelDocument(fileName + "." + EXCEL2007, wb, response); + } + } + + + private static void setStyle(CellStyle cellStyle) { + // 水平居中 + cellStyle.setAlignment(CellStyle.ALIGN_CENTER); + // 垂直居中 + cellStyle.setVerticalAlignment(CellStyle.ALIGN_CENTER); + // 边框 + cellStyle.setBorderTop(CellStyle.BORDER_THIN); + // 边框 + cellStyle.setBorderLeft(CellStyle.BORDER_THIN); + // 边框 + cellStyle.setBorderRight(CellStyle.BORDER_THIN); + // 边框 + cellStyle.setBorderBottom(CellStyle.BORDER_THIN); + } + + private static void handleField(T t, String value, Field field) throws Exception { + Class type = field.getType(); + if (type == null || type == void.class || StringUtils.isBlank(value)) { + return; + } + if (type == Object.class) { + field.set(t, value); + //数字类型 + } else if (type.getSuperclass() == null || type.getSuperclass() == Number.class) { + if (type == int.class || type == Integer.class) { + field.set(t, NumberUtils.toInt(value)); + } else if (type == long.class || type == Long.class) { + field.set(t, NumberUtils.toLong(value)); + } else if (type == byte.class || type == Byte.class) { + field.set(t, NumberUtils.toByte(value)); + } else if (type == short.class || type == Short.class) { + field.set(t, NumberUtils.toShort(value)); + } else if (type == double.class || type == Double.class) { + field.set(t, NumberUtils.toDouble(value)); + } else if (type == float.class || type == Float.class) { + field.set(t, NumberUtils.toFloat(value)); + } else if (type == char.class || type == Character.class) { + field.set(t, CharUtils.toChar(value)); + } else if (type == boolean.class) { + field.set(t, BooleanUtils.toBoolean(value)); + } else if (type == BigDecimal.class) { + field.set(t, new BigDecimal(value)); + } + } else if (type == Boolean.class) { + field.set(t, BooleanUtils.toBoolean(value)); + } else if (type == Date.class) { + // + field.set(t, value); + } else if (type == String.class) { + field.set(t, value); + } else { + Constructor constructor = type.getConstructor(String.class); + field.set(t, constructor.newInstance(value)); + } + } + + private static String getCellValue(Cell cell) { + if (cell == null) { + return ""; + } + + if (cell.getCellType() == Cell.CELL_TYPE_NUMERIC) { + if (DateUtil.isCellDateFormatted(cell)) { + return HSSFDateUtil.getJavaDate(cell.getNumericCellValue()).toString(); + } else { + return new BigDecimal(cell.getNumericCellValue()).toString(); + } + } else if (cell.getCellType() == Cell.CELL_TYPE_STRING) { + return StringUtils.trimToEmpty(cell.getStringCellValue()); + } else if (cell.getCellType() == Cell.CELL_TYPE_FORMULA) { + return StringUtils.trimToEmpty(cell.getCellFormula()); + } else if (cell.getCellType() == Cell.CELL_TYPE_BLANK) { + return ""; + } else if (cell.getCellType() == Cell.CELL_TYPE_BOOLEAN) { + return String.valueOf(cell.getBooleanCellValue()); + } else if (cell.getCellType() == Cell.CELL_TYPE_ERROR) { + return "ERROR"; + } else { + return cell.toString().trim(); + } + } + + private static void buildExcelDocument(String fileName, Workbook wb, HttpServletResponse response){ + try { + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setHeader("Content-Disposition", "attachment;filename="+ URLEncoder.encode(fileName, "utf-8")); + response.flushBuffer(); + wb.write(response.getOutputStream()); + } catch (IOException e) { + log.error(String.format("downLoad excel exception"), e); + } + } + + private static void buildExcelFile(String path, Workbook wb){ + File file = new File(path); + if (file.exists()) { + file.delete(); + } + + try { + wb.write(new FileOutputStream(file)); + } catch (Exception e) { + log.error(String.format("downLoad excel exception"), e); + } + } +} diff --git a/src/main/java/com/meishu/util/tree/Node.java b/src/main/java/com/meishu/util/tree/Node.java new file mode 100644 index 0000000..fc443b5 --- /dev/null +++ b/src/main/java/com/meishu/util/tree/Node.java @@ -0,0 +1,42 @@ +package com.meishu.util.tree; + +import lombok.Data; + +@Data +public class Node implements Comparable { + + //主键 + private String id; + + //同级节点第几个元素 + private String number; + + //1.1 + private String text; + + //父节点 + private String parentId; + + private int level; + + public Node(String id, String number, String parentId, int level) { + this.id = id; + this.number = number; + this.parentId = parentId; + this.level = level; + } + + @Override + public int compareTo(Node o) { + if (this.level != o.level) { + return o.level - this.level; + } else { + if(this.number==null){ + return -1; + } + return this.number.compareTo(o.number); + } + } + + +} diff --git a/src/main/java/com/meishu/util/tree/NumberTree.java b/src/main/java/com/meishu/util/tree/NumberTree.java new file mode 100644 index 0000000..1f0d662 --- /dev/null +++ b/src/main/java/com/meishu/util/tree/NumberTree.java @@ -0,0 +1,212 @@ +package com.meishu.util.tree; + +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +@Data +public class NumberTree { + + private String id; + + private List nodeList; + + private String separator; + + private int idSeq; + + private SerialNumber number; + + public NumberTree(String separator, SerialNumber number) { + init(); + this.separator = separator; + this.number = number; + + } + + public void init() { + idSeq = 1; + this.separator = "."; + if (this.nodeList == null) { + nodeList = new ArrayList(); + } + } + + + /** + *

功能描述:根据父节点获取所有子节点。

+ */ + public List getChildNodes(Node pNode) { + String pId = pNode.getId(); + return getChildNodes(pId); + } + + /** + *

功能描述:根据父节点获取所有子节点。

+ */ + public List getChildNodes(String pId) { + List childNodes = new ArrayList(); + for (Node n : nodeList) { + if (pId.equals(n.getParentId())) { + childNodes.add(n); + } + } + + return childNodes; + } + + /** + *

功能描述:获取本级值最大的节点。

+ */ + public Node getMaxNodeForThisLevel(Node pNode) { + List childList = getChildNodes(pNode); + Node root = getRoot(nodeList); + if (childList.size() <= 0) { + return null; + } + Node maxNode = root; + for (Node node : childList) { + if (maxNode.getNumber().compareTo(node.getNumber()) < 0) { + maxNode = node; + } + } + return maxNode; + } + + /** + *

功能描述:生成下一个子节点。

+ */ + public Node generateNextChildNode(Node node) { + Node newNode = null; + Node maxNode = getMaxNodeForThisLevel(node); + String nextNumber = number.firstNumber(); + int level = node.getLevel(); + if (maxNode != null && !"0".equals(maxNode.getId())) {//本级存在子节点,且非根节点 + nextNumber = number.produceNext(maxNode.getNumber()); + level = maxNode.getLevel(); + } + newNode = new Node(String.valueOf(++idSeq), nextNumber, node.getId(), level); + + generateNodeText(newNode, nextNumber); + + return newNode; + } + + + /** + * + *

功能描述:获取父节点。

+ */ + public Node getParentNode(Node node) { + for (Node n : nodeList) { + if (node.getParentId() == n.getId()) { + return n; + } + } + return node; + } + + /** + *

功能描述:生成节点路径。

+ */ + public void generateNodeText(Node node, String text) { + + if (node == null || "0".equals(node.getId())) { + return; + } + + Node pNode = getParentNode(node); + + if (!"0".equals(pNode.getId())) { + text = pNode.getText() + separator + text; + } + + node.setText(text); + } + + /** + *

功能描述:遍历所有树节点。

+ */ + public void traverseNodeList(Node node) { + if(node==null){ + node = getRoot(nodeList); + } + List childNodes = getChildNodes(node); + System.out.println(node.getText()); + if (childNodes.size() > 0) { + for (Node n : childNodes) { + traverseNodeList(n); + } + } + } + public static void main(String[] args) { + SerialNumber number = new SerialNumber(); + NumberTree treeNode = new NumberTree(".", number); + + addSomeNodes(treeNode); + treeNode.traverseNodeList(null); + } + + /** + *

功能描述:获取根节点。

+ */ + public Node getRoot(List nodeList) { + Node root = null; + if (nodeList.size() <= 0 || (root = getNodeById(nodeList, "0")) == null) { + root = createRoot(); + nodeList.add(root); + } + return root; + } + + private Node getNodeById(List nodeList, String id) { + Node node = null; + if(id!=null){ + for (Node n : nodeList) { + if (id.equals(n.getId())) { + node = n; + break; + } + } + } + return node; + } + + private Node createRoot() { + Node root = new Node("0", number.rootNumber(), "-1", 0); + root.setText("0"); + return root; + } + + /** + *

功能描述:测试添加节点。

+ */ + private static Node addSomeNodes(NumberTree tree) { + Node root = tree.getRoot(tree.nodeList); + Node node1 = getNextNode(tree, root);//1 + Node node2 = getNextNode(tree, root);//2 + Node node3 = getNextNode(tree, root);//3 + Node node11 = getNextNode(tree, node1);//1.1 + Node node12 = getNextNode(tree, node1);//1.2 + Node node21 = getNextNode(tree, node2);//2.1 + Node node211 = getNextNode(tree, node21);//2.1.1 + Node node212 = getNextNode(tree, node21);//2.1.2 + Node node22 = getNextNode(tree, node2);//2.2 + Node node221 = getNextNode(tree, node22);//2.2.1 + Node node31 = getNextNode(tree, node3); + Node node32 = getNextNode(tree, node3); + Node node311 = getNextNode(tree, node31); + Node node3111 = getNextNode(tree, node311); + return root; + } + + public static Node getNextNode(NumberTree tree, Node pNode) { + Node node = tree.generateNextChildNode(pNode); + if (node != null) { + tree.nodeList.add(node); + } + return node; + } + +} diff --git a/src/main/java/com/meishu/util/tree/SerialNumber.java b/src/main/java/com/meishu/util/tree/SerialNumber.java new file mode 100644 index 0000000..767a0bb --- /dev/null +++ b/src/main/java/com/meishu/util/tree/SerialNumber.java @@ -0,0 +1,28 @@ +package com.meishu.util.tree; + +public class SerialNumber{ + + public String produceNext(String crrnt) { + + String next = "0"; + if (crrnt != null) { + try { + int crrntNum = Integer.parseInt(crrnt); + next = String.valueOf(crrntNum + 1); + } catch (Exception e) { + System.err.println("非数字类型的字符串!"); + } + } + return next; + } + + public String rootNumber() { + return "0"; + } + + public String firstNumber() { + return "1"; + } + + +} diff --git a/src/main/java/com/meishu/vo/batch/BatchesVO.java b/src/main/java/com/meishu/vo/batch/BatchesVO.java new file mode 100644 index 0000000..d558673 --- /dev/null +++ b/src/main/java/com/meishu/vo/batch/BatchesVO.java @@ -0,0 +1,14 @@ +package com.meishu.vo.batch; + +import com.meishu.model.BatchDictDO; +import com.meishu.vo.student.BatchStudentsVO; +import lombok.Data; + +import java.util.List; + +@Data +public class BatchesVO extends BatchDictDO { + + private List batchStudentsVOS; + +} diff --git a/src/main/java/com/meishu/vo/exam/BatchExamStudentScoreVO.java b/src/main/java/com/meishu/vo/exam/BatchExamStudentScoreVO.java new file mode 100644 index 0000000..98a1608 --- /dev/null +++ b/src/main/java/com/meishu/vo/exam/BatchExamStudentScoreVO.java @@ -0,0 +1,14 @@ +package com.meishu.vo.exam; + +import lombok.Data; + +@Data +public class BatchExamStudentScoreVO { + + private Long id; + + private String userName; + + private String score; + +} diff --git a/src/main/java/com/meishu/vo/exam/ExamPaperVO.java b/src/main/java/com/meishu/vo/exam/ExamPaperVO.java new file mode 100644 index 0000000..9eded39 --- /dev/null +++ b/src/main/java/com/meishu/vo/exam/ExamPaperVO.java @@ -0,0 +1,19 @@ +package com.meishu.vo.exam; + +import com.meishu.vo.paper.ExercisesVO; +import lombok.Data; + +import java.util.List; + +@Data +public class ExamPaperVO { + + private String examName; + + private String startDate; + + private String endDate; + + private List exercises; + +} diff --git a/src/main/java/com/meishu/vo/exam/ExamsVO.java b/src/main/java/com/meishu/vo/exam/ExamsVO.java new file mode 100644 index 0000000..174145f --- /dev/null +++ b/src/main/java/com/meishu/vo/exam/ExamsVO.java @@ -0,0 +1,25 @@ +package com.meishu.vo.exam; + +import com.meishu.vo.student.StudentVO; +import lombok.Data; + +import java.util.List; + +@Data +public class ExamsVO { + + private Long id; + + private String examName; + + private String startDate; + + private String endDate; + + private Long paperId; + + private String paperName; + + private List studentVOS; + +} diff --git a/src/main/java/com/meishu/vo/exercise/ExercisesWithAnswerVO.java b/src/main/java/com/meishu/vo/exercise/ExercisesWithAnswerVO.java new file mode 100644 index 0000000..0f3ae0b --- /dev/null +++ b/src/main/java/com/meishu/vo/exercise/ExercisesWithAnswerVO.java @@ -0,0 +1,21 @@ +package com.meishu.vo.exercise; + +import lombok.Data; + +@Data +public class ExercisesWithAnswerVO { + + /** + * 题目历史id + */ + private Long id; + + private String title; + + private String items; + + private String exerciseType; + + private String rightAnswer; + +} diff --git a/src/main/java/com/meishu/vo/exercise/LabelExercisesVO.java b/src/main/java/com/meishu/vo/exercise/LabelExercisesVO.java new file mode 100644 index 0000000..d0a36dd --- /dev/null +++ b/src/main/java/com/meishu/vo/exercise/LabelExercisesVO.java @@ -0,0 +1,12 @@ +package com.meishu.vo.exercise; + +import com.meishu.model.ExerciseDictDO; +import lombok.Data; + +@Data +public class LabelExercisesVO extends ExerciseDictDO { + + private String label; + + private Long paperExerciseId; +} diff --git a/src/main/java/com/meishu/vo/exercise/ScoreDetailsVO.java b/src/main/java/com/meishu/vo/exercise/ScoreDetailsVO.java new file mode 100644 index 0000000..2216327 --- /dev/null +++ b/src/main/java/com/meishu/vo/exercise/ScoreDetailsVO.java @@ -0,0 +1,24 @@ +package com.meishu.vo.exercise; + +import lombok.Data; + +@Data +public class ScoreDetailsVO { + + private Long id; + + private Long exerciseId; + + private String title; + + private String rightAnswer; + + private String answer; + + private String result; + + private String exerciseType; + + private Integer score; + +} diff --git a/src/main/java/com/meishu/vo/exercise/UploadFileVO.java b/src/main/java/com/meishu/vo/exercise/UploadFileVO.java new file mode 100644 index 0000000..093511b --- /dev/null +++ b/src/main/java/com/meishu/vo/exercise/UploadFileVO.java @@ -0,0 +1,10 @@ +package com.meishu.vo.exercise; + +import lombok.Data; + +@Data +public class UploadFileVO { + + private String imageUrl; + +} diff --git a/src/main/java/com/meishu/vo/paper/ExercisesVO.java b/src/main/java/com/meishu/vo/paper/ExercisesVO.java new file mode 100644 index 0000000..90a541e --- /dev/null +++ b/src/main/java/com/meishu/vo/paper/ExercisesVO.java @@ -0,0 +1,18 @@ +package com.meishu.vo.paper; + +import lombok.Data; + +@Data +public class ExercisesVO { + + private Long id; + + private String title; + + private String items; + + private String exerciseType; + + private Integer cnt; + +} diff --git a/src/main/java/com/meishu/vo/paper/PapersVO.java b/src/main/java/com/meishu/vo/paper/PapersVO.java new file mode 100644 index 0000000..865a805 --- /dev/null +++ b/src/main/java/com/meishu/vo/paper/PapersVO.java @@ -0,0 +1,26 @@ +package com.meishu.vo.paper; + +import lombok.Data; + +import java.util.Date; + +@Data +public class PapersVO { + + private Long id; + + private Long batchId; + + private String examName; + + private String startDate; + + private String endDate; + + private String status; + + private Long paperId; + + private Boolean submitStatus; + +} diff --git a/src/main/java/com/meishu/vo/student/BatchStudentsVO.java b/src/main/java/com/meishu/vo/student/BatchStudentsVO.java new file mode 100644 index 0000000..269487e --- /dev/null +++ b/src/main/java/com/meishu/vo/student/BatchStudentsVO.java @@ -0,0 +1,17 @@ +package com.meishu.vo.student; + +import lombok.Data; + +@Data +public class BatchStudentsVO { + + private Integer id; + + private String userName; + + private String examCode; + + private String signDate; + + +} diff --git a/src/main/java/com/meishu/vo/student/LoginVO.java b/src/main/java/com/meishu/vo/student/LoginVO.java new file mode 100644 index 0000000..f121eb4 --- /dev/null +++ b/src/main/java/com/meishu/vo/student/LoginVO.java @@ -0,0 +1,13 @@ +package com.meishu.vo.student; + +import com.meishu.model.StudentDO; +import lombok.Data; + +@Data +public class LoginVO extends StudentDO { + + private String examCode; + + private Long batchId; + +} diff --git a/src/main/java/com/meishu/vo/student/StudentExamsVO.java b/src/main/java/com/meishu/vo/student/StudentExamsVO.java new file mode 100644 index 0000000..3a9022c --- /dev/null +++ b/src/main/java/com/meishu/vo/student/StudentExamsVO.java @@ -0,0 +1,14 @@ +package com.meishu.vo.student; + +import lombok.Data; + +@Data +public class StudentExamsVO { + + private Long id; + + private String examName; + + private String score; + +} diff --git a/src/main/java/com/meishu/vo/student/StudentVO.java b/src/main/java/com/meishu/vo/student/StudentVO.java new file mode 100644 index 0000000..fa3d6f8 --- /dev/null +++ b/src/main/java/com/meishu/vo/student/StudentVO.java @@ -0,0 +1,14 @@ +package com.meishu.vo.student; + +import lombok.Data; + +@Data +public class StudentVO { + + private Long id; + + private Long studentId; + + private String userName; + +} diff --git a/src/main/resources/application-dev.properties b/src/main/resources/application-dev.properties new file mode 100644 index 0000000..bdcef28 --- /dev/null +++ b/src/main/resources/application-dev.properties @@ -0,0 +1,38 @@ +# 本地环境配置 + +# 端口号 +server.port=23458 +#server.tomcat.basedir=/static/img + +## 数据源配置 +#spring.datasource.url=jdbc:mysql://192.168.31.169:3306/kpk?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8 +#spring.datasource.type=com.alibaba.druid.pool.DruidDataSource +#spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver +#spring.datasource.username=root +#spring.datasource.password=123456 + +## 数据源配置 +spring.datasource.url=jdbc:mysql://116.62.57.92:3306/kpk?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8 +#spring.datasource.url=jdbc:mysql://rm-uf6rab73w0qg843opxo.mysql.rds.aliyuncs.com:3306/subsidy_test?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8 +spring.datasource.type=com.alibaba.druid.pool.DruidDataSource +spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver +spring.datasource.username=devloper +spring.datasource.password=dev@1553$ + +spring.datasource.druid.initialSize=5 +spring.datasource.druid.minIdle=5 +spring.datasource.druid.maxActive=20 +spring.datasource.druid.maxWait=60000 +spring.datasource.druid.timeBetweenEvictionRunsMillis=60000 +spring.datasource.druid.minEvictableIdleTimeMillis=300000 +spring.datasource.druid.validationQuery=SELECT 1 FROM DUAL +spring.datasource.druid.testWhileIdle=true +spring.datasource.druid.testOnBorrow=false +spring.datasource.druid.testOnReturn=false +spring.datasource.druid.poolPreparedStatements=true +spring.datasource.druid.maxPoolPreparedStatementPerConnectionSize=20 +spring.datasource.druid.useGlobalDataSourceStat=true + +# 控制台日志打印 +mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl + diff --git a/src/main/resources/application-local.properties b/src/main/resources/application-local.properties new file mode 100644 index 0000000..afb6740 --- /dev/null +++ b/src/main/resources/application-local.properties @@ -0,0 +1,30 @@ +# 本地环境配置 + +# 端口号 +server.port=23458 +server.tomcat.basedir=/static/img + +## 数据源配置 +spring.datasource.url=jdbc:mysql://localhost:3306/kpk?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8 +spring.datasource.type=com.alibaba.druid.pool.DruidDataSource +spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver +spring.datasource.username=root +#spring.datasource.password=dev@1553$ + +spring.datasource.druid.initialSize=5 +spring.datasource.druid.minIdle=5 +spring.datasource.druid.maxActive=20 +spring.datasource.druid.maxWait=60000 +spring.datasource.druid.timeBetweenEvictionRunsMillis=60000 +spring.datasource.druid.minEvictableIdleTimeMillis=300000 +spring.datasource.druid.validationQuery=SELECT 1 FROM DUAL +spring.datasource.druid.testWhileIdle=true +spring.datasource.druid.testOnBorrow=false +spring.datasource.druid.testOnReturn=false +spring.datasource.druid.poolPreparedStatements=true +spring.datasource.druid.maxPoolPreparedStatementPerConnectionSize=20 +spring.datasource.druid.useGlobalDataSourceStat=true + +# 控制台日志打印 +mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl + diff --git a/src/main/resources/application-prod.properties b/src/main/resources/application-prod.properties new file mode 100644 index 0000000..6253457 --- /dev/null +++ b/src/main/resources/application-prod.properties @@ -0,0 +1,33 @@ +# 生产环境配置 + +# 端口号 +server.port=23458 + +# 数据源配置 +spring.datasource.url=jdbc:mysql://rm-uf69w46mo6agw0ahao.mysql.rds.aliyuncs.com:3306/kpk?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8 +spring.datasource.type=com.alibaba.druid.pool.DruidDataSource +spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver +spring.datasource.username=ykadmin_new +spring.datasource.password=youkedb608@good + +spring.datasource.druid.initialSize=5 +spring.datasource.druid.minIdle=5 +spring.datasource.druid.maxActive=20 +spring.datasource.druid.maxWait=60000 +spring.datasource.druid.timeBetweenEvictionRunsMillis=60000 +spring.datasource.druid.minEvictableIdleTimeMillis=300000 +spring.datasource.druid.validationQuery=SELECT 1 FROM DUAL +spring.datasource.druid.testWhileIdle=true +spring.datasource.druid.testOnBorrow=false +spring.datasource.druid.testOnReturn=false +spring.datasource.druid.poolPreparedStatements=true +spring.datasource.druid.maxPoolPreparedStatementPerConnectionSize=20 +spring.datasource.druid.useGlobalDataSourceStat=true + +wechat.appId= wx7785293ff5e31f14 +wechat.appSecret= 25d57cad61fc1b45b3afa46d4c35e8f6 +wechat.msgUrl= https://teachai.youkehulian.com/login +wechat.templateId= Z1HNPLOrKiHEjfR1KMP-cC-uH3BWqDJIHv365Ev20yQ + +# 控制台日志打印 +mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl \ No newline at end of file diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties new file mode 100644 index 0000000..1083d96 --- /dev/null +++ b/src/main/resources/application.properties @@ -0,0 +1,60 @@ +# 环境配置 +spring.profiles.active=local + +# 文件编码 UTF8 +spring.mandatory-file-encoding=UTF-8 +spring.jackson.time-zone=GMT+8 +spring.servlet.multipart.max-file-size=100MB +spring.servlet.multipart.max-request-size=50MB + +# 404 交给异常处理器处理 +spring.mvc.throw-exception-if-no-handler-found=true +# 关闭静态资源的映射 +spring.resources.add-mappings=false + +# 关闭banner打印 +mybatis-plus.global-config.banner=false + +# mybatis-plus相关配置 +mybatis-plus.mapper-locations=classpath:mapper/*.xml +# 是否开启自动驼峰命名规则映射 +mybatis-plus.configuration.map-underscore-to-camel-case=true +# 如果查询结果中包含空值的列,则 MyBatis 在映射的时候,不会映射这个字段 +mybatis-plus.configuration.call-setters-on-nulls=true + +# 逻辑删除 +mybatis-plus.global-config.db-config.logic-delete-value=NOW() +mybatis-plus.global-config.db-config.logic-not-delete-value=NULL + +#日志配置 +logging.config=classpath:logback-spring.xml + +# 阿里云短信 +sms.product=Dysmsapi +sms.domain=dysmsapi.aliyuncs.com +sms.accessKeyId=LTAI5tPAH7P7WQVeowo517BE +sms.accessKeySecret=0ueqhIfdAZyw5lWlBVSLpAxTtx37RY + +#wechat.app-id=wx7785293ff5e31f14 +#wechat.app-secret=25d57cad61fc1b45b3afa46d4c35e8f6 +#wechat.agentId=1000008 + +vod.appId= 1302252447 +vod.secretId= AKIDOcePHvZ2C5VeYHQGSO5aqtlNxJQLqfz2 +vod.secretKey= vjHYRmrfDbw0rWxA7oFcj7F8lDPKCm8E +vod.api= vod.tencentcloudapi.com +vod.region= ap-shanghai +vod.classId= 860744 + +# quartz +# 数据持久化方式 +spring.quartz.job-store-type=jdbc +# 初始化后是否自动启动计划程序 +spring.quartz.auto-startup=true +# 初始化完成后启动计划程序的延迟时间 +spring.quartz.startup-delay=10s +# 配置的作业是否应覆盖现有的作业定义 +spring.quartz.overwrite-existing-jobs=false +# 自动建表,如果已经存在表请勿使用,会覆盖数据表 +#spring.quartz.jdbc.initialize-schema=always +#spring.datasource.initialization-mode=embedded diff --git a/src/main/resources/code.properties b/src/main/resources/code.properties new file mode 100644 index 0000000..faaf2d4 --- /dev/null +++ b/src/main/resources/code.properties @@ -0,0 +1,23 @@ +meishu.code-message[0]=成功 + +meishu.code-message[1010]=无效的令牌 + +meishu.code-message[10001]=信息不存在 +meishu.code-message[10002]=账户已存在 +meishu.code-message[10003]=账户或密码错误 +meishu.code-message[10004]=请在规定时间内登陆 + + + + +meishu.code-message[20001]=该账户有考试,无法删除 +meishu.code-message[30001]=有试卷出现该题目,无法删除 +meishu.code-message[30002]=有题目已添加 + +meishu.code-message[40001]=有题目已添加 + +meishu.code-message[50001]=该批次下有考试,无法删除 + +meishu.code-message[60001]=你已提交过,不能重新提交! + + diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..4206856 --- /dev/null +++ b/src/main/resources/logback-spring.xml @@ -0,0 +1,65 @@ + + + + + ${APP_NAME} + + + + + debug + + + %d [%t] %5p %c:%L - %m%n + UTF-8 + + + + ${LOG_PATH}${APP_NAME}-info.log + + %d [%t] %5p %c:%L - %m%n + + + + 100MB + + ${LOG_PATH}${APP_NAME}/info/%d{yyyy-MM-dd}-%i.log.gz + + 30 + + + + ${LOG_PATH}${APP_NAME}-error.log + + error + + + %d [%t] %5p %c:%L - %m%n + + + + 256MB + + ${LOG_PATH}${APP_NAME}/error/%d{yyyy-MM-dd}-%i.log.gz + + 30 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mapper/AdministerMapper.xml b/src/main/resources/mapper/AdministerMapper.xml new file mode 100644 index 0000000..579a58c --- /dev/null +++ b/src/main/resources/mapper/AdministerMapper.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + create_date, + update_date, + create_date, + id, telephone, user_name, img, role + + + + + diff --git a/src/main/resources/mapper/BatchDictMapper.xml b/src/main/resources/mapper/BatchDictMapper.xml new file mode 100644 index 0000000..ade0f9a --- /dev/null +++ b/src/main/resources/mapper/BatchDictMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + create_date, + update_date, + delete_date, + id, batch_name, start_date, end_date + + + diff --git a/src/main/resources/mapper/BatchExamMapper.xml b/src/main/resources/mapper/BatchExamMapper.xml new file mode 100644 index 0000000..8ad4186 --- /dev/null +++ b/src/main/resources/mapper/BatchExamMapper.xml @@ -0,0 +1,21 @@ + + + + + + diff --git a/src/main/resources/mapper/BatchExamsStudentsMapper.xml b/src/main/resources/mapper/BatchExamsStudentsMapper.xml new file mode 100644 index 0000000..739f754 --- /dev/null +++ b/src/main/resources/mapper/BatchExamsStudentsMapper.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + diff --git a/src/main/resources/mapper/BatchStudentMappingMapper.xml b/src/main/resources/mapper/BatchStudentMappingMapper.xml new file mode 100644 index 0000000..fd52f10 --- /dev/null +++ b/src/main/resources/mapper/BatchStudentMappingMapper.xml @@ -0,0 +1,33 @@ + + + + + + + + + + diff --git a/src/main/resources/mapper/ExerciseDictMapper.xml b/src/main/resources/mapper/ExerciseDictMapper.xml new file mode 100644 index 0000000..2ea21bb --- /dev/null +++ b/src/main/resources/mapper/ExerciseDictMapper.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + create_date, + update_date, + delete_date, + id, exercise_type, title, items, right_answer, detail + + + + + diff --git a/src/main/resources/mapper/ExerciseDoneHistoryMapper.xml b/src/main/resources/mapper/ExerciseDoneHistoryMapper.xml new file mode 100644 index 0000000..68de15b --- /dev/null +++ b/src/main/resources/mapper/ExerciseDoneHistoryMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + diff --git a/src/main/resources/mapper/LabelDictMapper.xml b/src/main/resources/mapper/LabelDictMapper.xml new file mode 100644 index 0000000..43240cc --- /dev/null +++ b/src/main/resources/mapper/LabelDictMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + create_date, + update_date, + delete_date, + id, label + + + diff --git a/src/main/resources/mapper/PaperDictMapper.xml b/src/main/resources/mapper/PaperDictMapper.xml new file mode 100644 index 0000000..7964002 --- /dev/null +++ b/src/main/resources/mapper/PaperDictMapper.xml @@ -0,0 +1,69 @@ + + + + + + + + + + + + diff --git a/src/main/resources/mapper/PaperExercisesMapper.xml b/src/main/resources/mapper/PaperExercisesMapper.xml new file mode 100644 index 0000000..f75af80 --- /dev/null +++ b/src/main/resources/mapper/PaperExercisesMapper.xml @@ -0,0 +1,20 @@ + + + + + + + diff --git a/src/main/resources/mapper/StudentMapper.xml b/src/main/resources/mapper/StudentMapper.xml new file mode 100644 index 0000000..44a02ac --- /dev/null +++ b/src/main/resources/mapper/StudentMapper.xml @@ -0,0 +1,21 @@ + + + + + + + + diff --git a/src/main/resources/mybatis-plus.properties b/src/main/resources/mybatis-plus.properties new file mode 100644 index 0000000..4b33caf --- /dev/null +++ b/src/main/resources/mybatis-plus.properties @@ -0,0 +1,12 @@ +# 此处为本项目src所在路径(代码生成器输出路径) +outputDir=/src/main/java +author=Tuyp +# 父的包名 +setParent=com.meishu +# mapper.xml文件生成路径 +mapperPath=/src/main/resources/mapper/ +# 数据库地址 +url=jdbc:mysql://116.62.57.92:3306/kpk?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useSSL=false&allowMultiQueries=true&useAffectedRows=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true +driverName=com.mysql.cj.jdbc.Driver +userName=devloper +password=dev@1553$ \ No newline at end of file diff --git a/src/main/resources/mybatis.xml b/src/main/resources/mybatis.xml new file mode 100644 index 0000000..f4495b4 --- /dev/null +++ b/src/main/resources/mybatis.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/main/resources/static/1.jpg b/src/main/resources/static/1.jpg new file mode 100644 index 0000000..f8de294 Binary files /dev/null and b/src/main/resources/static/1.jpg differ diff --git a/src/main/resources/static/10.jpg b/src/main/resources/static/10.jpg new file mode 100644 index 0000000..6a8f993 Binary files /dev/null and b/src/main/resources/static/10.jpg differ diff --git a/src/main/resources/static/11.jpg b/src/main/resources/static/11.jpg new file mode 100644 index 0000000..a1f6291 Binary files /dev/null and b/src/main/resources/static/11.jpg differ diff --git a/src/main/resources/static/12.jpg b/src/main/resources/static/12.jpg new file mode 100644 index 0000000..ef97e63 Binary files /dev/null and b/src/main/resources/static/12.jpg differ diff --git a/src/main/resources/static/13.jpg b/src/main/resources/static/13.jpg new file mode 100644 index 0000000..fcf015e Binary files /dev/null and b/src/main/resources/static/13.jpg differ diff --git a/src/main/resources/static/14.jpg b/src/main/resources/static/14.jpg new file mode 100644 index 0000000..7568805 Binary files /dev/null and b/src/main/resources/static/14.jpg differ diff --git a/src/main/resources/static/15.jpg b/src/main/resources/static/15.jpg new file mode 100644 index 0000000..32ae57e Binary files /dev/null and b/src/main/resources/static/15.jpg differ diff --git a/src/main/resources/static/16.jpg b/src/main/resources/static/16.jpg new file mode 100644 index 0000000..a5ea48d Binary files /dev/null and b/src/main/resources/static/16.jpg differ diff --git a/src/main/resources/static/17.jpg b/src/main/resources/static/17.jpg new file mode 100644 index 0000000..cff260c Binary files /dev/null and b/src/main/resources/static/17.jpg differ diff --git a/src/main/resources/static/18.jpg b/src/main/resources/static/18.jpg new file mode 100644 index 0000000..9c8bad6 Binary files /dev/null and b/src/main/resources/static/18.jpg differ diff --git a/src/main/resources/static/19.gif b/src/main/resources/static/19.gif new file mode 100644 index 0000000..30e7a58 Binary files /dev/null and b/src/main/resources/static/19.gif differ diff --git a/src/main/resources/static/2.jpg b/src/main/resources/static/2.jpg new file mode 100644 index 0000000..5e777a0 Binary files /dev/null and b/src/main/resources/static/2.jpg differ diff --git a/src/main/resources/static/20.jpg b/src/main/resources/static/20.jpg new file mode 100644 index 0000000..f767227 Binary files /dev/null and b/src/main/resources/static/20.jpg differ diff --git a/src/main/resources/static/21.jpg b/src/main/resources/static/21.jpg new file mode 100644 index 0000000..a68eb5c Binary files /dev/null and b/src/main/resources/static/21.jpg differ diff --git a/src/main/resources/static/22.jpg b/src/main/resources/static/22.jpg new file mode 100644 index 0000000..ea31fba Binary files /dev/null and b/src/main/resources/static/22.jpg differ diff --git a/src/main/resources/static/23.jpg b/src/main/resources/static/23.jpg new file mode 100644 index 0000000..45ca354 Binary files /dev/null and b/src/main/resources/static/23.jpg differ diff --git a/src/main/resources/static/24.jpg b/src/main/resources/static/24.jpg new file mode 100644 index 0000000..a75ee27 Binary files /dev/null and b/src/main/resources/static/24.jpg differ diff --git a/src/main/resources/static/25.gif b/src/main/resources/static/25.gif new file mode 100644 index 0000000..4576c21 Binary files /dev/null and b/src/main/resources/static/25.gif differ diff --git a/src/main/resources/static/26.jpg b/src/main/resources/static/26.jpg new file mode 100644 index 0000000..c596671 Binary files /dev/null and b/src/main/resources/static/26.jpg differ diff --git a/src/main/resources/static/27.jpg b/src/main/resources/static/27.jpg new file mode 100644 index 0000000..da37229 Binary files /dev/null and b/src/main/resources/static/27.jpg differ diff --git a/src/main/resources/static/28.jpg b/src/main/resources/static/28.jpg new file mode 100644 index 0000000..9e1b4eb Binary files /dev/null and b/src/main/resources/static/28.jpg differ diff --git a/src/main/resources/static/29.jpg b/src/main/resources/static/29.jpg new file mode 100644 index 0000000..74df3db Binary files /dev/null and b/src/main/resources/static/29.jpg differ diff --git a/src/main/resources/static/3.jpg b/src/main/resources/static/3.jpg new file mode 100644 index 0000000..a540614 Binary files /dev/null and b/src/main/resources/static/3.jpg differ diff --git a/src/main/resources/static/30.jpg b/src/main/resources/static/30.jpg new file mode 100644 index 0000000..c654b2b Binary files /dev/null and b/src/main/resources/static/30.jpg differ diff --git a/src/main/resources/static/31.jpg b/src/main/resources/static/31.jpg new file mode 100644 index 0000000..a04cfc7 Binary files /dev/null and b/src/main/resources/static/31.jpg differ diff --git a/src/main/resources/static/32.png b/src/main/resources/static/32.png new file mode 100644 index 0000000..34af18b Binary files /dev/null and b/src/main/resources/static/32.png differ diff --git a/src/main/resources/static/33.png b/src/main/resources/static/33.png new file mode 100644 index 0000000..fbb52d6 Binary files /dev/null and b/src/main/resources/static/33.png differ diff --git a/src/main/resources/static/34.png b/src/main/resources/static/34.png new file mode 100644 index 0000000..f728c63 Binary files /dev/null and b/src/main/resources/static/34.png differ diff --git a/src/main/resources/static/4.jpg b/src/main/resources/static/4.jpg new file mode 100644 index 0000000..7c0e791 Binary files /dev/null and b/src/main/resources/static/4.jpg differ diff --git a/src/main/resources/static/5.jpg b/src/main/resources/static/5.jpg new file mode 100644 index 0000000..562d372 Binary files /dev/null and b/src/main/resources/static/5.jpg differ diff --git a/src/main/resources/static/6.jpg b/src/main/resources/static/6.jpg new file mode 100644 index 0000000..109e678 Binary files /dev/null and b/src/main/resources/static/6.jpg differ diff --git a/src/main/resources/static/7.jpg b/src/main/resources/static/7.jpg new file mode 100644 index 0000000..17d3e48 Binary files /dev/null and b/src/main/resources/static/7.jpg differ diff --git a/src/main/resources/static/8.jpg b/src/main/resources/static/8.jpg new file mode 100644 index 0000000..f13301b Binary files /dev/null and b/src/main/resources/static/8.jpg differ diff --git a/src/main/resources/static/9.jpg b/src/main/resources/static/9.jpg new file mode 100644 index 0000000..31fcbea Binary files /dev/null and b/src/main/resources/static/9.jpg differ diff --git a/src/main/resources/templates/controller.java.ftl b/src/main/resources/templates/controller.java.ftl new file mode 100644 index 0000000..28e7070 --- /dev/null +++ b/src/main/resources/templates/controller.java.ftl @@ -0,0 +1,41 @@ +package ${package.Controller}; + + +import org.springframework.web.bind.annotation.RequestMapping; + +<#if restControllerStyle> +import org.springframework.web.bind.annotation.RestController; +<#else> +import org.springframework.stereotype.Controller; + +<#if superControllerClassPackage??> +import ${superControllerClassPackage}; + +import io.swagger.annotations.Api; + +/** + *

+ * ${table.comment!} 前端控制器 + *

+ * + * @author ${author} + * @since ${date} + */ +<#if restControllerStyle> +@RestController +@Api(tags = "${table.comment!}") +<#else> +@Controller + +@RequestMapping("<#if package.ModuleName?? && package.ModuleName != "">/${package.ModuleName}/<#if controllerMappingHyphenStyle??>${controllerMappingHyphen}<#else>${table.entityPath}") +<#if kotlin> +class ${table.controllerName}<#if superControllerClass??> : ${superControllerClass}() +<#else> +<#if superControllerClass??> +public class ${table.controllerName} extends ${superControllerClass} { +<#else> +public class ${table.controllerName} { + + +} + diff --git a/src/main/resources/templates/entity.java.ftl b/src/main/resources/templates/entity.java.ftl new file mode 100644 index 0000000..c63bcc4 --- /dev/null +++ b/src/main/resources/templates/entity.java.ftl @@ -0,0 +1,156 @@ +package ${package.Entity}; + +<#list table.importPackages as pkg> +import ${pkg}; + +<#if swagger2> +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +<#if entityLombokModel> +import lombok.Data; +import lombok.EqualsAndHashCode; + <#if chainModel> +import lombok.experimental.Accessors; + + + +/** + *

+ * ${table.comment!} + *

+ * + * @author ${author} + * @since ${date} + */ +<#if entityLombokModel> +@Data + <#if superEntityClass??> +@EqualsAndHashCode(callSuper = true) + <#else> +@EqualsAndHashCode(callSuper = false) + + <#if chainModel> +@Accessors(chain = true) + + +<#if table.convert> +@TableName("${table.name}") + +<#if swagger2> +@ApiModel(value="${entity}对象", description="${table.comment!}") + +<#if superEntityClass??> +public class ${entity} extends ${superEntityClass}<#if activeRecord><${entity}> { +<#elseif activeRecord> +public class ${entity} extends Model<${entity}> { +<#else> +public class ${entity} implements Serializable { + + +<#if entitySerialVersionUID> + private static final long serialVersionUID = 1L; + +<#-- ---------- BEGIN 字段循环遍历 ----------> +<#list table.fields as field> + <#if field.keyFlag> + <#assign keyPropertyName="${field.propertyName}"/> + + + <#if field.comment!?length gt 0> + <#if swagger2> + @ApiModelProperty(value = "${field.comment}") + <#else> + /** + * ${field.comment} + */ + + + <#if field.keyFlag> + <#-- 主键 --> + <#if field.keyIdentityFlag> + @TableId(value = "${field.annotationColumnName}", type = IdType.AUTO) + <#elseif idType??> + @TableId(value = "${field.annotationColumnName}", type = IdType.${idType}) + <#elseif field.convert> + @TableId("${field.annotationColumnName}") + + <#-- 普通字段 --> + <#elseif field.fill??> + <#-- ----- 存在字段填充设置 -----> + <#if field.convert> + @TableField(value = "${field.annotationColumnName}", fill = FieldFill.${field.fill}) + <#else> + @TableField(fill = FieldFill.${field.fill}) + + <#elseif field.convert> + @TableField("${field.annotationColumnName}") + + <#-- 乐观锁注解 --> + <#if (versionFieldName!"") == field.name> + @Version + + <#-- 逻辑删除注解 --> + <#if (logicDeleteFieldName!"") == field.name> + @TableLogic + + private ${field.propertyType} ${field.propertyName}; + +<#------------ END 字段循环遍历 ----------> + +<#if !entityLombokModel> + <#list table.fields as field> + <#if field.propertyType == "boolean"> + <#assign getprefix="is"/> + <#else> + <#assign getprefix="get"/> + + public ${field.propertyType} ${getprefix}${field.capitalName}() { + return ${field.propertyName}; + } + + <#if chainModel> + public ${entity} set${field.capitalName}(${field.propertyType} ${field.propertyName}) { + <#else> + public void set${field.capitalName}(${field.propertyType} ${field.propertyName}) { + + this.${field.propertyName} = ${field.propertyName}; + <#if chainModel> + return this; + + } + + + +<#if entityColumnConstant> + <#list table.fields as field> + public static final String ${field.name?upper_case} = "${field.name}"; + + + +<#if activeRecord> + @Override + protected Serializable pkVal() { + <#if keyPropertyName??> + return this.${keyPropertyName}; + <#else> + return null; + + } + + +<#if !entityLombokModel> + @Override + public String toString() { + return "${entity}{" + + <#list table.fields as field> + <#if field_index==0> + "${field.propertyName}=" + ${field.propertyName} + + <#else> + ", ${field.propertyName}=" + ${field.propertyName} + + + + "}"; + } + +} diff --git a/src/main/resources/templates/mapper.java.ftl b/src/main/resources/templates/mapper.java.ftl new file mode 100644 index 0000000..be08c59 --- /dev/null +++ b/src/main/resources/templates/mapper.java.ftl @@ -0,0 +1,22 @@ +package ${package.Mapper}; + +import ${package.Entity}.${entity}; +import ${superMapperClassPackage}; +import org.springframework.stereotype.Repository; + +/** + *

+ * ${table.comment!} Mapper 接口 + *

+ * + * @author ${author} + * @since ${date} + */ +<#if kotlin> +interface ${table.mapperName} : ${superMapperClass}<${entity}> +<#else> + @Repository +public interface ${table.mapperName} extends ${superMapperClass}<${entity}> { + +} + diff --git a/src/main/resources/templates/mapper.xml.ftl b/src/main/resources/templates/mapper.xml.ftl new file mode 100644 index 0000000..04c2359 --- /dev/null +++ b/src/main/resources/templates/mapper.xml.ftl @@ -0,0 +1,39 @@ + + + + +<#if enableCache> + + + + +<#if baseResultMap> + + +<#list table.fields as field> +<#if field.keyFlag><#--生成主键排在第一位--> + + + +<#list table.commonFields as field><#--生成公共字段 --> + + +<#list table.fields as field> +<#if !field.keyFlag><#--生成普通字段 --> + + + + + + +<#if baseColumnList> + + +<#list table.commonFields as field> + ${field.columnName}, + + ${table.fieldNames} + + + + diff --git a/src/main/resources/templates/service.java.ftl b/src/main/resources/templates/service.java.ftl new file mode 100644 index 0000000..e3232f3 --- /dev/null +++ b/src/main/resources/templates/service.java.ftl @@ -0,0 +1,20 @@ +package ${package.Service}; + +import ${package.Entity}.${entity}; +import ${superServiceClassPackage}; + +/** + *

+ * ${table.comment!} 服务类 + *

+ * + * @author ${author} + * @since ${date} + */ +<#if kotlin> +interface ${table.serviceName} : ${superServiceClass}<${entity}> +<#else> +public interface ${table.serviceName} extends ${superServiceClass}<${entity}> { + +} + diff --git a/src/main/resources/templates/serviceImpl.java.ftl b/src/main/resources/templates/serviceImpl.java.ftl new file mode 100644 index 0000000..aeebd14 --- /dev/null +++ b/src/main/resources/templates/serviceImpl.java.ftl @@ -0,0 +1,26 @@ +package ${package.ServiceImpl}; + +import ${package.Entity}.${entity}; +import ${package.Mapper}.${table.mapperName}; +import ${package.Service}.${table.serviceName}; +import ${superServiceImplClassPackage}; +import org.springframework.stereotype.Service; + +/** + *

+ * ${table.comment!} 服务实现类 + *

+ * + * @author ${author} + * @since ${date} + */ +@Service +<#if kotlin> +open class ${table.serviceImplName} : ${superServiceImplClass}<${table.mapperName}, ${entity}>(), ${table.serviceName} { + +} +<#else> +public class ${table.serviceImplName} extends ${superServiceImplClass}<${table.mapperName}, ${entity}> implements ${table.serviceName} { + +} + diff --git a/target/classes/META-INF/spring-configuration-metadata.json b/target/classes/META-INF/spring-configuration-metadata.json new file mode 100644 index 0000000..f26fc58 --- /dev/null +++ b/target/classes/META-INF/spring-configuration-metadata.json @@ -0,0 +1,107 @@ +{ + "groups": [ + { + "name": "meishu", + "type": "com.meishu.common.configure.RemoteProperties", + "sourceType": "com.meishu.common.configure.RemoteProperties" + }, + { + "name": "sms", + "type": "com.meishu.common.configure.AliyunSmsProperties", + "sourceType": "com.meishu.common.configure.AliyunSmsProperties" + }, + { + "name": "vod", + "type": "com.meishu.common.configure.VODConfig", + "sourceType": "com.meishu.common.configure.VODConfig" + }, + { + "name": "wechat", + "type": "com.meishu.common.configure.WechatConfig", + "sourceType": "com.meishu.common.configure.WechatConfig" + } + ], + "properties": [ + { + "name": "meishu.code-message", + "type": "java.util.Map", + "sourceType": "com.meishu.common.configure.RemoteProperties" + }, + { + "name": "sms.access-key-id", + "type": "java.lang.String", + "sourceType": "com.meishu.common.configure.AliyunSmsProperties" + }, + { + "name": "sms.access-key-secret", + "type": "java.lang.String", + "sourceType": "com.meishu.common.configure.AliyunSmsProperties" + }, + { + "name": "sms.domain", + "type": "java.lang.String", + "sourceType": "com.meishu.common.configure.AliyunSmsProperties" + }, + { + "name": "sms.product", + "type": "java.lang.String", + "sourceType": "com.meishu.common.configure.AliyunSmsProperties" + }, + { + "name": "vod.api", + "type": "java.lang.String", + "sourceType": "com.meishu.common.configure.VODConfig" + }, + { + "name": "vod.app-id", + "type": "java.lang.String", + "sourceType": "com.meishu.common.configure.VODConfig" + }, + { + "name": "vod.class-id", + "type": "java.lang.Integer", + "sourceType": "com.meishu.common.configure.VODConfig" + }, + { + "name": "vod.region", + "type": "java.lang.String", + "sourceType": "com.meishu.common.configure.VODConfig" + }, + { + "name": "vod.secret-id", + "type": "java.lang.String", + "sourceType": "com.meishu.common.configure.VODConfig" + }, + { + "name": "vod.secret-key", + "type": "java.lang.String", + "sourceType": "com.meishu.common.configure.VODConfig" + }, + { + "name": "wechat.agent-id", + "type": "java.lang.String", + "sourceType": "com.meishu.common.configure.WechatConfig" + }, + { + "name": "wechat.app-id", + "type": "java.lang.String", + "sourceType": "com.meishu.common.configure.WechatConfig" + }, + { + "name": "wechat.app-secret", + "type": "java.lang.String", + "sourceType": "com.meishu.common.configure.WechatConfig" + }, + { + "name": "wechat.msg-url", + "type": "java.lang.String", + "sourceType": "com.meishu.common.configure.WechatConfig" + }, + { + "name": "wechat.template-id", + "type": "java.lang.String", + "sourceType": "com.meishu.common.configure.WechatConfig" + } + ], + "hints": [] +} \ No newline at end of file diff --git a/target/classes/META-INF/teachaicms.kotlin_module b/target/classes/META-INF/teachaicms.kotlin_module new file mode 100644 index 0000000..a49347a Binary files /dev/null and b/target/classes/META-INF/teachaicms.kotlin_module differ diff --git a/target/classes/application-dev.properties b/target/classes/application-dev.properties new file mode 100644 index 0000000..bdcef28 --- /dev/null +++ b/target/classes/application-dev.properties @@ -0,0 +1,38 @@ +# 本地环境配置 + +# 端口号 +server.port=23458 +#server.tomcat.basedir=/static/img + +## 数据源配置 +#spring.datasource.url=jdbc:mysql://192.168.31.169:3306/kpk?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8 +#spring.datasource.type=com.alibaba.druid.pool.DruidDataSource +#spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver +#spring.datasource.username=root +#spring.datasource.password=123456 + +## 数据源配置 +spring.datasource.url=jdbc:mysql://116.62.57.92:3306/kpk?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8 +#spring.datasource.url=jdbc:mysql://rm-uf6rab73w0qg843opxo.mysql.rds.aliyuncs.com:3306/subsidy_test?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8 +spring.datasource.type=com.alibaba.druid.pool.DruidDataSource +spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver +spring.datasource.username=devloper +spring.datasource.password=dev@1553$ + +spring.datasource.druid.initialSize=5 +spring.datasource.druid.minIdle=5 +spring.datasource.druid.maxActive=20 +spring.datasource.druid.maxWait=60000 +spring.datasource.druid.timeBetweenEvictionRunsMillis=60000 +spring.datasource.druid.minEvictableIdleTimeMillis=300000 +spring.datasource.druid.validationQuery=SELECT 1 FROM DUAL +spring.datasource.druid.testWhileIdle=true +spring.datasource.druid.testOnBorrow=false +spring.datasource.druid.testOnReturn=false +spring.datasource.druid.poolPreparedStatements=true +spring.datasource.druid.maxPoolPreparedStatementPerConnectionSize=20 +spring.datasource.druid.useGlobalDataSourceStat=true + +# 控制台日志打印 +mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl + diff --git a/target/classes/application-local.properties b/target/classes/application-local.properties new file mode 100644 index 0000000..afb6740 --- /dev/null +++ b/target/classes/application-local.properties @@ -0,0 +1,30 @@ +# 本地环境配置 + +# 端口号 +server.port=23458 +server.tomcat.basedir=/static/img + +## 数据源配置 +spring.datasource.url=jdbc:mysql://localhost:3306/kpk?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8 +spring.datasource.type=com.alibaba.druid.pool.DruidDataSource +spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver +spring.datasource.username=root +#spring.datasource.password=dev@1553$ + +spring.datasource.druid.initialSize=5 +spring.datasource.druid.minIdle=5 +spring.datasource.druid.maxActive=20 +spring.datasource.druid.maxWait=60000 +spring.datasource.druid.timeBetweenEvictionRunsMillis=60000 +spring.datasource.druid.minEvictableIdleTimeMillis=300000 +spring.datasource.druid.validationQuery=SELECT 1 FROM DUAL +spring.datasource.druid.testWhileIdle=true +spring.datasource.druid.testOnBorrow=false +spring.datasource.druid.testOnReturn=false +spring.datasource.druid.poolPreparedStatements=true +spring.datasource.druid.maxPoolPreparedStatementPerConnectionSize=20 +spring.datasource.druid.useGlobalDataSourceStat=true + +# 控制台日志打印 +mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl + diff --git a/target/classes/application-prod.properties b/target/classes/application-prod.properties new file mode 100644 index 0000000..6253457 --- /dev/null +++ b/target/classes/application-prod.properties @@ -0,0 +1,33 @@ +# 生产环境配置 + +# 端口号 +server.port=23458 + +# 数据源配置 +spring.datasource.url=jdbc:mysql://rm-uf69w46mo6agw0ahao.mysql.rds.aliyuncs.com:3306/kpk?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8 +spring.datasource.type=com.alibaba.druid.pool.DruidDataSource +spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver +spring.datasource.username=ykadmin_new +spring.datasource.password=youkedb608@good + +spring.datasource.druid.initialSize=5 +spring.datasource.druid.minIdle=5 +spring.datasource.druid.maxActive=20 +spring.datasource.druid.maxWait=60000 +spring.datasource.druid.timeBetweenEvictionRunsMillis=60000 +spring.datasource.druid.minEvictableIdleTimeMillis=300000 +spring.datasource.druid.validationQuery=SELECT 1 FROM DUAL +spring.datasource.druid.testWhileIdle=true +spring.datasource.druid.testOnBorrow=false +spring.datasource.druid.testOnReturn=false +spring.datasource.druid.poolPreparedStatements=true +spring.datasource.druid.maxPoolPreparedStatementPerConnectionSize=20 +spring.datasource.druid.useGlobalDataSourceStat=true + +wechat.appId= wx7785293ff5e31f14 +wechat.appSecret= 25d57cad61fc1b45b3afa46d4c35e8f6 +wechat.msgUrl= https://teachai.youkehulian.com/login +wechat.templateId= Z1HNPLOrKiHEjfR1KMP-cC-uH3BWqDJIHv365Ev20yQ + +# 控制台日志打印 +mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl \ No newline at end of file diff --git a/target/classes/application.properties b/target/classes/application.properties new file mode 100644 index 0000000..1083d96 --- /dev/null +++ b/target/classes/application.properties @@ -0,0 +1,60 @@ +# 环境配置 +spring.profiles.active=local + +# 文件编码 UTF8 +spring.mandatory-file-encoding=UTF-8 +spring.jackson.time-zone=GMT+8 +spring.servlet.multipart.max-file-size=100MB +spring.servlet.multipart.max-request-size=50MB + +# 404 交给异常处理器处理 +spring.mvc.throw-exception-if-no-handler-found=true +# 关闭静态资源的映射 +spring.resources.add-mappings=false + +# 关闭banner打印 +mybatis-plus.global-config.banner=false + +# mybatis-plus相关配置 +mybatis-plus.mapper-locations=classpath:mapper/*.xml +# 是否开启自动驼峰命名规则映射 +mybatis-plus.configuration.map-underscore-to-camel-case=true +# 如果查询结果中包含空值的列,则 MyBatis 在映射的时候,不会映射这个字段 +mybatis-plus.configuration.call-setters-on-nulls=true + +# 逻辑删除 +mybatis-plus.global-config.db-config.logic-delete-value=NOW() +mybatis-plus.global-config.db-config.logic-not-delete-value=NULL + +#日志配置 +logging.config=classpath:logback-spring.xml + +# 阿里云短信 +sms.product=Dysmsapi +sms.domain=dysmsapi.aliyuncs.com +sms.accessKeyId=LTAI5tPAH7P7WQVeowo517BE +sms.accessKeySecret=0ueqhIfdAZyw5lWlBVSLpAxTtx37RY + +#wechat.app-id=wx7785293ff5e31f14 +#wechat.app-secret=25d57cad61fc1b45b3afa46d4c35e8f6 +#wechat.agentId=1000008 + +vod.appId= 1302252447 +vod.secretId= AKIDOcePHvZ2C5VeYHQGSO5aqtlNxJQLqfz2 +vod.secretKey= vjHYRmrfDbw0rWxA7oFcj7F8lDPKCm8E +vod.api= vod.tencentcloudapi.com +vod.region= ap-shanghai +vod.classId= 860744 + +# quartz +# 数据持久化方式 +spring.quartz.job-store-type=jdbc +# 初始化后是否自动启动计划程序 +spring.quartz.auto-startup=true +# 初始化完成后启动计划程序的延迟时间 +spring.quartz.startup-delay=10s +# 配置的作业是否应覆盖现有的作业定义 +spring.quartz.overwrite-existing-jobs=false +# 自动建表,如果已经存在表请勿使用,会覆盖数据表 +#spring.quartz.jdbc.initialize-schema=always +#spring.datasource.initialization-mode=embedded diff --git a/target/classes/code.properties b/target/classes/code.properties new file mode 100644 index 0000000..faaf2d4 --- /dev/null +++ b/target/classes/code.properties @@ -0,0 +1,23 @@ +meishu.code-message[0]=成功 + +meishu.code-message[1010]=无效的令牌 + +meishu.code-message[10001]=信息不存在 +meishu.code-message[10002]=账户已存在 +meishu.code-message[10003]=账户或密码错误 +meishu.code-message[10004]=请在规定时间内登陆 + + + + +meishu.code-message[20001]=该账户有考试,无法删除 +meishu.code-message[30001]=有试卷出现该题目,无法删除 +meishu.code-message[30002]=有题目已添加 + +meishu.code-message[40001]=有题目已添加 + +meishu.code-message[50001]=该批次下有考试,无法删除 + +meishu.code-message[60001]=你已提交过,不能重新提交! + + diff --git a/target/classes/com/meishu/MeishuApplication.class b/target/classes/com/meishu/MeishuApplication.class new file mode 100644 index 0000000..dab10f8 Binary files /dev/null and b/target/classes/com/meishu/MeishuApplication.class differ diff --git a/target/classes/com/meishu/common/ResponseData.class b/target/classes/com/meishu/common/ResponseData.class new file mode 100644 index 0000000..4f5dc7a Binary files /dev/null and b/target/classes/com/meishu/common/ResponseData.class differ diff --git a/target/classes/com/meishu/common/ResponseVO$ResponseVOBuilder.class b/target/classes/com/meishu/common/ResponseVO$ResponseVOBuilder.class new file mode 100644 index 0000000..0c99923 Binary files /dev/null and b/target/classes/com/meishu/common/ResponseVO$ResponseVOBuilder.class differ diff --git a/target/classes/com/meishu/common/ResponseVO.class b/target/classes/com/meishu/common/ResponseVO.class new file mode 100644 index 0000000..808b4cb Binary files /dev/null and b/target/classes/com/meishu/common/ResponseVO.class differ diff --git a/target/classes/com/meishu/common/configure/AliyunSmsProperties.class b/target/classes/com/meishu/common/configure/AliyunSmsProperties.class new file mode 100644 index 0000000..728f104 Binary files /dev/null and b/target/classes/com/meishu/common/configure/AliyunSmsProperties.class differ diff --git a/target/classes/com/meishu/common/configure/MybatisPlusConfig.class b/target/classes/com/meishu/common/configure/MybatisPlusConfig.class new file mode 100644 index 0000000..cb50395 Binary files /dev/null and b/target/classes/com/meishu/common/configure/MybatisPlusConfig.class differ diff --git a/target/classes/com/meishu/common/configure/RemoteProperties.class b/target/classes/com/meishu/common/configure/RemoteProperties.class new file mode 100644 index 0000000..5d7f0d4 Binary files /dev/null and b/target/classes/com/meishu/common/configure/RemoteProperties.class differ diff --git a/target/classes/com/meishu/common/configure/RestTemplateConfig$WxMappingJackson2HttpMessageConverter.class b/target/classes/com/meishu/common/configure/RestTemplateConfig$WxMappingJackson2HttpMessageConverter.class new file mode 100644 index 0000000..f344896 Binary files /dev/null and b/target/classes/com/meishu/common/configure/RestTemplateConfig$WxMappingJackson2HttpMessageConverter.class differ diff --git a/target/classes/com/meishu/common/configure/RestTemplateConfig.class b/target/classes/com/meishu/common/configure/RestTemplateConfig.class new file mode 100644 index 0000000..e3a2f30 Binary files /dev/null and b/target/classes/com/meishu/common/configure/RestTemplateConfig.class differ diff --git a/target/classes/com/meishu/common/configure/SwaggerConfig.class b/target/classes/com/meishu/common/configure/SwaggerConfig.class new file mode 100644 index 0000000..08b47c6 Binary files /dev/null and b/target/classes/com/meishu/common/configure/SwaggerConfig.class differ diff --git a/target/classes/com/meishu/common/configure/VODConfig.class b/target/classes/com/meishu/common/configure/VODConfig.class new file mode 100644 index 0000000..739f7b7 Binary files /dev/null and b/target/classes/com/meishu/common/configure/VODConfig.class differ diff --git a/target/classes/com/meishu/common/configure/WebConfig.class b/target/classes/com/meishu/common/configure/WebConfig.class new file mode 100644 index 0000000..25fd497 Binary files /dev/null and b/target/classes/com/meishu/common/configure/WebConfig.class differ diff --git a/target/classes/com/meishu/common/configure/WebLogAspect.class b/target/classes/com/meishu/common/configure/WebLogAspect.class new file mode 100644 index 0000000..bca281b Binary files /dev/null and b/target/classes/com/meishu/common/configure/WebLogAspect.class differ diff --git a/target/classes/com/meishu/common/configure/WechatConfig.class b/target/classes/com/meishu/common/configure/WechatConfig.class new file mode 100644 index 0000000..7951c96 Binary files /dev/null and b/target/classes/com/meishu/common/configure/WechatConfig.class differ diff --git a/target/classes/com/meishu/common/constant/Code.class b/target/classes/com/meishu/common/constant/Code.class new file mode 100644 index 0000000..c3d5f3b Binary files /dev/null and b/target/classes/com/meishu/common/constant/Code.class differ diff --git a/target/classes/com/meishu/common/constant/WxConstant.class b/target/classes/com/meishu/common/constant/WxConstant.class new file mode 100644 index 0000000..d597f73 Binary files /dev/null and b/target/classes/com/meishu/common/constant/WxConstant.class differ diff --git a/target/classes/com/meishu/common/exception/GlobalExceptionHandler.class b/target/classes/com/meishu/common/exception/GlobalExceptionHandler.class new file mode 100644 index 0000000..fd6cb9c Binary files /dev/null and b/target/classes/com/meishu/common/exception/GlobalExceptionHandler.class differ diff --git a/target/classes/com/meishu/common/exception/HttpException.class b/target/classes/com/meishu/common/exception/HttpException.class new file mode 100644 index 0000000..a446850 Binary files /dev/null and b/target/classes/com/meishu/common/exception/HttpException.class differ diff --git a/target/classes/com/meishu/common/handler/MetaHandler.class b/target/classes/com/meishu/common/handler/MetaHandler.class new file mode 100644 index 0000000..cf0ce1a Binary files /dev/null and b/target/classes/com/meishu/common/handler/MetaHandler.class differ diff --git a/target/classes/com/meishu/common/interceptor/AuthenticationInterceptor.class b/target/classes/com/meishu/common/interceptor/AuthenticationInterceptor.class new file mode 100644 index 0000000..f3a99c7 Binary files /dev/null and b/target/classes/com/meishu/common/interceptor/AuthenticationInterceptor.class differ diff --git a/target/classes/com/meishu/common/interceptor/LoginRequired.class b/target/classes/com/meishu/common/interceptor/LoginRequired.class new file mode 100644 index 0000000..5572cb7 Binary files /dev/null and b/target/classes/com/meishu/common/interceptor/LoginRequired.class differ diff --git a/target/classes/com/meishu/controller/AdministerController.class b/target/classes/com/meishu/controller/AdministerController.class new file mode 100644 index 0000000..dad9e88 Binary files /dev/null and b/target/classes/com/meishu/controller/AdministerController.class differ diff --git a/target/classes/com/meishu/controller/BatchDictController.class b/target/classes/com/meishu/controller/BatchDictController.class new file mode 100644 index 0000000..93aa0c8 Binary files /dev/null and b/target/classes/com/meishu/controller/BatchDictController.class differ diff --git a/target/classes/com/meishu/controller/BatchExamController.class b/target/classes/com/meishu/controller/BatchExamController.class new file mode 100644 index 0000000..1c7e6f9 Binary files /dev/null and b/target/classes/com/meishu/controller/BatchExamController.class differ diff --git a/target/classes/com/meishu/controller/BatchExamStudentController.class b/target/classes/com/meishu/controller/BatchExamStudentController.class new file mode 100644 index 0000000..548a60d Binary files /dev/null and b/target/classes/com/meishu/controller/BatchExamStudentController.class differ diff --git a/target/classes/com/meishu/controller/BatchStudentMappingController.class b/target/classes/com/meishu/controller/BatchStudentMappingController.class new file mode 100644 index 0000000..750a5f0 Binary files /dev/null and b/target/classes/com/meishu/controller/BatchStudentMappingController.class differ diff --git a/target/classes/com/meishu/controller/ExerciseDictController.class b/target/classes/com/meishu/controller/ExerciseDictController.class new file mode 100644 index 0000000..3df586d Binary files /dev/null and b/target/classes/com/meishu/controller/ExerciseDictController.class differ diff --git a/target/classes/com/meishu/controller/ExerciseDoneHistoryController.class b/target/classes/com/meishu/controller/ExerciseDoneHistoryController.class new file mode 100644 index 0000000..dede149 Binary files /dev/null and b/target/classes/com/meishu/controller/ExerciseDoneHistoryController.class differ diff --git a/target/classes/com/meishu/controller/LabelDictController.class b/target/classes/com/meishu/controller/LabelDictController.class new file mode 100644 index 0000000..f2f641a Binary files /dev/null and b/target/classes/com/meishu/controller/LabelDictController.class differ diff --git a/target/classes/com/meishu/controller/PaperDictController.class b/target/classes/com/meishu/controller/PaperDictController.class new file mode 100644 index 0000000..c5c95ec Binary files /dev/null and b/target/classes/com/meishu/controller/PaperDictController.class differ diff --git a/target/classes/com/meishu/controller/PaperExercisesController.class b/target/classes/com/meishu/controller/PaperExercisesController.class new file mode 100644 index 0000000..8e8eac0 Binary files /dev/null and b/target/classes/com/meishu/controller/PaperExercisesController.class differ diff --git a/target/classes/com/meishu/controller/StudentController.class b/target/classes/com/meishu/controller/StudentController.class new file mode 100644 index 0000000..5f05f1e Binary files /dev/null and b/target/classes/com/meishu/controller/StudentController.class differ diff --git a/target/classes/com/meishu/dto/batch/AddBatchDTO.class b/target/classes/com/meishu/dto/batch/AddBatchDTO.class new file mode 100644 index 0000000..7b15caf Binary files /dev/null and b/target/classes/com/meishu/dto/batch/AddBatchDTO.class differ diff --git a/target/classes/com/meishu/dto/exam/ExamPaperDTO.class b/target/classes/com/meishu/dto/exam/ExamPaperDTO.class new file mode 100644 index 0000000..5771957 Binary files /dev/null and b/target/classes/com/meishu/dto/exam/ExamPaperDTO.class differ diff --git a/target/classes/com/meishu/dto/exercise/LabelExercisesDTO.class b/target/classes/com/meishu/dto/exercise/LabelExercisesDTO.class new file mode 100644 index 0000000..060e3ec Binary files /dev/null and b/target/classes/com/meishu/dto/exercise/LabelExercisesDTO.class differ diff --git a/target/classes/com/meishu/dto/paper/AddPaperExerciseDTO.class b/target/classes/com/meishu/dto/paper/AddPaperExerciseDTO.class new file mode 100644 index 0000000..d977a9f Binary files /dev/null and b/target/classes/com/meishu/dto/paper/AddPaperExerciseDTO.class differ diff --git a/target/classes/com/meishu/dto/paper/PaperStudentExerciseDTO.class b/target/classes/com/meishu/dto/paper/PaperStudentExerciseDTO.class new file mode 100644 index 0000000..9269f22 Binary files /dev/null and b/target/classes/com/meishu/dto/paper/PaperStudentExerciseDTO.class differ diff --git a/target/classes/com/meishu/dto/paper/SubmitDTO.class b/target/classes/com/meishu/dto/paper/SubmitDTO.class new file mode 100644 index 0000000..a791357 Binary files /dev/null and b/target/classes/com/meishu/dto/paper/SubmitDTO.class differ diff --git a/target/classes/com/meishu/dto/student/LoginDTO.class b/target/classes/com/meishu/dto/student/LoginDTO.class new file mode 100644 index 0000000..f2400fa Binary files /dev/null and b/target/classes/com/meishu/dto/student/LoginDTO.class differ diff --git a/target/classes/com/meishu/dto/userrole/AccountLoginDTO.class b/target/classes/com/meishu/dto/userrole/AccountLoginDTO.class new file mode 100644 index 0000000..60ba74e Binary files /dev/null and b/target/classes/com/meishu/dto/userrole/AccountLoginDTO.class differ diff --git a/target/classes/com/meishu/dto/userrole/QueryStudentsDTO.class b/target/classes/com/meishu/dto/userrole/QueryStudentsDTO.class new file mode 100644 index 0000000..610f022 Binary files /dev/null and b/target/classes/com/meishu/dto/userrole/QueryStudentsDTO.class differ diff --git a/target/classes/com/meishu/mapper/AdministerMapper.class b/target/classes/com/meishu/mapper/AdministerMapper.class new file mode 100644 index 0000000..5b19fbb Binary files /dev/null and b/target/classes/com/meishu/mapper/AdministerMapper.class differ diff --git a/target/classes/com/meishu/mapper/BatchDictMapper.class b/target/classes/com/meishu/mapper/BatchDictMapper.class new file mode 100644 index 0000000..823adb9 Binary files /dev/null and b/target/classes/com/meishu/mapper/BatchDictMapper.class differ diff --git a/target/classes/com/meishu/mapper/BatchExamMapper.class b/target/classes/com/meishu/mapper/BatchExamMapper.class new file mode 100644 index 0000000..945b7e0 Binary files /dev/null and b/target/classes/com/meishu/mapper/BatchExamMapper.class differ diff --git a/target/classes/com/meishu/mapper/BatchExamsStudentsMapper.class b/target/classes/com/meishu/mapper/BatchExamsStudentsMapper.class new file mode 100644 index 0000000..ef3004d Binary files /dev/null and b/target/classes/com/meishu/mapper/BatchExamsStudentsMapper.class differ diff --git a/target/classes/com/meishu/mapper/BatchStudentMappingMapper.class b/target/classes/com/meishu/mapper/BatchStudentMappingMapper.class new file mode 100644 index 0000000..94b7d7e Binary files /dev/null and b/target/classes/com/meishu/mapper/BatchStudentMappingMapper.class differ diff --git a/target/classes/com/meishu/mapper/ExerciseDictMapper.class b/target/classes/com/meishu/mapper/ExerciseDictMapper.class new file mode 100644 index 0000000..9232018 Binary files /dev/null and b/target/classes/com/meishu/mapper/ExerciseDictMapper.class differ diff --git a/target/classes/com/meishu/mapper/ExerciseDoneHistoryMapper.class b/target/classes/com/meishu/mapper/ExerciseDoneHistoryMapper.class new file mode 100644 index 0000000..7b87743 Binary files /dev/null and b/target/classes/com/meishu/mapper/ExerciseDoneHistoryMapper.class differ diff --git a/target/classes/com/meishu/mapper/LabelDictMapper.class b/target/classes/com/meishu/mapper/LabelDictMapper.class new file mode 100644 index 0000000..c6eb6eb Binary files /dev/null and b/target/classes/com/meishu/mapper/LabelDictMapper.class differ diff --git a/target/classes/com/meishu/mapper/PaperDictMapper.class b/target/classes/com/meishu/mapper/PaperDictMapper.class new file mode 100644 index 0000000..9c0a5c8 Binary files /dev/null and b/target/classes/com/meishu/mapper/PaperDictMapper.class differ diff --git a/target/classes/com/meishu/mapper/PaperExercisesMapper.class b/target/classes/com/meishu/mapper/PaperExercisesMapper.class new file mode 100644 index 0000000..66b40f8 Binary files /dev/null and b/target/classes/com/meishu/mapper/PaperExercisesMapper.class differ diff --git a/target/classes/com/meishu/mapper/StudentMapper.class b/target/classes/com/meishu/mapper/StudentMapper.class new file mode 100644 index 0000000..9d6f954 Binary files /dev/null and b/target/classes/com/meishu/mapper/StudentMapper.class differ diff --git a/target/classes/com/meishu/model/AdministerDO.class b/target/classes/com/meishu/model/AdministerDO.class new file mode 100644 index 0000000..6735197 Binary files /dev/null and b/target/classes/com/meishu/model/AdministerDO.class differ diff --git a/target/classes/com/meishu/model/BatchDictDO.class b/target/classes/com/meishu/model/BatchDictDO.class new file mode 100644 index 0000000..7db0caf Binary files /dev/null and b/target/classes/com/meishu/model/BatchDictDO.class differ diff --git a/target/classes/com/meishu/model/BatchExamDO.class b/target/classes/com/meishu/model/BatchExamDO.class new file mode 100644 index 0000000..efc294d Binary files /dev/null and b/target/classes/com/meishu/model/BatchExamDO.class differ diff --git a/target/classes/com/meishu/model/BatchExamStudentsDO.class b/target/classes/com/meishu/model/BatchExamStudentsDO.class new file mode 100644 index 0000000..8e5bbb0 Binary files /dev/null and b/target/classes/com/meishu/model/BatchExamStudentsDO.class differ diff --git a/target/classes/com/meishu/model/BatchStudentMappingDO.class b/target/classes/com/meishu/model/BatchStudentMappingDO.class new file mode 100644 index 0000000..618095e Binary files /dev/null and b/target/classes/com/meishu/model/BatchStudentMappingDO.class differ diff --git a/target/classes/com/meishu/model/ExerciseDictDO.class b/target/classes/com/meishu/model/ExerciseDictDO.class new file mode 100644 index 0000000..f22d450 Binary files /dev/null and b/target/classes/com/meishu/model/ExerciseDictDO.class differ diff --git a/target/classes/com/meishu/model/ExerciseDoneHistoryDO.class b/target/classes/com/meishu/model/ExerciseDoneHistoryDO.class new file mode 100644 index 0000000..e2d599e Binary files /dev/null and b/target/classes/com/meishu/model/ExerciseDoneHistoryDO.class differ diff --git a/target/classes/com/meishu/model/LabelDictDO.class b/target/classes/com/meishu/model/LabelDictDO.class new file mode 100644 index 0000000..623829f Binary files /dev/null and b/target/classes/com/meishu/model/LabelDictDO.class differ diff --git a/target/classes/com/meishu/model/PaperDictDO.class b/target/classes/com/meishu/model/PaperDictDO.class new file mode 100644 index 0000000..b8603b3 Binary files /dev/null and b/target/classes/com/meishu/model/PaperDictDO.class differ diff --git a/target/classes/com/meishu/model/PaperExercisesDO.class b/target/classes/com/meishu/model/PaperExercisesDO.class new file mode 100644 index 0000000..e229e80 Binary files /dev/null and b/target/classes/com/meishu/model/PaperExercisesDO.class differ diff --git a/target/classes/com/meishu/model/StudentDO.class b/target/classes/com/meishu/model/StudentDO.class new file mode 100644 index 0000000..0b86682 Binary files /dev/null and b/target/classes/com/meishu/model/StudentDO.class differ diff --git a/target/classes/com/meishu/service/AdministerService.class b/target/classes/com/meishu/service/AdministerService.class new file mode 100644 index 0000000..f5884d4 Binary files /dev/null and b/target/classes/com/meishu/service/AdministerService.class differ diff --git a/target/classes/com/meishu/service/BatchDictService.class b/target/classes/com/meishu/service/BatchDictService.class new file mode 100644 index 0000000..e84c924 Binary files /dev/null and b/target/classes/com/meishu/service/BatchDictService.class differ diff --git a/target/classes/com/meishu/service/BatchExamService.class b/target/classes/com/meishu/service/BatchExamService.class new file mode 100644 index 0000000..96b0d11 Binary files /dev/null and b/target/classes/com/meishu/service/BatchExamService.class differ diff --git a/target/classes/com/meishu/service/BatchExamStudentsService.class b/target/classes/com/meishu/service/BatchExamStudentsService.class new file mode 100644 index 0000000..66edb4d Binary files /dev/null and b/target/classes/com/meishu/service/BatchExamStudentsService.class differ diff --git a/target/classes/com/meishu/service/BatchStudentMappingService.class b/target/classes/com/meishu/service/BatchStudentMappingService.class new file mode 100644 index 0000000..578e9b2 Binary files /dev/null and b/target/classes/com/meishu/service/BatchStudentMappingService.class differ diff --git a/target/classes/com/meishu/service/ExerciseDictService.class b/target/classes/com/meishu/service/ExerciseDictService.class new file mode 100644 index 0000000..b640984 Binary files /dev/null and b/target/classes/com/meishu/service/ExerciseDictService.class differ diff --git a/target/classes/com/meishu/service/ExerciseDoneHistoryService.class b/target/classes/com/meishu/service/ExerciseDoneHistoryService.class new file mode 100644 index 0000000..4b27807 Binary files /dev/null and b/target/classes/com/meishu/service/ExerciseDoneHistoryService.class differ diff --git a/target/classes/com/meishu/service/LabelDictService.class b/target/classes/com/meishu/service/LabelDictService.class new file mode 100644 index 0000000..fc31e6f Binary files /dev/null and b/target/classes/com/meishu/service/LabelDictService.class differ diff --git a/target/classes/com/meishu/service/PaperDictService.class b/target/classes/com/meishu/service/PaperDictService.class new file mode 100644 index 0000000..4181087 Binary files /dev/null and b/target/classes/com/meishu/service/PaperDictService.class differ diff --git a/target/classes/com/meishu/service/PaperExercisesService.class b/target/classes/com/meishu/service/PaperExercisesService.class new file mode 100644 index 0000000..9196510 Binary files /dev/null and b/target/classes/com/meishu/service/PaperExercisesService.class differ diff --git a/target/classes/com/meishu/service/StudentService.class b/target/classes/com/meishu/service/StudentService.class new file mode 100644 index 0000000..c1e65a6 Binary files /dev/null and b/target/classes/com/meishu/service/StudentService.class differ diff --git a/target/classes/com/meishu/service/impl/AdministerServiceImpl.class b/target/classes/com/meishu/service/impl/AdministerServiceImpl.class new file mode 100644 index 0000000..4a312ee Binary files /dev/null and b/target/classes/com/meishu/service/impl/AdministerServiceImpl.class differ diff --git a/target/classes/com/meishu/service/impl/BatchDictServiceImpl.class b/target/classes/com/meishu/service/impl/BatchDictServiceImpl.class new file mode 100644 index 0000000..c22e390 Binary files /dev/null and b/target/classes/com/meishu/service/impl/BatchDictServiceImpl.class differ diff --git a/target/classes/com/meishu/service/impl/BatchExamServiceImpl.class b/target/classes/com/meishu/service/impl/BatchExamServiceImpl.class new file mode 100644 index 0000000..5dd53d5 Binary files /dev/null and b/target/classes/com/meishu/service/impl/BatchExamServiceImpl.class differ diff --git a/target/classes/com/meishu/service/impl/BatchExamStudentsServiceImpl.class b/target/classes/com/meishu/service/impl/BatchExamStudentsServiceImpl.class new file mode 100644 index 0000000..ece474e Binary files /dev/null and b/target/classes/com/meishu/service/impl/BatchExamStudentsServiceImpl.class differ diff --git a/target/classes/com/meishu/service/impl/BatchStudentMappingServiceImpl.class b/target/classes/com/meishu/service/impl/BatchStudentMappingServiceImpl.class new file mode 100644 index 0000000..6a03c9a Binary files /dev/null and b/target/classes/com/meishu/service/impl/BatchStudentMappingServiceImpl.class differ diff --git a/target/classes/com/meishu/service/impl/ExerciseDictServiceImpl.class b/target/classes/com/meishu/service/impl/ExerciseDictServiceImpl.class new file mode 100644 index 0000000..7481966 Binary files /dev/null and b/target/classes/com/meishu/service/impl/ExerciseDictServiceImpl.class differ diff --git a/target/classes/com/meishu/service/impl/ExerciseDoneHistoryServiceImpl.class b/target/classes/com/meishu/service/impl/ExerciseDoneHistoryServiceImpl.class new file mode 100644 index 0000000..9a7bafb Binary files /dev/null and b/target/classes/com/meishu/service/impl/ExerciseDoneHistoryServiceImpl.class differ diff --git a/target/classes/com/meishu/service/impl/LabelDictServiceImpl.class b/target/classes/com/meishu/service/impl/LabelDictServiceImpl.class new file mode 100644 index 0000000..c182997 Binary files /dev/null and b/target/classes/com/meishu/service/impl/LabelDictServiceImpl.class differ diff --git a/target/classes/com/meishu/service/impl/PaperDictServiceImpl.class b/target/classes/com/meishu/service/impl/PaperDictServiceImpl.class new file mode 100644 index 0000000..89a8c46 Binary files /dev/null and b/target/classes/com/meishu/service/impl/PaperDictServiceImpl.class differ diff --git a/target/classes/com/meishu/service/impl/PaperExercisesServiceImpl.class b/target/classes/com/meishu/service/impl/PaperExercisesServiceImpl.class new file mode 100644 index 0000000..62fd273 Binary files /dev/null and b/target/classes/com/meishu/service/impl/PaperExercisesServiceImpl.class differ diff --git a/target/classes/com/meishu/service/impl/StudentServiceImpl.class b/target/classes/com/meishu/service/impl/StudentServiceImpl.class new file mode 100644 index 0000000..5a93d0d Binary files /dev/null and b/target/classes/com/meishu/service/impl/StudentServiceImpl.class differ diff --git a/target/classes/com/meishu/util/BaseModel.class b/target/classes/com/meishu/util/BaseModel.class new file mode 100644 index 0000000..92a1ed4 Binary files /dev/null and b/target/classes/com/meishu/util/BaseModel.class differ diff --git a/target/classes/com/meishu/util/CodeGenerator$1.class b/target/classes/com/meishu/util/CodeGenerator$1.class new file mode 100644 index 0000000..c9b7cfd Binary files /dev/null and b/target/classes/com/meishu/util/CodeGenerator$1.class differ diff --git a/target/classes/com/meishu/util/CodeGenerator$2.class b/target/classes/com/meishu/util/CodeGenerator$2.class new file mode 100644 index 0000000..8630503 Binary files /dev/null and b/target/classes/com/meishu/util/CodeGenerator$2.class differ diff --git a/target/classes/com/meishu/util/CodeGenerator.class b/target/classes/com/meishu/util/CodeGenerator.class new file mode 100644 index 0000000..f0cc2b7 Binary files /dev/null and b/target/classes/com/meishu/util/CodeGenerator.class differ diff --git a/target/classes/com/meishu/util/ConstantUtils.class b/target/classes/com/meishu/util/ConstantUtils.class new file mode 100644 index 0000000..7f28ea3 Binary files /dev/null and b/target/classes/com/meishu/util/ConstantUtils.class differ diff --git a/target/classes/com/meishu/util/DateFormatUtil.class b/target/classes/com/meishu/util/DateFormatUtil.class new file mode 100644 index 0000000..59c555f Binary files /dev/null and b/target/classes/com/meishu/util/DateFormatUtil.class differ diff --git a/target/classes/com/meishu/util/FileUtil.class b/target/classes/com/meishu/util/FileUtil.class new file mode 100644 index 0000000..57848a3 Binary files /dev/null and b/target/classes/com/meishu/util/FileUtil.class differ diff --git a/target/classes/com/meishu/util/JwtUtil.class b/target/classes/com/meishu/util/JwtUtil.class new file mode 100644 index 0000000..721f270 Binary files /dev/null and b/target/classes/com/meishu/util/JwtUtil.class differ diff --git a/target/classes/com/meishu/util/LatexUtils.class b/target/classes/com/meishu/util/LatexUtils.class new file mode 100644 index 0000000..23d7965 Binary files /dev/null and b/target/classes/com/meishu/util/LatexUtils.class differ diff --git a/target/classes/com/meishu/util/Localstorage.class b/target/classes/com/meishu/util/Localstorage.class new file mode 100644 index 0000000..4469fe3 Binary files /dev/null and b/target/classes/com/meishu/util/Localstorage.class differ diff --git a/target/classes/com/meishu/util/MathUtil.class b/target/classes/com/meishu/util/MathUtil.class new file mode 100644 index 0000000..0d7c2c3 Binary files /dev/null and b/target/classes/com/meishu/util/MathUtil.class differ diff --git a/target/classes/com/meishu/util/PDFUtil.class b/target/classes/com/meishu/util/PDFUtil.class new file mode 100644 index 0000000..655e157 Binary files /dev/null and b/target/classes/com/meishu/util/PDFUtil.class differ diff --git a/target/classes/com/meishu/util/RandomUtil.class b/target/classes/com/meishu/util/RandomUtil.class new file mode 100644 index 0000000..86d909d Binary files /dev/null and b/target/classes/com/meishu/util/RandomUtil.class differ diff --git a/target/classes/com/meishu/util/SecretUtils.class b/target/classes/com/meishu/util/SecretUtils.class new file mode 100644 index 0000000..d3317b7 Binary files /dev/null and b/target/classes/com/meishu/util/SecretUtils.class differ diff --git a/target/classes/com/meishu/util/excel/ExcelColumn.class b/target/classes/com/meishu/util/excel/ExcelColumn.class new file mode 100644 index 0000000..5a8492a Binary files /dev/null and b/target/classes/com/meishu/util/excel/ExcelColumn.class differ diff --git a/target/classes/com/meishu/util/excel/ExcelColumnUtil.class b/target/classes/com/meishu/util/excel/ExcelColumnUtil.class new file mode 100644 index 0000000..956ed64 Binary files /dev/null and b/target/classes/com/meishu/util/excel/ExcelColumnUtil.class differ diff --git a/target/classes/com/meishu/util/excel/ExcelUtil.class b/target/classes/com/meishu/util/excel/ExcelUtil.class new file mode 100644 index 0000000..47c4ba4 Binary files /dev/null and b/target/classes/com/meishu/util/excel/ExcelUtil.class differ diff --git a/target/classes/com/meishu/util/tree/Node.class b/target/classes/com/meishu/util/tree/Node.class new file mode 100644 index 0000000..24fc551 Binary files /dev/null and b/target/classes/com/meishu/util/tree/Node.class differ diff --git a/target/classes/com/meishu/util/tree/NumberTree.class b/target/classes/com/meishu/util/tree/NumberTree.class new file mode 100644 index 0000000..e97ae71 Binary files /dev/null and b/target/classes/com/meishu/util/tree/NumberTree.class differ diff --git a/target/classes/com/meishu/util/tree/SerialNumber.class b/target/classes/com/meishu/util/tree/SerialNumber.class new file mode 100644 index 0000000..6cc0432 Binary files /dev/null and b/target/classes/com/meishu/util/tree/SerialNumber.class differ diff --git a/target/classes/com/meishu/vo/batch/BatchesVO.class b/target/classes/com/meishu/vo/batch/BatchesVO.class new file mode 100644 index 0000000..f65d534 Binary files /dev/null and b/target/classes/com/meishu/vo/batch/BatchesVO.class differ diff --git a/target/classes/com/meishu/vo/exam/BatchExamStudentScoreVO.class b/target/classes/com/meishu/vo/exam/BatchExamStudentScoreVO.class new file mode 100644 index 0000000..32b58f1 Binary files /dev/null and b/target/classes/com/meishu/vo/exam/BatchExamStudentScoreVO.class differ diff --git a/target/classes/com/meishu/vo/exam/ExamPaperVO.class b/target/classes/com/meishu/vo/exam/ExamPaperVO.class new file mode 100644 index 0000000..7f14a82 Binary files /dev/null and b/target/classes/com/meishu/vo/exam/ExamPaperVO.class differ diff --git a/target/classes/com/meishu/vo/exam/ExamsVO.class b/target/classes/com/meishu/vo/exam/ExamsVO.class new file mode 100644 index 0000000..aa53edd Binary files /dev/null and b/target/classes/com/meishu/vo/exam/ExamsVO.class differ diff --git a/target/classes/com/meishu/vo/exercise/ExercisesWithAnswerVO.class b/target/classes/com/meishu/vo/exercise/ExercisesWithAnswerVO.class new file mode 100644 index 0000000..0a7d222 Binary files /dev/null and b/target/classes/com/meishu/vo/exercise/ExercisesWithAnswerVO.class differ diff --git a/target/classes/com/meishu/vo/exercise/LabelExercisesVO.class b/target/classes/com/meishu/vo/exercise/LabelExercisesVO.class new file mode 100644 index 0000000..4b60dbe Binary files /dev/null and b/target/classes/com/meishu/vo/exercise/LabelExercisesVO.class differ diff --git a/target/classes/com/meishu/vo/exercise/ScoreDetailsVO.class b/target/classes/com/meishu/vo/exercise/ScoreDetailsVO.class new file mode 100644 index 0000000..86723d2 Binary files /dev/null and b/target/classes/com/meishu/vo/exercise/ScoreDetailsVO.class differ diff --git a/target/classes/com/meishu/vo/exercise/UploadFileVO.class b/target/classes/com/meishu/vo/exercise/UploadFileVO.class new file mode 100644 index 0000000..be8b93d Binary files /dev/null and b/target/classes/com/meishu/vo/exercise/UploadFileVO.class differ diff --git a/target/classes/com/meishu/vo/paper/ExercisesVO.class b/target/classes/com/meishu/vo/paper/ExercisesVO.class new file mode 100644 index 0000000..e9f1922 Binary files /dev/null and b/target/classes/com/meishu/vo/paper/ExercisesVO.class differ diff --git a/target/classes/com/meishu/vo/paper/PapersVO.class b/target/classes/com/meishu/vo/paper/PapersVO.class new file mode 100644 index 0000000..a3cb3ba Binary files /dev/null and b/target/classes/com/meishu/vo/paper/PapersVO.class differ diff --git a/target/classes/com/meishu/vo/student/BatchStudentsVO.class b/target/classes/com/meishu/vo/student/BatchStudentsVO.class new file mode 100644 index 0000000..26b8788 Binary files /dev/null and b/target/classes/com/meishu/vo/student/BatchStudentsVO.class differ diff --git a/target/classes/com/meishu/vo/student/LoginVO.class b/target/classes/com/meishu/vo/student/LoginVO.class new file mode 100644 index 0000000..f971868 Binary files /dev/null and b/target/classes/com/meishu/vo/student/LoginVO.class differ diff --git a/target/classes/com/meishu/vo/student/StudentExamsVO.class b/target/classes/com/meishu/vo/student/StudentExamsVO.class new file mode 100644 index 0000000..6a44dfe Binary files /dev/null and b/target/classes/com/meishu/vo/student/StudentExamsVO.class differ diff --git a/target/classes/com/meishu/vo/student/StudentVO.class b/target/classes/com/meishu/vo/student/StudentVO.class new file mode 100644 index 0000000..1d57ce5 Binary files /dev/null and b/target/classes/com/meishu/vo/student/StudentVO.class differ diff --git a/target/classes/logback-spring.xml b/target/classes/logback-spring.xml new file mode 100644 index 0000000..4206856 --- /dev/null +++ b/target/classes/logback-spring.xml @@ -0,0 +1,65 @@ + + + + + ${APP_NAME} + + + + + debug + + + %d [%t] %5p %c:%L - %m%n + UTF-8 + + + + ${LOG_PATH}${APP_NAME}-info.log + + %d [%t] %5p %c:%L - %m%n + + + + 100MB + + ${LOG_PATH}${APP_NAME}/info/%d{yyyy-MM-dd}-%i.log.gz + + 30 + + + + ${LOG_PATH}${APP_NAME}-error.log + + error + + + %d [%t] %5p %c:%L - %m%n + + + + 256MB + + ${LOG_PATH}${APP_NAME}/error/%d{yyyy-MM-dd}-%i.log.gz + + 30 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/target/classes/mapper/AdministerMapper.xml b/target/classes/mapper/AdministerMapper.xml new file mode 100644 index 0000000..579a58c --- /dev/null +++ b/target/classes/mapper/AdministerMapper.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + create_date, + update_date, + create_date, + id, telephone, user_name, img, role + + + + + diff --git a/target/classes/mapper/BatchDictMapper.xml b/target/classes/mapper/BatchDictMapper.xml new file mode 100644 index 0000000..ade0f9a --- /dev/null +++ b/target/classes/mapper/BatchDictMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + create_date, + update_date, + delete_date, + id, batch_name, start_date, end_date + + + diff --git a/target/classes/mapper/BatchExamMapper.xml b/target/classes/mapper/BatchExamMapper.xml new file mode 100644 index 0000000..8ad4186 --- /dev/null +++ b/target/classes/mapper/BatchExamMapper.xml @@ -0,0 +1,21 @@ + + + + + + diff --git a/target/classes/mapper/BatchExamsStudentsMapper.xml b/target/classes/mapper/BatchExamsStudentsMapper.xml new file mode 100644 index 0000000..739f754 --- /dev/null +++ b/target/classes/mapper/BatchExamsStudentsMapper.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + diff --git a/target/classes/mapper/BatchStudentMappingMapper.xml b/target/classes/mapper/BatchStudentMappingMapper.xml new file mode 100644 index 0000000..fd52f10 --- /dev/null +++ b/target/classes/mapper/BatchStudentMappingMapper.xml @@ -0,0 +1,33 @@ + + + + + + + + + + diff --git a/target/classes/mapper/ExerciseDictMapper.xml b/target/classes/mapper/ExerciseDictMapper.xml new file mode 100644 index 0000000..2ea21bb --- /dev/null +++ b/target/classes/mapper/ExerciseDictMapper.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + create_date, + update_date, + delete_date, + id, exercise_type, title, items, right_answer, detail + + + + + diff --git a/target/classes/mapper/ExerciseDoneHistoryMapper.xml b/target/classes/mapper/ExerciseDoneHistoryMapper.xml new file mode 100644 index 0000000..68de15b --- /dev/null +++ b/target/classes/mapper/ExerciseDoneHistoryMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + diff --git a/target/classes/mapper/LabelDictMapper.xml b/target/classes/mapper/LabelDictMapper.xml new file mode 100644 index 0000000..43240cc --- /dev/null +++ b/target/classes/mapper/LabelDictMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + create_date, + update_date, + delete_date, + id, label + + + diff --git a/target/classes/mapper/PaperDictMapper.xml b/target/classes/mapper/PaperDictMapper.xml new file mode 100644 index 0000000..7964002 --- /dev/null +++ b/target/classes/mapper/PaperDictMapper.xml @@ -0,0 +1,69 @@ + + + + + + + + + + + + diff --git a/target/classes/mapper/PaperExercisesMapper.xml b/target/classes/mapper/PaperExercisesMapper.xml new file mode 100644 index 0000000..f75af80 --- /dev/null +++ b/target/classes/mapper/PaperExercisesMapper.xml @@ -0,0 +1,20 @@ + + + + + + + diff --git a/target/classes/mapper/StudentMapper.xml b/target/classes/mapper/StudentMapper.xml new file mode 100644 index 0000000..44a02ac --- /dev/null +++ b/target/classes/mapper/StudentMapper.xml @@ -0,0 +1,21 @@ + + + + + + + + diff --git a/target/classes/mybatis-plus.properties b/target/classes/mybatis-plus.properties new file mode 100644 index 0000000..4b33caf --- /dev/null +++ b/target/classes/mybatis-plus.properties @@ -0,0 +1,12 @@ +# 此处为本项目src所在路径(代码生成器输出路径) +outputDir=/src/main/java +author=Tuyp +# 父的包名 +setParent=com.meishu +# mapper.xml文件生成路径 +mapperPath=/src/main/resources/mapper/ +# 数据库地址 +url=jdbc:mysql://116.62.57.92:3306/kpk?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useSSL=false&allowMultiQueries=true&useAffectedRows=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true +driverName=com.mysql.cj.jdbc.Driver +userName=devloper +password=dev@1553$ \ No newline at end of file diff --git a/target/classes/mybatis.xml b/target/classes/mybatis.xml new file mode 100644 index 0000000..f4495b4 --- /dev/null +++ b/target/classes/mybatis.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/target/classes/static/1.jpg b/target/classes/static/1.jpg new file mode 100644 index 0000000..f8de294 Binary files /dev/null and b/target/classes/static/1.jpg differ diff --git a/target/classes/static/10.jpg b/target/classes/static/10.jpg new file mode 100644 index 0000000..6a8f993 Binary files /dev/null and b/target/classes/static/10.jpg differ diff --git a/target/classes/static/11.jpg b/target/classes/static/11.jpg new file mode 100644 index 0000000..a1f6291 Binary files /dev/null and b/target/classes/static/11.jpg differ diff --git a/target/classes/static/12.jpg b/target/classes/static/12.jpg new file mode 100644 index 0000000..ef97e63 Binary files /dev/null and b/target/classes/static/12.jpg differ diff --git a/target/classes/static/13.jpg b/target/classes/static/13.jpg new file mode 100644 index 0000000..fcf015e Binary files /dev/null and b/target/classes/static/13.jpg differ diff --git a/target/classes/static/14.jpg b/target/classes/static/14.jpg new file mode 100644 index 0000000..7568805 Binary files /dev/null and b/target/classes/static/14.jpg differ diff --git a/target/classes/static/15.jpg b/target/classes/static/15.jpg new file mode 100644 index 0000000..32ae57e Binary files /dev/null and b/target/classes/static/15.jpg differ diff --git a/target/classes/static/16.jpg b/target/classes/static/16.jpg new file mode 100644 index 0000000..a5ea48d Binary files /dev/null and b/target/classes/static/16.jpg differ diff --git a/target/classes/static/17.jpg b/target/classes/static/17.jpg new file mode 100644 index 0000000..cff260c Binary files /dev/null and b/target/classes/static/17.jpg differ diff --git a/target/classes/static/18.jpg b/target/classes/static/18.jpg new file mode 100644 index 0000000..9c8bad6 Binary files /dev/null and b/target/classes/static/18.jpg differ diff --git a/target/classes/static/19.gif b/target/classes/static/19.gif new file mode 100644 index 0000000..30e7a58 Binary files /dev/null and b/target/classes/static/19.gif differ diff --git a/target/classes/static/2.jpg b/target/classes/static/2.jpg new file mode 100644 index 0000000..5e777a0 Binary files /dev/null and b/target/classes/static/2.jpg differ diff --git a/target/classes/static/20.jpg b/target/classes/static/20.jpg new file mode 100644 index 0000000..f767227 Binary files /dev/null and b/target/classes/static/20.jpg differ diff --git a/target/classes/static/21.jpg b/target/classes/static/21.jpg new file mode 100644 index 0000000..a68eb5c Binary files /dev/null and b/target/classes/static/21.jpg differ diff --git a/target/classes/static/22.jpg b/target/classes/static/22.jpg new file mode 100644 index 0000000..ea31fba Binary files /dev/null and b/target/classes/static/22.jpg differ diff --git a/target/classes/static/23.jpg b/target/classes/static/23.jpg new file mode 100644 index 0000000..45ca354 Binary files /dev/null and b/target/classes/static/23.jpg differ diff --git a/target/classes/static/24.jpg b/target/classes/static/24.jpg new file mode 100644 index 0000000..a75ee27 Binary files /dev/null and b/target/classes/static/24.jpg differ diff --git a/target/classes/static/25.gif b/target/classes/static/25.gif new file mode 100644 index 0000000..4576c21 Binary files /dev/null and b/target/classes/static/25.gif differ diff --git a/target/classes/static/26.jpg b/target/classes/static/26.jpg new file mode 100644 index 0000000..c596671 Binary files /dev/null and b/target/classes/static/26.jpg differ diff --git a/target/classes/static/27.jpg b/target/classes/static/27.jpg new file mode 100644 index 0000000..da37229 Binary files /dev/null and b/target/classes/static/27.jpg differ diff --git a/target/classes/static/28.jpg b/target/classes/static/28.jpg new file mode 100644 index 0000000..9e1b4eb Binary files /dev/null and b/target/classes/static/28.jpg differ diff --git a/target/classes/static/29.jpg b/target/classes/static/29.jpg new file mode 100644 index 0000000..74df3db Binary files /dev/null and b/target/classes/static/29.jpg differ diff --git a/target/classes/static/3.jpg b/target/classes/static/3.jpg new file mode 100644 index 0000000..a540614 Binary files /dev/null and b/target/classes/static/3.jpg differ diff --git a/target/classes/static/30.jpg b/target/classes/static/30.jpg new file mode 100644 index 0000000..c654b2b Binary files /dev/null and b/target/classes/static/30.jpg differ diff --git a/target/classes/static/31.jpg b/target/classes/static/31.jpg new file mode 100644 index 0000000..a04cfc7 Binary files /dev/null and b/target/classes/static/31.jpg differ diff --git a/target/classes/static/32.png b/target/classes/static/32.png new file mode 100644 index 0000000..34af18b Binary files /dev/null and b/target/classes/static/32.png differ diff --git a/target/classes/static/33.png b/target/classes/static/33.png new file mode 100644 index 0000000..fbb52d6 Binary files /dev/null and b/target/classes/static/33.png differ diff --git a/target/classes/static/34.png b/target/classes/static/34.png new file mode 100644 index 0000000..f728c63 Binary files /dev/null and b/target/classes/static/34.png differ diff --git a/target/classes/static/4.jpg b/target/classes/static/4.jpg new file mode 100644 index 0000000..7c0e791 Binary files /dev/null and b/target/classes/static/4.jpg differ diff --git a/target/classes/static/5.jpg b/target/classes/static/5.jpg new file mode 100644 index 0000000..562d372 Binary files /dev/null and b/target/classes/static/5.jpg differ diff --git a/target/classes/static/6.jpg b/target/classes/static/6.jpg new file mode 100644 index 0000000..109e678 Binary files /dev/null and b/target/classes/static/6.jpg differ diff --git a/target/classes/static/7.jpg b/target/classes/static/7.jpg new file mode 100644 index 0000000..17d3e48 Binary files /dev/null and b/target/classes/static/7.jpg differ diff --git a/target/classes/static/8.jpg b/target/classes/static/8.jpg new file mode 100644 index 0000000..f13301b Binary files /dev/null and b/target/classes/static/8.jpg differ diff --git a/target/classes/static/9.jpg b/target/classes/static/9.jpg new file mode 100644 index 0000000..31fcbea Binary files /dev/null and b/target/classes/static/9.jpg differ diff --git a/target/classes/static/img/1.jpg b/target/classes/static/img/1.jpg new file mode 100644 index 0000000..fc58447 Binary files /dev/null and b/target/classes/static/img/1.jpg differ diff --git a/target/classes/static/img/1689759697051UlRPM3g4RjF5Y1FxcktKVDFIcEYyUWVNd2l2c25GUTlOb1dJYTJNcGpZbzFudzg5QVNtK2xBPT0.jpg b/target/classes/static/img/1689759697051UlRPM3g4RjF5Y1FxcktKVDFIcEYyUWVNd2l2c25GUTlOb1dJYTJNcGpZbzFudzg5QVNtK2xBPT0.jpg new file mode 100644 index 0000000..688a1d5 Binary files /dev/null and b/target/classes/static/img/1689759697051UlRPM3g4RjF5Y1FxcktKVDFIcEYyUWVNd2l2c25GUTlOb1dJYTJNcGpZbzFudzg5QVNtK2xBPT0.jpg differ diff --git a/target/classes/static/img/1689832431592tmp_1761f81855791993a84c6631ae7a434f482a4606a40d0636.jpg b/target/classes/static/img/1689832431592tmp_1761f81855791993a84c6631ae7a434f482a4606a40d0636.jpg new file mode 100644 index 0000000..d9a2fe0 Binary files /dev/null and b/target/classes/static/img/1689832431592tmp_1761f81855791993a84c6631ae7a434f482a4606a40d0636.jpg differ diff --git a/target/classes/static/img/16899235894131689923481019.png b/target/classes/static/img/16899235894131689923481019.png new file mode 100644 index 0000000..c1de5ee Binary files /dev/null and b/target/classes/static/img/16899235894131689923481019.png differ diff --git "a/target/classes/static/img/1689923766029\345\233\276\347\211\2071.png" "b/target/classes/static/img/1689923766029\345\233\276\347\211\2071.png" new file mode 100644 index 0000000..34af18b Binary files /dev/null and "b/target/classes/static/img/1689923766029\345\233\276\347\211\2071.png" differ diff --git a/target/classes/static/img/16899239386521689923481019.png b/target/classes/static/img/16899239386521689923481019.png new file mode 100644 index 0000000..c1de5ee Binary files /dev/null and b/target/classes/static/img/16899239386521689923481019.png differ diff --git "a/target/classes/static/img/1689923994992\345\233\276\347\211\2071.png" "b/target/classes/static/img/1689923994992\345\233\276\347\211\2071.png" new file mode 100644 index 0000000..34af18b Binary files /dev/null and "b/target/classes/static/img/1689923994992\345\233\276\347\211\2071.png" differ diff --git a/target/classes/static/img/16899244667821689923481019.png b/target/classes/static/img/16899244667821689923481019.png new file mode 100644 index 0000000..c1de5ee Binary files /dev/null and b/target/classes/static/img/16899244667821689923481019.png differ diff --git "a/target/classes/static/img/1689924520974\345\233\276\347\211\2071.png" "b/target/classes/static/img/1689924520974\345\233\276\347\211\2071.png" new file mode 100644 index 0000000..34af18b Binary files /dev/null and "b/target/classes/static/img/1689924520974\345\233\276\347\211\2071.png" differ diff --git "a/target/classes/static/img/1689924569182\345\233\276\347\211\2071.png" "b/target/classes/static/img/1689924569182\345\233\276\347\211\2071.png" new file mode 100644 index 0000000..34af18b Binary files /dev/null and "b/target/classes/static/img/1689924569182\345\233\276\347\211\2071.png" differ diff --git "a/target/classes/static/img/1689924636414\345\233\276\347\211\2071.png" "b/target/classes/static/img/1689924636414\345\233\276\347\211\2071.png" new file mode 100644 index 0000000..34af18b Binary files /dev/null and "b/target/classes/static/img/1689924636414\345\233\276\347\211\2071.png" differ diff --git "a/target/classes/static/img/1689926245085\345\233\276\347\211\2071.png" "b/target/classes/static/img/1689926245085\345\233\276\347\211\2071.png" new file mode 100644 index 0000000..34af18b Binary files /dev/null and "b/target/classes/static/img/1689926245085\345\233\276\347\211\2071.png" differ diff --git "a/target/classes/static/img/1689926381453\345\233\276\347\211\2072.png" "b/target/classes/static/img/1689926381453\345\233\276\347\211\2072.png" new file mode 100644 index 0000000..34af18b Binary files /dev/null and "b/target/classes/static/img/1689926381453\345\233\276\347\211\2072.png" differ diff --git a/target/classes/static/img/16904466882761690446647678.jpg b/target/classes/static/img/16904466882761690446647678.jpg new file mode 100644 index 0000000..6941150 Binary files /dev/null and b/target/classes/static/img/16904466882761690446647678.jpg differ diff --git a/target/classes/static/img/16904470430491690446647678.jpg b/target/classes/static/img/16904470430491690446647678.jpg new file mode 100644 index 0000000..6941150 Binary files /dev/null and b/target/classes/static/img/16904470430491690446647678.jpg differ diff --git a/target/classes/static/img/16904471055331690446647678.jpg b/target/classes/static/img/16904471055331690446647678.jpg new file mode 100644 index 0000000..6941150 Binary files /dev/null and b/target/classes/static/img/16904471055331690446647678.jpg differ diff --git a/target/classes/static/img/16904486323771690448607180.jpg b/target/classes/static/img/16904486323771690448607180.jpg new file mode 100644 index 0000000..677d2f8 Binary files /dev/null and b/target/classes/static/img/16904486323771690448607180.jpg differ diff --git a/target/classes/static/img/16904487261871690448695674.png b/target/classes/static/img/16904487261871690448695674.png new file mode 100644 index 0000000..7755cd4 Binary files /dev/null and b/target/classes/static/img/16904487261871690448695674.png differ diff --git a/target/classes/static/img/16904488843531690448695674.png b/target/classes/static/img/16904488843531690448695674.png new file mode 100644 index 0000000..7755cd4 Binary files /dev/null and b/target/classes/static/img/16904488843531690448695674.png differ diff --git a/target/classes/static/img/work/Tomcat/localhost/ROOT/UlRPM3g4RjF5Y1FxcktKVDFIcEYyUWVNd2l2c25GUTlOb1dJYTJNcGpZbzFudzg5QVNtK2xBPT0.jpg1689758751436 b/target/classes/static/img/work/Tomcat/localhost/ROOT/UlRPM3g4RjF5Y1FxcktKVDFIcEYyUWVNd2l2c25GUTlOb1dJYTJNcGpZbzFudzg5QVNtK2xBPT0.jpg1689758751436 new file mode 100644 index 0000000..688a1d5 Binary files /dev/null and b/target/classes/static/img/work/Tomcat/localhost/ROOT/UlRPM3g4RjF5Y1FxcktKVDFIcEYyUWVNd2l2c25GUTlOb1dJYTJNcGpZbzFudzg5QVNtK2xBPT0.jpg1689758751436 differ diff --git a/target/classes/static/img/work/Tomcat/localhost/ROOT/UlRPM3g4RjF5Y1FxcktKVDFIcEYyUWVNd2l2c25GUTlOb1dJYTJNcGpZbzFudzg5QVNtK2xBPT0.jpg1689758901616 b/target/classes/static/img/work/Tomcat/localhost/ROOT/UlRPM3g4RjF5Y1FxcktKVDFIcEYyUWVNd2l2c25GUTlOb1dJYTJNcGpZbzFudzg5QVNtK2xBPT0.jpg1689758901616 new file mode 100644 index 0000000..688a1d5 Binary files /dev/null and b/target/classes/static/img/work/Tomcat/localhost/ROOT/UlRPM3g4RjF5Y1FxcktKVDFIcEYyUWVNd2l2c25GUTlOb1dJYTJNcGpZbzFudzg5QVNtK2xBPT0.jpg1689758901616 differ diff --git a/target/classes/templates/controller.java.ftl b/target/classes/templates/controller.java.ftl new file mode 100644 index 0000000..28e7070 --- /dev/null +++ b/target/classes/templates/controller.java.ftl @@ -0,0 +1,41 @@ +package ${package.Controller}; + + +import org.springframework.web.bind.annotation.RequestMapping; + +<#if restControllerStyle> +import org.springframework.web.bind.annotation.RestController; +<#else> +import org.springframework.stereotype.Controller; + +<#if superControllerClassPackage??> +import ${superControllerClassPackage}; + +import io.swagger.annotations.Api; + +/** + *

+ * ${table.comment!} 前端控制器 + *

+ * + * @author ${author} + * @since ${date} + */ +<#if restControllerStyle> +@RestController +@Api(tags = "${table.comment!}") +<#else> +@Controller + +@RequestMapping("<#if package.ModuleName?? && package.ModuleName != "">/${package.ModuleName}/<#if controllerMappingHyphenStyle??>${controllerMappingHyphen}<#else>${table.entityPath}") +<#if kotlin> +class ${table.controllerName}<#if superControllerClass??> : ${superControllerClass}() +<#else> +<#if superControllerClass??> +public class ${table.controllerName} extends ${superControllerClass} { +<#else> +public class ${table.controllerName} { + + +} + diff --git a/target/classes/templates/entity.java.ftl b/target/classes/templates/entity.java.ftl new file mode 100644 index 0000000..c63bcc4 --- /dev/null +++ b/target/classes/templates/entity.java.ftl @@ -0,0 +1,156 @@ +package ${package.Entity}; + +<#list table.importPackages as pkg> +import ${pkg}; + +<#if swagger2> +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +<#if entityLombokModel> +import lombok.Data; +import lombok.EqualsAndHashCode; + <#if chainModel> +import lombok.experimental.Accessors; + + + +/** + *

+ * ${table.comment!} + *

+ * + * @author ${author} + * @since ${date} + */ +<#if entityLombokModel> +@Data + <#if superEntityClass??> +@EqualsAndHashCode(callSuper = true) + <#else> +@EqualsAndHashCode(callSuper = false) + + <#if chainModel> +@Accessors(chain = true) + + +<#if table.convert> +@TableName("${table.name}") + +<#if swagger2> +@ApiModel(value="${entity}对象", description="${table.comment!}") + +<#if superEntityClass??> +public class ${entity} extends ${superEntityClass}<#if activeRecord><${entity}> { +<#elseif activeRecord> +public class ${entity} extends Model<${entity}> { +<#else> +public class ${entity} implements Serializable { + + +<#if entitySerialVersionUID> + private static final long serialVersionUID = 1L; + +<#-- ---------- BEGIN 字段循环遍历 ----------> +<#list table.fields as field> + <#if field.keyFlag> + <#assign keyPropertyName="${field.propertyName}"/> + + + <#if field.comment!?length gt 0> + <#if swagger2> + @ApiModelProperty(value = "${field.comment}") + <#else> + /** + * ${field.comment} + */ + + + <#if field.keyFlag> + <#-- 主键 --> + <#if field.keyIdentityFlag> + @TableId(value = "${field.annotationColumnName}", type = IdType.AUTO) + <#elseif idType??> + @TableId(value = "${field.annotationColumnName}", type = IdType.${idType}) + <#elseif field.convert> + @TableId("${field.annotationColumnName}") + + <#-- 普通字段 --> + <#elseif field.fill??> + <#-- ----- 存在字段填充设置 -----> + <#if field.convert> + @TableField(value = "${field.annotationColumnName}", fill = FieldFill.${field.fill}) + <#else> + @TableField(fill = FieldFill.${field.fill}) + + <#elseif field.convert> + @TableField("${field.annotationColumnName}") + + <#-- 乐观锁注解 --> + <#if (versionFieldName!"") == field.name> + @Version + + <#-- 逻辑删除注解 --> + <#if (logicDeleteFieldName!"") == field.name> + @TableLogic + + private ${field.propertyType} ${field.propertyName}; + +<#------------ END 字段循环遍历 ----------> + +<#if !entityLombokModel> + <#list table.fields as field> + <#if field.propertyType == "boolean"> + <#assign getprefix="is"/> + <#else> + <#assign getprefix="get"/> + + public ${field.propertyType} ${getprefix}${field.capitalName}() { + return ${field.propertyName}; + } + + <#if chainModel> + public ${entity} set${field.capitalName}(${field.propertyType} ${field.propertyName}) { + <#else> + public void set${field.capitalName}(${field.propertyType} ${field.propertyName}) { + + this.${field.propertyName} = ${field.propertyName}; + <#if chainModel> + return this; + + } + + + +<#if entityColumnConstant> + <#list table.fields as field> + public static final String ${field.name?upper_case} = "${field.name}"; + + + +<#if activeRecord> + @Override + protected Serializable pkVal() { + <#if keyPropertyName??> + return this.${keyPropertyName}; + <#else> + return null; + + } + + +<#if !entityLombokModel> + @Override + public String toString() { + return "${entity}{" + + <#list table.fields as field> + <#if field_index==0> + "${field.propertyName}=" + ${field.propertyName} + + <#else> + ", ${field.propertyName}=" + ${field.propertyName} + + + + "}"; + } + +} diff --git a/target/classes/templates/mapper.java.ftl b/target/classes/templates/mapper.java.ftl new file mode 100644 index 0000000..be08c59 --- /dev/null +++ b/target/classes/templates/mapper.java.ftl @@ -0,0 +1,22 @@ +package ${package.Mapper}; + +import ${package.Entity}.${entity}; +import ${superMapperClassPackage}; +import org.springframework.stereotype.Repository; + +/** + *

+ * ${table.comment!} Mapper 接口 + *

+ * + * @author ${author} + * @since ${date} + */ +<#if kotlin> +interface ${table.mapperName} : ${superMapperClass}<${entity}> +<#else> + @Repository +public interface ${table.mapperName} extends ${superMapperClass}<${entity}> { + +} + diff --git a/target/classes/templates/mapper.xml.ftl b/target/classes/templates/mapper.xml.ftl new file mode 100644 index 0000000..04c2359 --- /dev/null +++ b/target/classes/templates/mapper.xml.ftl @@ -0,0 +1,39 @@ + + + + +<#if enableCache> + + + + +<#if baseResultMap> + + +<#list table.fields as field> +<#if field.keyFlag><#--生成主键排在第一位--> + + + +<#list table.commonFields as field><#--生成公共字段 --> + + +<#list table.fields as field> +<#if !field.keyFlag><#--生成普通字段 --> + + + + + + +<#if baseColumnList> + + +<#list table.commonFields as field> + ${field.columnName}, + + ${table.fieldNames} + + + + diff --git a/target/classes/templates/service.java.ftl b/target/classes/templates/service.java.ftl new file mode 100644 index 0000000..e3232f3 --- /dev/null +++ b/target/classes/templates/service.java.ftl @@ -0,0 +1,20 @@ +package ${package.Service}; + +import ${package.Entity}.${entity}; +import ${superServiceClassPackage}; + +/** + *

+ * ${table.comment!} 服务类 + *

+ * + * @author ${author} + * @since ${date} + */ +<#if kotlin> +interface ${table.serviceName} : ${superServiceClass}<${entity}> +<#else> +public interface ${table.serviceName} extends ${superServiceClass}<${entity}> { + +} + diff --git a/target/classes/templates/serviceImpl.java.ftl b/target/classes/templates/serviceImpl.java.ftl new file mode 100644 index 0000000..aeebd14 --- /dev/null +++ b/target/classes/templates/serviceImpl.java.ftl @@ -0,0 +1,26 @@ +package ${package.ServiceImpl}; + +import ${package.Entity}.${entity}; +import ${package.Mapper}.${table.mapperName}; +import ${package.Service}.${table.serviceName}; +import ${superServiceImplClassPackage}; +import org.springframework.stereotype.Service; + +/** + *

+ * ${table.comment!} 服务实现类 + *

+ * + * @author ${author} + * @since ${date} + */ +@Service +<#if kotlin> +open class ${table.serviceImplName} : ${superServiceImplClass}<${table.mapperName}, ${entity}>(), ${table.serviceName} { + +} +<#else> +public class ${table.serviceImplName} extends ${superServiceImplClass}<${table.mapperName}, ${entity}> implements ${table.serviceName} { + +} + diff --git a/target/kpk.jar b/target/kpk.jar new file mode 100644 index 0000000..593d956 Binary files /dev/null and b/target/kpk.jar differ diff --git a/target/kpk.jar.original b/target/kpk.jar.original new file mode 100644 index 0000000..e94c9b4 Binary files /dev/null and b/target/kpk.jar.original differ diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties new file mode 100644 index 0000000..00cb887 --- /dev/null +++ b/target/maven-archiver/pom.properties @@ -0,0 +1,3 @@ +artifactId=teachaicms +groupId=com.meishu +version=0.0.1 diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..fff4ade --- /dev/null +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,60 @@ +com\meishu\util\LatexUtils.class +com\meishu\common\interceptor\AuthenticationInterceptor.class +com\meishu\util\CodeGenerator.class +com\meishu\service\ExerciseDictService.class +com\meishu\dto\userrole\AccountLoginDTO.class +META-INF\spring-configuration-metadata.json +com\meishu\util\excel\ExcelUtil.class +com\meishu\MeishuApplication.class +com\meishu\controller\ExerciseDictController.class +com\meishu\util\tree\NumberTree.class +com\meishu\common\configure\WebConfig.class +com\meishu\util\CodeGenerator$2.class +com\meishu\util\tree\Node.class +com\meishu\util\excel\ExcelColumnUtil.class +com\meishu\common\ResponseVO.class +com\meishu\util\ConstantUtils.class +com\meishu\common\configure\RestTemplateConfig$WxMappingJackson2HttpMessageConverter.class +com\meishu\common\configure\RestTemplateConfig.class +com\meishu\util\DateFormatUtil.class +com\meishu\common\handler\MetaHandler.class +com\meishu\dto\userrole\QueryStudentsDTO.class +com\meishu\common\configure\WebLogAspect.class +com\meishu\controller\AdministerController.class +com\meishu\util\Localstorage.class +com\meishu\util\MathUtil.class +com\meishu\util\BaseModel.class +com\meishu\service\impl\AdministerServiceImpl.class +com\meishu\common\configure\SwaggerConfig.class +com\meishu\mapper\ExerciseDoneHistoryMapper.class +com\meishu\util\RandomUtil.class +com\meishu\model\ExerciseDoneHistoryDO.class +com\meishu\model\PaperDictDO.class +com\meishu\common\ResponseData.class +com\meishu\service\impl\ExerciseDoneHistoryServiceImpl.class +com\meishu\service\impl\ExerciseDictServiceImpl.class +com\meishu\mapper\PaperDictMapper.class +com\meishu\common\configure\RemoteProperties.class +com\meishu\mapper\ExerciseDictMapper.class +com\meishu\common\constant\Code.class +com\meishu\common\constant\WxConstant.class +com\meishu\model\AdministerDO.class +com\meishu\common\configure\MybatisPlusConfig.class +com\meishu\util\JwtUtil.class +com\meishu\common\interceptor\LoginRequired.class +com\meishu\util\SecretUtils.class +com\meishu\mapper\AdministerMapper.class +com\meishu\common\exception\HttpException.class +com\meishu\service\AdministerService.class +com\meishu\service\impl\PaperDictServiceImpl.class +com\meishu\common\ResponseVO$ResponseVOBuilder.class +com\meishu\service\PaperDictService.class +com\meishu\common\configure\VODConfig.class +com\meishu\common\exception\GlobalExceptionHandler.class +com\meishu\model\ExerciseDictDO.class +com\meishu\common\configure\AliyunSmsProperties.class +com\meishu\util\CodeGenerator$1.class +com\meishu\util\excel\ExcelColumn.class +com\meishu\service\ExerciseDoneHistoryService.class +com\meishu\util\tree\SerialNumber.class +com\meishu\common\configure\WechatConfig.class diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..e1abae7 --- /dev/null +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,115 @@ +D:\code\kaopingxitong\src\main\java\com\meishu\common\exception\GlobalExceptionHandler.java +D:\code\kaopingxitong\src\main\java\com\meishu\dto\student\LoginDTO.java +D:\code\kaopingxitong\src\main\java\com\meishu\util\RandomUtil.java +D:\code\kaopingxitong\src\main\java\com\meishu\vo\exercise\ScoreDetailsVO.java +D:\code\kaopingxitong\src\main\java\com\meishu\model\PaperExercisesDO.java +D:\code\kaopingxitong\src\main\java\com\meishu\vo\student\StudentExamsVO.java +D:\code\kaopingxitong\src\main\java\com\meishu\controller\BatchExamStudentController.java +D:\code\kaopingxitong\src\main\java\com\meishu\dto\userrole\AccountLoginDTO.java +D:\code\kaopingxitong\src\main\java\com\meishu\mapper\BatchExamMapper.java +D:\code\kaopingxitong\src\main\java\com\meishu\util\JwtUtil.java +D:\code\kaopingxitong\src\main\java\com\meishu\controller\PaperExercisesController.java +D:\code\kaopingxitong\src\main\java\com\meishu\mapper\BatchDictMapper.java +D:\code\kaopingxitong\src\main\java\com\meishu\vo\exercise\LabelExercisesVO.java +D:\code\kaopingxitong\src\main\java\com\meishu\service\impl\LabelDictServiceImpl.java +D:\code\kaopingxitong\src\main\java\com\meishu\common\configure\WebConfig.java +D:\code\kaopingxitong\src\main\java\com\meishu\service\PaperExercisesService.java +D:\code\kaopingxitong\src\main\java\com\meishu\service\BatchStudentMappingService.java +D:\code\kaopingxitong\src\main\java\com\meishu\util\MathUtil.java +D:\code\kaopingxitong\src\main\java\com\meishu\common\interceptor\LoginRequired.java +D:\code\kaopingxitong\src\main\java\com\meishu\util\PDFUtil.java +D:\code\kaopingxitong\src\main\java\com\meishu\common\handler\MetaHandler.java +D:\code\kaopingxitong\src\main\java\com\meishu\util\excel\ExcelColumnUtil.java +D:\code\kaopingxitong\src\main\java\com\meishu\util\CodeGenerator.java +D:\code\kaopingxitong\src\main\java\com\meishu\service\ExerciseDictService.java +D:\code\kaopingxitong\src\main\java\com\meishu\dto\exam\ExamPaperDTO.java +D:\code\kaopingxitong\src\main\java\com\meishu\common\ResponseVO.java +D:\code\kaopingxitong\src\main\java\com\meishu\controller\ExerciseDictController.java +D:\code\kaopingxitong\src\main\java\com\meishu\service\AdministerService.java +D:\code\kaopingxitong\src\main\java\com\meishu\common\constant\WxConstant.java +D:\code\kaopingxitong\src\main\java\com\meishu\dto\paper\AddPaperExerciseDTO.java +D:\code\kaopingxitong\src\main\java\com\meishu\controller\ExerciseDoneHistoryController.java +D:\code\kaopingxitong\src\main\java\com\meishu\mapper\PaperDictMapper.java +D:\code\kaopingxitong\src\main\java\com\meishu\service\impl\BatchDictServiceImpl.java +D:\code\kaopingxitong\src\main\java\com\meishu\mapper\StudentMapper.java +D:\code\kaopingxitong\src\main\java\com\meishu\service\BatchExamStudentsService.java +D:\code\kaopingxitong\src\main\java\com\meishu\mapper\BatchExamsStudentsMapper.java +D:\code\kaopingxitong\src\main\java\com\meishu\util\FileUtil.java +D:\code\kaopingxitong\src\main\java\com\meishu\util\DateFormatUtil.java +D:\code\kaopingxitong\src\main\java\com\meishu\common\configure\MybatisPlusConfig.java +D:\code\kaopingxitong\src\main\java\com\meishu\dto\userrole\QueryStudentsDTO.java +D:\code\kaopingxitong\src\main\java\com\meishu\service\impl\BatchStudentMappingServiceImpl.java +D:\code\kaopingxitong\src\main\java\com\meishu\service\impl\BatchExamStudentsServiceImpl.java +D:\code\kaopingxitong\src\main\java\com\meishu\common\ResponseData.java +D:\code\kaopingxitong\src\main\java\com\meishu\controller\LabelDictController.java +D:\code\kaopingxitong\src\main\java\com\meishu\service\impl\ExerciseDictServiceImpl.java +D:\code\kaopingxitong\src\main\java\com\meishu\vo\exam\ExamPaperVO.java +D:\code\kaopingxitong\src\main\java\com\meishu\common\configure\RemoteProperties.java +D:\code\kaopingxitong\src\main\java\com\meishu\util\tree\Node.java +D:\code\kaopingxitong\src\main\java\com\meishu\controller\StudentController.java +D:\code\kaopingxitong\src\main\java\com\meishu\service\ExerciseDoneHistoryService.java +D:\code\kaopingxitong\src\main\java\com\meishu\controller\BatchExamController.java +D:\code\kaopingxitong\src\main\java\com\meishu\service\impl\ExerciseDoneHistoryServiceImpl.java +D:\code\kaopingxitong\src\main\java\com\meishu\util\Localstorage.java +D:\code\kaopingxitong\src\main\java\com\meishu\util\LatexUtils.java +D:\code\kaopingxitong\src\main\java\com\meishu\service\BatchExamService.java +D:\code\kaopingxitong\src\main\java\com\meishu\vo\exam\ExamsVO.java +D:\code\kaopingxitong\src\main\java\com\meishu\service\impl\StudentServiceImpl.java +D:\code\kaopingxitong\src\main\java\com\meishu\util\BaseModel.java +D:\code\kaopingxitong\src\main\java\com\meishu\common\configure\VODConfig.java +D:\code\kaopingxitong\src\main\java\com\meishu\model\BatchStudentMappingDO.java +D:\code\kaopingxitong\src\main\java\com\meishu\common\constant\Code.java +D:\code\kaopingxitong\src\main\java\com\meishu\vo\student\StudentVO.java +D:\code\kaopingxitong\src\main\java\com\meishu\util\excel\ExcelUtil.java +D:\code\kaopingxitong\src\main\java\com\meishu\dto\paper\PaperStudentExerciseDTO.java +D:\code\kaopingxitong\src\main\java\com\meishu\mapper\ExerciseDictMapper.java +D:\code\kaopingxitong\src\main\java\com\meishu\service\impl\PaperDictServiceImpl.java +D:\code\kaopingxitong\src\main\java\com\meishu\dto\paper\SubmitDTO.java +D:\code\kaopingxitong\src\main\java\com\meishu\vo\student\LoginVO.java +D:\code\kaopingxitong\src\main\java\com\meishu\model\LabelDictDO.java +D:\code\kaopingxitong\src\main\java\com\meishu\common\configure\WebLogAspect.java +D:\code\kaopingxitong\src\main\java\com\meishu\dto\batch\AddBatchDTO.java +D:\code\kaopingxitong\src\main\java\com\meishu\util\tree\NumberTree.java +D:\code\kaopingxitong\src\main\java\com\meishu\mapper\ExerciseDoneHistoryMapper.java +D:\code\kaopingxitong\src\main\java\com\meishu\service\impl\AdministerServiceImpl.java +D:\code\kaopingxitong\src\main\java\com\meishu\common\exception\HttpException.java +D:\code\kaopingxitong\src\main\java\com\meishu\service\impl\PaperExercisesServiceImpl.java +D:\code\kaopingxitong\src\main\java\com\meishu\service\LabelDictService.java +D:\code\kaopingxitong\src\main\java\com\meishu\vo\batch\BatchesVO.java +D:\code\kaopingxitong\src\main\java\com\meishu\vo\exam\BatchExamStudentScoreVO.java +D:\code\kaopingxitong\src\main\java\com\meishu\util\SecretUtils.java +D:\code\kaopingxitong\src\main\java\com\meishu\util\excel\ExcelColumn.java +D:\code\kaopingxitong\src\main\java\com\meishu\util\ConstantUtils.java +D:\code\kaopingxitong\src\main\java\com\meishu\common\configure\SwaggerConfig.java +D:\code\kaopingxitong\src\main\java\com\meishu\model\BatchDictDO.java +D:\code\kaopingxitong\src\main\java\com\meishu\controller\BatchDictController.java +D:\code\kaopingxitong\src\main\java\com\meishu\service\impl\BatchExamServiceImpl.java +D:\code\kaopingxitong\src\main\java\com\meishu\model\ExerciseDictDO.java +D:\code\kaopingxitong\src\main\java\com\meishu\model\PaperDictDO.java +D:\code\kaopingxitong\src\main\java\com\meishu\service\BatchDictService.java +D:\code\kaopingxitong\src\main\java\com\meishu\common\interceptor\AuthenticationInterceptor.java +D:\code\kaopingxitong\src\main\java\com\meishu\controller\PaperDictController.java +D:\code\kaopingxitong\src\main\java\com\meishu\mapper\LabelDictMapper.java +D:\code\kaopingxitong\src\main\java\com\meishu\vo\exercise\UploadFileVO.java +D:\code\kaopingxitong\src\main\java\com\meishu\vo\paper\ExercisesVO.java +D:\code\kaopingxitong\src\main\java\com\meishu\dto\exercise\LabelExercisesDTO.java +D:\code\kaopingxitong\src\main\java\com\meishu\model\ExerciseDoneHistoryDO.java +D:\code\kaopingxitong\src\main\java\com\meishu\model\BatchExamDO.java +D:\code\kaopingxitong\src\main\java\com\meishu\controller\AdministerController.java +D:\code\kaopingxitong\src\main\java\com\meishu\mapper\AdministerMapper.java +D:\code\kaopingxitong\src\main\java\com\meishu\model\BatchExamStudentsDO.java +D:\code\kaopingxitong\src\main\java\com\meishu\controller\BatchStudentMappingController.java +D:\code\kaopingxitong\src\main\java\com\meishu\vo\exercise\ExercisesWithAnswerVO.java +D:\code\kaopingxitong\src\main\java\com\meishu\common\configure\RestTemplateConfig.java +D:\code\kaopingxitong\src\main\java\com\meishu\common\configure\AliyunSmsProperties.java +D:\code\kaopingxitong\src\main\java\com\meishu\common\configure\WechatConfig.java +D:\code\kaopingxitong\src\main\java\com\meishu\mapper\BatchStudentMappingMapper.java +D:\code\kaopingxitong\src\main\java\com\meishu\vo\paper\PapersVO.java +D:\code\kaopingxitong\src\main\java\com\meishu\util\tree\SerialNumber.java +D:\code\kaopingxitong\src\main\java\com\meishu\service\StudentService.java +D:\code\kaopingxitong\src\main\java\com\meishu\mapper\PaperExercisesMapper.java +D:\code\kaopingxitong\src\main\java\com\meishu\vo\student\BatchStudentsVO.java +D:\code\kaopingxitong\src\main\java\com\meishu\model\StudentDO.java +D:\code\kaopingxitong\src\main\java\com\meishu\MeishuApplication.java +D:\code\kaopingxitong\src\main\java\com\meishu\model\AdministerDO.java +D:\code\kaopingxitong\src\main\java\com\meishu\service\PaperDictService.java diff --git a/target/teachcms.jar b/target/teachcms.jar new file mode 100644 index 0000000..3f50f76 Binary files /dev/null and b/target/teachcms.jar differ diff --git a/target/teachcms.jar.original b/target/teachcms.jar.original new file mode 100644 index 0000000..b03fc38 Binary files /dev/null and b/target/teachcms.jar.original differ diff --git a/teachaicms.iml b/teachaicms.iml new file mode 100644 index 0000000..b85d532 --- /dev/null +++ b/teachaicms.iml @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file -- libgit2 0.25.0