diff --git a/.gitignore b/.gitignore
index a1c2a238a965f004ff76978ac1086aa6fe95caea..e7b373bc3258182298dc70eea4c43d8548011ec6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,23 +1,36 @@
-# Compiled class file
-*.class
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
-# Log file
-*.log
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
-# BlueJ files
-*.ctxt
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
-# Mobile Tools for Java (J2ME)
-.mtj.tmp/
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
-# Package Files #
-*.jar
-*.war
-*.nar
-*.ear
-*.zip
-*.tar.gz
-*.rar
-
-# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
-hs_err_pid*
+### VS Code ###
+.vscode/
+/.mvn/
+/mvnw
+/mvnw.cmd
diff --git a/.idea/.gitignore b/.idea/.gitignore
deleted file mode 100644
index 13566b81b018ad684f3a35fee301741b2734c8f4..0000000000000000000000000000000000000000
--- a/.idea/.gitignore
+++ /dev/null
@@ -1,8 +0,0 @@
-# Default ignored files
-/shelf/
-/workspace.xml
-# Editor-based HTTP Client requests
-/httpRequests/
-# Datasource local storage ignored files
-/dataSources/
-/dataSources.local.xml
diff --git a/.idea/TheLast.iml b/.idea/TheLast.iml
deleted file mode 100644
index 04977e54093f39c9a9c2e68bdb678a098d962f4c..0000000000000000000000000000000000000000
--- a/.idea/TheLast.iml
+++ /dev/null
@@ -1,143 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
deleted file mode 100644
index 2156b5c6fd57a49513d9efa9fefaf3bf1d0692e9..0000000000000000000000000000000000000000
--- a/.idea/compiler.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
deleted file mode 100644
index 04f81d2ff5a0c682dab0831b27f788c5b238848c..0000000000000000000000000000000000000000
--- a/.idea/encodings.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
deleted file mode 100644
index 6560a98983ec708cf9d8b5c5c3776d7bd39c475b..0000000000000000000000000000000000000000
--- a/.idea/inspectionProfiles/Project_Default.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
deleted file mode 100644
index 980588c7f2720e4a734966089f292ec94e53aec6..0000000000000000000000000000000000000000
--- a/.idea/jarRepositories.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/jpa-buddy.xml b/.idea/jpa-buddy.xml
deleted file mode 100644
index d08f40080caa9b3126ee8385c13832d2e63f4ad6..0000000000000000000000000000000000000000
--- a/.idea/jpa-buddy.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__antlr_antlr_2_7_7.xml b/.idea/libraries/Maven__antlr_antlr_2_7_7.xml
deleted file mode 100644
index 8acab31e15c7aad04a8998b33312c7d3d26b3d9f..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__antlr_antlr_2_7_7.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_11.xml b/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_11.xml
deleted file mode 100644
index 50a5105eeda089d6ff8beb86682f043022a3b1a2..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_11.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_11.xml b/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_11.xml
deleted file mode 100644
index dd069396236f04018ac30deffd0524ff9f941a82..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_11.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_auth0_java_jwt_3_18_3.xml b/.idea/libraries/Maven__com_auth0_java_jwt_3_18_3.xml
deleted file mode 100644
index 56bffa8c679b6837c234c2c5611bd00118da3918..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__com_auth0_java_jwt_3_18_3.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_baomidou_mybatis_plus_3_3_2.xml b/.idea/libraries/Maven__com_baomidou_mybatis_plus_3_3_2.xml
deleted file mode 100644
index 8d731d56eef3f89f559308d05fc1f47712c2ae8d..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__com_baomidou_mybatis_plus_3_3_2.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ 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
deleted file mode 100644
index da8888ec2df423f9d2e9cf8d1f4357f244708eea..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__com_baomidou_mybatis_plus_annotation_3_3_2.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_baomidou_mybatis_plus_boot_starter_3_3_2.xml b/.idea/libraries/Maven__com_baomidou_mybatis_plus_boot_starter_3_3_2.xml
deleted file mode 100644
index a64a389353e60bb887a0dac39e3086a16cab155c..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__com_baomidou_mybatis_plus_boot_starter_3_3_2.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ 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
deleted file mode 100644
index 938188c47e0a10f01f0948fbacb3a585d242f4a3..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__com_baomidou_mybatis_plus_core_3_3_2.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ 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
deleted file mode 100644
index 67307e46a36d8da268972a3427e7eb38f2940a1e..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__com_baomidou_mybatis_plus_extension_3_3_2.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ 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
deleted file mode 100644
index 8259f043bef67e2c026950a234190ef4a207488c..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__com_fasterxml_classmate_1_5_1.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_13_4.xml b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_13_4.xml
deleted file mode 100644
index 6551440c1d3dd6992e6af11e005f0c4490dba6ff..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_13_4.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_13_4.xml b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_13_4.xml
deleted file mode 100644
index c4a110e568b3f028d67d64717603d337b46cf2a3..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_13_4.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_13_4_2.xml b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_13_4_2.xml
deleted file mode 100644
index 97c90df7c9d3f83dd8b09ed1465a9fb089068a07..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_13_4_2.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_13_4.xml b/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_13_4.xml
deleted file mode 100644
index bbf1fb024943e2f924cb14dcd3f30e6d84d3f4e4..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_13_4.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_13_4.xml b/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_13_4.xml
deleted file mode 100644
index 9efd336d1bd58278599496b20a8341e6027c8b08..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_13_4.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_13_4.xml b/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_13_4.xml
deleted file mode 100644
index 71afb1674303dd16ed649940d0b028d528b0e1b7..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_13_4.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_github_jsqlparser_jsqlparser_4_2.xml b/.idea/libraries/Maven__com_github_jsqlparser_jsqlparser_4_2.xml
deleted file mode 100644
index 468d5d7382d15d307e238a9a885edeef017a707f..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__com_github_jsqlparser_jsqlparser_4_2.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_github_pagehelper_pagehelper_5_3_0.xml b/.idea/libraries/Maven__com_github_pagehelper_pagehelper_5_3_0.xml
deleted file mode 100644
index 1658c131a2187d292a47ab76259b3f39f85af077..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__com_github_pagehelper_pagehelper_5_3_0.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_github_pagehelper_pagehelper_spring_boot_autoconfigure_1_4_1.xml b/.idea/libraries/Maven__com_github_pagehelper_pagehelper_spring_boot_autoconfigure_1_4_1.xml
deleted file mode 100644
index 0bdf50c8acdd8212e955ea29468138c72dd72f35..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__com_github_pagehelper_pagehelper_spring_boot_autoconfigure_1_4_1.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_github_pagehelper_pagehelper_spring_boot_starter_1_4_1.xml b/.idea/libraries/Maven__com_github_pagehelper_pagehelper_spring_boot_starter_1_4_1.xml
deleted file mode 100644
index 73fd3d3fe3d32e7f28032540ba04b331dd37ed1e..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__com_github_pagehelper_pagehelper_spring_boot_starter_1_4_1.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_7_0.xml b/.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_7_0.xml
deleted file mode 100644
index 66160ea8333d0f5429e010d573b519f5d73938c1..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_7_0.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_sun_activation_jakarta_activation_1_2_2.xml b/.idea/libraries/Maven__com_sun_activation_jakarta_activation_1_2_2.xml
deleted file mode 100644
index 44182606ac5a3953a73c7c172e2ba8ede9ea8f24..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__com_sun_activation_jakarta_activation_1_2_2.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_sun_istack_istack_commons_runtime_3_0_12.xml b/.idea/libraries/Maven__com_sun_istack_istack_commons_runtime_3_0_12.xml
deleted file mode 100644
index e55370ecc15c0cf7f4d63700cdcb5bc408ce2184..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__com_sun_istack_istack_commons_runtime_3_0_12.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml b/.idea/libraries/Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml
deleted file mode 100644
index 0f8c9dc96d3015daba6560c06597816e3f9a737a..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_zaxxer_HikariCP_4_0_3.xml b/.idea/libraries/Maven__com_zaxxer_HikariCP_4_0_3.xml
deleted file mode 100644
index cb0173f3d34924799fb15c472210bd45d42e14ad..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__com_zaxxer_HikariCP_4_0_3.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__jakarta_activation_jakarta_activation_api_1_2_2.xml b/.idea/libraries/Maven__jakarta_activation_jakarta_activation_api_1_2_2.xml
deleted file mode 100644
index f1559a1b64c56ebb99bb72e07d444928284dd6dd..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__jakarta_activation_jakarta_activation_api_1_2_2.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ 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
deleted file mode 100644
index 95a3412ca4233a2ca95787c988c64e37851727f3..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__jakarta_persistence_jakarta_persistence_api_2_2_3.xml b/.idea/libraries/Maven__jakarta_persistence_jakarta_persistence_api_2_2_3.xml
deleted file mode 100644
index ab30bd530ef630cae4f6f87292ba19e10b2025dd..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__jakarta_persistence_jakarta_persistence_api_2_2_3.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__jakarta_transaction_jakarta_transaction_api_1_3_3.xml b/.idea/libraries/Maven__jakarta_transaction_jakarta_transaction_api_1_3_3.xml
deleted file mode 100644
index 67ce53fba8af272ae0bbeaaa307a4b64ab88df48..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__jakarta_transaction_jakarta_transaction_api_1_3_3.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__jakarta_xml_bind_jakarta_xml_bind_api_2_3_3.xml b/.idea/libraries/Maven__jakarta_xml_bind_jakarta_xml_bind_api_2_3_3.xml
deleted file mode 100644
index ed716ec670b4050b50f262a09736407dc05b8e22..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__jakarta_xml_bind_jakarta_xml_bind_api_2_3_3.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__mysql_mysql_connector_java_5_1_48.xml b/.idea/libraries/Maven__mysql_mysql_connector_java_5_1_48.xml
deleted file mode 100644
index e9f960fe773bb229179c7cae7c38baa24b03efd1..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__mysql_mysql_connector_java_5_1_48.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_12_18.xml b/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_12_18.xml
deleted file mode 100644
index 8d92fb5ac46d7619f9c00a94ffe99a7a1884ebd8..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_12_18.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__net_bytebuddy_byte_buddy_agent_1_12_18.xml b/.idea/libraries/Maven__net_bytebuddy_byte_buddy_agent_1_12_18.xml
deleted file mode 100644
index eeb71b0c959a37d88507d2e857d712260aa4d791..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__net_bytebuddy_byte_buddy_agent_1_12_18.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__net_minidev_accessors_smart_2_4_8.xml b/.idea/libraries/Maven__net_minidev_accessors_smart_2_4_8.xml
deleted file mode 100644
index 5eb819f219defeb6a889e4e65d38596c78292b3b..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__net_minidev_accessors_smart_2_4_8.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__net_minidev_json_smart_2_4_8.xml b/.idea/libraries/Maven__net_minidev_json_smart_2_4_8.xml
deleted file mode 100644
index e607d03c357d38a97c9a5e08698394faae080082..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__net_minidev_json_smart_2_4_8.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_12_0.xml b/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_12_0.xml
deleted file mode 100644
index a20101bb30ff805980924cfa339392d7c252ee23..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_12_0.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_17_2.xml b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_17_2.xml
deleted file mode 100644
index 2389bddb6f8eb57e0bba8dc594e7364959cf7c53..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_17_2.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_17_2.xml b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_17_2.xml
deleted file mode 100644
index 7e8da877c873494d3529fb816bf7079f8dce9133..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_17_2.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_68.xml b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_68.xml
deleted file mode 100644
index 341018cefb3f94695ec07dcb822a54760d7bc09f..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_68.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_68.xml b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_68.xml
deleted file mode 100644
index f95bc846772e0c0bebde9dc62ab5ec72a6bddd99..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_68.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_68.xml b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_68.xml
deleted file mode 100644
index 8bfeec99d22dfd296b0e29bebc3bc7cc208ad60c..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_68.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_2.xml b/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_2.xml
deleted file mode 100644
index 28a6645596da1b45b32e3acf5380ed57db802ce3..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_2.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_aspectj_aspectjweaver_1_9_7.xml b/.idea/libraries/Maven__org_aspectj_aspectjweaver_1_9_7.xml
deleted file mode 100644
index 9f5435b7f9444ac8d4a14c0a3f7e3fbabf84b703..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_aspectj_aspectjweaver_1_9_7.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_assertj_assertj_core_3_22_0.xml b/.idea/libraries/Maven__org_assertj_assertj_core_3_22_0.xml
deleted file mode 100644
index 381f3e4f8e1818f207cbe7cc31799e94a64df150..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_assertj_assertj_core_3_22_0.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_attoparser_attoparser_2_0_5_RELEASE.xml b/.idea/libraries/Maven__org_attoparser_attoparser_2_0_5_RELEASE.xml
deleted file mode 100644
index 33d1117d1e2434af920f07bd5ccc8d9dd2e8c977..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_attoparser_attoparser_2_0_5_RELEASE.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_glassfish_jaxb_jaxb_runtime_2_3_7.xml b/.idea/libraries/Maven__org_glassfish_jaxb_jaxb_runtime_2_3_7.xml
deleted file mode 100644
index 7ccacb794be1d7c6b3e34b281d8290ce75cab8d7..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_glassfish_jaxb_jaxb_runtime_2_3_7.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_glassfish_jaxb_txw2_2_3_7.xml b/.idea/libraries/Maven__org_glassfish_jaxb_txw2_2_3_7.xml
deleted file mode 100644
index 18792051cda64ab40be04a79164e00bdbd2753fb..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_glassfish_jaxb_txw2_2_3_7.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_hamcrest_hamcrest_2_2.xml b/.idea/libraries/Maven__org_hamcrest_hamcrest_2_2.xml
deleted file mode 100644
index 132891da40a729fb7f088d43e7956c104e1abe14..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_hamcrest_hamcrest_2_2.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_hibernate_common_hibernate_commons_annotations_5_1_2_Final.xml b/.idea/libraries/Maven__org_hibernate_common_hibernate_commons_annotations_5_1_2_Final.xml
deleted file mode 100644
index 70f0a20d86eb8a25a81a17d5d5f262c093cd51a7..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_hibernate_common_hibernate_commons_annotations_5_1_2_Final.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_hibernate_hibernate_core_5_6_12_Final.xml b/.idea/libraries/Maven__org_hibernate_hibernate_core_5_6_12_Final.xml
deleted file mode 100644
index 511fdfd0d86c60b84231a1117f324ddb235983ec..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_hibernate_hibernate_core_5_6_12_Final.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_jboss_jandex_2_4_2_Final.xml b/.idea/libraries/Maven__org_jboss_jandex_2_4_2_Final.xml
deleted file mode 100644
index e9a76ef7e8e8e180bab3fb61b33c98f0252211b9..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_jboss_jandex_2_4_2_Final.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_4_3_Final.xml b/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_4_3_Final.xml
deleted file mode 100644
index fec2b386fbabe09a04802b804a1e2fc5cefa7ff5..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_4_3_Final.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_8_2.xml b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_8_2.xml
deleted file mode 100644
index a9e7c0477e7e67c8fd17c2bbace0d8584029fa38..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_8_2.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_8_2.xml b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_8_2.xml
deleted file mode 100644
index 6b9550c6687ed1998847aed1fff6e0ca8511b4c1..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_8_2.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_8_2.xml b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_8_2.xml
deleted file mode 100644
index ee27735295235ff717b892203d78c2054f3cfdc5..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_8_2.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_params_5_8_2.xml b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_params_5_8_2.xml
deleted file mode 100644
index 0a68d7d669a2d80af2359b901865e3bfb88da03f..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_params_5_8_2.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_8_2.xml b/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_8_2.xml
deleted file mode 100644
index f4c8f0920ca7599e544e93706a9b60475fbe9994..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_8_2.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_8_2.xml b/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_8_2.xml
deleted file mode 100644
index 3950c466242195bbb031139a6ba4cea25a21f58e..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_8_2.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_mockito_mockito_core_4_5_1.xml b/.idea/libraries/Maven__org_mockito_mockito_core_4_5_1.xml
deleted file mode 100644
index 54707020a21e9eddbf724fa8daba265ba77c7dbb..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_mockito_mockito_core_4_5_1.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_mockito_mockito_junit_jupiter_4_5_1.xml b/.idea/libraries/Maven__org_mockito_mockito_junit_jupiter_4_5_1.xml
deleted file mode 100644
index 7903043ca0733fbae9b9c002facfd8e15b3396df..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_mockito_mockito_junit_jupiter_4_5_1.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_mybatis_mybatis_3_5_7.xml b/.idea/libraries/Maven__org_mybatis_mybatis_3_5_7.xml
deleted file mode 100644
index 84c4167518aa9de49e4294a111bc2da895ba074e..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_mybatis_mybatis_3_5_7.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_mybatis_mybatis_spring_2_0_6.xml b/.idea/libraries/Maven__org_mybatis_mybatis_spring_2_0_6.xml
deleted file mode 100644
index 7e284e633bcac99b32718adad467f8ecc443377d..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_mybatis_mybatis_spring_2_0_6.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_autoconfigure_2_2_0.xml b/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_autoconfigure_2_2_0.xml
deleted file mode 100644
index 1e9a675c21b971551934a28ec5cb6cdfb4711a96..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_autoconfigure_2_2_0.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_starter_2_2_0.xml b/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_starter_2_2_0.xml
deleted file mode 100644
index d8e72433e1c11ea7ea5ad19d26d437eede7f27d0..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_starter_2_2_0.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_objenesis_objenesis_3_2.xml b/.idea/libraries/Maven__org_objenesis_objenesis_3_2.xml
deleted file mode 100644
index 03f22c70cd7bcfddcfb55bec5e5d340be8c44602..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_objenesis_objenesis_3_2.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml b/.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml
deleted file mode 100644
index 00d7ffb7dff4182adc237f4058935f1bdd9cf1b3..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_ow2_asm_asm_9_1.xml b/.idea/libraries/Maven__org_ow2_asm_asm_9_1.xml
deleted file mode 100644
index 670aab4350020bac9905c463c1304e758f093477..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_ow2_asm_asm_9_1.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_projectlombok_lombok_1_18_24.xml b/.idea/libraries/Maven__org_projectlombok_lombok_1_18_24.xml
deleted file mode 100644
index c915e8eb9d942767dda20b05c6ee64595464c60b..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_projectlombok_lombok_1_18_24.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_skyscreamer_jsonassert_1_5_1.xml b/.idea/libraries/Maven__org_skyscreamer_jsonassert_1_5_1.xml
deleted file mode 100644
index 225a83e393ba729da2657cfc58444901245aea79..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_skyscreamer_jsonassert_1_5_1.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_36.xml b/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_36.xml
deleted file mode 100644
index 7dbd1c553eb3a2388c84692ed7400d257fc1082f..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_36.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_36.xml b/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_36.xml
deleted file mode 100644
index da774a17e2aeac757cba01a75b74b3f8bd574ca7..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_36.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_7_5.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_7_5.xml
deleted file mode 100644
index 14adf68195eb09f9b1f3711f925bfcacbd79f7dc..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_7_5.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_7_5.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_7_5.xml
deleted file mode 100644
index 5021c17b279c5bcf0d33a0b649c0935ae32259aa..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_7_5.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_7_5.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_7_5.xml
deleted file mode 100644
index c68bfa3f7c0bdbe926c73488337f3ec37c43cb60..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_7_5.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_aop_2_7_5.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_aop_2_7_5.xml
deleted file mode 100644
index 082abf340cd5725f8b0945d050c0dade640c2a60..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_aop_2_7_5.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_jpa_2_7_5.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_jpa_2_7_5.xml
deleted file mode 100644
index 3e5d540a655de4fbdc7f3c437f6fdafd18a56fd8..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_jpa_2_7_5.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_7_5.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_7_5.xml
deleted file mode 100644
index ff2bd8e4658918de2ad222c11a94303ff2f4dffd..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_7_5.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_7_5.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_7_5.xml
deleted file mode 100644
index 6ce10d5ad37a712025d63ac601fb2490fbfb9cc7..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_7_5.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_7_5.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_7_5.xml
deleted file mode 100644
index f8c2559bf7445d967c1a585fa785ee6ca4197b02..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_7_5.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_2_7_5.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_2_7_5.xml
deleted file mode 100644
index 99fcb34d743ce78dd849a073c50ba045293cbe50..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_2_7_5.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_thymeleaf_2_7_5.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_thymeleaf_2_7_5.xml
deleted file mode 100644
index 307b6f899c28711e744fc1c7ab29a2746be0c5e8..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_thymeleaf_2_7_5.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_7_5.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_7_5.xml
deleted file mode 100644
index b65f9853b18c8448e5b9b13a794ff4d3b69c7e76..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_7_5.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_7_5.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_7_5.xml
deleted file mode 100644
index 1b50463245fef4ca3cd229acce570e58590e76bf..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_7_5.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_7_5.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_7_5.xml
deleted file mode 100644
index 58ee8cfed4e4f6fe49e2506471cff764ce10e41f..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_7_5.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_7_5.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_7_5.xml
deleted file mode 100644
index cc78a2bc5ed65dfdfbd15c17e0173b9e72e93eb4..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_7_5.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_data_spring_data_commons_2_7_5.xml b/.idea/libraries/Maven__org_springframework_data_spring_data_commons_2_7_5.xml
deleted file mode 100644
index 7ce6a5a27610ab57232cd2dbcff9a853f24f975c..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_springframework_data_spring_data_commons_2_7_5.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_data_spring_data_jpa_2_7_5.xml b/.idea/libraries/Maven__org_springframework_data_spring_data_jpa_2_7_5.xml
deleted file mode 100644
index 7e6a67b5b2956a7574834356da1debc9725fb5ab..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_springframework_data_spring_data_jpa_2_7_5.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_spring_aop_5_3_23.xml b/.idea/libraries/Maven__org_springframework_spring_aop_5_3_23.xml
deleted file mode 100644
index 805f45fb1d1c546e4c753e7624759e17b90b50bf..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_springframework_spring_aop_5_3_23.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_spring_aspects_5_3_23.xml b/.idea/libraries/Maven__org_springframework_spring_aspects_5_3_23.xml
deleted file mode 100644
index f6e2d7c2f8054939fd6418f60b82b856a2957fae..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_springframework_spring_aspects_5_3_23.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_spring_beans_5_3_23.xml b/.idea/libraries/Maven__org_springframework_spring_beans_5_3_23.xml
deleted file mode 100644
index 5ac41a684a2365743d38b555e7e79afdead6e8a0..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_springframework_spring_beans_5_3_23.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_spring_context_5_3_23.xml b/.idea/libraries/Maven__org_springframework_spring_context_5_3_23.xml
deleted file mode 100644
index 009a6b47edb68f3ee13cd44e4dab55ecfe02aaee..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_springframework_spring_context_5_3_23.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_spring_core_5_3_23.xml b/.idea/libraries/Maven__org_springframework_spring_core_5_3_23.xml
deleted file mode 100644
index 92d683a8837376748512c698933fb06d881ecc54..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_springframework_spring_core_5_3_23.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_spring_expression_5_3_23.xml b/.idea/libraries/Maven__org_springframework_spring_expression_5_3_23.xml
deleted file mode 100644
index 482f098bcb89512369fa37687534246e8d28d1dd..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_springframework_spring_expression_5_3_23.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_spring_jcl_5_3_23.xml b/.idea/libraries/Maven__org_springframework_spring_jcl_5_3_23.xml
deleted file mode 100644
index 79aa7cde859afc726631b04815050e5cd7579478..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_springframework_spring_jcl_5_3_23.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_spring_jdbc_5_3_23.xml b/.idea/libraries/Maven__org_springframework_spring_jdbc_5_3_23.xml
deleted file mode 100644
index 6e1bb6a51822e78d096883d75a299e5585e299b2..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_springframework_spring_jdbc_5_3_23.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_spring_orm_5_3_23.xml b/.idea/libraries/Maven__org_springframework_spring_orm_5_3_23.xml
deleted file mode 100644
index 5647d065e2538ad4495b88f41193c78ae50ec2bb..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_springframework_spring_orm_5_3_23.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_spring_test_5_3_23.xml b/.idea/libraries/Maven__org_springframework_spring_test_5_3_23.xml
deleted file mode 100644
index 7622b73ecd51ab688c2e7bb777c677ad69796615..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_springframework_spring_test_5_3_23.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_spring_tx_5_3_23.xml b/.idea/libraries/Maven__org_springframework_spring_tx_5_3_23.xml
deleted file mode 100644
index 63973f5bf6b85481ea7eaf6e36eedaa9f3611ec4..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_springframework_spring_tx_5_3_23.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_spring_web_5_3_23.xml b/.idea/libraries/Maven__org_springframework_spring_web_5_3_23.xml
deleted file mode 100644
index e0d6de1c8553dfc0a4b5d228d73ab437748ba5ec..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_springframework_spring_web_5_3_23.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_spring_webmvc_5_3_23.xml b/.idea/libraries/Maven__org_springframework_spring_webmvc_5_3_23.xml
deleted file mode 100644
index bd975e144045f59f8ab304f5419b45beb946cc81..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_springframework_spring_webmvc_5_3_23.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_thymeleaf_extras_thymeleaf_extras_java8time_3_0_4_RELEASE.xml b/.idea/libraries/Maven__org_thymeleaf_extras_thymeleaf_extras_java8time_3_0_4_RELEASE.xml
deleted file mode 100644
index 56e667af77e3f8becda93b6eb1535b90546a31fb..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_thymeleaf_extras_thymeleaf_extras_java8time_3_0_4_RELEASE.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_thymeleaf_thymeleaf_3_0_15_RELEASE.xml b/.idea/libraries/Maven__org_thymeleaf_thymeleaf_3_0_15_RELEASE.xml
deleted file mode 100644
index c154baa3757781c23bf7e4c63298e30773656968..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_thymeleaf_thymeleaf_3_0_15_RELEASE.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_thymeleaf_thymeleaf_spring5_3_0_15_RELEASE.xml b/.idea/libraries/Maven__org_thymeleaf_thymeleaf_spring5_3_0_15_RELEASE.xml
deleted file mode 100644
index 6a7c6dcc9514cc3c502adeaf2d604597af318af3..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_thymeleaf_thymeleaf_spring5_3_0_15_RELEASE.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_unbescape_unbescape_1_1_6_RELEASE.xml b/.idea/libraries/Maven__org_unbescape_unbescape_1_1_6_RELEASE.xml
deleted file mode 100644
index fe8a5f80d7020435c0aaaf931bb32f77270bad36..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_unbescape_unbescape_1_1_6_RELEASE.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_xmlunit_xmlunit_core_2_9_0.xml b/.idea/libraries/Maven__org_xmlunit_xmlunit_core_2_9_0.xml
deleted file mode 100644
index fe91fd62e664fe5deda6c8ae141df44938e33341..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_xmlunit_xmlunit_core_2_9_0.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_yaml_snakeyaml_1_30.xml b/.idea/libraries/Maven__org_yaml_snakeyaml_1_30.xml
deleted file mode 100644
index dd1abb0f1f8bfb8ea8e5a8244fa7421079d0bb68..0000000000000000000000000000000000000000
--- a/.idea/libraries/Maven__org_yaml_snakeyaml_1_30.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
deleted file mode 100644
index e7b7c91baa1fe63329ae9e0458893323fed5e735..0000000000000000000000000000000000000000
--- a/.idea/misc.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
deleted file mode 100644
index b151dd86ecbbc6bc26e21b4b3c9a77e5afa2d1d3..0000000000000000000000000000000000000000
--- a/.idea/modules.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml
deleted file mode 100644
index e96534fb27b68192f27f985d3879e173ec77adb8..0000000000000000000000000000000000000000
--- a/.idea/uiDesigner.xml
+++ /dev/null
@@ -1,124 +0,0 @@
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
deleted file mode 100644
index 52041c3cc5cabcc93729b6ef5258ae6c11a5433f..0000000000000000000000000000000000000000
--- a/.idea/vcs.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties
deleted file mode 100644
index b74bf7fcd640440a49eb602158547670ef907772..0000000000000000000000000000000000000000
--- a/.mvn/wrapper/maven-wrapper.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip
-wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar
diff --git a/exam_vue/src/App.vue b/exam_vue/src/App.vue
index 55df315325bff60798291a7a13720ef273f6c3bb..cdd94556c1ded1fe1adc25f1e8de70c95bf3521c 100644
--- a/exam_vue/src/App.vue
+++ b/exam_vue/src/App.vue
@@ -1,28 +1,28 @@
-
-
-
-
+
+
+
+
diff --git a/exam_vue/src/assets/css/home.css b/exam_vue/src/assets/css/home.css
new file mode 100644
index 0000000000000000000000000000000000000000..fd93038f965728b89a0fe89a01e3602371cd40f0
--- /dev/null
+++ b/exam_vue/src/assets/css/home.css
@@ -0,0 +1,227 @@
+.home {
+ height: 100% - 30px;
+ margin-top: 40px;
+ overflow: visible;
+}
+.stat {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ height: 230px;
+}
+.stat-user {
+ position: relative;
+ width: 300px;
+ background-color: #f5f5f5;
+ -webkit-box-shadow: 2px 2px 5px #ccc;
+ box-shadow: 2px 2px 5px #ccc;
+}
+.stat-user__title {
+ height: 100px;
+ background-color: #459f75;
+ color: white;
+ font-size: 18px;
+ font-weight: bold;
+ text-align: center;
+ line-height: 70px;
+}
+.stat-user__detail {
+ padding-top: 50px;
+ color: #666;
+ font-size: 13px;
+ text-align: center;
+}
+.stat-user__portrait {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ width: 80px;
+ height: 80px;
+ border-radius: calc(80px / 2);
+ border: 3px solid white;
+ -webkit-box-shadow: 0 0 5px #ccc;
+ box-shadow: 0 0 5px #ccc;
+ margin-top: -55px;
+ margin-left: -40px;
+}
+.stat-info {
+ -webkit-box-flex: 1;
+ -ms-flex: 1;
+ flex: 1;
+ margin-left: 20px;
+}
+.el-row {
+ position: relative;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+.el-row + .el-row {
+ margin-top: 10px;
+}
+.stat-info__item {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ height: 110px;
+ -webkit-box-shadow: 2px 2px 5px #ccc;
+ box-shadow: 2px 2px 5px #ccc;
+ background-color: #f5f5f5;
+}
+.stat-info__icon {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-pack: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ width: 80px;
+ color: white;
+}
+.stat-info__icon [class*="el-icon"] {
+ font-size: 50px;
+}
+[class^="el-icon-"],
+[class*=" el-icon-"] {
+ font-family: "element-icons" !important;
+ speak: none;
+ font-style: normal;
+ font-weight: normal;
+ font-variant: normal;
+ text-transform: none;
+ line-height: 1;
+ vertical-align: baseline;
+ display: inline-block;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+.stat-info__detail {
+ -webkit-box-flex: 1;
+ -ms-flex: 1;
+ flex: 1;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-orient: vertical;
+ -webkit-box-direction: normal;
+ -ms-flex-direction: column;
+ flex-direction: column;
+ -webkit-box-pack: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+}
+.stat-info__total {
+ color: #0085d0;
+ font-size: 27px;
+ font-weight: bold;
+}
+.stat-info__title {
+ color: #666;
+ font-size: 12px;
+}
+.margin-t-20 {
+ margin-top: 20px;
+}
+.list {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ height: calc(100% - 250px);
+}
+[class*="el-col-"] {
+ float: left;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+.el-card.is-always-shadow {
+ -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+ box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+}
+.el-card {
+ border-radius: 4px;
+ border: 1px solid #ebeef5;
+ background-color: #fff;
+ overflow: hidden;
+ color: #303133;
+ -webkit-transition: 0.3s;
+ transition: 0.3s;
+}
+.el-card__header {
+ padding: 18px 20px;
+ border-bottom: 1px solid #ebeef5;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ text-align: left;
+}
+.el-card__header span {
+ color: #3b7459;
+}
+.el-card .el-icon-plus,
+.el-icon-more {
+ float: right;
+ /* color: #f56c6c; */
+ font-weight: bold;
+ cursor: pointer;
+}
+[class^="el-icon-"],
+[class*=" el-icon-"] {
+ font-family: "element-icons" !important;
+ speak: none;
+ font-style: normal;
+ font-weight: normal;
+ font-variant: normal;
+ text-transform: none;
+ line-height: 1;
+ vertical-align: baseline;
+ display: inline-block;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+.el-card__body {
+ padding: 20px;
+ text-align: left;
+}
+.el-card__body p {
+ border-bottom: 1px solid #e5e5e5;
+ color: #555;
+ font-size: 15px;
+ line-height: 30px;
+}
+.el-card__body p span {
+ margin-left: 5px;
+}
+.el-checkbox {
+ color: #606266;
+ font-weight: 500;
+ font-size: 14px;
+ position: relative;
+ cursor: pointer;
+ display: inline-block;
+ white-space: nowrap;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ padding: 0;
+ margin: 0;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+.el-checkbox__input {
+ white-space: nowrap;
+ cursor: pointer;
+ outline: none;
+ display: inline-block;
+ line-height: 1;
+ position: relative;
+ vertical-align: middle;
+}
+.latest-new-list__time {
+ color: #666;
+ font-size: 14px;
+}
\ No newline at end of file
diff --git a/exam_vue/src/assets/css/iconfont.css b/exam_vue/src/assets/css/iconfont.css
new file mode 100644
index 0000000000000000000000000000000000000000..bb7a22d04c1ab65220015af898817c31c4178e0d
--- /dev/null
+++ b/exam_vue/src/assets/css/iconfont.css
@@ -0,0 +1,7 @@
+.icon {
+ width: 10em;
+ height: 10em;
+ vertical-align : -0.15em;
+ fill:currentColor;
+ overflow: hidden;
+}
\ No newline at end of file
diff --git a/exam_vue/src/components/YuLayout.vue b/exam_vue/src/components/YuLayout.vue
new file mode 100644
index 0000000000000000000000000000000000000000..50eb2ff0bc156512dd79d9b9b249a93ad570fb09
--- /dev/null
+++ b/exam_vue/src/components/YuLayout.vue
@@ -0,0 +1,197 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exam_vue/src/components/account/1.html b/exam_vue/src/components/account/1.html
new file mode 100644
index 0000000000000000000000000000000000000000..ffa992362b9570a2e33dd9e7661c9394b15dd823
--- /dev/null
+++ b/exam_vue/src/components/account/1.html
@@ -0,0 +1,198 @@
+
+
+
j220801_胡江_Java_20221203110511
+
+
+
+
+
+
+
+
+
1、
+
(Java, 2.5
+ 分) 过滤器需要使用什么注解?
+
+
+
+
+
+
+
2、
+
(Java, 2.5
+ 分) 上传文件使用什么对象接收文件?consumer 使用什么类型?
+
+
+
+
+
+
+
3、
+
(Java, 2.5 分) Mybatis 动态
+ sql 语句中标签有 if、where、set、choose、trim 等以及遍历集合用的?
+
+
+
+
+
+
+
4、
+
(Java, 2.5 分) List 接口和 Set
+ 接口的顶层接口是?
+
+
+
+
+
+
+
5、
+
(Java, 2.5
+ 分) 用例与用例之间的关系有
+
+
+
+
+
+
+
6、
+
(Java, 2.5 分) Math.
+ round(-1. 5)
+
+
+
+
+
+
+
+
+
+
1、
+
(Java, 5 分) java
+ 的三大特性
+
+
+
+
+
+
+
2、
+
(Java, 5 分) 简述 euqals 和 ==
+ 的区别
+
+
+
+
+
+
+
3、
+
(Java, 5 分) 阐述 JavaBean
+ 规范。
+
+
+
+
+
+
+
4、
+
(Java, 5 分) IO
+ 流按流向可以分为?按类型分可分为?
+
+
+
+
+
+
+
5、
+
(Java, 5
+ 分) String、StringBuffer 与 StringBuilder 的区别?
+
+
+
+
+
+
+
6、
+
(Java, 5
+ 分) 什么是嵌入式服务器?我们为什么要使用嵌入式服务器?
+
+
+
+
+
+
+
7、
+
(Java, 5
+ 分) 什么是单元测试、集成测试、系统测试?
+
+
+
+
+
+
+
8、
+
(Java, 5 分) 简述 Spring Boot
+ pom 文件父子继承、start 按组聚集 jar 的运用?
+
+
+
+
+
+
+
9、
+
(Java, 5 分) 阐述 Java 中
+ final 关键字的作用。
+
+
+
+
+
+
+
10、
+
(Java, 5 分) 简述 System.out
+ 和 System.in 的区别?
+
+
+
+
+
+
+
11、
+
(Java, 5
+ 分) 测试人员在软件开发过程中的任务是什么
+
+
+
+
+
+
+
+
+
+
1、
+
(Java, 15
+ 分) 找出连续整数列表中缺失的数字
+
+
+
+
+
+
+
2、
+
(Java, 15
+ 分) 设计一套购物车接口;
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exam_vue/src/components/account/YuHistoryScore.vue b/exam_vue/src/components/account/YuHistoryScore.vue
new file mode 100644
index 0000000000000000000000000000000000000000..bfa374debf5505ac9534efe02f3603e889e3bc65
--- /dev/null
+++ b/exam_vue/src/components/account/YuHistoryScore.vue
@@ -0,0 +1,94 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exam_vue/src/components/account/YuStudent.vue b/exam_vue/src/components/account/YuStudent.vue
new file mode 100644
index 0000000000000000000000000000000000000000..0f55b08780f4af9d7411b29b38c369b1a37e691f
--- /dev/null
+++ b/exam_vue/src/components/account/YuStudent.vue
@@ -0,0 +1,153 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 男
+ 女
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 确认修改
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exam_vue/src/components/account/YuTakenExam.vue b/exam_vue/src/components/account/YuTakenExam.vue
new file mode 100644
index 0000000000000000000000000000000000000000..133d9785c851d2a08c7363fea15f1a30f914e9bf
--- /dev/null
+++ b/exam_vue/src/components/account/YuTakenExam.vue
@@ -0,0 +1,128 @@
+
+
+
+
+
+
+
+
+ 搜索
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查看试卷
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exam_vue/src/components/account/YuTakenExamView.vue b/exam_vue/src/components/account/YuTakenExamView.vue
new file mode 100644
index 0000000000000000000000000000000000000000..a994634c69cd816f0034faad072c9a24f6764155
--- /dev/null
+++ b/exam_vue/src/components/account/YuTakenExamView.vue
@@ -0,0 +1,419 @@
+
+
+
+
+
+
+
+
+
+
+
+
{{this.examName}}
+
+
+
+
+
+
+
+
+
+ 一、选择题
+ ( 分值 : {{this.selectScores}}分)
+
+
+
+
+
+
+ {{(index+1+".")}} ({{item.questionScore}}分)
+
+ {{item.questionsText}}
+
+
+
+
+
+
+ A: {{item.questionsAnswerOne}}
+ B: {{item.questionsAnswerTwo}}
+ C: {{item.questionsAnswerThree}}
+ D: {{item.questionsAnswerFour}}
+
+
+
+ 参考答案: {{item.questionsAnswerRight}}
+
+
+ 得分:{{item.answerScore}}
+
+ 得分:{{item.answerScore}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 二、填空题
+ ( 分值 : {{this.blanksScores}}分)
+
+
+
+
+
+
+ {{(index+1+".")}} ({{item.questionScore}}分)
+
+ {{item.questionsText}}
+
+
+
+
+
+
+
+
+
+
+ 参考答案: {{item.questionsAnswerRight}}
+
+
+ 得分:{{item.answerScore}}
+
+ 得分:{{item.answerScore}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 三、判断题
+ ( 分值 : {{this.judgScores}}分)
+
+
+
+
+
+
+ {{(index+1+".")}} ({{item.questionScore}}分)
+
+ {{item.questionsText}}
+
+
+
+
+
+
+
+
+
+
+ 参考答案: {{item.questionsAnswerRight}}
+
+
+ 得分:{{item.answerScore}}
+
+ 得分:{{item.answerScore}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 四、主观题
+ ( 分值 : {{this.subjectiveScores}}分)
+
+
+
+
+
+
+ {{(index+1+".")}} ({{item.questionScore}}分)
+
+ {{item.questionsText}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
参考答案:
+
+
+
+
+
得分:{{item.answerScore}}
+
+
+
+
+
+
+
+
+ 考试总得分:{{this.paperStuScore}}
+ 选择题得分:{{this.selectStuScores}}
+ 判断题得分:{{this.judgeStuScores}}
+ 填空题得分:{{this.blanksStuScores}}
+ 主观题得分:{{this.subjectiveStuScores}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exam_vue/src/components/account/YuUnTakenExam.vue b/exam_vue/src/components/account/YuUnTakenExam.vue
new file mode 100644
index 0000000000000000000000000000000000000000..4aee4dcb15293a78cc9c99ec81e1af70cac49c55
--- /dev/null
+++ b/exam_vue/src/components/account/YuUnTakenExam.vue
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+ 搜索
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 进入考试
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exam_vue/src/components/account/YuUnTakenExamView.vue b/exam_vue/src/components/account/YuUnTakenExamView.vue
new file mode 100644
index 0000000000000000000000000000000000000000..5a9c1722e04152a147a050a5818ad17d8fe69e43
--- /dev/null
+++ b/exam_vue/src/components/account/YuUnTakenExamView.vue
@@ -0,0 +1,447 @@
+
+
+
+
+
+
+
+
+
+
+
+
{{this.examName}}
+
+
+
+
+
+
+
+
+
+ 一、选择题
+ ( 分值 : {{this.selectScores}}分)
+
+
+
+
+
+
+ {{(index+1+".")}} ({{item.questionScore}}分)
+
+ {{item.questionsText}}
+
+
+
+
+
+
+ A: {{item.questionsAnswerOne}}
+ B: {{item.questionsAnswerTwo}}
+ C: {{item.questionsAnswerThree}}
+ D: {{item.questionsAnswerFour}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 二、填空题
+ ( 分值 : {{this.blanksScores}}分)
+
+
+
+
+
+
+ {{(index+1+".")}} ({{item.questionScore}}分)
+
+ {{item.questionsText}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 三、判断题
+ ( 分值 : {{this.judgeScores}}分)
+
+
+
+
+
+
+ {{(index+1+".")}} ({{item.questionScore}}分)
+
+ {{item.questionsText}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 四、主观题
+ ( 分值 : {{this.subjectiveScores}}分)
+
+
+
+
+
+
+ {{(index+1+".")}} ({{item.questionScore}}分)
+
+ {{item.questionsText}}
+
+
+
+
+
+
+
+
+ 点击上传
+ 只能上传jpg/png文件,且不超过500kb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 立即交卷
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exam_vue/src/components/common/Dashboard.vue b/exam_vue/src/components/common/Dashboard.vue
new file mode 100644
index 0000000000000000000000000000000000000000..ccb23b1e9642dae8d71199983898906d2ac1d5e9
--- /dev/null
+++ b/exam_vue/src/components/common/Dashboard.vue
@@ -0,0 +1,17 @@
+
+
+
1111
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exam_vue/src/components/fragments/YuBreadCrumb.vue b/exam_vue/src/components/fragments/YuBreadCrumb.vue
new file mode 100644
index 0000000000000000000000000000000000000000..101049c4dafa3e9594d2e1125023da36be5356a8
--- /dev/null
+++ b/exam_vue/src/components/fragments/YuBreadCrumb.vue
@@ -0,0 +1,50 @@
+
+
+
+ {{ item.name }}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exam_vue/src/components/fragments/YuFooter.vue b/exam_vue/src/components/fragments/YuFooter.vue
new file mode 100644
index 0000000000000000000000000000000000000000..5f065cf4429589adb59650646ddeb626c0ac1761
--- /dev/null
+++ b/exam_vue/src/components/fragments/YuFooter.vue
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exam_vue/src/components/fragments/YuHeader.vue b/exam_vue/src/components/fragments/YuHeader.vue
new file mode 100644
index 0000000000000000000000000000000000000000..bf9c1bbaba450a0b26c41fd2b6bfc61eba8de5c1
--- /dev/null
+++ b/exam_vue/src/components/fragments/YuHeader.vue
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exam_vue/src/components/fragments/YuPagination.vue b/exam_vue/src/components/fragments/YuPagination.vue
new file mode 100644
index 0000000000000000000000000000000000000000..96680e876f72b00bad8162ef4508d919b7c1440f
--- /dev/null
+++ b/exam_vue/src/components/fragments/YuPagination.vue
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exam_vue/src/components/fragments/YuSideBar.vue b/exam_vue/src/components/fragments/YuSideBar.vue
new file mode 100644
index 0000000000000000000000000000000000000000..df85e20c6f6379fad3462ad45d2679538efb0751
--- /dev/null
+++ b/exam_vue/src/components/fragments/YuSideBar.vue
@@ -0,0 +1,100 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.title }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exam_vue/src/components/HelloWorld.vue b/exam_vue/src/components/test/HelloWorld.vue
similarity index 100%
rename from exam_vue/src/components/HelloWorld.vue
rename to exam_vue/src/components/test/HelloWorld.vue
diff --git a/exam_vue/src/main.js b/exam_vue/src/main.js
index 63eb05f711c8cb5cda45128882fa69c351f105fb..d7fb2a36f3c0fba60556aaf581b46b00dc89bd93 100644
--- a/exam_vue/src/main.js
+++ b/exam_vue/src/main.js
@@ -1,8 +1,69 @@
import Vue from 'vue'
import App from './App.vue'
-Vue.config.productionTip = false
+
+/**
+ * 引入第三方组件
+ */
+// 引入 vue-router 及路由配置
+import Router from "vue-router";
+import router from "./router";
+Vue.use(Router);
+// Echart 组件
+import * as echarts from "echarts";
+Vue.prototype.$echarts = echarts
+// 引入 ElementUI 和主题样式
+import ElementUI from "element-ui";
+import "element-ui/lib/theme-chalk/index.css";
+Vue.use(ElementUI);
+// 引入 Jquery
+import $ from "jquery";
+
+/**
+ * 引入自定义组件,注册 Vue 全局变量
+ * 注册方式:Vue.prototype.$appName = 'My App'
+ * 调用 App:this.$appName
+ */
+// Bus,用于组件间传递消息
+import Bus from "@/utils/bus.js";
+//在下面这样配置之后,在其他地方就可以直接通过this.$+组件名称的方式直接引用
+Vue.prototype.$Bus = Bus;
+// Cookie 组件
+import * as Cookie from "@/utils/cookie.js";
+Vue.prototype.$Cookie = Cookie;
+// Storage 组件
+import Storage from "@/utils/storage.js";
+Vue.prototype.$Storage = Storage;
+// Vuex Store 组件
+import VuexStore from "@/utils/vuexStore.js";
+Vue.prototype.$VuexStore = VuexStore;
+// Axios Request 组件
+import * as Request from "@/utils/request";
+Vue.prototype.$Request = Request;
+// 注册过滤器组件
+import * as Filters from "@/utils/filter.js";
+Object.keys(Filters).forEach((key) => {
+ Vue.filter(key, Filters[key]);
+});
+// Common 组件
+import * as Common from "@/utils/common.js";
+Vue.prototype.$Common = Common;
+// TestData 组件
+import * as TestData from "@/utils/testData.js";
+Vue.prototype.$TestData = TestData;
+
+
+
+/**
+ * 引入 css
+ */
+// 引入图标库样式
+import "font-awesome/css/font-awesome.min.css";
+
+
+Vue.config.productionTip = false;
new Vue({
+ router,
render: h => h(App),
}).$mount('#app')
diff --git a/exam_vue/src/router/index.js b/exam_vue/src/router/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..fbb6e78f95bec4f0f1bda66f3b7be981816cdfd4
--- /dev/null
+++ b/exam_vue/src/router/index.js
@@ -0,0 +1,88 @@
+import Vue from "vue";
+import Router from "vue-router";
+
+
+Vue.use(Router);
+
+export default new Router({
+ mode: "history", // history 模式去除地址栏 # 号
+ routes: [
+ // 一级路由,渲染到 App.vue 中的
+ {
+ // http://127.0.0.1:8080/#/login
+ path: "/Examing",
+ name: "examName",
+ component: () => import("@/components/account/YuTakenExamView.vue"),
+ },
+ // 一级路由,渲染到 App.vue 中的
+ {
+ // http://127.0.0.1:8080/#/login
+ path: "/UnTakenExaming",
+ name: "unTakenExam",
+ component: () => import("@/components/account/YuUnTakenExamView.vue"),
+ },
+ // 二级路由
+ {
+ // http://127.0.0.1:8080/#/
+ path: "/",
+ name: "",
+ // component: Layout,
+ //这里也可以模仿ES6的写法
+ component: () => import("@/components/YuLayout.vue"),
+ // 重定向
+ redirect: "/index",
+ // 二级路由,渲染到该组件中的
+ children: [
+ {
+ // http://127.0.0.1:8080/#/index
+ path: "/index",
+ name: "系统首页",
+ // ES6 箭头函数写法
+ component: () => import("@/components/common/Dashboard.vue"),
+ meta: { requireAuth: true },
+ },
+ ],
+ },
+ //账户模块
+ {
+ // http://127.0.0.1:8080/#/
+ path: "/student",
+ name: "学生模块",
+ component: () => import("@/components/YuLayout.vue"),
+ // 重定向
+ redirect: "/center",
+ // 二级路由,渲染到该组件中的
+ children: [
+ {
+ // http://127.0.0.1:8080/#/account/profile
+ path: "/student/center",
+ name: "个人主页",
+ // ES6 箭头函数写法
+ component: () => import("@/components/account/YuStudent.vue"),
+ },
+ {
+ // http://127.0.0.1:8080/#/account/profile
+ path: "/student/unTakenExam",
+ name: "待考考试",
+ // ES6 箭头函数写法
+ component: () => import("@/components/account/YuUnTakenExam.vue"),
+ },
+ {
+ // http://127.0.0.1:8080/#/account/profile
+ path: "/student/takenExam",
+ name: "已考考试",
+ // ES6 箭头函数写法
+ component: () => import("@/components/account/YuTakenExam.vue"),
+ },
+ {
+ // http://127.0.0.1:8080/#/account/profile
+ path: "/student/historyScore",
+ name: "历史成绩",
+ // ES6 箭头函数写法
+ component: () => import("@/components/account/YuHistoryScore.vue"),
+ },
+ ],
+ },
+
+ ],
+});
\ No newline at end of file
diff --git a/exam_vue/src/utils/request.js b/exam_vue/src/utils/request.js
index 249e6fb32f563490852c1c6a0c0e1049887ba946..969eb193c306ce728ba4ea16c3c28291cee30aac 100644
--- a/exam_vue/src/utils/request.js
+++ b/exam_vue/src/utils/request.js
@@ -20,7 +20,7 @@ export const TOKEN_OBJECT_KEY = "TokenObject";
// 定义全局变量,本机只能本地测试,生产环境不可用
// export const domain = "http://127.0.0.1:8888";
-export const domain = "http://127.0.0.1:8081";
+export const domain = "http://127.0.0.1:8080";
// 请求拦截器
axios.interceptors.request.use(
diff --git a/exam_vue/src/utils/storage.js b/exam_vue/src/utils/storage.js
index cfb0d8961e8ae81f7fa32a1c7a85d4d84e2d5021..53fc3e745fc64adda41b8aba2819cab14973f2bf 100644
--- a/exam_vue/src/utils/storage.js
+++ b/exam_vue/src/utils/storage.js
@@ -26,6 +26,8 @@ export default {
keysForLs() {
return ls.keys();
},
+
+
// sessionStorage 操作
getItemForSs(key) {
try {
diff --git a/exam_vue/src/utils/testData.js b/exam_vue/src/utils/testData.js
new file mode 100644
index 0000000000000000000000000000000000000000..ed1ac87396916ceb64e315218f8dacb42b9b5dd5
--- /dev/null
+++ b/exam_vue/src/utils/testData.js
@@ -0,0 +1,189 @@
+// LocalStorage keys
+export const TOKEN_OBJECT_KEY = "TokenObject";
+export const TOKEN_KEY = "Token";
+// 站点相关信息
+export const webSiteInfo = {
+ copyright: "Copyright © 2022 Vue Admin. All rights reserved.",
+ service: "IT云教学服务",
+ serviceUrl: "/education/index",
+ icp: "蜀ICP备 *****-1",
+ icpUrl: "https://beian.miit.gov.cn/",
+ prn: "蜀公网安备 **********号",
+ prnUrl: "http://www.beian.gov.cn/portal/index",
+};
+// 用户信息
+export const user = {
+ userId: 1,
+ userNum:1,
+ userName: "张三",
+ userBirthday: "2022-12-07",
+ userRealName:"张三三",
+ userPassword:"10086",
+ userTel:"10086",
+ userAge:18,
+ className:"高一一班",
+ userGender:"男",
+ userImage:"../img/default_big.jpg",
+};
+// 头部导航
+export const navList = [
+ { navUrl: "/education/index", target: "", navTitle: "首页" },
+ { navUrl: "/education/courses", target: "", navTitle: "课程中心" },
+ { navUrl: "/education/notes", target: "", navTitle: "笔记列表" },
+ { navUrl: "/education/papers", target: "", navTitle: "在线考试" },
+];
+// SideBar 测试数据
+export const navigationData = [
+ {
+ title: "系统首页",
+ path: "/index",
+ icon: "el-icon-setting",
+ },
+ {
+ title: "学生模块",
+ path: "/student",
+ icon: "el-icon-user-solid",
+ subItems: [
+ {
+ title: "个人中心",
+ path: "/student/center",
+ },
+ {
+ title: "待考考试",
+ path: "/student/unTakenExam",
+ },
+ {
+ title: "已考考试",
+ path: "/student/takenExam",
+ },
+ {
+ title: "历史成绩",
+ path: "/student/historyScore",
+ },
+ ],
+ },
+];
+// 主页面板数据
+export const starData = [
+ [
+ {
+ icon: "el-icon-service",
+ title: "公司总员工数",
+ total: 198397,
+ bgColor: "#ebcc6f",
+ },
+ {
+ icon: "el-icon-location-outline",
+ title: "客户分布区域",
+ total: 19,
+ bgColor: "#3acaa9",
+ },
+ {
+ icon: "el-icon-star-off",
+ title: "收货好评",
+ total: 190857,
+ bgColor: "#67c4ed",
+ },
+ ],
+ [
+ {
+ icon: "el-icon-edit-outline",
+ title: "历史订单数",
+ total: 9397,
+ bgColor: "#af84cb",
+ },
+ {
+ icon: "el-icon-share",
+ title: "产品总转发数量",
+ total: 9097,
+ bgColor: "#67c4ed",
+ },
+ {
+ icon: "el-icon-goods",
+ title: "产品总数",
+ total: 397,
+ bgColor: "#ebcc6f",
+ },
+ ],
+];
+// 待做事列表、新闻列表
+export const todoList = [],
+ latestNewList = [];
+for (let i = 0; i < 5; i++) {
+ todoList.push({
+ title: `待办事项 ` + i,
+ isChecked: false,
+ });
+ latestNewList.push({
+ time: new Date(new Date().getTime() + i * 24 * 3600 * 1000).Format("yyyy-MM-dd"),
+ title: `今日最新新闻` + i,
+ });
+}
+
+// 用户列表测试数据
+export const usersData = [
+ {
+ id: 1,
+ userName: "hujiang1",
+ email: "hujiang1@163.com",
+ password: "51c017d79ab2eea8548f22543409cd05",
+ createDate: "2021-03-03 13:35:48",
+ },
+ {
+ id: 2,
+ userName: "hujiang2",
+ email: "hujiang2@163.com",
+ password: "51c017d79ab2eea8548f22543409cd05",
+ createDate: "2021-03-03 13:35:48",
+ },
+ {
+ id: 3,
+ userName: "hujiang3",
+ email: "hujiang3@163.com",
+ password: "51c017d79ab2eea8548f22543409cd05",
+ createDate: "2021-03-03 13:35:48",
+ },
+ {
+ id: 4,
+ userName: "hujiang4",
+ email: "hujiang4@163.com",
+ password: "51c017d79ab2eea8548f22543409cd05",
+ createDate: "2021-03-03 13:35:48",
+ },
+ {
+ id: 5,
+ userName: "hujiang5",
+ email: "hujiang5@163.com",
+ password: "51c017d79ab2eea8548f22543409cd05",
+ createDate: "2021-03-03 13:35:48",
+ },
+];
+export const examData = [
+ {
+ examName:"第一次考试",
+ examCreateTime:"2022-12-3",
+ subjectName:"语文",
+ examStartTime:"2022-12-3 08:00:00",
+ examEndTime:"2022-12-3 10:00:00",
+ paperName:"第一次考试",
+
+ },
+ {
+ examName:"第二次考试",
+ examCreateTime:"2022-12-3",
+ subjectName:"数学",
+ examStartTime:"2022-12-4 08:00:00",
+ examEndTime:"2022-12-4 10:00:00",
+ paperName:"第二次考试",
+
+ },
+ {
+ examName:"第三次考试",
+ examCreateTime:"2022-12-5",
+ subjectName:"英语",
+ examStartTime:"2022-12-5 08:00:00",
+ examEndTime:"2022-12-5 10:00:00",
+ paperName:"第三次考试",
+
+ }
+];
\ No newline at end of file
diff --git a/exam_vue/vue.config.js b/exam_vue/vue.config.js
index f3a32b985ce5c5f97b133e5561118a73b184e75a..f56086936416cd8775621d2b062391aea7ecf730 100644
--- a/exam_vue/vue.config.js
+++ b/exam_vue/vue.config.js
@@ -1,6 +1,9 @@
const { defineConfig } = require('@vue/cli-service');
const webpack = require("webpack");
module.exports = defineConfig({
+ devServer: {
+ port: 8081 // 此处修改你想要的端口号
+ },
transpileDependencies: true,
// 关闭语法检查
lintOnSave: false,
diff --git a/src/main/java/com/hqyj/vueproject/VueProjectApplication.java b/src/main/java/com/hqyj/vueproject/VueProjectApplication.java
index 758a6152c41fa9c12198fcb0b622f1f107bb62cc..d94fd8e4e48ed3da1264bb8069a2a63b96ae9f6a 100644
--- a/src/main/java/com/hqyj/vueproject/VueProjectApplication.java
+++ b/src/main/java/com/hqyj/vueproject/VueProjectApplication.java
@@ -1,5 +1,6 @@
package com.hqyj.vueproject;
+import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -7,6 +8,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
* @author YuDrag
*/
@SpringBootApplication
+@MapperScan("com.hqyj.vueproject.students.mapper")
public class VueProjectApplication {
public static void main(String[] args) {
diff --git a/src/main/java/com/hqyj/vueproject/config/MyConfig.java b/src/main/java/com/hqyj/vueproject/config/MyConfig.java
new file mode 100644
index 0000000000000000000000000000000000000000..4c7469ea25461e8f749e1b7746ed9d5bb5497a4f
--- /dev/null
+++ b/src/main/java/com/hqyj/vueproject/config/MyConfig.java
@@ -0,0 +1,17 @@
+package com.hqyj.vueproject.config;
+
+import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class MyConfig {
+ /**
+ * mp分页插件
+ * @return {@link PaginationInterceptor }
+ */
+ @Bean
+ public PaginationInterceptor paginationInterceptor(){
+ return new PaginationInterceptor();
+ }
+}
diff --git a/src/main/java/com/hqyj/vueproject/config/MyObjectHandler.java b/src/main/java/com/hqyj/vueproject/config/MyObjectHandler.java
new file mode 100644
index 0000000000000000000000000000000000000000..de5748674f3e15e4a1a0d8622cf0aa618284c44f
--- /dev/null
+++ b/src/main/java/com/hqyj/vueproject/config/MyObjectHandler.java
@@ -0,0 +1,51 @@
+package com.hqyj.vueproject.config;
+
+import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
+import org.apache.ibatis.reflection.MetaObject;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+
+/**
+ * @author YuDrag
+ * @version 1.0.0
+ * @Date 2022/11/30
+ * @Description:这个就是专门用来给我们配置mybatis-plus的自动填充策略,就是在新增和修改的时候自动填充时间
+ * @ClassName
+ */
+@Component
+public class MyObjectHandler implements MetaObjectHandler {
+
+ /**
+ * @param metaObject 元对象
+ * fill = FieldFill.INSERT
+ */
+ @Override
+ public void insertFill(MetaObject metaObject) {
+
+// 创建一个Date对象
+ Date date = new Date();
+// 第一个参数就是我们java实体类中的时间属性
+// 设置creatTime时间
+ setFieldValByName("creatTime",date,metaObject);
+// 设置updateTime时间
+ setFieldValByName("updateTime",date,metaObject);
+ setFieldValByName("examCreateTime",date,metaObject);
+ setFieldValByName("paperCreateTime",date,metaObject);
+ }
+
+
+ /**
+ * @param metaObject 元对象
+ * fill = FieldFill.INSERT_UPDATE
+ */
+ @Override
+ public void updateFill(MetaObject metaObject) {
+ // 创建一个Date对象
+ Date date = new Date();
+// 第一个参数就是我们java实体类中的时间属性
+// 设置updateTime时间
+// 注意:调用update方法的时候,实体对象不能为null,否则自动填充将不会生效
+ setFieldValByName("updateTime",date,metaObject);
+ }
+}
diff --git a/src/main/java/com/hqyj/vueproject/config/MyUpload.java b/src/main/java/com/hqyj/vueproject/config/MyUpload.java
new file mode 100644
index 0000000000000000000000000000000000000000..9974e523ffefe221819e8e457e13187bb2b1f4f1
--- /dev/null
+++ b/src/main/java/com/hqyj/vueproject/config/MyUpload.java
@@ -0,0 +1,31 @@
+package com.hqyj.vueproject.config;
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+/**
+ * @author YuDrag
+ * @version 1.0.0
+ * @Date 2022/12/02
+ * @Description:文件上传配置映射
+ * @ClassName
+ */
+@Configuration
+public class MyUpload implements WebMvcConfigurer {
+
+
+// 配置路径映射
+// 表示访问地址如果是/images/** 就去D:/JAVA/img去找对应的文件
+// 也就是说这里就相当于我如果请求的地址是images/下的任何东西
+
+ @Override
+ public void addResourceHandlers(ResourceHandlerRegistry registry) {
+// 这里的配置其实就是将这个网站对图片的请求,从static/images/**
+// 中任意的文件都转成D:/JAVA/img/下的文件路径,并且去查找对应的文件即可
+ registry.addResourceHandler("static/images/**")
+ .addResourceLocations("file:D:/JAVA/img/");
+
+ }
+
+}
diff --git a/src/main/java/com/hqyj/vueproject/config/WebMvcConfig.java b/src/main/java/com/hqyj/vueproject/config/WebMvcConfig.java
index 7a68fc8a389b9d842074be984b87a551125b13e9..cec8392739edbca71db661e4bc217a05081bad8e 100644
--- a/src/main/java/com/hqyj/vueproject/config/WebMvcConfig.java
+++ b/src/main/java/com/hqyj/vueproject/config/WebMvcConfig.java
@@ -1,12 +1,9 @@
package com.hqyj.vueproject.config;
-import com.hqyj.vueproject.interceptor.JwtInterceptor;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration;
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.WebMvcConfigurer;
/**
@@ -20,17 +17,7 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@AutoConfigureAfter({WebMvcAutoConfiguration.class})
public class WebMvcConfig implements WebMvcConfigurer {
- @Autowired
- private JwtInterceptor jwtInterceptor;
- /**
- * 注入JWTInterceptor,需要重写这个方法
- */
- @Override
- public void addInterceptors(InterceptorRegistry registry) {
- registry.addInterceptor(jwtInterceptor).addPathPatterns("/**");
- WebMvcConfigurer.super.addInterceptors(registry);
- }
@Override
public void addCorsMappings(CorsRegistry registry) {
diff --git a/src/main/java/com/hqyj/vueproject/interceptor/JwtInterceptor.java b/src/main/java/com/hqyj/vueproject/interceptor/JwtInterceptor.java
deleted file mode 100644
index 2fb35ca70e9a46873af92d385c853eaae621e65e..0000000000000000000000000000000000000000
--- a/src/main/java/com/hqyj/vueproject/interceptor/JwtInterceptor.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package com.hqyj.vueproject.interceptor;
-
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import com.hqyj.vueproject.utils.JwtUtil;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.stereotype.Component;
-import org.springframework.web.method.HandlerMethod;
-import org.springframework.web.servlet.HandlerInterceptor;
-import org.springframework.web.servlet.ModelAndView;
-
-import com.auth0.jwt.interfaces.DecodedJWT;
-
-/**
- * @version 1.0
- * @Author YuDrag
- * @Date 2022/11/26 17:06
- * @Description:
- */
-@Component
-public class JwtInterceptor implements HandlerInterceptor {
-
- public final static List WHITE_URLS = new ArrayList<>();
- static {
-// 谁做登录自己进行添加
- }
-
- @Override
- public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
- throws Exception {
- // 如果请求不是映射到方法,直接跳过
- if (!(handler instanceof HandlerMethod)) {
- return true;
- }
-
- // 判断是否需要 Token 验证
- String path = request.getServletPath();
- if (WHITE_URLS.stream().filter(item -> path.contains(item)).findFirst().isPresent()) {
- String token = request.getHeader("Token");
- if (StringUtils.isBlank(token)) {
- throw new Exception("No JWT Token.");
- }
-
- String audience = JwtUtil.getAudience(token);
- DecodedJWT decodedJWT = JwtUtil.verifyToken(token, audience);
- if (decodedJWT == null) {
- throw new Exception("JWT verify failed.");
- }
- }
-
- return HandlerInterceptor.super.preHandle(request, response, handler);
- }
-
- @Override
- public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
- ModelAndView modelAndView) throws Exception {
- HandlerInterceptor.super.postHandle(request, response, handler, modelAndView);
- }
-
- @Override
- public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
- throws Exception {
- HandlerInterceptor.super.afterCompletion(request, response, handler, ex);
- }
-
-}
diff --git a/src/main/java/com/hqyj/vueproject/pojo/Answer.java b/src/main/java/com/hqyj/vueproject/pojo/Answer.java
index ad95d41702c498787261b2b338f1f80ca5c196e1..3f0f24dfbd31463715a66cd8edac063a6bd1ed90 100644
--- a/src/main/java/com/hqyj/vueproject/pojo/Answer.java
+++ b/src/main/java/com/hqyj/vueproject/pojo/Answer.java
@@ -1,6 +1,10 @@
package com.hqyj.vueproject.pojo;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import org.springframework.beans.factory.annotation.Autowired;
+
/**
* @author YuDrag
* @version 1.0.0
@@ -8,42 +12,35 @@ package com.hqyj.vueproject.pojo;
* @Description
* @ClassName:答案实体类
*/
+@TableName("answer")
public class Answer {
- private Integer answerPaperId;
+ @TableField("answer_paper_name")
+ private String answerPaperName;
+ @TableField("answer_question_id")
private Integer answerQuestionId;
- private String answerStuName;
+ @TableField("answer_stu_num")
+ private String answerStuNum;
+ @TableField("answer_stu_answer")
private String answerStuAnswer;
+ @TableField("answer_right")
private String answerRight;
+ @TableField("answer_score")
+ private Double answerScore;
+ @TableField("answer_exam_name")
+ private String answerExamName;
public Answer() {
}
- /**
- * @param answerPaperId 试卷id
- * @param answerQuestionId 题目id
- * @param answerStuName 考生名字
- * @param answerStuAnswer 考生答案
- * @param answerRight 正确答案
- * @return
- */
- public Answer(Integer answerPaperId, Integer answerQuestionId, String answerStuName, String answerStuAnswer, String answerRight) {
- this.answerPaperId = answerPaperId;
- this.answerQuestionId = answerQuestionId;
- this.answerStuName = answerStuName;
- this.answerStuAnswer = answerStuAnswer;
- this.answerRight = answerRight;
+ public String getAnswerPaperName() {
+ return answerPaperName;
}
- public Integer getAnswerPaperId() {
- return answerPaperId;
+ public void setAnswerPaperName(String answerPaperName) {
+ this.answerPaperName = answerPaperName;
}
- public void setAnswerPaperId(Integer answerPaperId) {
- this.answerPaperId = answerPaperId;
- }
-
-
public Integer getAnswerQuestionId() {
return answerQuestionId;
}
@@ -52,16 +49,14 @@ public class Answer {
this.answerQuestionId = answerQuestionId;
}
-
- public String getAnswerStuName() {
- return answerStuName;
+ public String getAnswerStuNum() {
+ return answerStuNum;
}
- public void setAnswerStuName(String answerStuName) {
- this.answerStuName = answerStuName;
+ public void setAnswerStuNum(String answerStuNum) {
+ this.answerStuNum = answerStuNum;
}
-
public String getAnswerStuAnswer() {
return answerStuAnswer;
}
@@ -70,7 +65,6 @@ public class Answer {
this.answerStuAnswer = answerStuAnswer;
}
-
public String getAnswerRight() {
return answerRight;
}
@@ -79,4 +73,19 @@ public class Answer {
this.answerRight = answerRight;
}
+ public Double getAnswerScore() {
+ return answerScore;
+ }
+
+ public void setAnswerScore(Double answerScore) {
+ this.answerScore = answerScore;
+ }
+
+ public String getAnswerExamName() {
+ return answerExamName;
+ }
+
+ public void setAnswerExamName(String answerExamName) {
+ this.answerExamName = answerExamName;
+ }
}
diff --git a/src/main/java/com/hqyj/vueproject/pojo/Class.java b/src/main/java/com/hqyj/vueproject/pojo/Class.java
deleted file mode 100644
index 0c3159721e90ba5654acc7f0e828867828fbd038..0000000000000000000000000000000000000000
--- a/src/main/java/com/hqyj/vueproject/pojo/Class.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package com.hqyj.vueproject.pojo;
-
-
-/**
- * @author YuDrag
- * @version 1.0.0
- * @Date 2022/11/29
- * @Description
- * @ClassName:班级实体类
- */
-public class Class {
-
- private Integer classId;
- private String className;
-
- public Class() {
- }
-
- /**
- * @param classId 班级id
- * @param className 班级名称
- * @return
- */
- public Class(Integer classId, String className) {
- this.classId = classId;
- this.className = className;
- }
-
- public Integer getClassId() {
- return classId;
- }
-
- public void setClassId(Integer classId) {
- this.classId = classId;
- }
-
-
- public String getClassName() {
- return className;
- }
-
- public void setClassName(String className) {
- this.className = className;
- }
-
-}
diff --git a/src/main/java/com/hqyj/vueproject/pojo/Clazz.java b/src/main/java/com/hqyj/vueproject/pojo/Clazz.java
new file mode 100644
index 0000000000000000000000000000000000000000..66e8238f9f1e8547d90707f135d5bb8e129c787a
--- /dev/null
+++ b/src/main/java/com/hqyj/vueproject/pojo/Clazz.java
@@ -0,0 +1,56 @@
+package com.hqyj.vueproject.pojo;
+
+
+/**
+ * @author YuDrag
+ * @version 1.0.0
+ * @Date 2022/11/29
+ * @Description
+ * @ClassName:班级实体类
+ */
+public class Clazz {
+
+ private Integer clazzId;
+ private String className;
+ private Integer clazzNum;
+
+ public Clazz() {
+ }
+
+ /**
+ * @param clazzId clazz id
+ * @param className 类名
+ * @param clazzNum clazz num
+ * @return
+ */
+ public Clazz(Integer clazzId, String className, Integer clazzNum) {
+ this.clazzId = clazzId;
+ this.className = className;
+ this.clazzNum = clazzNum;
+ }
+
+
+ public Integer getClazzId() {
+ return clazzId;
+ }
+
+ public void setClazzId(Integer clazzId) {
+ this.clazzId = clazzId;
+ }
+
+ public String getClassName() {
+ return className;
+ }
+
+ public void setClassName(String className) {
+ this.className = className;
+ }
+
+ public Integer getClazzNum() {
+ return clazzNum;
+ }
+
+ public void setClazzNum(Integer clazzNum) {
+ this.clazzNum = clazzNum;
+ }
+}
diff --git a/src/main/java/com/hqyj/vueproject/pojo/ClazzTea.java b/src/main/java/com/hqyj/vueproject/pojo/ClazzTea.java
new file mode 100644
index 0000000000000000000000000000000000000000..feb5570937f98a0a8c97fa6051c28d0c90833fa7
--- /dev/null
+++ b/src/main/java/com/hqyj/vueproject/pojo/ClazzTea.java
@@ -0,0 +1,44 @@
+package com.hqyj.vueproject.pojo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+/**
+ * @version 1.0
+ * @Author YuDrag
+ * @Date 2022/12/12 10:31
+ * @Description:
+ */
+@TableName("clazz_tea")
+public class ClazzTea {
+
+ @TableId(value="clazz_id" ,type = IdType.AUTO)
+ private Integer clazzId;
+
+ private Integer teaNum;
+
+ public ClazzTea(Integer clazzId, Integer teaNum) {
+ this.clazzId = clazzId;
+ this.teaNum = teaNum;
+ }
+
+ public ClazzTea() {
+ }
+
+ public Integer getClazzId() {
+ return clazzId;
+ }
+
+ public void setClazzId(Integer clazzId) {
+ this.clazzId = clazzId;
+ }
+
+ public Integer getTeaNum() {
+ return teaNum;
+ }
+
+ public void setTeaNum(Integer teaNum) {
+ this.teaNum = teaNum;
+ }
+}
diff --git a/src/main/java/com/hqyj/vueproject/pojo/Exam.java b/src/main/java/com/hqyj/vueproject/pojo/Exam.java
index 67dfb789f01ff8c99cde1f0a035cdefab063989d..909542f5333dcde90ce0be9fd0498d20187f28ae 100644
--- a/src/main/java/com/hqyj/vueproject/pojo/Exam.java
+++ b/src/main/java/com/hqyj/vueproject/pojo/Exam.java
@@ -1,6 +1,10 @@
package com.hqyj.vueproject.pojo;
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+
import java.util.Date;
/**
@@ -10,46 +14,71 @@ import java.util.Date;
* @Description
* @ClassName:考试实体类
*/
+@TableName("exam")
public class Exam {
+ @TableId(value = "exam_id",type = IdType.AUTO)
private Integer examId;
+ @TableField(value = "exam_name")
private String examName;
+ @TableField(value = "exam_create_time",fill = FieldFill.INSERT)
+ @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
private Date examCreateTime;
+ @TableField(value = "exam_subject_id")
private Integer examSubjectId;
+ @TableField(value = "exam_publisher")
private String examPublisher;
- private Integer examClassId;
+ @TableField(value = "exam_clazz_id")
+ private Integer examClazzId;
+ @TableField(value = "exam_time")
private Integer examTime;
+ @TableField(value = "exam_start_time")
+ @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss",timezone = "GMT+8")
+ @DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss")
private Date examStartTime;
+ @TableField(value = "exam_end_time")
+ @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss",timezone = "GMT+8")
+ @DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss")
private Date examEndTime;
- private Integer examPaperId;
+ @TableField(value = "exam_paper_name")
+ private String examPaperName;
+
+ @TableField(exist = false)
+ private Subject subject;
+
+ @TableField(exist = false)
+ private Clazz clazz;
+
+ @TableField(exist = false)
+ private String oldExamName;
+
public Exam() {
}
- /**
- * @param examId 考试id
- * @param examName 考试名称
- * @param examCreateTime 考试创建时间
- * @param examSubjectId 考试科目id
- * @param examPublisher 考试发布人
- * @param examClassId 考试的班级id
- * @param examTime 考试时间
- * @param examStartTime 考试开始时间
- * @param examEndTime 考试结束时间
- * @param examPaperId 考试试卷的ID
- * @return
- */
- public Exam(Integer examId, String examName, Date examCreateTime, Integer examSubjectId, String examPublisher, Integer examClassId, Integer examTime, Date examStartTime, Date examEndTime, Integer examPaperId) {
- this.examId = examId;
- this.examName = examName;
- this.examCreateTime = examCreateTime;
- this.examSubjectId = examSubjectId;
- this.examPublisher = examPublisher;
- this.examClassId = examClassId;
- this.examTime = examTime;
- this.examStartTime = examStartTime;
- this.examEndTime = examEndTime;
- this.examPaperId = examPaperId;
+ public Subject getSubject() {
+ return subject;
+ }
+
+ public void setSubject(Subject subject) {
+ this.subject = subject;
+ }
+
+ public Clazz getClazz() {
+ return clazz;
+ }
+
+ public void setClazz(Clazz clazz) {
+ this.clazz = clazz;
+ }
+
+ public String getOldExamName() {
+ return oldExamName;
+ }
+
+ public void setOldExamName(String oldExamName) {
+ this.oldExamName = oldExamName;
}
public Integer getExamId() {
@@ -92,12 +121,12 @@ public class Exam {
this.examPublisher = examPublisher;
}
- public Integer getExamClassId() {
- return examClassId;
+ public Integer getExamClazzId() {
+ return examClazzId;
}
- public void setExamClassId(Integer examClassId) {
- this.examClassId = examClassId;
+ public void setExamClazzId(Integer examClazzId) {
+ this.examClazzId = examClazzId;
}
public Integer getExamTime() {
@@ -124,11 +153,11 @@ public class Exam {
this.examEndTime = examEndTime;
}
- public Integer getExamPaperId() {
- return examPaperId;
+ public String getExamPaperName() {
+ return examPaperName;
}
- public void setExamPaperId(Integer examPaperId) {
- this.examPaperId = examPaperId;
+ public void setExamPaperName(String examPaperName) {
+ this.examPaperName = examPaperName;
}
}
diff --git a/src/main/java/com/hqyj/vueproject/pojo/ExamStatus.java b/src/main/java/com/hqyj/vueproject/pojo/ExamStatus.java
index 0b56dca99783171dd721792bf56c33012cefc278..8791cf88b971ad96ea63c9194cb8938501d0ce14 100644
--- a/src/main/java/com/hqyj/vueproject/pojo/ExamStatus.java
+++ b/src/main/java/com/hqyj/vueproject/pojo/ExamStatus.java
@@ -1,6 +1,10 @@
package com.hqyj.vueproject.pojo;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
/**
* @author YuDrag
* @version 1.0.0
@@ -8,33 +12,23 @@ package com.hqyj.vueproject.pojo;
* @Description
* @ClassName:考试的状态
*/
+@TableName("exam_status")
public class ExamStatus {
+ @TableField(value = "exam_name")
private String examName;
- private Integer paperId;
- private String examStu;
+ @TableField(value = "paper_name")
+ private String paperName;
+ @TableField(value = "exam_stu_id")
+ private Integer examStuId;
+ @TableField(value = "exam_status")
private Integer examStatus;
+ @TableField(value = "exam_is_correct")
private Integer examIsCorrect;
public ExamStatus() {
}
- /**
- * @param examName 考试名称
- * @param paperId 试卷id
- * @param examStu 考生
- * @param examStatus 这个考试对应的考生是否已考
- * @param examIsCorrect 这个考试老师是否批改
- * @return
- */
- public ExamStatus(String examName, Integer paperId, String examStu, Integer examStatus, Integer examIsCorrect) {
- this.examName = examName;
- this.paperId = paperId;
- this.examStu = examStu;
- this.examStatus = examStatus;
- this.examIsCorrect = examIsCorrect;
- }
-
public String getExamName() {
return examName;
}
@@ -43,25 +37,22 @@ public class ExamStatus {
this.examName = examName;
}
-
- public Integer getPaperId() {
- return paperId;
+ public String getPaperName() {
+ return paperName;
}
- public void setPaperId(Integer paperId) {
- this.paperId = paperId;
+ public void setPaperName(String paperName) {
+ this.paperName = paperName;
}
-
- public String getExamStu() {
- return examStu;
+ public Integer getExamStuId() {
+ return examStuId;
}
- public void setExamStu(String examStu) {
- this.examStu = examStu;
+ public void setExamStuId(Integer examStuId) {
+ this.examStuId = examStuId;
}
-
public Integer getExamStatus() {
return examStatus;
}
@@ -70,7 +61,6 @@ public class ExamStatus {
this.examStatus = examStatus;
}
-
public Integer getExamIsCorrect() {
return examIsCorrect;
}
@@ -78,5 +68,4 @@ public class ExamStatus {
public void setExamIsCorrect(Integer examIsCorrect) {
this.examIsCorrect = examIsCorrect;
}
-
}
diff --git a/src/main/java/com/hqyj/vueproject/pojo/Level.java b/src/main/java/com/hqyj/vueproject/pojo/Level.java
new file mode 100644
index 0000000000000000000000000000000000000000..2a296de55f64d6f5765c44b8112a2013771e7599
--- /dev/null
+++ b/src/main/java/com/hqyj/vueproject/pojo/Level.java
@@ -0,0 +1,37 @@
+package com.hqyj.vueproject.pojo;
+
+/**
+ * @version 1.0
+ * @Author YuDrag
+ * @Date 2022/12/12 10:36
+ * @Description:
+ */
+public class Level {
+ private Integer levelId;
+
+ private String levelName;
+
+ public Level() {
+ }
+
+ public Level(Integer levelId, String levelName) {
+ this.levelId = levelId;
+ this.levelName = levelName;
+ }
+
+ public Integer getLevelId() {
+ return levelId;
+ }
+
+ public void setLevelId(Integer levelId) {
+ this.levelId = levelId;
+ }
+
+ public String getLevelName() {
+ return levelName;
+ }
+
+ public void setLevelName(String levelName) {
+ this.levelName = levelName;
+ }
+}
diff --git a/src/main/java/com/hqyj/vueproject/pojo/Paper.java b/src/main/java/com/hqyj/vueproject/pojo/Paper.java
index 0a45fd1f7be61d6db2801890c56a890facb561e9..2ecd3383a3d42e46ce3ede280922ce257b351f53 100644
--- a/src/main/java/com/hqyj/vueproject/pojo/Paper.java
+++ b/src/main/java/com/hqyj/vueproject/pojo/Paper.java
@@ -1,7 +1,11 @@
package com.hqyj.vueproject.pojo;
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
import java.sql.Date;
+import java.util.List;
/**
* @author YuDrag
@@ -10,28 +14,42 @@ import java.sql.Date;
* @Description
* @ClassName:试卷的实体类
*/
+@TableName("paper")
public class Paper {
+ @TableId(value = "paper_id",type = IdType.AUTO)
private Integer paperId;
+
+ @TableField("paper_name")
+ private String paperName;
+
+ @TableField("paper_subject_id")
private Integer paperSubjectId;
- private java.sql.Date paperCreateTime;
+
+ @TableField(value = "paper_create_time",fill = FieldFill.INSERT)
+ @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+ private Date paperCreateTime;
+
+ @TableField("paper_total")
private Integer paperTotal;
- public Paper() {
- }
+ @TableField("paper_exercise")
+ private Integer paperExercise;
- /**
- * @param paperId 试卷id
- * @param paperSubjectId 试卷科目
- * @param paperCreateTime 试卷生成时间
- * @param paperTotal 试卷总分
- * @return
- */
- public Paper(Integer paperId, Integer paperSubjectId, Date paperCreateTime, Integer paperTotal) {
- this.paperId = paperId;
- this.paperSubjectId = paperSubjectId;
- this.paperCreateTime = paperCreateTime;
- this.paperTotal = paperTotal;
+ @TableField("paper_level")
+ private String paperLevel;
+
+ @TableField(exist = false)
+ private Subject subject;
+
+ @TableField(exist = false)
+ private List paperQuestion;
+
+ @TableField(exist = false)
+ private List questionType;
+
+
+ public Paper() {
}
public Integer getPaperId() {
@@ -42,6 +60,13 @@ public class Paper {
this.paperId = paperId;
}
+ public String getPaperName() {
+ return paperName;
+ }
+
+ public void setPaperName(String paperName) {
+ this.paperName = paperName;
+ }
public Integer getPaperSubjectId() {
return paperSubjectId;
@@ -51,16 +76,14 @@ public class Paper {
this.paperSubjectId = paperSubjectId;
}
-
- public java.sql.Date getPaperCreateTime() {
+ public Date getPaperCreateTime() {
return paperCreateTime;
}
- public void setPaperCreateTime(java.sql.Date paperCreateTime) {
+ public void setPaperCreateTime(Date paperCreateTime) {
this.paperCreateTime = paperCreateTime;
}
-
public Integer getPaperTotal() {
return paperTotal;
}
@@ -69,4 +92,43 @@ public class Paper {
this.paperTotal = paperTotal;
}
+ public Integer getPaperExercise() {
+ return paperExercise;
+ }
+
+ public void setPaperExercise(Integer paperExercise) {
+ this.paperExercise = paperExercise;
+ }
+
+ public String getPaperLevel() {
+ return paperLevel;
+ }
+
+ public void setPaperLevel(String paperLevel) {
+ this.paperLevel = paperLevel;
+ }
+
+ public Subject getSubject() {
+ return subject;
+ }
+
+ public void setSubject(Subject subject) {
+ this.subject = subject;
+ }
+
+ public List getPaperQuestion() {
+ return paperQuestion;
+ }
+
+ public void setPaperQuestion(List paperQuestion) {
+ this.paperQuestion = paperQuestion;
+ }
+
+ public List getQuestionType() {
+ return questionType;
+ }
+
+ public void setQuestionType(List questionType) {
+ this.questionType = questionType;
+ }
}
diff --git a/src/main/java/com/hqyj/vueproject/pojo/PaperQuestion.java b/src/main/java/com/hqyj/vueproject/pojo/PaperQuestion.java
index 0739ee792a3f8ce86cef76079a06e4d3acc4f6c4..c7ddcf46e473d637b017ad98204a77b5f049ada6 100644
--- a/src/main/java/com/hqyj/vueproject/pojo/PaperQuestion.java
+++ b/src/main/java/com/hqyj/vueproject/pojo/PaperQuestion.java
@@ -1,6 +1,8 @@
package com.hqyj.vueproject.pojo;
+import com.baomidou.mybatisplus.annotation.TableField;
+
/**
* @author YuDrag
* @version 1.0.0
@@ -10,31 +12,29 @@ package com.hqyj.vueproject.pojo;
*/
public class PaperQuestion {
- private Integer paperId;
+ @TableField("paper_name")
+ private String paperName;
+ @TableField("question_id")
private Integer questionId;
+ @TableField("question_score")
private Double questionScore;
+ @TableField("paper_question_type")
+ private Integer paperQuestionType;
+ @TableField(exist = false)
+ private QuestionType questionType;
+ @TableField(exist = false)
+ private Questions questions;
- public PaperQuestion() {
- }
- /**
- * @param paperId 纸id
- * @param questionId 问题id
- * @param questionScore 问题分值
- * @return
- */
- public PaperQuestion(Integer paperId, Integer questionId, Double questionScore) {
- this.paperId = paperId;
- this.questionId = questionId;
- this.questionScore = questionScore;
+ public PaperQuestion() {
}
- public Integer getPaperId() {
- return paperId;
+ public String getPaperName() {
+ return paperName;
}
- public void setPaperId(Integer paperId) {
- this.paperId = paperId;
+ public void setPaperName(String paperName) {
+ this.paperName = paperName;
}
public Integer getQuestionId() {
@@ -52,4 +52,28 @@ public class PaperQuestion {
public void setQuestionScore(Double questionScore) {
this.questionScore = questionScore;
}
+
+ public Integer getPaperQuestionType() {
+ return paperQuestionType;
+ }
+
+ public void setPaperQuestionType(Integer paperQuestionType) {
+ this.paperQuestionType = paperQuestionType;
+ }
+
+ public QuestionType getQuestionType() {
+ return questionType;
+ }
+
+ public void setQuestionType(QuestionType questionType) {
+ this.questionType = questionType;
+ }
+
+ public Questions getQuestions() {
+ return questions;
+ }
+
+ public void setQuestions(Questions questions) {
+ this.questions = questions;
+ }
}
diff --git a/src/main/java/com/hqyj/vueproject/pojo/QuestionType.java b/src/main/java/com/hqyj/vueproject/pojo/QuestionType.java
new file mode 100644
index 0000000000000000000000000000000000000000..ab02d56ac1c198059283d5c10c5fa90197c2291e
--- /dev/null
+++ b/src/main/java/com/hqyj/vueproject/pojo/QuestionType.java
@@ -0,0 +1,38 @@
+package com.hqyj.vueproject.pojo;
+
+/**
+ * @author 陈春鹏
+ * @version 1.0.0
+ * @date 2022/11/30 11:05:20
+ */
+
+public class QuestionType {
+
+ private Integer questionsTypeId;
+
+ private String questionsTypeName;
+
+ public QuestionType() {
+ }
+
+ public QuestionType(Integer questionsTypeId, String questionsTypeName) {
+ this.questionsTypeId = questionsTypeId;
+ this.questionsTypeName = questionsTypeName;
+ }
+
+ public Integer getQuestionsTypeId() {
+ return questionsTypeId;
+ }
+
+ public void setQuestionsTypeId(Integer questionsTypeId) {
+ this.questionsTypeId = questionsTypeId;
+ }
+
+ public String getQuestionsTypeName() {
+ return questionsTypeName;
+ }
+
+ public void setQuestionsTypeName(String questionsTypeName) {
+ this.questionsTypeName = questionsTypeName;
+ }
+}
diff --git a/src/main/java/com/hqyj/vueproject/pojo/Questions.java b/src/main/java/com/hqyj/vueproject/pojo/Questions.java
index 7be379af6663e9ecbd4e882376cd3b7d892de614..cad92c6a7c5deca7b460de11d39f094f0f419c34 100644
--- a/src/main/java/com/hqyj/vueproject/pojo/Questions.java
+++ b/src/main/java/com/hqyj/vueproject/pojo/Questions.java
@@ -1,6 +1,11 @@
package com.hqyj.vueproject.pojo;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
/**
* @author YuDrag
* @version 1.0.0
@@ -8,49 +13,45 @@ package com.hqyj.vueproject.pojo;
* @Description
* @ClassName:试题的实体类
*/
+@TableName("questions")
public class Questions {
+ @TableId(value = "questions_id",type = IdType.AUTO)
private Integer questionsId;
+
+ @TableField("questions_text")
private String questionsText;
- private String questionsType;
+
+ @TableField("questions_text")
+ private Integer questions_type_id;
+
+ @TableField("questions_answer_one")
private String questionsAnswerOne;
+
+ @TableField("questions_answer_two")
private String questionsAnswerTwo;
+
+ @TableField("questions_answer_three")
private String questionsAnswerThree;
+
+ @TableField("questions_answer_four")
private String questionsAnswerFour;
+
+ @TableField("questions_answer_right")
private String questionsAnswerRight;
+
+ @TableField("questions_subject_id")
private Integer questionsSubjectId;
+
+ @TableField("questions_img")
private String questionsImg;
- public Questions() {
- }
+ @TableField("questions_level")
+ private String questionsLevel;
- /**
- * @param questionsId 题目id
- * @param questionsText 题目
- * @param questionsType 题目类型
- * @param questionsAnswerOne 答案1
- * @param questionsAnswerTwo 答案2
- * @param questionsAnswerThree 答案3
- * @param questionsAnswerFour 答案4
- * @param questionsAnswerRight 正确答案
- * @param questionsSubjectId 试题对应的科目
- * @param questionsImg 试题的图片
- * @return
- */
- public Questions(Integer questionsId, String questionsText, String questionsType, String questionsAnswerOne, String questionsAnswerTwo, String questionsAnswerThree, String questionsAnswerFour, String questionsAnswerRight, Integer questionsSubjectId, String questionsImg) {
- this.questionsId = questionsId;
- this.questionsText = questionsText;
- this.questionsType = questionsType;
- this.questionsAnswerOne = questionsAnswerOne;
- this.questionsAnswerTwo = questionsAnswerTwo;
- this.questionsAnswerThree = questionsAnswerThree;
- this.questionsAnswerFour = questionsAnswerFour;
- this.questionsAnswerRight = questionsAnswerRight;
- this.questionsSubjectId = questionsSubjectId;
- this.questionsImg = questionsImg;
+ public Questions() {
}
-
public Integer getQuestionsId() {
return questionsId;
}
@@ -67,12 +68,12 @@ public class Questions {
this.questionsText = questionsText;
}
- public String getQuestionsType() {
- return questionsType;
+ public Integer getQuestions_type_id() {
+ return questions_type_id;
}
- public void setQuestionsType(String questionsType) {
- this.questionsType = questionsType;
+ public void setQuestions_type_id(Integer questions_type_id) {
+ this.questions_type_id = questions_type_id;
}
public String getQuestionsAnswerOne() {
@@ -130,4 +131,12 @@ public class Questions {
public void setQuestionsImg(String questionsImg) {
this.questionsImg = questionsImg;
}
+
+ public String getQuestionsLevel() {
+ return questionsLevel;
+ }
+
+ public void setQuestionsLevel(String questionsLevel) {
+ this.questionsLevel = questionsLevel;
+ }
}
diff --git a/src/main/java/com/hqyj/vueproject/pojo/Score.java b/src/main/java/com/hqyj/vueproject/pojo/Score.java
index cb067b0c64902ab0ddc71f6ef788e6a9421e39ad..3ab7f7cfad16dc397bcc9477d16379f7dd35e9dc 100644
--- a/src/main/java/com/hqyj/vueproject/pojo/Score.java
+++ b/src/main/java/com/hqyj/vueproject/pojo/Score.java
@@ -1,6 +1,11 @@
package com.hqyj.vueproject.pojo;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
/**
* @author YuDrag
* @version 1.0.0
@@ -8,31 +13,28 @@ package com.hqyj.vueproject.pojo;
* @Description
* @ClassName:成绩实体
*/
+@TableName("score")
public class Score {
+ @TableId(value = "score_id",type = IdType.AUTO)
private Integer scoreId;
+ @TableField(value = "score_stu_name")
private String scoreStuName;
- private Integer scorePaperId;
+ @TableField(value = "score_exam_name")
+ private Integer scoreExamName;
+ @TableField(value = "score_subject_id")
private Integer scoreSubjectId;
+ @TableField(value = "score")
private Double score;
+ @TableField(value = "score_stu_num")
+ private String scoreStuNum;
+ @TableField(exist = false)
+ private String paperName;
+ @TableField(exist = false)
+ private Paper paper;
- public Score() {
- }
- /**
- * @param scoreId 成绩ID
- * @param scoreStuName 学生名称
- * @param scorePaperId 试卷ID
- * @param scoreSubjectId 科目ID
- * @param score 分数
- * @return
- */
- public Score(Integer scoreId, String scoreStuName, Integer scorePaperId, Integer scoreSubjectId, Double score) {
- this.scoreId = scoreId;
- this.scoreStuName = scoreStuName;
- this.scorePaperId = scorePaperId;
- this.scoreSubjectId = scoreSubjectId;
- this.score = score;
+ public Score() {
}
public Integer getScoreId() {
@@ -51,12 +53,12 @@ public class Score {
this.scoreStuName = scoreStuName;
}
- public Integer getScorePaperId() {
- return scorePaperId;
+ public Integer getScoreExamName() {
+ return scoreExamName;
}
- public void setScorePaperId(Integer scorePaperId) {
- this.scorePaperId = scorePaperId;
+ public void setScoreExamName(Integer scoreExamName) {
+ this.scoreExamName = scoreExamName;
}
public Integer getScoreSubjectId() {
@@ -74,4 +76,28 @@ public class Score {
public void setScore(Double score) {
this.score = score;
}
+
+ public String getScoreStuNum() {
+ return scoreStuNum;
+ }
+
+ public void setScoreStuNum(String scoreStuNum) {
+ this.scoreStuNum = scoreStuNum;
+ }
+
+ public String getPaperName() {
+ return paperName;
+ }
+
+ public void setPaperName(String paperName) {
+ this.paperName = paperName;
+ }
+
+ public Paper getPaper() {
+ return paper;
+ }
+
+ public void setPaper(Paper paper) {
+ this.paper = paper;
+ }
}
diff --git a/src/main/java/com/hqyj/vueproject/pojo/User.java b/src/main/java/com/hqyj/vueproject/pojo/User.java
index b080c2111678a63567d5f84741bad1822e693c6f..65dcf0a62926ffa0ee71ef6966e2ffc5c414b7ca 100644
--- a/src/main/java/com/hqyj/vueproject/pojo/User.java
+++ b/src/main/java/com/hqyj/vueproject/pojo/User.java
@@ -1,6 +1,9 @@
package com.hqyj.vueproject.pojo;
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
import java.util.Date;
/**
@@ -10,22 +13,60 @@ import java.util.Date;
* @Description
* @ClassName:User实体类
*/
+@TableName("user")
public class User {
+ @TableId(value = "user_id",type = IdType.AUTO)
private Integer userId;
+
+ @TableField(value = "user_num")
private Integer userNum;
+
+ @TableField(value = "user_name")
private String userName;
+
+ @TableField(value = "user_password")
private String userPassword;
+
+ @TableField(value = "user_gender")
private String userGender;
+
+ @TableField(value = "user_age")
private Integer userAge;
+
+ @TableField(value = "user_birthday")
+ @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
private Date userBirthday;
- private Date userUpdateTime;
+
+ @TableField(value = "user_update_time",fill = FieldFill.INSERT)
+ @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+ private Date updateTime;
+
+ @TableField(value = "user_tel")
private String userTel;
+
+ @TableField(value = "user_img")
private String userImg;
- private String stuClass;
+
+ @TableField(value = "clazz_id")
+ private String clazzId;
+
+ @TableField(value = "role_id")
private Integer roleId;
+
+ @TableField(value = "user_real_name")
private String userRealName;
+ @TableField(value = "user_subject_id")
+ private Integer userSubjectId;
+
+ @TableField(exist = false)
+ private Clazz clazz;
+
+ @TableField(exist = false)
+ private Subject subject;
+
+
/**
* @return
* 无参
@@ -33,38 +74,21 @@ public class User {
public User() {
}
- /**
- * @param userId 用户id
- * @param userNum 用户num
- * @param userName 用户名
- * @param userPassword 用户密码
- * @param userGender 用户性别
- * @param userAge 用户年龄
- * @param userBirthday 用户生日
- * @param userUpdateTime 用户更新时间
- * @param userTel 用户电话号码
- * @param userImg 用户img
- * @param stuClass 学生班级
- * @param roleId 角色id
- * @param userRealName 学生名字
- * @return
- */
- public User(Integer userId, Integer userNum, String userName, String userPassword, String userGender, Integer userAge, Date userBirthday, Date userUpdateTime, String userTel, String userImg, String stuClass, Integer roleId, String userRealName) {
- this.userId = userId;
- this.userNum = userNum;
- this.userName = userName;
- this.userPassword = userPassword;
- this.userGender = userGender;
- this.userAge = userAge;
- this.userBirthday = userBirthday;
- this.userUpdateTime = userUpdateTime;
- this.userTel = userTel;
- this.userImg = userImg;
- this.stuClass = stuClass;
- this.roleId = roleId;
- this.userRealName = userRealName;
+ public Clazz getClazz() {
+ return clazz;
+ }
+
+ public void setClazz(Clazz clazz) {
+ this.clazz = clazz;
}
+ public Subject getSubject() {
+ return subject;
+ }
+
+ public void setSubject(Subject subject) {
+ this.subject = subject;
+ }
public Integer getUserId() {
return userId;
@@ -102,6 +126,14 @@ public class User {
return userGender;
}
+ public Date getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(Date updateTime) {
+ this.updateTime = updateTime;
+ }
+
public void setUserGender(String userGender) {
this.userGender = userGender;
}
@@ -122,14 +154,6 @@ public class User {
this.userBirthday = userBirthday;
}
- public Date getUserUpdateTime() {
- return userUpdateTime;
- }
-
- public void setUserUpdateTime(Date userUpdateTime) {
- this.userUpdateTime = userUpdateTime;
- }
-
public String getUserTel() {
return userTel;
}
@@ -146,12 +170,12 @@ public class User {
this.userImg = userImg;
}
- public String getStuClass() {
- return stuClass;
+ public String getClazzId() {
+ return clazzId;
}
- public void setStuClass(String stuClass) {
- this.stuClass = stuClass;
+ public void setClazzId(String clazzId) {
+ this.clazzId = clazzId;
}
public Integer getRoleId() {
@@ -169,4 +193,32 @@ public class User {
public void setUserRealName(String userRealName) {
this.userRealName = userRealName;
}
+
+ public Integer getUserSubjectId() {
+ return userSubjectId;
+ }
+
+ public void setUserSubjectId(Integer userSubjectId) {
+ this.userSubjectId = userSubjectId;
+ }
+
+ @Override
+ public String toString() {
+ return "User{" +
+ "userId=" + userId +
+ ", userNum=" + userNum +
+ ", userName='" + userName + '\'' +
+ ", userPassword='" + userPassword + '\'' +
+ ", userGender='" + userGender + '\'' +
+ ", userAge=" + userAge +
+ ", userBirthday=" + userBirthday +
+ ", updateTime=" + updateTime +
+ ", userTel='" + userTel + '\'' +
+ ", userImg='" + userImg + '\'' +
+ ", clazzId='" + clazzId + '\'' +
+ ", roleId=" + roleId +
+ ", userRealName='" + userRealName + '\'' +
+ ", userSubjectId=" + userSubjectId +
+ '}';
+ }
}
diff --git a/src/main/java/com/hqyj/vueproject/students/controller/YuFileController.java b/src/main/java/com/hqyj/vueproject/students/controller/YuFileController.java
new file mode 100644
index 0000000000000000000000000000000000000000..f4cc292c4ab431bbda3694e4f84bb36a65d5abe6
--- /dev/null
+++ b/src/main/java/com/hqyj/vueproject/students/controller/YuFileController.java
@@ -0,0 +1,47 @@
+package com.hqyj.vueproject.students.controller;
+
+import com.hqyj.vueproject.utils.ResultInfo;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.File;
+import java.io.IOException;
+
+//上传文件控制器
+@RestController
+@RequestMapping("/file")
+public class YuFileController {
+
+ @PostMapping("/upload")
+ public ResultInfo upload(MultipartFile file){
+// 获取文件的名字
+ String originalFilename = file.getOriginalFilename();
+// 把图片放在D盘java文件夹中的img文件夹中,但是访问的时候,我通过
+// 我通过路径映射来访问比如:/images/xxx.jpg实际上访问D: \images \xxx.jpg
+// 定义一个图片存放的位置路径
+ String path = "D:\\JAVA\\img";
+// 创建file对象
+ File file1 = new File(path, originalFilename);
+// 判断文件夹是否存在
+ if (!file1.getParentFile().exists()){
+// 如果这个路径下的文件夹不存在,那么就创建一个
+// 使用mkdirs创建多级目录
+ file1.getParentFile().mkdirs();
+ }
+// 配置存放图片的路径
+ String saveImgPath = path + File.separator + originalFilename;
+ try {
+// 向磁盘写入文件
+ file.transferTo(new File(saveImgPath));
+// 配置图片返回给前端的路径
+// String imagePath = "/images/" + originalFilename;
+// http://localhost:8080/static/images/3l9ody.jpg
+ return new ResultInfo(200,"upload success","http://localhost:8080/static/images/"+originalFilename);
+ } catch (IOException e) {
+ e.printStackTrace();
+ return new ResultInfo(500,"upload fail");
+ }
+ }
+}
diff --git a/src/main/java/com/hqyj/vueproject/students/controller/YuPaperController.java b/src/main/java/com/hqyj/vueproject/students/controller/YuPaperController.java
new file mode 100644
index 0000000000000000000000000000000000000000..001dfcc68177af385efe16e220f7df817c036c9a
--- /dev/null
+++ b/src/main/java/com/hqyj/vueproject/students/controller/YuPaperController.java
@@ -0,0 +1,50 @@
+package com.hqyj.vueproject.students.controller;
+
+import com.hqyj.vueproject.students.query.YuPaperAnswerQuery;
+import com.hqyj.vueproject.students.query.YuSearchData;
+import com.hqyj.vueproject.students.service.YuPaperService;
+import com.hqyj.vueproject.utils.ResultInfo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+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;
+
+/**
+ * @version 1.0
+ * @Author YuDrag
+ * @Date 2022/12/7 17:18
+ * @Description:有关试卷的查询
+ */
+
+@RestController
+@RequestMapping("/api")
+public class YuPaperController {
+
+ @Autowired
+ private YuPaperService yuPaperService;
+
+ /**
+ * 接收前端传回来的学号以及考试名称
+ * @param yuSearchData 搜索数据
+ * @return {@link ResultInfo }
+ */
+ @PostMapping(value = "paper/detail",consumes = "application/json")
+ ResultInfo selectPaperDetail(@RequestBody YuSearchData yuSearchData){
+ ResultInfo resultInfo = yuPaperService.selectPaperDetail(yuSearchData);
+ return resultInfo;
+ }
+
+ @PostMapping(value = "paper/examDetail",consumes = "application/json")
+ ResultInfo selectUnTakenPaperDetail(@RequestBody YuSearchData yuSearchData){
+ ResultInfo resultInfo = yuPaperService.selectUnTakenPaperDetail(yuSearchData);
+ return resultInfo;
+ }
+ @Transactional
+ @PostMapping(value = "paper/paperAnswer",consumes = "application/json")
+ ResultInfo insertPaperAnswer(@RequestBody YuPaperAnswerQuery yuPaperAnswerQuery){
+ ResultInfo resultInfo = yuPaperService.insertPaperAnswer(yuPaperAnswerQuery);
+ return resultInfo;
+ }
+}
diff --git a/src/main/java/com/hqyj/vueproject/students/controller/YuScoreController.java b/src/main/java/com/hqyj/vueproject/students/controller/YuScoreController.java
new file mode 100644
index 0000000000000000000000000000000000000000..989ca0067becb315e9db2c0150aca8ae260ab20f
--- /dev/null
+++ b/src/main/java/com/hqyj/vueproject/students/controller/YuScoreController.java
@@ -0,0 +1,43 @@
+package com.hqyj.vueproject.students.controller;
+
+import com.hqyj.vueproject.students.query.YuPaperQuery;
+import com.hqyj.vueproject.students.query.YuSearchData;
+import com.hqyj.vueproject.students.service.YuScoreService;
+import com.hqyj.vueproject.utils.ResultInfo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+
+/**
+ * @version 1.0
+ * @Author YuDrag
+ * @Date 2022/11/30 9:25
+ * @Description:
+ */
+@RestController
+@RequestMapping("api/")
+public class YuScoreController {
+
+ @Autowired
+ private YuScoreService scoreService;
+
+ /**
+ * 传一个YuUserQuery:使用里面的用户名和分页数据进行查询用户的历史考试记录
+ * @return {@link ResultInfo }
+ */
+ @PostMapping("score/historyScore")
+ ResultInfo historyScoreSelectByClassAndStuName(@RequestBody YuPaperQuery yuPaperQuery){
+ return scoreService.historyScoreSelectByUserId(yuPaperQuery);
+ }
+
+ /**
+ * 传输一个YuExamQuery:
+ * 1.使用用户名称在exam_status中查询出来用户已经考过的考试数据
+ * 2.对查询出来的考试数据进行循环查询并且加入时间进行查询,将结果放到list中
+ * @return {@link ResultInfo }
+ */
+ @PostMapping(value = "score/exams/{id}",consumes = "application/json")
+ ResultInfo selectExams(@PathVariable("id")Integer userId, @RequestBody YuSearchData page) {
+ return scoreService.takenExams(userId,page);
+ }
+}
diff --git a/src/main/java/com/hqyj/vueproject/students/controller/YuStudentController.java b/src/main/java/com/hqyj/vueproject/students/controller/YuStudentController.java
new file mode 100644
index 0000000000000000000000000000000000000000..172c78c1ea2ef177dcf79609b47b3297e6c52e79
--- /dev/null
+++ b/src/main/java/com/hqyj/vueproject/students/controller/YuStudentController.java
@@ -0,0 +1,41 @@
+package com.hqyj.vueproject.students.controller;
+
+import com.hqyj.vueproject.pojo.User;
+import com.hqyj.vueproject.students.service.YuStuService;
+import com.hqyj.vueproject.utils.ResultInfo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @version 1.0
+ * @Author YuDrag
+ * @Date 2022/12/2 15:46
+ * @Description:
+ */
+@RestController
+@RequestMapping("/api")
+public class YuStudentController {
+
+ @Autowired
+ private YuStuService yuStuService;
+
+ /**
+ * 传一个YuUserQuery:使用里面的用户名和分页数据进行查询用户的历史考试记录
+ * @return {@link ResultInfo }
+ */
+ @Transactional
+ @PutMapping(value = "/student/userData", consumes = "application/json")
+ ResultInfo updateStudent(@RequestBody User userData){
+ return yuStuService.updateStudent(userData);
+ }
+
+ /**
+ * 传一个YuUserQuery:使用里面的用户名和分页数据进行查询用户的历史考试记录
+ * @return {@link ResultInfo }
+ */
+ @GetMapping(value = "/student/{id}")
+ ResultInfo selectStudent(@PathVariable("id")Integer userId){
+ return yuStuService.selectStudent(userId);
+ }
+}
diff --git a/src/main/java/com/hqyj/vueproject/students/mapper/YuAnswerMapper.java b/src/main/java/com/hqyj/vueproject/students/mapper/YuAnswerMapper.java
new file mode 100644
index 0000000000000000000000000000000000000000..e5e681da40921beb7fe1a0137e8c17097f179184
--- /dev/null
+++ b/src/main/java/com/hqyj/vueproject/students/mapper/YuAnswerMapper.java
@@ -0,0 +1,15 @@
+package com.hqyj.vueproject.students.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.hqyj.vueproject.pojo.Answer;
+import org.springframework.stereotype.Repository;
+
+/**
+ * @version 1.0
+ * @Author YuDrag
+ * @Date 2022/12/10 15:59
+ * @Description:
+ */
+@Repository
+public interface YuAnswerMapper extends BaseMapper {
+}
diff --git a/src/main/java/com/hqyj/vueproject/students/mapper/YuClassMapper.java b/src/main/java/com/hqyj/vueproject/students/mapper/YuClassMapper.java
new file mode 100644
index 0000000000000000000000000000000000000000..e4cbf223325c9270c9a3a8f5ebfc4387def59cda
--- /dev/null
+++ b/src/main/java/com/hqyj/vueproject/students/mapper/YuClassMapper.java
@@ -0,0 +1,15 @@
+package com.hqyj.vueproject.students.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.hqyj.vueproject.pojo.Clazz;
+import org.springframework.stereotype.Repository;
+
+/**
+ * @version 1.0
+ * @Author YuDrag
+ * @Date 2022/12/3 11:26
+ * @Description:
+ */
+@Repository
+public interface YuClassMapper extends BaseMapper {
+}
diff --git a/src/main/java/com/hqyj/vueproject/students/mapper/YuExamMapper.java b/src/main/java/com/hqyj/vueproject/students/mapper/YuExamMapper.java
new file mode 100644
index 0000000000000000000000000000000000000000..5085d6c3b5f75576dc75a6a61f8f1b763d90427f
--- /dev/null
+++ b/src/main/java/com/hqyj/vueproject/students/mapper/YuExamMapper.java
@@ -0,0 +1,44 @@
+package com.hqyj.vueproject.students.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.hqyj.vueproject.pojo.Exam;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * @version 1.0
+ * @Author YuDrag
+ * @Date 2022/11/30 14:11
+ * @Description:
+ */
+@Repository
+public interface YuExamMapper extends BaseMapper {
+
+
+ /**
+ * 联表查询,userId,查询对应用户的考试,examStatus查询已经考的考试
+ * @param examPage 考试分页数据
+ * @param userId 用户id
+ * @param examStatus 试卷是否已考
+ * @return {@link Page }<{@link Exam }>
+ */
+ Page selectExam(@Param("page") Page examPage, @Param("userId") Integer userId, @Param("examStatus") Integer examStatus);
+
+ /**
+ * 利用paperId进行联表查询Exam信息
+ * @param paperName 论文名称
+ * @return {@link Exam }
+ */
+ Exam selectExamByPaperName(String paperName);
+
+ /**
+ * 根据用户id和size查询最近的考试试卷id
+ * @param userId 用户id
+ * @param size 大小
+ * @return {@link List }<{@link Integer }>
+ */
+ List selectExamByUserIdAndSize(@Param("userId")Integer userId, @Param("size")Integer size);
+}
diff --git a/src/main/java/com/hqyj/vueproject/students/mapper/YuExamStatusMapper.java b/src/main/java/com/hqyj/vueproject/students/mapper/YuExamStatusMapper.java
new file mode 100644
index 0000000000000000000000000000000000000000..e2deebf74b00046210123c4c8d44373ef92a7d03
--- /dev/null
+++ b/src/main/java/com/hqyj/vueproject/students/mapper/YuExamStatusMapper.java
@@ -0,0 +1,15 @@
+package com.hqyj.vueproject.students.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.hqyj.vueproject.pojo.ExamStatus;
+import org.springframework.stereotype.Repository;
+
+/**
+ * @version 1.0
+ * @Author YuDrag
+ * @Date 2022/11/30 13:46
+ * @Description:
+ */
+@Repository
+public interface YuExamStatusMapper extends BaseMapper {
+}
diff --git a/src/main/java/com/hqyj/vueproject/students/mapper/YuPaperDetailQueryMapper.java b/src/main/java/com/hqyj/vueproject/students/mapper/YuPaperDetailQueryMapper.java
new file mode 100644
index 0000000000000000000000000000000000000000..8feec09462f9e2ee94963cbbb91fbfa601d47794
--- /dev/null
+++ b/src/main/java/com/hqyj/vueproject/students/mapper/YuPaperDetailQueryMapper.java
@@ -0,0 +1,36 @@
+package com.hqyj.vueproject.students.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.hqyj.vueproject.students.query.YuPaperDetailQuery;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * @version 1.0
+ * @Author YuDrag
+ * @Date 2022/12/9 9:31
+ * @Description:
+ */
+@Repository
+public interface YuPaperDetailQueryMapper extends BaseMapper {
+
+ /**
+ * 查询学生的答题情况详情
+ * @param userNum 用户num
+ * @param userId 用户id
+ * @param examName 考试名称
+ * @return {@link Page }<{@link YuPaperDetailQuery }>
+ */
+ List selectPaperDetail(@Param("userNum") String userNum, @Param("userId") Integer userId , @Param("examName") String examName);
+
+ /**
+ * 查询考生的未考试卷的题目
+ * @param userId 用户id
+ * @param examName 考试名称
+ * @return {@link List }<{@link YuPaperDetailQuery }>
+ */
+ List selectUnTakenPaperDetail(@Param("userId") Integer userId,@Param("examName") String examName);
+}
diff --git a/src/main/java/com/hqyj/vueproject/students/mapper/YuPaperMapper.java b/src/main/java/com/hqyj/vueproject/students/mapper/YuPaperMapper.java
new file mode 100644
index 0000000000000000000000000000000000000000..3ce6d5c8c46ea07c8c790ed141505edb3867b1a4
--- /dev/null
+++ b/src/main/java/com/hqyj/vueproject/students/mapper/YuPaperMapper.java
@@ -0,0 +1,20 @@
+package com.hqyj.vueproject.students.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.hqyj.vueproject.pojo.Paper;
+import com.hqyj.vueproject.students.query.YuPaperDetailQuery;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+/**
+ * @version 1.0
+ * @Author YuDrag
+ * @Date 2022/12/7 17:25
+ * @Description:
+ */
+
+@Repository
+public interface YuPaperMapper extends BaseMapper {
+
+}
diff --git a/src/main/java/com/hqyj/vueproject/students/mapper/YuQuestionsMapper.java b/src/main/java/com/hqyj/vueproject/students/mapper/YuQuestionsMapper.java
new file mode 100644
index 0000000000000000000000000000000000000000..751ffff7a1ef2bd8e13a4d5c5ceaf2cd0a4381a7
--- /dev/null
+++ b/src/main/java/com/hqyj/vueproject/students/mapper/YuQuestionsMapper.java
@@ -0,0 +1,15 @@
+package com.hqyj.vueproject.students.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.hqyj.vueproject.pojo.Questions;
+import org.springframework.stereotype.Repository;
+
+/**
+ * @version 1.0
+ * @Author YuDrag
+ * @Date 2022/12/10 16:33
+ * @Description:
+ */
+@Repository
+public interface YuQuestionsMapper extends BaseMapper {
+}
diff --git a/src/main/java/com/hqyj/vueproject/students/mapper/YuScoreMapper.java b/src/main/java/com/hqyj/vueproject/students/mapper/YuScoreMapper.java
new file mode 100644
index 0000000000000000000000000000000000000000..1a4670ddcdef3ba310800765f935155b1123e770
--- /dev/null
+++ b/src/main/java/com/hqyj/vueproject/students/mapper/YuScoreMapper.java
@@ -0,0 +1,38 @@
+package com.hqyj.vueproject.students.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.hqyj.vueproject.pojo.Score;
+import com.hqyj.vueproject.students.query.YuPaperQuery;
+import com.hqyj.vueproject.students.query.YuUserQuery;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * @version 1.0
+ * @Author YuDrag
+ * @Date 2022/11/30 10:08
+ * @Description:
+ */
+@Repository
+public interface YuScoreMapper extends BaseMapper {
+
+
+ /**
+ * 使用学生真实姓名来查询他的历史成绩
+ * @param userQueryPage 用户查询页面
+ * @param userName 用户名
+ * @return {@link Page }<{@link Score }>
+ */
+ Page selectScoreList(@Param("page")Page userQueryPage, @Param("userName")String userName);
+
+ /**
+ * 使用班级和试卷id查询该班在这张试卷的所有学生成绩
+ * @param clazzId 班级id
+ * @param examName 试卷Name
+ * @return {@link List }<{@link YuPaperQuery }>
+ */
+ List selectClazzScores(@Param("clazzId") Integer clazzId,@Param("examName")String examName);
+}
diff --git a/src/main/java/com/hqyj/vueproject/students/mapper/YuStuMapper.java b/src/main/java/com/hqyj/vueproject/students/mapper/YuStuMapper.java
new file mode 100644
index 0000000000000000000000000000000000000000..86f194c18bd7c4da624a1522e97184ff552037f3
--- /dev/null
+++ b/src/main/java/com/hqyj/vueproject/students/mapper/YuStuMapper.java
@@ -0,0 +1,15 @@
+package com.hqyj.vueproject.students.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.hqyj.vueproject.pojo.User;
+import org.springframework.stereotype.Repository;
+
+/**
+ * @version 1.0
+ * @Author YuDrag
+ * @Date 2022/11/30 9:27
+ * @Description:
+ */
+@Repository
+public interface YuStuMapper extends BaseMapper {
+}
diff --git a/src/main/java/com/hqyj/vueproject/students/mapper/YuTakenExamQueryMapper.java b/src/main/java/com/hqyj/vueproject/students/mapper/YuTakenExamQueryMapper.java
new file mode 100644
index 0000000000000000000000000000000000000000..be52b6a58000aa3f4b5bbdcaa92b060fc1a58027
--- /dev/null
+++ b/src/main/java/com/hqyj/vueproject/students/mapper/YuTakenExamQueryMapper.java
@@ -0,0 +1,36 @@
+package com.hqyj.vueproject.students.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.hqyj.vueproject.students.query.YuSearchData;
+import com.hqyj.vueproject.students.query.YuTakenExamQuery;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+/**
+ * @version 1.0
+ * @Author YuDrag
+ * @Date 2022/12/3 14:12
+ * @Description:
+ */
+@Repository
+public interface YuTakenExamQueryMapper extends BaseMapper {
+
+ /**
+ * 根据用户id和时间范围以及名称范围查询已考考试
+ * @param page 页面
+ * @param userId 用户id
+ * @return {@link Page }<{@link YuTakenExamQuery }>
+ */
+ Page selectTakenExams(@Param("page") Page page, @Param("userId") Integer userId,@Param("searchData") YuSearchData data);
+
+ /**
+ * 查询未考考试
+ * @param page 页面
+ * @param userId 用户id
+ * @param data 数据
+ * @return {@link Page }<{@link YuTakenExamQuery }>
+ */
+ Page selectUnTakenExams(@Param("page") Page page, @Param("userId") Integer userId,@Param("searchData") YuSearchData data);
+
+}
diff --git a/src/main/java/com/hqyj/vueproject/students/mapper/YuUserQueryMapper.java b/src/main/java/com/hqyj/vueproject/students/mapper/YuUserQueryMapper.java
new file mode 100644
index 0000000000000000000000000000000000000000..913f4591a634e2b71340769ad5e31fff2197b10f
--- /dev/null
+++ b/src/main/java/com/hqyj/vueproject/students/mapper/YuUserQueryMapper.java
@@ -0,0 +1,22 @@
+package com.hqyj.vueproject.students.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.hqyj.vueproject.students.query.YuUserQuery;
+import org.springframework.stereotype.Repository;
+
+/**
+ * @version 1.0
+ * @Author YuDrag
+ * @Date 2022/12/3 11:30
+ * @Description:
+ */
+@Repository
+public interface YuUserQueryMapper extends BaseMapper {
+
+ /**
+ * 查询用户以及用户的班级
+ * @param userId 用户id
+ * @return {@link YuUserQuery }
+ */
+ YuUserQuery selectStudentOne(Integer userId);
+}
diff --git a/src/main/java/com/hqyj/vueproject/students/query/YuExamQuery.java b/src/main/java/com/hqyj/vueproject/students/query/YuExamQuery.java
new file mode 100644
index 0000000000000000000000000000000000000000..ba124c3b16b15acd3509cca7fc392bd9f0e11955
--- /dev/null
+++ b/src/main/java/com/hqyj/vueproject/students/query/YuExamQuery.java
@@ -0,0 +1,186 @@
+package com.hqyj.vueproject.students.query;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.util.Date;
+
+/**
+ * @version 1.0
+ * @Author YuDrag
+ * @Date 2022/11/30 14:15
+ * @Description:
+ */
+public class YuExamQuery {
+
+ private Integer examId;
+
+ private String examName;
+
+ private Date examCreateTime;
+
+ private Integer examSubjectId;
+
+ private String examPublisher;
+
+ private Integer examClassId;
+
+ private Integer examTime;
+
+ @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+ private Date examStartTime;
+
+ @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+ private Date examEndTime;
+
+ private Integer examPaperId;
+
+
+ /**
+ * @Description:分页
+ * @see Integer
+ */
+ private Integer page;
+ private Integer size;
+
+
+ /**
+ * @Description:根据用户名查询的条件
+ * @see String
+ */
+ private String userName;
+
+ /**
+ * @Description:根据时间范围查询的条件
+ * @see Date
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+ private Date startTime;
+ @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+ private Date EndTime;
+
+ public YuExamQuery() {
+ }
+
+ public String getUserName() {
+ return userName;
+ }
+
+ public void setUserName(String userName) {
+ this.userName = userName;
+ }
+
+ public Date getStartTime() {
+ return startTime;
+ }
+
+ public void setStartTime(Date startTime) {
+ this.startTime = startTime;
+ }
+
+ public Date getEndTime() {
+ return EndTime;
+ }
+
+ public void setEndTime(Date endTime) {
+ EndTime = endTime;
+ }
+
+ public Integer getExamId() {
+ return examId;
+ }
+
+ public void setExamId(Integer examId) {
+ this.examId = examId;
+ }
+
+ public String getExamName() {
+ return examName;
+ }
+
+ public void setExamName(String examName) {
+ this.examName = examName;
+ }
+
+ public Date getExamCreateTime() {
+ return examCreateTime;
+ }
+
+ public void setExamCreateTime(Date examCreateTime) {
+ this.examCreateTime = examCreateTime;
+ }
+
+ public Integer getExamSubjectId() {
+ return examSubjectId;
+ }
+
+ public void setExamSubjectId(Integer examSubjectId) {
+ this.examSubjectId = examSubjectId;
+ }
+
+ public String getExamPublisher() {
+ return examPublisher;
+ }
+
+ public void setExamPublisher(String examPublisher) {
+ this.examPublisher = examPublisher;
+ }
+
+ public Integer getExamClassId() {
+ return examClassId;
+ }
+
+ public void setExamClassId(Integer examClassId) {
+ this.examClassId = examClassId;
+ }
+
+ public Integer getExamTime() {
+ return examTime;
+ }
+
+ public void setExamTime(Integer examTime) {
+ this.examTime = examTime;
+ }
+
+ public Date getExamStartTime() {
+ return examStartTime;
+ }
+
+ public void setExamStartTime(Date examStartTime) {
+ this.examStartTime = examStartTime;
+ }
+
+ public Date getExamEndTime() {
+ return examEndTime;
+ }
+
+ public void setExamEndTime(Date examEndTime) {
+ this.examEndTime = examEndTime;
+ }
+
+ public Integer getExamPaperId() {
+ return examPaperId;
+ }
+
+ public void setExamPaperId(Integer examPaperId) {
+ this.examPaperId = examPaperId;
+ }
+
+ public Integer getPage() {
+ return page;
+ }
+
+ public void setPage(Integer page) {
+ this.page = page;
+ }
+
+ public Integer getSize() {
+ return size;
+ }
+
+ public void setSize(Integer size) {
+ this.size = size;
+ }
+}
diff --git a/src/main/java/com/hqyj/vueproject/students/query/YuPaperAnswerQuery.java b/src/main/java/com/hqyj/vueproject/students/query/YuPaperAnswerQuery.java
new file mode 100644
index 0000000000000000000000000000000000000000..033eda96c5684951c1e26217babc8549e5c6677c
--- /dev/null
+++ b/src/main/java/com/hqyj/vueproject/students/query/YuPaperAnswerQuery.java
@@ -0,0 +1,78 @@
+package com.hqyj.vueproject.students.query;
+
+import java.util.List;
+
+/**
+ * @version 1.0
+ * @Author YuDrag
+ * @Date 2022/12/10 15:04
+ * @Description:
+ */
+public class YuPaperAnswerQuery {
+ private String exam;
+ private String userNum;
+ private List selectQuestions;
+ private List judgeQuestions;
+ private List blanksQuestions;
+ private List subjectiveQuestions;
+ private Integer questionScore;
+
+ public YuPaperAnswerQuery() {
+ }
+
+ public Integer getQuestionScore() {
+ return questionScore;
+ }
+
+ public void setQuestionScore(Integer questionScore) {
+ this.questionScore = questionScore;
+ }
+
+ public String getExam() {
+ return exam;
+ }
+
+ public void setExam(String exam) {
+ this.exam = exam;
+ }
+
+ public String getUserNum() {
+ return userNum;
+ }
+
+ public void setUserNum(String userNum) {
+ this.userNum = userNum;
+ }
+
+ public List getSelectQuestions() {
+ return selectQuestions;
+ }
+
+ public void setSelectQuestions(List selectQuestions) {
+ this.selectQuestions = selectQuestions;
+ }
+
+ public List getJudgeQuestions() {
+ return judgeQuestions;
+ }
+
+ public void setJudgeQuestions(List judgeQuestions) {
+ this.judgeQuestions = judgeQuestions;
+ }
+
+ public List getBlanksQuestions() {
+ return blanksQuestions;
+ }
+
+ public void setBlanksQuestions(List blanksQuestions) {
+ this.blanksQuestions = blanksQuestions;
+ }
+
+ public List getSubjectiveQuestions() {
+ return subjectiveQuestions;
+ }
+
+ public void setSubjectiveQuestions(List subjectiveQuestions) {
+ this.subjectiveQuestions = subjectiveQuestions;
+ }
+}
diff --git a/src/main/java/com/hqyj/vueproject/students/query/YuPaperDetailQuery.java b/src/main/java/com/hqyj/vueproject/students/query/YuPaperDetailQuery.java
new file mode 100644
index 0000000000000000000000000000000000000000..ad8acde9f4b675f7b98302ebc816a3b32e01ae7a
--- /dev/null
+++ b/src/main/java/com/hqyj/vueproject/students/query/YuPaperDetailQuery.java
@@ -0,0 +1,167 @@
+package com.hqyj.vueproject.students.query;
+
+import java.util.List;
+
+/**
+ * @version 1.0
+ * @Author YuDrag
+ * @Date 2022/12/7 19:27
+ * @Description:
+ */
+public class YuPaperDetailQuery {
+
+ private String questionsText;
+ private String questionsImg;
+ private Double questionScore;
+ private String answerStuAnswer;
+ private String questionsAnswerRight;
+ private String questionsAnswerOne;
+ private String questionsAnswerTwo;
+ private String questionsAnswerThree;
+ private String questionsAnswerFour;
+ private Integer questionsTypeId;
+ private Double answerScore;
+ private List emptyAnswer;
+
+ public YuPaperDetailQuery() {
+ }
+
+ public List getEmptyAnswer() {
+ return emptyAnswer;
+ }
+
+ public void setEmptyAnswer(List emptyAnswer) {
+ this.emptyAnswer = emptyAnswer;
+ }
+
+ public Double getAnswerScore() {
+ return answerScore;
+ }
+
+ public void setAnswerScore(Double answerScore) {
+ this.answerScore = answerScore;
+ }
+
+ public Integer getQuestionsTypeId() {
+ return questionsTypeId;
+ }
+
+ public void setQuestionsTypeId(Integer questionsTypeId) {
+ this.questionsTypeId = questionsTypeId;
+ }
+
+ public String getQuestionsText() {
+ return questionsText;
+ }
+
+ public void setQuestionsText(String questionsText) {
+ this.questionsText = questionsText;
+ }
+
+ public String getQuestionsImg() {
+ return questionsImg;
+ }
+
+ public void setQuestionsImg(String questionsImg) {
+ this.questionsImg = questionsImg;
+ }
+
+ public Double getQuestionScore() {
+ return questionScore;
+ }
+
+ public void setQuestionScore(Double questionScore) {
+ this.questionScore = questionScore;
+ }
+
+ public String getAnswerStuAnswer() {
+ return answerStuAnswer;
+ }
+
+ public void setAnswerStuAnswer(String answerStuAnswer) {
+ this.answerStuAnswer = answerStuAnswer;
+ }
+
+ public String getQuestionsAnswerRight() {
+ return questionsAnswerRight;
+ }
+
+ public void setQuestionsAnswerRight(String questionsAnswerRight) {
+ this.questionsAnswerRight = questionsAnswerRight;
+ }
+
+ public String getQuestionsAnswerOne() {
+ return questionsAnswerOne;
+ }
+
+ public void setQuestionsAnswerOne(String questionsAnswerOne) {
+ this.questionsAnswerOne = questionsAnswerOne;
+ }
+
+ public String getQuestionsAnswerTwo() {
+ return questionsAnswerTwo;
+ }
+
+ public void setQuestionsAnswerTwo(String questionsAnswerTwo) {
+ this.questionsAnswerTwo = questionsAnswerTwo;
+ }
+
+ public String getQuestionsAnswerThree() {
+ return questionsAnswerThree;
+ }
+
+ public void setQuestionsAnswerThree(String questionsAnswerThree) {
+ this.questionsAnswerThree = questionsAnswerThree;
+ }
+
+ public String getQuestionsAnswerFour() {
+ return questionsAnswerFour;
+ }
+
+ public void setQuestionsAnswerFour(String questionsAnswerFour) {
+ this.questionsAnswerFour = questionsAnswerFour;
+ }
+
+ @Override
+ public String toString() {
+ return "YuPaperDetailQuery{" +
+ "questionsText='" + questionsText + '\'' +
+ ", questionsImg='" + questionsImg + '\'' +
+ ", questionScore='" + questionScore + '\'' +
+ ", answerStuAnswer='" + answerStuAnswer + '\'' +
+ ", questionsAnswerRight='" + questionsAnswerRight + '\'' +
+ ", questionsAnswerOne='" + questionsAnswerOne + '\'' +
+ ", questionsAnswerTwo='" + questionsAnswerTwo + '\'' +
+ ", questionsAnswerThree='" + questionsAnswerThree + '\'' +
+ ", questionsAnswerFour='" + questionsAnswerFour + '\'' +
+ ", questionsTypeId=" + questionsTypeId +
+ ", answerScore=" + answerScore +
+ '}';
+ }
+
+ /**
+ * 将题目信息和hashcode进行关联,题目内容不一样题目就不一样
+ * @return int
+ */
+ @Override
+ public int hashCode() {
+ return this.getQuestionsText().hashCode();
+ }
+
+ /**
+ * 题目相同就是一样的题目
+ * @param obj obj
+ * @return boolean
+ */
+ @Override
+ public boolean equals(Object obj) {
+// 判断对象是否是YuPaperDetailQuery类型
+ if (obj instanceof YuPaperDetailQuery){
+ YuPaperDetailQuery query = (YuPaperDetailQuery) obj;
+ if (query.getQuestionsText().equals(this.getQuestionsText())){
+ return true;
+ }
+ }
+ return false;
+ }
+}
diff --git a/src/main/java/com/hqyj/vueproject/students/query/YuPaperQuery.java b/src/main/java/com/hqyj/vueproject/students/query/YuPaperQuery.java
new file mode 100644
index 0000000000000000000000000000000000000000..78e5cf88d81cdb29c200b75fa7588ce6e2f135e0
--- /dev/null
+++ b/src/main/java/com/hqyj/vueproject/students/query/YuPaperQuery.java
@@ -0,0 +1,110 @@
+package com.hqyj.vueproject.students.query;
+
+import java.util.List;
+
+/**
+ * @author YuDrag
+ * @version 1.0.0
+ * @Date 2022/12/05
+ * @Description:用于接收考试成绩以及排名
+ * @ClassName
+ */
+
+public class YuPaperQuery implements Comparable{
+
+ private Integer userId;
+ private Integer clazzId;
+ private Integer sortNum;
+ private Double value;
+ private Integer size;
+ private String stuNum;
+ private List paperIds;
+ private Integer paperId;
+
+ public YuPaperQuery() {
+ }
+
+ public List getPaperIds() {
+ return paperIds;
+ }
+
+ public void setPaperIds(List paperIds) {
+ this.paperIds = paperIds;
+ }
+
+ public Integer getPaperId() {
+ return paperId;
+ }
+
+ public void setPaperId(Integer paperId) {
+ this.paperId = paperId;
+ }
+
+ public String getStuNum() {
+ return stuNum;
+ }
+
+ public void setStuNum(String stuNum) {
+ this.stuNum = stuNum;
+ }
+
+ public Integer getClazzId() {
+ return clazzId;
+ }
+
+ public void setClazzId(Integer clazzId) {
+ this.clazzId = clazzId;
+ }
+
+ public Integer getUserId() {
+ return userId;
+ }
+
+ public void setUserId(Integer userId) {
+ this.userId = userId;
+ }
+
+ public Integer getSortNum() {
+ return sortNum;
+ }
+
+ public void setSortNum(Integer sortNum) {
+ this.sortNum = sortNum;
+ }
+
+ public Double getValue() {
+ return value;
+ }
+
+ public void setValue(Double value) {
+ this.value = value;
+ }
+
+ public Integer getSize() {
+ return size;
+ }
+
+ public void setSize(Integer size) {
+ this.size = size;
+ }
+
+// 重写比较方法
+ @Override
+ public int compareTo(YuPaperQuery o) {
+ return (int) (o.value - this.value);
+ }
+
+ @Override
+ public String toString() {
+ return "YuPaperQuery{" +
+ "userId=" + userId +
+ ", clazzId=" + clazzId +
+ ", sortNum=" + sortNum +
+ ", paperScore=" + value +
+ ", size=" + size +
+ ", stuNum='" + stuNum + '\'' +
+ ", paperIds=" + paperIds +
+ ", paperId=" + paperId +
+ '}';
+ }
+}
diff --git a/src/main/java/com/hqyj/vueproject/students/query/YuSearchData.java b/src/main/java/com/hqyj/vueproject/students/query/YuSearchData.java
new file mode 100644
index 0000000000000000000000000000000000000000..b28fc0d6400c02545841243c15d5fb24b2377151
--- /dev/null
+++ b/src/main/java/com/hqyj/vueproject/students/query/YuSearchData.java
@@ -0,0 +1,106 @@
+package com.hqyj.vueproject.students.query;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.util.Date;
+
+/**
+ * @version 1.0
+ * @Author YuDrag
+ * @Date 2022/12/3 15:26
+ * @Description:
+ */
+public class YuSearchData {
+
+ private Integer id;
+ @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+ private Date startTime;
+ @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+ private Date endTime;
+ private String examName;
+ private Integer examStatus;
+ private String userNum;
+
+ private Integer page;
+ private Integer size;
+
+ public YuSearchData() {
+ }
+
+ public String getUserNum() {
+ return userNum;
+ }
+
+ public void setUserNum(String userNum) {
+ this.userNum = userNum;
+ }
+
+ public Integer getExamStatus() {
+ return examStatus;
+ }
+
+ public void setExamStatus(Integer examStatus) {
+ this.examStatus = examStatus;
+ }
+
+ public String getExamName() {
+ return examName;
+ }
+
+ public void setExamName(String examName) {
+ this.examName = examName;
+ }
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public Date getStartTime() {
+ return startTime;
+ }
+
+ public void setStartTime(Date startTime) {
+ this.startTime = startTime;
+ }
+
+ public Date getEndTime() {
+ return endTime;
+ }
+
+ public void setEndTime(Date endTime) {
+ this.endTime = endTime;
+ }
+
+ public Integer getPage() {
+ return page;
+ }
+
+ public void setPage(Integer page) {
+ this.page = page;
+ }
+
+ public Integer getSize() {
+ return size;
+ }
+
+ public void setSize(Integer size) {
+ this.size = size;
+ }
+
+ @Override
+ public String toString() {
+ return "YuSearchData{" +
+ "id=" + id +
+ ", startTime=" + startTime +
+ ", endTime=" + endTime +
+ ", examName='" + examName + '\'' +
+ ", examStatus=" + examStatus +
+ ", page=" + page +
+ ", size=" + size +
+ '}';
+ }
+}
diff --git a/src/main/java/com/hqyj/vueproject/students/query/YuTakenExamQuery.java b/src/main/java/com/hqyj/vueproject/students/query/YuTakenExamQuery.java
new file mode 100644
index 0000000000000000000000000000000000000000..2df855c875b6796cc947f86232d301eba6ffec9f
--- /dev/null
+++ b/src/main/java/com/hqyj/vueproject/students/query/YuTakenExamQuery.java
@@ -0,0 +1,89 @@
+package com.hqyj.vueproject.students.query;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.util.Date;
+
+/**
+ * @version 1.0
+ * @Author YuDrag
+ * @Date 2022/12/3 14:05
+ * @Description:
+ */
+public class YuTakenExamQuery {
+
+ private String examName;
+
+ private Date examCreateTime;
+
+ @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+ private Date examStartTime;
+
+ @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+ private Date examEndTime;
+
+ private String subjectName;
+
+ private String paperName;
+
+ private Double paperScore;
+
+ public YuTakenExamQuery() {
+ }
+
+ public String getExamName() {
+ return examName;
+ }
+
+ public void setExamName(String examName) {
+ this.examName = examName;
+ }
+
+ public Date getExamCreateTime() {
+ return examCreateTime;
+ }
+
+ public void setExamCreateTime(Date examCreateTime) {
+ this.examCreateTime = examCreateTime;
+ }
+
+ public Date getExamStartTime() {
+ return examStartTime;
+ }
+
+ public void setExamStartTime(Date examStartTime) {
+ this.examStartTime = examStartTime;
+ }
+
+ public Date getExamEndTime() {
+ return examEndTime;
+ }
+
+ public void setExamEndTime(Date examEndTime) {
+ this.examEndTime = examEndTime;
+ }
+
+ public String getSubjectName() {
+ return subjectName;
+ }
+
+ public void setSubjectName(String subjectName) {
+ this.subjectName = subjectName;
+ }
+
+ public Double getPaperScore() {
+ return paperScore;
+ }
+
+ public void setPaperScore(Double paperScore) {
+ this.paperScore = paperScore;
+ }
+
+ public String getPaperName() {
+ return paperName;
+ }
+
+ public void setPaperName(String paperName) {
+ this.paperName = paperName;
+ }
+}
diff --git a/src/main/java/com/hqyj/vueproject/students/query/YuUserQuery.java b/src/main/java/com/hqyj/vueproject/students/query/YuUserQuery.java
new file mode 100644
index 0000000000000000000000000000000000000000..54658aa74b1d8a66bc2b257b1d081ef33c86729f
--- /dev/null
+++ b/src/main/java/com/hqyj/vueproject/students/query/YuUserQuery.java
@@ -0,0 +1,212 @@
+package com.hqyj.vueproject.students.query;
+
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.util.Date;
+
+/**
+ * @author YuDrag
+ * @version 1.0.0
+ * @Date 2022/11/29
+ * @Description
+ * @ClassName:User实体类
+ */
+public class YuUserQuery {
+
+ private Integer userId;
+ private Integer userNum;
+ private String userName;
+ private String userPassword;
+ private String userGender;
+ private Integer userAge;
+ @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+ private Date userBirthday;
+ @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+ private Date userUpdateTime;
+ private String userTel;
+ private String userImg;
+ private String stuClass;
+ private Integer roleId;
+ private String userRealName;
+ private String className;
+ private Integer userSubjectId;
+
+ private Integer page;
+ private Integer size;
+
+ /**
+ * @return
+ * 无参
+ */
+ public YuUserQuery() {
+ }
+
+ /**
+ * @param userId 用户id
+ * @param userNum 用户num
+ * @param userName 用户名
+ * @param userPassword 用户密码
+ * @param userGender 用户性别
+ * @param userAge 用户年龄
+ * @param userBirthday 用户生日
+ * @param userUpdateTime 用户更新时间
+ * @param userTel 用户电话号码
+ * @param userImg 用户img
+ * @param stuClass 学生班级
+ * @param roleId 角色id
+ * @param userRealName 学生名字
+ * @return
+ */
+ public YuUserQuery(Integer userId, Integer userNum, String userName, String userPassword, String userGender, Integer userAge, Date userBirthday, Date userUpdateTime, String userTel, String userImg, String stuClass, Integer roleId, String userRealName) {
+ this.userId = userId;
+ this.userNum = userNum;
+ this.userName = userName;
+ this.userPassword = userPassword;
+ this.userGender = userGender;
+ this.userAge = userAge;
+ this.userBirthday = userBirthday;
+ this.userUpdateTime = userUpdateTime;
+ this.userTel = userTel;
+ this.userImg = userImg;
+ this.stuClass = stuClass;
+ this.roleId = roleId;
+ this.userRealName = userRealName;
+ }
+
+ public Integer getUserSubjectId() {
+ return userSubjectId;
+ }
+
+ public void setUserSubjectId(Integer userSubjectId) {
+ this.userSubjectId = userSubjectId;
+ }
+
+ public String getClassName() {
+ return className;
+ }
+
+ public void setClassName(String className) {
+ this.className = className;
+ }
+
+ public Integer getUserId() {
+ return userId;
+ }
+
+ public void setUserId(Integer userId) {
+ this.userId = userId;
+ }
+
+ public Integer getUserNum() {
+ return userNum;
+ }
+
+ public void setUserNum(Integer userNum) {
+ this.userNum = userNum;
+ }
+
+ public String getUserName() {
+ return userName;
+ }
+
+ public void setUserName(String userName) {
+ this.userName = userName;
+ }
+
+ public String getUserPassword() {
+ return userPassword;
+ }
+
+ public void setUserPassword(String userPassword) {
+ this.userPassword = userPassword;
+ }
+
+ public String getUserGender() {
+ return userGender;
+ }
+
+ public void setUserGender(String userGender) {
+ this.userGender = userGender;
+ }
+
+ public Integer getUserAge() {
+ return userAge;
+ }
+
+ public void setUserAge(Integer userAge) {
+ this.userAge = userAge;
+ }
+
+ public Date getUserBirthday() {
+ return userBirthday;
+ }
+
+ public void setUserBirthday(Date userBirthday) {
+ this.userBirthday = userBirthday;
+ }
+
+ public Date getUserUpdateTime() {
+ return userUpdateTime;
+ }
+
+ public void setUserUpdateTime(Date userUpdateTime) {
+ this.userUpdateTime = userUpdateTime;
+ }
+
+ public String getUserTel() {
+ return userTel;
+ }
+
+ public void setUserTel(String userTel) {
+ this.userTel = userTel;
+ }
+
+ public String getUserImg() {
+ return userImg;
+ }
+
+ public void setUserImg(String userImg) {
+ this.userImg = userImg;
+ }
+
+ public String getStuClass() {
+ return stuClass;
+ }
+
+ public void setStuClass(String stuClass) {
+ this.stuClass = stuClass;
+ }
+
+ public Integer getRoleId() {
+ return roleId;
+ }
+
+ public void setRoleId(Integer roleId) {
+ this.roleId = roleId;
+ }
+
+ public String getUserRealName() {
+ return userRealName;
+ }
+
+ public void setUserRealName(String userRealName) {
+ this.userRealName = userRealName;
+ }
+
+ public Integer getPage() {
+ return page;
+ }
+
+ public void setPage(Integer page) {
+ this.page = page;
+ }
+
+ public Integer getSize() {
+ return size;
+ }
+
+ public void setSize(Integer size) {
+ this.size = size;
+ }
+}
diff --git a/src/main/java/com/hqyj/vueproject/students/service/Impl/YuPaperServiceImpl.java b/src/main/java/com/hqyj/vueproject/students/service/Impl/YuPaperServiceImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..918599d4ac66ed8dff352c52dd5cf28361a304a4
--- /dev/null
+++ b/src/main/java/com/hqyj/vueproject/students/service/Impl/YuPaperServiceImpl.java
@@ -0,0 +1,287 @@
+package com.hqyj.vueproject.students.service.Impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.hqyj.vueproject.pojo.*;
+import com.hqyj.vueproject.students.mapper.*;
+import com.hqyj.vueproject.students.query.YuPaperAnswerQuery;
+import com.hqyj.vueproject.students.query.YuPaperDetailQuery;
+import com.hqyj.vueproject.students.query.YuSearchData;
+import com.hqyj.vueproject.students.service.YuPaperService;
+import com.hqyj.vueproject.utils.ResultInfo;
+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.HashMap;
+import java.util.HashSet;
+import java.util.List;
+
+/**
+ * @version 1.0
+ * @Author YuDrag
+ * @Date 2022/12/7 17:26
+ * @Description:
+ */
+@Service
+public class YuPaperServiceImpl implements YuPaperService {
+
+ @Autowired
+ private YuPaperDetailQueryMapper yuPaperDetailQueryMapper;
+ @Autowired
+ private YuStuMapper yuStuMapper;
+ @Autowired
+ private YuExamMapper yuExamMapper;
+ @Autowired
+ private YuExamStatusMapper yuExamStatusMapper;
+ @Autowired
+ private YuAnswerMapper yuAnswerMapper;
+ @Autowired
+ private YuQuestionsMapper yuQuestionsMapper;
+
+ @Override
+ public ResultInfo selectPaperDetail(YuSearchData yuSearchData) {
+ String userNum = yuSearchData.getUserNum();
+ String examName = yuSearchData.getExamName();
+ User user = yuStuMapper.selectOne(new QueryWrapper().eq("user_num", yuSearchData.getUserNum()));
+// 查询的这张试卷的所有题目
+ List yuPaperDetailQueries =
+ yuPaperDetailQueryMapper.selectPaperDetail(userNum, user.getUserId(), examName);
+// 创建四个list用于接收不同类型的题目
+// 需要重写YuPaperDetailQuery的hashcode和equals方法
+ HashSet selectQue = new HashSet<>();
+ HashSet blanksQue = new HashSet<>();
+ HashSet subjectiveQue = new HashSet<>();
+ HashSet judgeQue = new HashSet<>();
+// 各个题型的总分
+ Double selectScore = 0.0;
+ Double blankScore = 0.0;
+ Double judgeScore = 0.0;
+ Double subjectiveScore = 0.0;
+
+// 学生各个题型的得分
+ Double selectStuScore = 0.0;
+ Double blankStuScore = 0.0;
+ Double judgeStuScore = 0.0;
+ Double subjectiveStuScore = 0.0;
+// 创建map返回给前端
+ for (YuPaperDetailQuery item:yuPaperDetailQueries) {
+ switch (item.getQuestionsTypeId()){
+// 1表示是选择题
+ case 1:
+ selectQue.add(item);
+ selectScore = selectScore + item.getQuestionScore();
+ selectStuScore = selectStuScore + item.getAnswerScore();
+ break;
+// 2是判断题
+ case 2:
+ judgeQue.add(item);
+ judgeScore = judgeScore + item.getQuestionScore();
+ judgeStuScore = judgeStuScore + item.getAnswerScore();
+ break;
+// 3是填空题
+ case 3:
+ blanksQue.add(item);
+ blankScore = blankScore + item.getQuestionScore();
+ blankStuScore = blankStuScore + item.getAnswerScore();
+ break;
+ // 其他的都是主观题
+ default:
+ subjectiveQue.add(item);
+ subjectiveScore = subjectiveScore + item.getQuestionScore();
+ subjectiveStuScore = subjectiveStuScore + item.getAnswerScore();
+ }
+
+ }
+// 题目的map
+ HashMap> stringListHashMap = new HashMap<>(16);
+// 得分的map,这里可以添加其他的信息
+ HashMap score = new HashMap<>(16);
+// 最终返回的map
+ HashMap map = new HashMap<>(16);
+// 每种题型的题目
+ stringListHashMap.put("select",selectQue);
+ stringListHashMap.put("blank",blanksQue);
+ stringListHashMap.put("judge",judgeQue);
+ stringListHashMap.put("subjective",subjectiveQue);
+// 各个题型的总分
+ score.put("selectScore",selectScore);
+ score.put("judgeScore",judgeScore);
+ score.put("blankScore",blankScore);
+ score.put("subjectiveScore",subjectiveScore);
+// 学生得分
+ score.put("selectStuScore",selectStuScore);
+ score.put("judgeStuScore",judgeStuScore);
+ score.put("blankStuScore",blankStuScore);
+ score.put("subjectiveStuScore",subjectiveStuScore);
+
+ map.put("Que",stringListHashMap);
+ map.put("score",score);
+
+ return new ResultInfo(ResultInfo.ResultStatus.SUCCESS.code, "success",map);
+ }
+
+
+ @Override
+ public ResultInfo selectUnTakenPaperDetail(YuSearchData yuSearchData) {
+ String userNum = yuSearchData.getUserNum();
+ String examName = yuSearchData.getExamName();
+ User user = yuStuMapper.selectOne(new QueryWrapper().eq("user_num", yuSearchData.getUserNum()));
+// 查询的这张试卷的所有题目
+ List yuPaperDetailQueries =
+ yuPaperDetailQueryMapper.selectUnTakenPaperDetail(user.getUserId(), examName);
+// 创建四个list用于接收不同类型的题目
+// 需要重写YuPaperDetailQuery的hashcode和equals方法
+ HashSet selectQue = new HashSet<>();
+ HashSet blanksQue = new HashSet<>();
+ HashSet subjectiveQue = new HashSet<>();
+ HashSet judgeQue = new HashSet<>();
+// 各个题型的总分
+ Double selectScore = 0.0;
+ Double blankScore = 0.0;
+ Double judgeScore = 0.0;
+ Double subjectiveScore = 0.0;
+
+// 学生各个题型的得分
+ Double selectStuScore = 0.0;
+ Double blankStuScore = 0.0;
+ Double judgeStuScore = 0.0;
+ Double subjectiveStuScore = 0.0;
+// 创建map返回给前端
+ for (YuPaperDetailQuery item:yuPaperDetailQueries) {
+// 对里面的每个题目都设置一个空的答案数组
+ item.setEmptyAnswer(new ArrayList<>());
+ switch (item.getQuestionsTypeId()){
+// 1表示是选择题
+ case 1:
+ selectQue.add(item);
+ selectScore = selectScore + item.getQuestionScore();
+ break;
+// 2是判断题
+ case 2:
+ judgeQue.add(item);
+ judgeScore = judgeScore + item.getQuestionScore();
+ break;
+// 3是填空题
+ case 3:
+ blanksQue.add(item);
+ blankScore = blankScore + item.getQuestionScore();
+ break;
+ // 其他的都是主观题
+ default:
+ subjectiveQue.add(item);
+ subjectiveScore = subjectiveScore + item.getQuestionScore();
+ }
+
+ }
+// 题目的map
+ HashMap> stringListHashMap = new HashMap<>(16);
+// 得分的map,这里可以添加其他的信息
+ HashMap score = new HashMap<>(16);
+// 最终返回的map
+ HashMap map = new HashMap<>(16);
+// 每种题型的题目
+ stringListHashMap.put("select",selectQue);
+ stringListHashMap.put("blank",blanksQue);
+ stringListHashMap.put("judge",judgeQue);
+ stringListHashMap.put("subjective",subjectiveQue);
+// 各个题型的总分
+ score.put("selectScore",selectScore);
+ score.put("judgeScore",judgeScore);
+ score.put("blankScore",blankScore);
+ score.put("subjectiveScore",subjectiveScore);
+
+ map.put("Que",stringListHashMap);
+ map.put("score",score);
+
+ return new ResultInfo(ResultInfo.ResultStatus.SUCCESS.code, "success",map);
+ }
+
+ @Override
+ public ResultInfo insertPaperAnswer(YuPaperAnswerQuery yuPaperAnswerQuery) {
+// 第一步将这个学生在这个原来的考试状态改成已考
+ String examName = yuPaperAnswerQuery.getExam();
+ String userNum = yuPaperAnswerQuery.getUserNum();
+// 查询考试的信息
+ Exam exam = yuExamMapper.selectOne(new QueryWrapper().eq("exam_name", examName));
+// 获取这个学生的信息
+ User user = yuStuMapper.selectOne(new QueryWrapper().eq("user_num", userNum));
+// 因为考试和学生绑定的关系是在发布考试的时候进行的新增
+// 所以我这里应该对其考试的状态进行修改
+ ExamStatus examStatus = new ExamStatus();
+ examStatus.setExamStuId(user.getUserId());
+ examStatus.setPaperName(exam.getExamPaperName());
+ examStatus.setExamStatus(1);
+ examStatus.setExamIsCorrect(0);
+ examStatus.setExamName(examName);
+ int update = yuExamStatusMapper.update(examStatus, new QueryWrapper()
+ .eq("exam_name", examStatus.getExamName())
+ .eq("exam_stu_id", examStatus.getExamStuId()));
+
+// 第二步循环插入answer表
+// 循环选择题答案
+ List selectQuestions = yuPaperAnswerQuery.getSelectQuestions();
+ List blanksQuestions = yuPaperAnswerQuery.getBlanksQuestions();
+ List judgeQuestions = yuPaperAnswerQuery.getJudgeQuestions();
+ List subjectiveQuestions = yuPaperAnswerQuery.getSubjectiveQuestions();
+ Integer select = insertAnswer(selectQuestions, examName, userNum, exam);
+ Integer blank = insertAnswer(blanksQuestions, examName, userNum, exam);
+ Integer judge = insertAnswer(judgeQuestions, examName, userNum, exam);
+ Integer subjective = 0;
+ for (YuPaperDetailQuery item: subjectiveQuestions) {
+ Answer answer = new Answer();
+// 学生答案
+ answer.setAnswerStuAnswer(item.getAnswerStuAnswer());
+// 考试名称
+ answer.setAnswerExamName(examName);
+// 试卷名称
+ answer.setAnswerPaperName(exam.getExamPaperName());
+// 通过试题题目查找题目的id
+ Questions questions =
+ yuQuestionsMapper.selectOne(new QueryWrapper().eq("questions_text", item.getQuestionsText()));
+// 题目id
+ answer.setAnswerQuestionId(questions.getQuestionsId());
+// 正确答案
+ answer.setAnswerRight(questions.getQuestionsAnswerRight());
+// 学号
+ answer.setAnswerStuNum(userNum);
+// 设置分数
+ answer.setAnswerScore(null);
+// 执行插入操作
+ subjective = yuAnswerMapper.insert(answer);
+ }
+ Integer all = select + blank + judge + subjective;
+ return new ResultInfo(ResultInfo.ResultStatus.SUCCESS.code, "success",all);
+ }
+
+ public Integer insertAnswer(List selectQuestions,String examName,String userNum,Exam exam){
+ Integer result = 0;
+ for (YuPaperDetailQuery item: selectQuestions) {
+ Answer answer = new Answer();
+// 学生答案
+ answer.setAnswerStuAnswer(item.getAnswerStuAnswer());
+// 考试名称
+ answer.setAnswerExamName(examName);
+// 试卷名称
+ answer.setAnswerPaperName(exam.getExamPaperName());
+// 通过试题题目查找题目的id
+ Questions questions =
+ yuQuestionsMapper.selectOne(new QueryWrapper().eq("questions_text", item.getQuestionsText()));
+// 题目id
+ answer.setAnswerQuestionId(questions.getQuestionsId());
+// 正确答案
+ answer.setAnswerRight(questions.getQuestionsAnswerRight());
+// 学号
+ answer.setAnswerStuNum(userNum);
+// 设置分数
+// 判断如果学生答案和正确答案相同那么就直接满分
+ if (item.getAnswerStuAnswer().equals(questions.getQuestionsAnswerRight())){
+// 设置得分为当前试题的得分
+ answer.setAnswerScore(item.getQuestionScore());
+ }
+// 执行插入操作
+ result = yuAnswerMapper.insert(answer);
+ }
+ return result;
+ }
+}
diff --git a/src/main/java/com/hqyj/vueproject/students/service/Impl/YuScoreServiceImpl.java b/src/main/java/com/hqyj/vueproject/students/service/Impl/YuScoreServiceImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..75eaf3b8fcce1147323dbd97f87e0b75ae467ca1
--- /dev/null
+++ b/src/main/java/com/hqyj/vueproject/students/service/Impl/YuScoreServiceImpl.java
@@ -0,0 +1,107 @@
+package com.hqyj.vueproject.students.service.Impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.hqyj.vueproject.pojo.Exam;
+import com.hqyj.vueproject.pojo.Score;
+import com.hqyj.vueproject.pojo.User;
+import com.hqyj.vueproject.students.mapper.*;
+import com.hqyj.vueproject.students.query.*;
+import com.hqyj.vueproject.students.service.YuScoreService;
+import com.hqyj.vueproject.utils.ResultInfo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.*;
+
+/**
+ * @version 1.0
+ * @Author YuDrag
+ * @Date 2022/11/30 9:26
+ * @Description:
+ */
+@Service
+public class YuScoreServiceImpl implements YuScoreService {
+
+ @Autowired
+ private YuStuMapper yuStuMapper;
+ @Autowired
+ private YuScoreMapper yuScoreMapper;
+ @Autowired
+ private YuTakenExamQueryMapper yuTakenExamQueryMapper;
+ @Autowired
+ private YuExamMapper yuExamMapper;
+
+ /**
+ *
+ * @return {@link List }<{@link Score }>
+ */
+ @Override
+ public ResultInfo historyScoreSelectByUserId(YuPaperQuery yuPaperQuery){
+// 根据传回来的stuNum查询这个用户的信息
+ User stu = yuStuMapper.selectOne(new QueryWrapper().eq("user_num", yuPaperQuery.getStuNum()));
+// 在通过size查出这个学生最近的考试,个数有size确定
+// integers就是该学生最近的所有考试
+ List names = yuExamMapper.selectExamByUserIdAndSize(stu.getUserId(),yuPaperQuery.getSize());
+// 创建一个集合用于存储学号以及成绩排名信息
+// 根据阿里的开发手册,如果无法确认大小就按照16进行处理
+ HashMap map = new HashMap<>(16);
+// 存放考试名称
+ List examName = new ArrayList<>();
+// 存放排名信息
+ List scores = new ArrayList<>();
+// 对paperIds进行循环查询每一次考试的该班的成绩
+
+ for (String paperName:names) {
+// 通过paperId获取所有的考试名称
+ Exam exam = yuExamMapper.selectExamByPaperName(paperName);
+// 查询这个班级的所有的成绩以及对应的学号
+ List yuPaperQueries = yuScoreMapper.selectClazzScores(Integer.valueOf(stu.getClazzId()), exam.getExamName());
+ Collections.sort(yuPaperQueries);
+ for (YuPaperQuery item:yuPaperQueries) {
+// 如果传回的学号和这个学号相等,那么就代表是对应学生的成绩,并且提取排名
+ if (item.getStuNum().equals(yuPaperQuery.getStuNum())){
+// 这就是该生在某次考试在班级的排名
+ YuPaperQuery newQuery= new YuPaperQuery();
+ newQuery.setStuNum(item.getStuNum());
+ newQuery.setSortNum(yuPaperQueries.indexOf(item)+1);
+ newQuery.setValue(item.getValue());
+ examName.add(exam.getExamName());
+ scores.add(newQuery);
+ }
+ }
+ }
+// 所有数据添加完成之后,放到map
+ map.put("examName",examName);
+ map.put("scores",scores);
+ System.out.println(map);
+ return new ResultInfo(ResultInfo.ResultStatus.SUCCESS.code, "success",map);
+ }
+
+ /**
+ * 利用id进行查询学生的已考考试
+ * @param userId 用户id
+ * @return {@link ResultInfo }
+ */
+ @Override
+ public ResultInfo takenExams(Integer userId, YuSearchData data) {
+ if (data.getExamStatus() == 1){
+ Page page = new Page<>(data.getPage(),data.getSize());
+ Page result = yuTakenExamQueryMapper.selectTakenExams(page,userId,data);
+ return new ResultInfo(ResultInfo.ResultStatus.SUCCESS.code,ResultInfo.ResultStatus.SUCCESS.msg,result);
+ }else {
+// 0则查询未考的考试
+ Page page = new Page<>(data.getPage(),data.getSize());
+ Page result = yuTakenExamQueryMapper.selectUnTakenExams(page,userId,data);
+ return new ResultInfo(ResultInfo.ResultStatus.SUCCESS.code,ResultInfo.ResultStatus.SUCCESS.msg,result);
+ }
+ }
+
+ @Override
+ public ResultInfo unTakenExams(Integer userId, YuSearchData data) {
+ Page page = new Page<>(data.getPage(),data.getSize());
+ Page result = yuTakenExamQueryMapper.selectUnTakenExams(page,userId,data);
+ return new ResultInfo(ResultInfo.ResultStatus.SUCCESS.code,ResultInfo.ResultStatus.SUCCESS.msg,result);
+ }
+}
diff --git a/src/main/java/com/hqyj/vueproject/students/service/Impl/YuStuServiceImpl.java b/src/main/java/com/hqyj/vueproject/students/service/Impl/YuStuServiceImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..cd26690fa1a34d72f534b88094a6daefcad186a0
--- /dev/null
+++ b/src/main/java/com/hqyj/vueproject/students/service/Impl/YuStuServiceImpl.java
@@ -0,0 +1,53 @@
+package com.hqyj.vueproject.students.service.Impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.hqyj.vueproject.pojo.Clazz;
+import com.hqyj.vueproject.pojo.User;
+import com.hqyj.vueproject.students.mapper.YuClassMapper;
+import com.hqyj.vueproject.students.mapper.YuStuMapper;
+import com.hqyj.vueproject.students.mapper.YuUserQueryMapper;
+import com.hqyj.vueproject.students.query.YuUserQuery;
+import com.hqyj.vueproject.students.service.YuStuService;
+import com.hqyj.vueproject.utils.ResultInfo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * @version 1.0
+ * @Author YuDrag
+ * @Date 2022/12/3 10:52
+ * @Description:
+ */
+@Service
+public class YuStuServiceImpl implements YuStuService {
+
+ @Autowired
+ private YuStuMapper yuStuMapper;
+ @Autowired
+ private YuUserQueryMapper yuUserQueryMapper;
+ /**
+ * 修改学生用户信息
+ * @param user 用户
+ * @return {@link ResultInfo }
+ */
+ @Override
+ public ResultInfo updateStudent(User user) {
+ int result = yuStuMapper.update(user, new QueryWrapper()
+ .eq("user_id",user.getUserId()));
+ if (result > 0){
+ return new ResultInfo(ResultInfo.ResultStatus.SUCCESS.code, ResultInfo.ResultStatus.SUCCESS.msg,user);
+ }
+ return new ResultInfo(ResultInfo.ResultStatus.FAILED.code, ResultInfo.ResultStatus.FAILED.msg,user);
+ }
+
+ /**
+ * userID查询user
+ * @param userId 用户id
+ * @return {@link ResultInfo }
+ */
+ @Override
+ public ResultInfo selectStudent(Integer userId) {
+ YuUserQuery yuUserQuery = yuUserQueryMapper.selectStudentOne(userId);
+ return new ResultInfo(ResultInfo.ResultStatus.SUCCESS.code, ResultInfo.ResultStatus.SUCCESS.msg,yuUserQuery);
+ }
+}
diff --git a/src/main/java/com/hqyj/vueproject/students/service/YuPaperService.java b/src/main/java/com/hqyj/vueproject/students/service/YuPaperService.java
new file mode 100644
index 0000000000000000000000000000000000000000..b234ddfe99f608af366677990c6e4dc2f43061e7
--- /dev/null
+++ b/src/main/java/com/hqyj/vueproject/students/service/YuPaperService.java
@@ -0,0 +1,19 @@
+package com.hqyj.vueproject.students.service;
+
+import com.hqyj.vueproject.students.query.YuPaperAnswerQuery;
+import com.hqyj.vueproject.students.query.YuSearchData;
+import com.hqyj.vueproject.utils.ResultInfo;
+
+/**
+ * @version 1.0
+ * @Author YuDrag
+ * @Date 2022/12/7 17:25
+ * @Description:
+ */
+public interface YuPaperService {
+ ResultInfo selectPaperDetail(YuSearchData yuSearchData);
+
+ ResultInfo selectUnTakenPaperDetail(YuSearchData yuSearchData);
+
+ ResultInfo insertPaperAnswer(YuPaperAnswerQuery yuPaperAnswerQuery);
+}
diff --git a/src/main/java/com/hqyj/vueproject/students/service/YuScoreService.java b/src/main/java/com/hqyj/vueproject/students/service/YuScoreService.java
new file mode 100644
index 0000000000000000000000000000000000000000..7a9d23fa3a2e13516935a2b91d00200f7902c73b
--- /dev/null
+++ b/src/main/java/com/hqyj/vueproject/students/service/YuScoreService.java
@@ -0,0 +1,44 @@
+package com.hqyj.vueproject.students.service;
+
+import com.hqyj.vueproject.pojo.User;
+import com.hqyj.vueproject.students.query.YuExamQuery;
+import com.hqyj.vueproject.students.query.YuPaperQuery;
+import com.hqyj.vueproject.students.query.YuSearchData;
+import com.hqyj.vueproject.students.query.YuUserQuery;
+import com.hqyj.vueproject.utils.ResultInfo;
+
+/**
+ * @version 1.0
+ * @Author YuDrag
+ * @Date 2022/11/30 9:26
+ * @Description:
+ */
+public interface YuScoreService {
+
+ /**
+ * userId查询历史成绩以及每次考试排名
+ * @param yuPaperQuery 成绩查询Query
+ * @return {@link ResultInfo }
+ */
+ ResultInfo historyScoreSelectByUserId(YuPaperQuery yuPaperQuery);
+
+
+ /**
+ * 根据用户id和时间范围以及名称范围查询已考考试
+ * @param userId 用户id
+ * @param data 数据
+ * @return {@link ResultInfo }
+ */
+ ResultInfo takenExams(Integer userId, YuSearchData data);
+
+ /**
+ * 根据用户id和时间范围以及名称范围查询已考考试
+ * @param userId 用户id
+ * @param data 数据
+ * @return {@link ResultInfo }
+ */
+ ResultInfo unTakenExams(Integer userId, YuSearchData data);
+
+
+
+}
diff --git a/src/main/java/com/hqyj/vueproject/students/service/YuStuService.java b/src/main/java/com/hqyj/vueproject/students/service/YuStuService.java
new file mode 100644
index 0000000000000000000000000000000000000000..811b30b0dcf4abe28e5efeb881e19ae4a4622a6d
--- /dev/null
+++ b/src/main/java/com/hqyj/vueproject/students/service/YuStuService.java
@@ -0,0 +1,27 @@
+package com.hqyj.vueproject.students.service;
+
+import com.hqyj.vueproject.pojo.User;
+import com.hqyj.vueproject.utils.ResultInfo;
+
+/**
+ * @version 1.0
+ * @Author YuDrag
+ * @Date 2022/12/3 10:51
+ * @Description:
+ */
+public interface YuStuService {
+
+ /**
+ * 修改学生用户信息
+ * @param user 用户
+ * @return {@link ResultInfo }
+ */
+ ResultInfo updateStudent(User user);
+
+ /**
+ * userId查询用户
+ * @param userId 用户id
+ * @return {@link ResultInfo }
+ */
+ ResultInfo selectStudent(Integer userId);
+}
diff --git a/src/main/java/com/hqyj/vueproject/utils/JwtUtil.java b/src/main/java/com/hqyj/vueproject/utils/JwtUtil.java
deleted file mode 100644
index 97add99efd8e2f74d5e577dcc8fec1c7c28e0501..0000000000000000000000000000000000000000
--- a/src/main/java/com/hqyj/vueproject/utils/JwtUtil.java
+++ /dev/null
@@ -1,100 +0,0 @@
-package com.hqyj.vueproject.utils;
-
-import com.auth0.jwt.JWT;
-import com.auth0.jwt.algorithms.Algorithm;
-import com.auth0.jwt.interfaces.Claim;
-import com.auth0.jwt.interfaces.DecodedJWT;
-import com.auth0.jwt.interfaces.JWTVerifier;
-import com.hqyj.vueproject.pojo.User;
-
-import java.util.Date;
-
-/**
- * @version 1.0
- * @Author YuDrag
- * @Date 2022/11/26 16:53
- * @Description:
- */
-public class JwtUtil {
- /**
- * @Description:过期时间,毫秒
- * @see Long
- */
- private static final Long EXPIRES_TIME = 24 * 60 * 60 * 1000L;
- public static final String TOKEN_SALT = "JiangHu";
-
- /**
- * -创建用户令牌
- */
- public static String createUserToken(User user, long expTime) {
- Date currentDate = new Date();
- Date expDate = new Date(System.currentTimeMillis() + expTime);
-
- // 签发对象
- return JWT.create().withAudience(user.getId() + "")
- // 发行时间
- .withIssuedAt(currentDate)
- // 有效期
- .withExpiresAt(expDate)
- // Payload 载荷,可按官方推荐,也可自定义,可有多个
- .withClaim("id", user.getId())
- .withClaim("userName", user.getUserName())
- .withClaim("userImage", user.getUserImage())
- // 使用 HMAC256 加密算法,生成签名
- .sign(Algorithm.HMAC256(user.getId() + TOKEN_SALT));
- }
-
- public static String createUserToken(User user) {
- return createUserToken(user, EXPIRES_TIME);
- }
-
- /**
- * - 获取令牌中的签发对象
- */
- public static String getAudience(String token) {
- String audience = null;
- try {
- audience = JWT.decode(token).getAudience().get(0);
- } catch (Exception e) {
- e.printStackTrace();
- }
- return audience;
- }
-
- /**
- * - 用签发对象验证令牌
- */
- public static DecodedJWT verifyToken(String token, String secret) {
- DecodedJWT decodedJWT = null;
- try {
- JWTVerifier jWTVerifier = JWT.require(Algorithm.HMAC256(secret + TOKEN_SALT)).build();
- decodedJWT = jWTVerifier.verify(token);
- } catch (Exception e) {
- e.printStackTrace();
- }
-
- return decodedJWT;
- }
-
- /**
- * - 根据名字获取载荷内容
- */
- public static Claim getClaimByName(String token, String claimName) {
- return JWT.decode(token).getClaim(claimName);
- }
-
- public static void main(String[] args) {
- User user = new User();
- user.setId(1);
- user.setUserName("HuJiang");
- user.setUserImage("http://www.sfac.xyz:8000/images/news/1668577428989.jpg");
- String token = JwtUtil.createUserToken(user);
- System.out.println(token);
- System.out.println(JwtUtil.verifyToken(token, user.getId() + "").getClaims());
- System.out.println(JwtUtil.verifyToken(token, "2"));
- System.out.println(JwtUtil.getAudience(token));
- System.out.println(JwtUtil.getClaimByName(token, "id"));
- System.out.println(JwtUtil.getClaimByName(token, "userName"));
- System.out.println(JwtUtil.getClaimByName(token, "userImage"));
- }
-}
diff --git a/src/main/java/com/hqyj/vueproject/utils/ResultInfo.java b/src/main/java/com/hqyj/vueproject/utils/ResultInfo.java
new file mode 100644
index 0000000000000000000000000000000000000000..23dc2d44f3d282e1b169c0f77786c1efdee3d3bd
--- /dev/null
+++ b/src/main/java/com/hqyj/vueproject/utils/ResultInfo.java
@@ -0,0 +1,76 @@
+package com.hqyj.vueproject.utils;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author YuDrag
+ * @version 1.0.0
+ * @Date 2022/12/08
+ * @Description
+ * @ClassName
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class ResultInfo {
+ private Integer status;
+ private String msg;
+ private Object data;
+
+ public ResultInfo(Integer status, String msg) {
+ this.status = status;
+ this.msg = msg;
+ }
+
+ /**
+ * @author YuDrag
+ * @version 1.0.0
+ * @Date 2022/12/01
+ * @Description:结果集状态码
+ * @ClassName
+ */
+ public enum ResultStatus {
+
+ /**
+ * 表示状态码
+ */
+ SUCCESS(200,"success"),
+ FAILED(500,"Fail"),
+ Login_Num(503,"学号不存在"),
+ Login_Role(504,"角色选择错误"),
+ Login_Pass(505,"密码错误"),
+ Question_Add(506,"试题添加错误"),
+ Exam_Add(507,"试卷生成错误"),
+ Exam_Name(508,"试卷名重复"),
+ ;
+
+ public Integer code;
+ public String msg;
+
+ private ResultStatus(int code) {
+ this.code = code;
+ }
+ private ResultStatus(int code,String msg){
+ this.code = code;
+ this.msg = msg;
+ }
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getMsg() {
+ return msg;
+ }
+
+ public void setMsg(String msg) {
+ this.msg = msg;
+ }
+ }
+}
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 8bac7f9aac89419d86d6fed30d23d777e89fb8b8..ebec30de414d66c249b33ab7bf44b23222cef54a 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -5,9 +5,9 @@ server.port = 8080
#\u9A7C\u5CF0\u547D\u540D\u6620\u5C04
mybatis-plus.configuration.map-underscore-to-camel-case=true
#\u8D77\u522B\u540D
-mybatis-plus.type-aliases-package=com.YuDrag.pojo
+mybatis-plus.type-aliases-package=com.hqyj.vueproject.pojo;com.hqyj.vueproject.students.query
#\u6307\u5B9Axml\u6587\u4EF6
-mybatis-plus.mapper-locations=classpath:mapper/*Mapper.xml
+mybatis-plus.mapper-locations=classpath:static/mapper/*Mapper.xml
# \u63A7\u5236\u53F0sql\u6253\u5370
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
diff --git a/src/main/resources/static/mapper/YuExamMapper.xml b/src/main/resources/static/mapper/YuExamMapper.xml
new file mode 100644
index 0000000000000000000000000000000000000000..456ce24c9b382567f20e38e7baa568aa3929e9a3
--- /dev/null
+++ b/src/main/resources/static/mapper/YuExamMapper.xml
@@ -0,0 +1,45 @@
+
+
+
+
+
+ SELECT
+ *
+ FROM
+ exam,exam_status
+
+ AND exam_status.exam_name = exam.exam_name
+
+ AND exam_status.exam_stu_id = #{userId}
+
+
+ AND exam_status.exam_status = #{examStatus}
+
+
+
+
+
+ select
+ exam.exam_name
+ FROM
+ exam,paper
+ WHERE
+ paper.paper_name = #{paperName}
+ AND
+ paper.paper_name = exam.exam_paper_name
+
+
+
+ SELECT
+ paper.paper_name
+ FROM
+ exam,paper,user,exam_status
+ WHERE
+ exam.exam_paper_name = paper.paper_name
+ AND exam.exam_name = exam_status.exam_name
+ AND exam_status.exam_stu_id =`user`.user_id = #{userId}
+ ORDER BY exam.exam_create_time DESC LIMIT 0,#{size}
+
+
\ No newline at end of file
diff --git a/src/main/resources/static/mapper/YuPaperDetailMapper.xml b/src/main/resources/static/mapper/YuPaperDetailMapper.xml
new file mode 100644
index 0000000000000000000000000000000000000000..acc556c03fec0c61734b09b5931dfbd6e9de593e
--- /dev/null
+++ b/src/main/resources/static/mapper/YuPaperDetailMapper.xml
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SELECT
+ paper_question.question_score,questions.questions_text,questions.questions_img,
+ questions_answer_one,questions_answer_two,questions_answer_three,
+ questions_answer_four,questions_answer_right,answer.answer_stu_answer,answer.answer_score,questions.questions_type_id
+ FROM
+ exam_status,paper_question,questions,answer
+ WHERE
+ exam_status.exam_stu_id = #{userId}
+ AND
+ exam_status.exam_name = #{examName}
+ AND
+ paper_question.paper_name = exam_status.paper_name
+ AND
+ questions.questions_id = paper_question.question_id
+ AND
+ answer.answer_exam_name = exam_status.exam_name
+ AND
+ answer.answer_stu_num = #{userNum}
+ AND
+ answer.answer_question_id = paper_question.question_id
+ AND
+ exam_status.paper_name = answer.answer_paper_name
+
+
+
+ SELECT
+ paper_question.question_score,questions.questions_text,questions.questions_img,
+ questions_answer_one,questions_answer_two,questions_answer_three,
+ questions_answer_four,questions.questions_type_id
+ FROM
+ exam_status,paper_question,questions
+ WHERE
+ exam_status.exam_stu_id = #{userId}
+ AND
+ exam_status.exam_name = #{examName}
+ AND
+ paper_question.paper_name = exam_status.paper_name
+ AND
+ questions.questions_id = paper_question.question_id
+
+
\ No newline at end of file
diff --git a/src/main/resources/static/mapper/YuScoreMapper.xml b/src/main/resources/static/mapper/YuScoreMapper.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ed06be74b4eb9c58cf2009fae0e3ad39d2164c32
--- /dev/null
+++ b/src/main/resources/static/mapper/YuScoreMapper.xml
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SELECT
+ *
+ FROM
+ score
+
+
+ score_stu_name like concat('%',#{userName},'%')
+
+
+
+
+
+ SELECT
+ score.score,score.score_stu_num
+ FROM
+ score,`user`
+ WHERE
+ user.clazz_id = #{clazzId}
+ AND
+ user.user_num = score.score_stu_num
+ AND
+ score.score_exam_name = #{examName}
+
+
\ No newline at end of file
diff --git a/src/main/resources/static/mapper/YuTakenExamQueryMapper.xml b/src/main/resources/static/mapper/YuTakenExamQueryMapper.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c305fa522b11c36d7e83ab89fe55f1b734efa61c
--- /dev/null
+++ b/src/main/resources/static/mapper/YuTakenExamQueryMapper.xml
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SELECT
+ exam.exam_name,
+ exam.exam_start_time,
+ exam.exam_end_time,
+ exam.exam_create_time,
+ `subject`.subject_name,
+ paper.paper_name,
+ score.score
+ FROM
+ exam,`user`,exam_status,`subject`,paper,score
+
+ `user`.user_id = exam_status.exam_stu_id
+ AND
+ `user`.user_id = #{userId}
+ AND
+ exam.exam_name = exam_status.exam_name
+ AND
+ exam.exam_subject_id = `subject`.subject_id
+ AND
+ exam.exam_paper_name = paper.paper_name
+ AND
+ score.score_exam_name = exam_status.exam_name
+
+ AND exam.exam_name LIKE CONCAT("%",#{ searchData.examName},"%")
+
+
+ AND exam.exam_create_time >= #{searchData.startTime}
+
+
+ AND exam.exam_create_time <= #{searchData.endTime}
+
+
+ AND exam_status.exam_status = #{searchData.examStatus}
+
+
+
+
+
+
+ SELECT
+ exam.exam_name,
+ exam.exam_start_time,
+ exam.exam_end_time,
+ exam.exam_create_time,
+ `subject`.subject_name,
+ paper.paper_name
+ FROM
+ exam,`user`,exam_status,`subject`,paper
+
+ `user`.user_id = exam_status.exam_stu_id
+ AND
+ `user`.user_id = #{userId}
+ AND
+ exam.exam_name = exam_status.exam_name
+ AND
+ exam.exam_subject_id = `subject`.subject_id
+ AND
+ exam.exam_paper_name = paper.paper_name
+
+ AND exam.exam_name LIKE CONCAT("%",#{ searchData.examName},"%")
+
+
+ AND exam.exam_create_time >= #{searchData.startTime}
+
+
+ AND exam.exam_create_time <= #{searchData.endTime}
+
+
+ AND exam_status.exam_status = #{searchData.examStatus}
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/static/mapper/YuUserMapper.xml b/src/main/resources/static/mapper/YuUserMapper.xml
new file mode 100644
index 0000000000000000000000000000000000000000..69d1437d422342f5c2999738d979590c65a51b19
--- /dev/null
+++ b/src/main/resources/static/mapper/YuUserMapper.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/static/mapper/YuUserQueryMapper.xml b/src/main/resources/static/mapper/YuUserQueryMapper.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5463c95ef16db8dc141767c77939465bb32df7f9
--- /dev/null
+++ b/src/main/resources/static/mapper/YuUserQueryMapper.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SELECT
+ `user`.*,
+ clazz.clazz_id AS cid,
+ clazz.class_name
+ FROM
+ `user`,
+ clazz
+ WHERE
+ `user`.user_id = 1
+ AND
+ `user`.clazz_id = clazz.clazz_id
+
+
+
\ No newline at end of file
diff --git a/src/test/java/com/hqyj/vueproject/VueProjectApplicationTests.java b/src/test/java/com/hqyj/vueproject/VueProjectApplicationTests.java
index abbf7c95b6dd2be6f67706c905c452288799af05..594fcc7c363f5c651a4961cdfd9d889c8f9b858e 100644
--- a/src/test/java/com/hqyj/vueproject/VueProjectApplicationTests.java
+++ b/src/test/java/com/hqyj/vueproject/VueProjectApplicationTests.java
@@ -1,13 +1,61 @@
package com.hqyj.vueproject;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.hqyj.vueproject.students.mapper.YuExamMapper;
+import com.hqyj.vueproject.students.mapper.YuPaperDetailQueryMapper;
+import com.hqyj.vueproject.students.mapper.YuPaperMapper;
+import com.hqyj.vueproject.students.mapper.YuScoreMapper;
+import com.hqyj.vueproject.students.query.YuPaperDetailQuery;
+import com.hqyj.vueproject.students.query.YuPaperQuery;
+import com.hqyj.vueproject.students.query.YuSearchData;
+import com.hqyj.vueproject.students.service.YuPaperService;
+import com.hqyj.vueproject.students.service.YuScoreService;
+import com.hqyj.vueproject.utils.ResultInfo;
import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
@SpringBootTest
class VueProjectApplicationTests {
+ @Autowired
+ private YuScoreMapper yuScoreMapper;
+ @Autowired
+ private YuScoreService yuScoreService;
+ @Autowired
+ private YuExamMapper yuExamMapper;
+ @Autowired
+ private YuPaperDetailQueryMapper yuPaperDetailQueryMapper;
+ @Autowired
+ private YuPaperMapper yuPaperMapper;
+ @Autowired
+ private YuPaperService yuPaperService;
+
+ @Test
+ void contextLoads() throws ParseException {
+ YuPaperQuery yuPaperQuery = new YuPaperQuery();
+ ArrayList integers = new ArrayList<>();
+ integers.add(7);
+ integers.add(8);
+ integers.add(9);
+ integers.add(10);
+ yuPaperQuery.setPaperIds(integers);
+ yuPaperQuery.setClazzId(1);
+ yuPaperQuery.setStuNum("1");
+ yuScoreService.historyScoreSelectByUserId(yuPaperQuery);
+ }
@Test
- void contextLoads() {
+ void contextLoads1() {
+ YuSearchData yuSearchData = new YuSearchData();
+ yuSearchData.setUserNum("1");
+ yuSearchData.setExamName("数学考试");
+ ResultInfo resultInfo = yuPaperService.selectUnTakenPaperDetail(yuSearchData);
}
}