From f170fadf396e2f368c9baa3ac37a7d1ee5cc8b72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B19040229=E8=B0=AD=E6=B0=B8=E9=94=8B?= Date: Mon, 19 Jul 2021 16:20:34 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=B7=BB=E5=8A=A0.gitignore=20=E5=BF=BD?= =?UTF-8?q?=E7=95=A5.idea/?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f5c97eb --- /dev/null +++ b/.gitignore @@ -0,0 +1,20 @@ + +# idea ignore +.idea/ +*.ipr +*.iws +.mymetadata +.checkstyle +.classpath +.project +.class +.war +.zip +.rar +*.iml +.settings/* +/indexes/* +/target/* +/src/main/webapp/WEB-INF/classes/* +/src/main/webapp/userfiles/* +/target/ \ No newline at end of file From 47102180eabb511eb1d1d408a14100e1d00c9c3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B19040229=E8=B0=AD=E6=B0=B8=E9=94=8B?= Date: Mon, 19 Jul 2021 16:29:04 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BA=86Issuer=E9=83=A8?= =?UTF-8?q?=E5=88=86=E5=8A=9F=E8=83=BD=20-=E8=AF=95=E5=8D=B7=E7=AE=A1?= =?UTF-8?q?=E7=90=86=20-=E9=A2=98=E7=9B=AE=E7=AE=A1=E7=90=86=20-=E8=AF=95?= =?UTF-8?q?=E5=8D=B7=E7=AD=94=E6=A1=88=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/.gitignore | 8 - .idea/codeStyles/codeStyleConfig.xml | 5 - .idea/compiler.xml | 22 -- .idea/encodings.xml | 6 - .idea/jarRepositories.xml | 20 -- .idea/jsLibraryMappings.xml | 6 - .idea/misc.xml | 13 -- .idea/modules.xml | 8 - .idea/uiDesigner.xml | 124 ----------- .idea/vcs.xml | 6 - assessment.iml | 197 ------------------ .../assessment/AssessmentApplication.java | 2 +- .../assessment/conf/SecurityConfigurer.java | 11 +- .../controller/PaperAnswerController.java | 40 ++++ .../controller/PaperController.java | 46 ++++ .../controller/QuestionController.java | 52 +++++ .../assessment/controller/TestController.java | 19 -- .../assessment/controller/UserController.java | 13 ++ .../sacc/assessment/entity/ExamAnswer.java | 20 ++ .../com/sacc/assessment/entity/ExamPaper.java | 20 ++ .../assessment/entity/ExamPaperAnswer.java | 20 ++ .../java/com/sacc/assessment/entity/Menu.java | 66 ++++++ .../com/sacc/assessment/entity/Question.java | 21 ++ .../sacc/assessment/entity/TextContent.java | 21 ++ .../java/com/sacc/assessment/entity/User.java | 44 ++++ .../com/sacc/assessment/enums/Business.java | 9 + .../sacc/assessment/enums/QuestionType.java | 29 +++ .../com/sacc/assessment/enums/UserRole.java | 28 +++ .../assessment/mapper/PaperRepository.java | 14 ++ .../mapper/QuestionsRepository.java | 7 + .../assessment/mapper/UserRepository.java | 16 ++ .../com/sacc/assessment/model/UserInfo.java | 58 ++++++ .../sacc/assessment/service/PaperService.java | 10 + .../assessment/service/QuestionService.java | 18 ++ .../sacc/assessment/service/UserService.java | 7 + .../service/impl/PaperServiceImpl.java | 20 ++ .../service/impl/QuestionServiceImpl.java | 18 ++ .../service/impl/UserServiceImpl.java | 42 ++++ .../assessment/util/PasswordEncodeTool.java | 16 ++ src/main/resources/html/login.html | 4 +- src/main/resources/templates/login.html | 28 +++ target/classes/application.yml | 11 - .../assessment/AssessmentApplication.class | Bin 757 -> 0 bytes .../assessment/conf/SecurityConfigurer.class | Bin 10017 -> 0 bytes .../controller/TestController.class | Bin 673 -> 0 bytes .../sacc/assessment/enums/ResultEnum.class | Bin 2165 -> 0 bytes .../handler/TigerLogoutSuccessHandler.class | Bin 2157 -> 0 bytes .../sacc/assessment/model/RestResult.class | Bin 5572 -> 0 bytes .../sacc/assessment/util/ResponseUtil.class | Bin 1657 -> 0 bytes target/classes/html/login.html | 28 --- .../AssessmentApplicationTests.class | Bin 555 -> 0 bytes 51 files changed, 695 insertions(+), 478 deletions(-) delete mode 100644 .idea/.gitignore delete mode 100644 .idea/codeStyles/codeStyleConfig.xml delete mode 100644 .idea/compiler.xml delete mode 100644 .idea/encodings.xml delete mode 100644 .idea/jarRepositories.xml delete mode 100644 .idea/jsLibraryMappings.xml delete mode 100644 .idea/misc.xml delete mode 100644 .idea/modules.xml delete mode 100644 .idea/uiDesigner.xml delete mode 100644 .idea/vcs.xml delete mode 100644 assessment.iml create mode 100644 src/main/java/com/sacc/assessment/controller/PaperAnswerController.java create mode 100644 src/main/java/com/sacc/assessment/controller/PaperController.java create mode 100644 src/main/java/com/sacc/assessment/controller/QuestionController.java delete mode 100644 src/main/java/com/sacc/assessment/controller/TestController.java create mode 100644 src/main/java/com/sacc/assessment/controller/UserController.java create mode 100644 src/main/java/com/sacc/assessment/entity/ExamAnswer.java create mode 100644 src/main/java/com/sacc/assessment/entity/ExamPaper.java create mode 100644 src/main/java/com/sacc/assessment/entity/ExamPaperAnswer.java create mode 100644 src/main/java/com/sacc/assessment/entity/Menu.java create mode 100644 src/main/java/com/sacc/assessment/entity/Question.java create mode 100644 src/main/java/com/sacc/assessment/entity/TextContent.java create mode 100644 src/main/java/com/sacc/assessment/entity/User.java create mode 100644 src/main/java/com/sacc/assessment/enums/Business.java create mode 100644 src/main/java/com/sacc/assessment/enums/QuestionType.java create mode 100644 src/main/java/com/sacc/assessment/enums/UserRole.java create mode 100644 src/main/java/com/sacc/assessment/mapper/PaperRepository.java create mode 100644 src/main/java/com/sacc/assessment/mapper/QuestionsRepository.java create mode 100644 src/main/java/com/sacc/assessment/mapper/UserRepository.java create mode 100644 src/main/java/com/sacc/assessment/model/UserInfo.java create mode 100644 src/main/java/com/sacc/assessment/service/PaperService.java create mode 100644 src/main/java/com/sacc/assessment/service/QuestionService.java create mode 100644 src/main/java/com/sacc/assessment/service/UserService.java create mode 100644 src/main/java/com/sacc/assessment/service/impl/PaperServiceImpl.java create mode 100644 src/main/java/com/sacc/assessment/service/impl/QuestionServiceImpl.java create mode 100644 src/main/java/com/sacc/assessment/service/impl/UserServiceImpl.java create mode 100644 src/main/java/com/sacc/assessment/util/PasswordEncodeTool.java create mode 100644 src/main/resources/templates/login.html delete mode 100644 target/classes/application.yml delete mode 100644 target/classes/com/sacc/assessment/AssessmentApplication.class delete mode 100644 target/classes/com/sacc/assessment/conf/SecurityConfigurer.class delete mode 100644 target/classes/com/sacc/assessment/controller/TestController.class delete mode 100644 target/classes/com/sacc/assessment/enums/ResultEnum.class delete mode 100644 target/classes/com/sacc/assessment/handler/TigerLogoutSuccessHandler.class delete mode 100644 target/classes/com/sacc/assessment/model/RestResult.class delete mode 100644 target/classes/com/sacc/assessment/util/ResponseUtil.class delete mode 100644 target/classes/html/login.html delete mode 100644 target/test-classes/com/sacc/assessment/AssessmentApplicationTests.class diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index 3cd0405..0000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml -# Datasource local storage ignored files -/../../../../../../:\Users\86153\IdeaProjects\assessment\.idea/dataSources/ -/dataSources.local.xml -# Editor-based HTTP Client requests -/httpRequests/ diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml deleted file mode 100644 index a55e7a1..0000000 --- a/.idea/codeStyles/codeStyleConfig.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml deleted file mode 100644 index 6aa0487..0000000 --- a/.idea/compiler.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml deleted file mode 100644 index 63e9001..0000000 --- a/.idea/encodings.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml deleted file mode 100644 index abb532a..0000000 --- a/.idea/jarRepositories.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/jsLibraryMappings.xml b/.idea/jsLibraryMappings.xml deleted file mode 100644 index 36485bc..0000000 --- a/.idea/jsLibraryMappings.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index d460235..0000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index 1c448e1..0000000 --- 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 e96534f..0000000 --- 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 94a25f7..0000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/assessment.iml b/assessment.iml deleted file mode 100644 index a2f2ff0..0000000 --- a/assessment.iml +++ /dev/null @@ -1,197 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/main/java/com/sacc/assessment/AssessmentApplication.java b/src/main/java/com/sacc/assessment/AssessmentApplication.java index f7f4118..3771c6b 100644 --- a/src/main/java/com/sacc/assessment/AssessmentApplication.java +++ b/src/main/java/com/sacc/assessment/AssessmentApplication.java @@ -2,10 +2,10 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; @SpringBootApplication public class AssessmentApplication { - public static void main(String[] args) { SpringApplication.run(AssessmentApplication.class, args); } diff --git a/src/main/java/com/sacc/assessment/conf/SecurityConfigurer.java b/src/main/java/com/sacc/assessment/conf/SecurityConfigurer.java index 1f85e12..e0842d2 100644 --- a/src/main/java/com/sacc/assessment/conf/SecurityConfigurer.java +++ b/src/main/java/com/sacc/assessment/conf/SecurityConfigurer.java @@ -5,7 +5,9 @@ import com.sacc.assessment.util.ResponseUtil; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; import org.springframework.http.HttpStatus; +import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; import org.springframework.security.core.context.SecurityContextHolder; @@ -17,17 +19,22 @@ * Created by 林夕 * Date 2021/6/14 15:48 */ +@Configuration +/*开启方法权限认证*/ +@EnableGlobalMethodSecurity(securedEnabled=true) public class SecurityConfigurer extends WebSecurityConfigurerAdapter { private final TigerLogoutSuccessHandler logoutSuccessHandler = new TigerLogoutSuccessHandler("/"); public static final String[] NO_AUTH_LIST={ - "/test" + "/test", + "/static/**", }; @Override public void configure(HttpSecurity http) throws Exception { - http.csrf().disable().formLogin().loginPage("/login").loginProcessingUrl("/login").usernameParameter("username") + http.csrf().disable().formLogin().loginPage("/login").loginProcessingUrl("/login").usernameParameter( + "username").permitAll() //失败处理 .failureHandler((req, resp, e) -> ResponseUtil.restResponse(resp, HttpStatus.FORBIDDEN, RestResult.error(403, e.getMessage()))) //成功处理 diff --git a/src/main/java/com/sacc/assessment/controller/PaperAnswerController.java b/src/main/java/com/sacc/assessment/controller/PaperAnswerController.java new file mode 100644 index 0000000..e03bca8 --- /dev/null +++ b/src/main/java/com/sacc/assessment/controller/PaperAnswerController.java @@ -0,0 +1,40 @@ +package com.sacc.assessment.controller; + +import org.springframework.security.access.annotation.Secured; +import org.springframework.web.bind.annotation.*; + +/** + * @Describe: 试卷答案描述 + * @Author: tyf + * @CreateTime: 2021/7/19 + **/ + +@RequestMapping("/paper_answers") +@RestController +public class PaperAnswerController { + + + /** + * TODO:试卷管理 + * 1. 查阅用户试卷 + * 2. 修改用户试卷(得分) + */ + + @Secured({"ROLE_ISSUER"}) + @GetMapping("/") + public void getPaperAnswers(){ + + } + + @Secured({"ROLE_ISSUER"}) + @GetMapping("/{id}") + public void getPaperAnswers(@PathVariable Long id){ + + } + + @PutMapping("/{id}") + @Secured({"ROLE_ISSUER"}) + public void alterPaperAnswers(@PathVariable Long id){ + + } +} diff --git a/src/main/java/com/sacc/assessment/controller/PaperController.java b/src/main/java/com/sacc/assessment/controller/PaperController.java new file mode 100644 index 0000000..9462741 --- /dev/null +++ b/src/main/java/com/sacc/assessment/controller/PaperController.java @@ -0,0 +1,46 @@ +package com.sacc.assessment.controller; + +import com.sacc.assessment.service.PaperService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +/** + * @Describe: 试卷管理 + * @Author: tyf + * @CreateTime: 2021/7/19 + **/ +@RestController +@RequestMapping("/papers") +public class PaperController { + + @Autowired + PaperService paperService; + + /** + * TODO:试卷管理(增删改查) + */ + @GetMapping("/") + public void getPaper(){ + + } + + @GetMapping("/{id}") + public void getPaper(@PathVariable Long id){ + + } + + @PostMapping("/") + public void addPaper(){ + + } + + @DeleteMapping("/{id}") + public void removePaper(@PathVariable Long id){ + + } + + @PutMapping("/{id}") + public void alterPapers(@PathVariable Long id){ + + } +} diff --git a/src/main/java/com/sacc/assessment/controller/QuestionController.java b/src/main/java/com/sacc/assessment/controller/QuestionController.java new file mode 100644 index 0000000..e06c048 --- /dev/null +++ b/src/main/java/com/sacc/assessment/controller/QuestionController.java @@ -0,0 +1,52 @@ +package com.sacc.assessment.controller; + +import com.sacc.assessment.service.QuestionService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.annotation.Secured; +import org.springframework.web.bind.annotation.*; + +/** + * @Describe: 题目管理 + * @Author: tyf + * @CreateTime: 2021/7/19 + **/ +@RestController +@RequestMapping("/questions") +public class QuestionController { + + @Autowired + QuestionService questionService; + + /** + * TODO:题目管理(增删改查) + * @return + */ + @Secured("ROLE_ISSUER") + @GetMapping("/") + public String getQuestions(){ + return "test"; + } + + @GetMapping("/{id}") + public String getQuestions(@PathVariable Long id){ + return "test"; + } + + @PostMapping("/") + @Secured("ROLE_ISSUER") + public void addQuestions(){ + + } + + @DeleteMapping("/{id}") + @Secured("ROLE_ISSUER") + public void deleteQuestions(@PathVariable Long id){ + + } + + @PutMapping("/{id}") + @Secured("ROLE_ISSUER") + public void alterQuestions(@PathVariable Long id){ + + } +} diff --git a/src/main/java/com/sacc/assessment/controller/TestController.java b/src/main/java/com/sacc/assessment/controller/TestController.java deleted file mode 100644 index 7d53391..0000000 --- a/src/main/java/com/sacc/assessment/controller/TestController.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.sacc.assessment.controller; - -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.ResponseBody; - -/** - * Created by 林夕 - * Date 2021/6/14 15:10 - */ -@Controller -public class TestController { - - @ResponseBody - @GetMapping("/test") - public String test(){ - return "hello world"; - } -} diff --git a/src/main/java/com/sacc/assessment/controller/UserController.java b/src/main/java/com/sacc/assessment/controller/UserController.java new file mode 100644 index 0000000..9e73fb2 --- /dev/null +++ b/src/main/java/com/sacc/assessment/controller/UserController.java @@ -0,0 +1,13 @@ +package com.sacc.assessment.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; + +@Controller +public class UserController { + + @GetMapping("login") + public String login(){ + return "login"; + } +} diff --git a/src/main/java/com/sacc/assessment/entity/ExamAnswer.java b/src/main/java/com/sacc/assessment/entity/ExamAnswer.java new file mode 100644 index 0000000..236c91c --- /dev/null +++ b/src/main/java/com/sacc/assessment/entity/ExamAnswer.java @@ -0,0 +1,20 @@ +package com.sacc.assessment.entity; + +import lombok.Data; +import org.springframework.data.jpa.domain.support.AuditingEntityListener; + +import javax.persistence.*; + +/** + * @Describe: 试卷得分结果实体 + * @Author: tyf + * @CreateTime: 2021/7/19 + **/ +@Entity(name = "issue") +@EntityListeners(AuditingEntityListener.class) +@Data +public class ExamAnswer { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + Integer id; +} diff --git a/src/main/java/com/sacc/assessment/entity/ExamPaper.java b/src/main/java/com/sacc/assessment/entity/ExamPaper.java new file mode 100644 index 0000000..ea11628 --- /dev/null +++ b/src/main/java/com/sacc/assessment/entity/ExamPaper.java @@ -0,0 +1,20 @@ +package com.sacc.assessment.entity; + +import lombok.Data; +import org.springframework.data.jpa.domain.support.AuditingEntityListener; + +import javax.persistence.*; + +/** + * @Describe: 试卷实体 + * @Author: tyf + * @CreateTime: 2021/7/19 + **/ +@Entity(name = "issue") +@EntityListeners(AuditingEntityListener.class) +@Data +public class ExamPaper { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + Integer id; +} diff --git a/src/main/java/com/sacc/assessment/entity/ExamPaperAnswer.java b/src/main/java/com/sacc/assessment/entity/ExamPaperAnswer.java new file mode 100644 index 0000000..5b21803 --- /dev/null +++ b/src/main/java/com/sacc/assessment/entity/ExamPaperAnswer.java @@ -0,0 +1,20 @@ +package com.sacc.assessment.entity; + +import lombok.Data; +import org.springframework.data.jpa.domain.support.AuditingEntityListener; + +import javax.persistence.*; + +/** + * @Describe: 单份用户试卷答案实体 + * @Author: tyf + * @CreateTime: 2021/7/19 + **/ +@Entity(name = "issue") +@EntityListeners(AuditingEntityListener.class) +@Data +public class ExamPaperAnswer { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + Integer id; +} diff --git a/src/main/java/com/sacc/assessment/entity/Menu.java b/src/main/java/com/sacc/assessment/entity/Menu.java new file mode 100644 index 0000000..082028d --- /dev/null +++ b/src/main/java/com/sacc/assessment/entity/Menu.java @@ -0,0 +1,66 @@ +package com.sacc.assessment.entity; + +import lombok.Data; +import org.springframework.data.annotation.CreatedDate; +import org.springframework.data.annotation.LastModifiedDate; +import org.springframework.data.jpa.domain.support.AuditingEntityListener; + +import javax.persistence.Entity; +import javax.persistence.EntityListeners; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import java.time.LocalDateTime; + +/** + * @Describe: 用户菜单 + * @Author: tyf + * @CreateTime: 2021/7/9 + **/ +@Data +@Entity +@EntityListeners(AuditingEntityListener.class) +public class Menu { + /** + * 主键自增ID + */ + @Id + @GeneratedValue + private Long id; + + /** + * 对象 + */ + private String PermissionRole; + + /** + * 菜单名称 + */ + private String name; + + /** + * 菜单链接 + */ + private String url; + + /** + * 父级菜单 + */ + private Long parentId; + + /** + * 前端图标 + */ + private byte[] icon; + + /** + * 创建时间 + */ + @CreatedDate + private LocalDateTime createdAt; + + /** + * 更新时间 + */ + @LastModifiedDate + private LocalDateTime updatedAt; +} diff --git a/src/main/java/com/sacc/assessment/entity/Question.java b/src/main/java/com/sacc/assessment/entity/Question.java new file mode 100644 index 0000000..363ea67 --- /dev/null +++ b/src/main/java/com/sacc/assessment/entity/Question.java @@ -0,0 +1,21 @@ +package com.sacc.assessment.entity; + +import lombok.Data; +import org.springframework.data.jpa.domain.support.AuditingEntityListener; + +import javax.persistence.*; + +/** + * @Describe: 问题实体类 + * @Author: tyf + * @CreateTime: 2021/7/19 + **/ +@Entity(name = "issue") +@EntityListeners(AuditingEntityListener.class) +@Data +public class Question { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + Integer id; + +} diff --git a/src/main/java/com/sacc/assessment/entity/TextContent.java b/src/main/java/com/sacc/assessment/entity/TextContent.java new file mode 100644 index 0000000..2d7d8fb --- /dev/null +++ b/src/main/java/com/sacc/assessment/entity/TextContent.java @@ -0,0 +1,21 @@ +package com.sacc.assessment.entity; + +import lombok.Data; +import org.springframework.data.jpa.domain.support.AuditingEntityListener; + +import javax.persistence.*; + +/** + * @Describe: 试卷文本内容 + * @Author: tyf + * @CreateTime: 2021/7/19 + **/ +@Entity(name = "issue") +@EntityListeners(AuditingEntityListener.class) +@Data +public class TextContent { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + Integer id; +} + diff --git a/src/main/java/com/sacc/assessment/entity/User.java b/src/main/java/com/sacc/assessment/entity/User.java new file mode 100644 index 0000000..c8b1f8f --- /dev/null +++ b/src/main/java/com/sacc/assessment/entity/User.java @@ -0,0 +1,44 @@ +package com.sacc.assessment.entity; + +import lombok.Data; +import org.springframework.data.annotation.CreatedDate; +import org.springframework.data.annotation.LastModifiedDate; +import org.springframework.data.jpa.domain.support.AuditingEntityListener; +import javax.persistence.*; +import java.time.LocalDateTime; + +/** + * @Describe: 用户类 + * @Author: tyf + * @CreateTime: 2021/7/8 + **/ +@Entity(name = "user") +@Data +@EntityListeners(AuditingEntityListener.class) +@Table( + name = "user",indexes = { + @Index(columnList = "studentId") +} +) +public class User{ + /** + * 自增id + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + @Column(nullable = false, unique = true) + private String email; + @Column(nullable = false) + private String password; + @Column(unique = true) + private String studentId; + @Column(nullable = false) + private String role = "0"; + + + @CreatedDate + private LocalDateTime createdAt; + @LastModifiedDate + private LocalDateTime updatedAt; +} \ No newline at end of file diff --git a/src/main/java/com/sacc/assessment/enums/Business.java b/src/main/java/com/sacc/assessment/enums/Business.java new file mode 100644 index 0000000..a64d640 --- /dev/null +++ b/src/main/java/com/sacc/assessment/enums/Business.java @@ -0,0 +1,9 @@ +package com.sacc.assessment.enums; + +/** + * @Describe: 业务逻辑语 + * @Author: tyf + * @CreateTime: 2021/7/8 + **/ +public enum Business { +} diff --git a/src/main/java/com/sacc/assessment/enums/QuestionType.java b/src/main/java/com/sacc/assessment/enums/QuestionType.java new file mode 100644 index 0000000..3338832 --- /dev/null +++ b/src/main/java/com/sacc/assessment/enums/QuestionType.java @@ -0,0 +1,29 @@ +package com.sacc.assessment.enums; + +/** + * @Describe: 问题类型 + * @Author: tyf + * @CreateTime: 2021/7/8 + **/ +public enum QuestionType { + + /** + * 单选 + */ + SINGLE_CHOICE, + + /** + * 多选 + */ + MULTIPLE_CHOICE, + + /** + * 填空 + */ + FILL_BLANK, + + /** + * 判断 + */ + JUDGE +} diff --git a/src/main/java/com/sacc/assessment/enums/UserRole.java b/src/main/java/com/sacc/assessment/enums/UserRole.java new file mode 100644 index 0000000..e3b97a5 --- /dev/null +++ b/src/main/java/com/sacc/assessment/enums/UserRole.java @@ -0,0 +1,28 @@ +package com.sacc.assessment.enums; + +/** + * @Describe: 用户权限 + * @Author: tyf + * @CreateTime: 2021/7/8 + **/ +public enum UserRole { + /** + * 超级管理员___00 + */ + ROOT, + + /** + * 试题发布人员__01 + */ + ISSUER, + + /** + * 批改人员_____02 + */ + CORRECTOR, + + /** + * 普通人员_____03 + */ + MEMBER +} diff --git a/src/main/java/com/sacc/assessment/mapper/PaperRepository.java b/src/main/java/com/sacc/assessment/mapper/PaperRepository.java new file mode 100644 index 0000000..b0a4c32 --- /dev/null +++ b/src/main/java/com/sacc/assessment/mapper/PaperRepository.java @@ -0,0 +1,14 @@ +package com.sacc.assessment.mapper; + +import com.sacc.assessment.entity.Question; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.awt.print.Paper; + +/** + * @Describe: 试卷 + * @Author: tyf + * @CreateTime: 2021/7/19 + **/ +public interface PaperRepository extends JpaRepository { +} diff --git a/src/main/java/com/sacc/assessment/mapper/QuestionsRepository.java b/src/main/java/com/sacc/assessment/mapper/QuestionsRepository.java new file mode 100644 index 0000000..a26f78c --- /dev/null +++ b/src/main/java/com/sacc/assessment/mapper/QuestionsRepository.java @@ -0,0 +1,7 @@ +package com.sacc.assessment.mapper; + +import com.sacc.assessment.entity.Question; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface QuestionsRepository extends JpaRepository { +} diff --git a/src/main/java/com/sacc/assessment/mapper/UserRepository.java b/src/main/java/com/sacc/assessment/mapper/UserRepository.java new file mode 100644 index 0000000..4d2f7cd --- /dev/null +++ b/src/main/java/com/sacc/assessment/mapper/UserRepository.java @@ -0,0 +1,16 @@ +package com.sacc.assessment.mapper; + +import com.sacc.assessment.entity.User; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; + +/** + * @Describe: 类描述 + * @Author: tyf + * @CreateTime: 2021/7/8 + **/ +public interface UserRepository extends JpaRepository { + User findByStudentId(String s); + List findMenuByStudentId(String s); +} diff --git a/src/main/java/com/sacc/assessment/model/UserInfo.java b/src/main/java/com/sacc/assessment/model/UserInfo.java new file mode 100644 index 0000000..28d67b8 --- /dev/null +++ b/src/main/java/com/sacc/assessment/model/UserInfo.java @@ -0,0 +1,58 @@ +package com.sacc.assessment.model; + +import com.sacc.assessment.entity.User; +import com.sacc.assessment.enums.UserRole; +import org.springframework.beans.BeanUtils; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.authority.SimpleGrantedAuthority; +import org.springframework.security.core.userdetails.UserDetails; + +import java.util.ArrayList; +import java.util.Collection; + +/** + * @Describe: UserDetails实现类,授权对象 + * @Author: tyf + * @CreateTime: 2021/7/8 + **/ +public class UserInfo extends User implements UserDetails { + public UserInfo(User user){ + BeanUtils.copyProperties(user, this); + } + + /** + * 处理角色 + * @return + */ + @Override + public Collection getAuthorities() { + ArrayList authority = new ArrayList(); + authority.add(new SimpleGrantedAuthority("ROLE_" + UserRole.values()[Integer.parseInt(getRole())].toString())); + return authority; + } + + @Override + public String getUsername() { + return getStudentId(); + } + + @Override + public boolean isAccountNonExpired() { + return true; + } + + @Override + public boolean isAccountNonLocked() { + return true; + } + + @Override + public boolean isCredentialsNonExpired() { + return true; + } + + @Override + public boolean isEnabled() { + return getId()!=null; + } +} diff --git a/src/main/java/com/sacc/assessment/service/PaperService.java b/src/main/java/com/sacc/assessment/service/PaperService.java new file mode 100644 index 0000000..a74d312 --- /dev/null +++ b/src/main/java/com/sacc/assessment/service/PaperService.java @@ -0,0 +1,10 @@ +package com.sacc.assessment.service; + +/** + * @Describe: 试卷CRUD接口 + * @Author: tyf + * @CreateTime: 2021/7/19 + * TODO + **/ +public interface PaperService { +} diff --git a/src/main/java/com/sacc/assessment/service/QuestionService.java b/src/main/java/com/sacc/assessment/service/QuestionService.java new file mode 100644 index 0000000..91bfd9b --- /dev/null +++ b/src/main/java/com/sacc/assessment/service/QuestionService.java @@ -0,0 +1,18 @@ +package com.sacc.assessment.service; + +import org.springframework.stereotype.Service; + +/** + * @Describe: 类描述 + * @Author: tyf + * @CreateTime: 2021/7/8 + **/ +public interface QuestionService { + /** + * 发布试题 + * @return 成功与否 + */ + boolean putProblems(); + + +} diff --git a/src/main/java/com/sacc/assessment/service/UserService.java b/src/main/java/com/sacc/assessment/service/UserService.java new file mode 100644 index 0000000..dd365a4 --- /dev/null +++ b/src/main/java/com/sacc/assessment/service/UserService.java @@ -0,0 +1,7 @@ +package com.sacc.assessment.service; + +import org.springframework.security.core.userdetails.UserDetailsService; + +public interface UserService extends UserDetailsService { + +} diff --git a/src/main/java/com/sacc/assessment/service/impl/PaperServiceImpl.java b/src/main/java/com/sacc/assessment/service/impl/PaperServiceImpl.java new file mode 100644 index 0000000..4b6da62 --- /dev/null +++ b/src/main/java/com/sacc/assessment/service/impl/PaperServiceImpl.java @@ -0,0 +1,20 @@ +package com.sacc.assessment.service.impl; + +import com.sacc.assessment.mapper.PaperRepository; +import com.sacc.assessment.service.PaperService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * @Describe: 试卷CRUD实现层 + * @Author: tyf + * @CreateTime: 2021/7/19 + **/ + +@Service +public class PaperServiceImpl implements PaperService { + + @Autowired + PaperRepository paperRepository; + +} diff --git a/src/main/java/com/sacc/assessment/service/impl/QuestionServiceImpl.java b/src/main/java/com/sacc/assessment/service/impl/QuestionServiceImpl.java new file mode 100644 index 0000000..5150e0a --- /dev/null +++ b/src/main/java/com/sacc/assessment/service/impl/QuestionServiceImpl.java @@ -0,0 +1,18 @@ +package com.sacc.assessment.service.impl; + +import com.sacc.assessment.service.QuestionService; +import org.springframework.stereotype.Service; + +/** + * @Describe: 类描述 + * @Author: tyf + * @CreateTime: 2021/7/8 + **/ + +@Service +public class QuestionServiceImpl implements QuestionService { + @Override + public boolean putProblems() { + return false; + } +} diff --git a/src/main/java/com/sacc/assessment/service/impl/UserServiceImpl.java b/src/main/java/com/sacc/assessment/service/impl/UserServiceImpl.java new file mode 100644 index 0000000..b1ca638 --- /dev/null +++ b/src/main/java/com/sacc/assessment/service/impl/UserServiceImpl.java @@ -0,0 +1,42 @@ +package com.sacc.assessment.service.impl; + +import com.sacc.assessment.entity.Menu; +import com.sacc.assessment.entity.User; +import com.sacc.assessment.mapper.UserRepository; +import com.sacc.assessment.model.UserInfo; +import com.sacc.assessment.service.UserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.core.userdetails.UsernameNotFoundException; +import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @Describe: 用户逻辑 + * @Author: tyf + * @CreateTime: 2021/7/8 + **/ +@Service +public class UserServiceImpl implements UserService { + + @Autowired + private UserRepository userRepository; + + @Autowired + private PasswordEncoder passwordEncoder; + + @Override + public UserDetails loadUserByUsername(String s) throws UsernameNotFoundException { + User user = userRepository.findByStudentId(s); + if(user == null){ + throw new UsernameNotFoundException(s); + } + //TODO: 获取角色,用户菜单 + + return new UserInfo(user); + + + } +} diff --git a/src/main/java/com/sacc/assessment/util/PasswordEncodeTool.java b/src/main/java/com/sacc/assessment/util/PasswordEncodeTool.java new file mode 100644 index 0000000..ca0c8ef --- /dev/null +++ b/src/main/java/com/sacc/assessment/util/PasswordEncodeTool.java @@ -0,0 +1,16 @@ +package com.sacc.assessment.util; + +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; + +/** + * @Describe: 密码生成测试类 + * @Author: tyf + * @CreateTime: 2021/7/9 + **/ +public class PasswordEncodeTool { + + public static void main(String[] args) { + BCryptPasswordEncoder passwordEncode = new BCryptPasswordEncoder(); + System.out.println(passwordEncode.encode("123456")); + } +} diff --git a/src/main/resources/html/login.html b/src/main/resources/html/login.html index 3f27b31..488213f 100644 --- a/src/main/resources/html/login.html +++ b/src/main/resources/html/login.html @@ -1,5 +1,5 @@ - - + diff --git a/src/main/resources/templates/login.html b/src/main/resources/templates/login.html new file mode 100644 index 0000000..f6764b1 --- /dev/null +++ b/src/main/resources/templates/login.html @@ -0,0 +1,28 @@ + + + + + + + Please sign in + + + + +
+ +
+ diff --git a/target/classes/application.yml b/target/classes/application.yml deleted file mode 100644 index c1318ce..0000000 --- a/target/classes/application.yml +++ /dev/null @@ -1,11 +0,0 @@ -spring: - datasource: - driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://localhost:3306/ass?characterEncoding=utf8&serverTimezone=Asia/Shanghai - username: root - password: root - jpa: - hibernate: - ddl-auto: update - show-sql: true - database-platform: org.hibernate.dialect.MySQL8Dialect diff --git a/target/classes/com/sacc/assessment/AssessmentApplication.class b/target/classes/com/sacc/assessment/AssessmentApplication.class deleted file mode 100644 index 5bd96c60ed22a6d2c2e6309f1ac68805920e453a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 757 zcma)4OHbQC5dJm~9Nh3|LZQ%d;FhFP_XdYlNNJ>=Tv|0%dgy6w7PHjejn-@6Z*gkX z13!Qtg*t0clS7cOGvEBm*k3$0#&J

!w7i6uHy+%!Z@nO{rXmx6XKdAqh*M}4VRRmNs@6p0KHpst8Z=y73T4~2P diff --git a/target/classes/com/sacc/assessment/conf/SecurityConfigurer.class b/target/classes/com/sacc/assessment/conf/SecurityConfigurer.class deleted file mode 100644 index 2b26aa5d44a64594e1266fc02b17905cdfe76960..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10017 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 jU|oD{EDgArwFUM4Lsd$r@ zM^$W9k>urDDz>RO#>?X>x>dZ*%Xd@+RHS(Mt^!j)F-8Xmb;A(Y7D?x)LPay34w=QG zRV+?fxl+i=O-~g=39C4rE$OuG6=)xg8l&-eEHR=FrH1vP@IY!L8P^5c!qE{u5gmx6 z3_UTXCsKMM5laYoqN9;WDjuU_fu@54L#c#*WK=h3w>lb2#r4E+*f7GeXlkIAOAEo2 z*x{5O(T8<5^AuzXgZT+dpfz&JJZ*-uW^OVR&Xuf5t3Y`*+A71vNdbSIhEXbHa+9Q> zbd3!}D6T;Fv6U98Ww6Fk+5pDRD)5i=7bIANX&E z!IdWEkL1&4cFZhf*lo?XGiOdw2=A~}I+>q{n+4jItOBL(?#tvdr2_)J%LEPA<*~$N z9aJMPI40mMoy?FoPZ!TbmmRIy-sB4tnVgxW9vGR)oLQPKP$q%;X#elJdD1G`GiEc_ z76{hmuw*NsJ<^k1Uj2mHqdu#B>1?gyh5%>2ug)0{ao@^_K0q_$G4j)ev~?)M?Q3~_ z4|ehdYS_V-cBh7Mqy@TGa)C7L#)O7_urvhGqhULqQ*eS|np>rMZnkp%$|hELS;Ho5 z7U*1$8iO zW*4sizWC*J4c&awW=F5wy->aK-NM|rORfTZxa#qRWP$};>1;knls(y^*!U?cT_Rfd z)X&CXmOePWbv;@dx;kj-+f#2>Qwwv8eUB5UjSGd8g9@| z;01cSzC+j<&(BDIdW@}+D$EH6Kz$LKveO9HZL4$O5 zoTQ76{5{({@4(%&<2IC@4(DyCHwm?!`iTf&JteaNO+<;0=->bw$(D=UFN<9&*T%SD zrwrCcg4W4+c0sOMJb?imT*g>^ z+PHHWV-5wh-GsjGz@6 VLf*p~T%@^j)ViVL5a~Mb+P`JI40!+m diff --git a/target/classes/com/sacc/assessment/handler/TigerLogoutSuccessHandler.class b/target/classes/com/sacc/assessment/handler/TigerLogoutSuccessHandler.class deleted file mode 100644 index 0f13154a6a248bf6569f539ed3ac4c9685a7e915..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2157 zcmb7FTXz#x6#h<lPQy#I5VN}#)E6= z^2t}9eB{{+(BfMD0RIQB<)3i*otfCC1!VD%GdcV0%eT+o-#&l-^W+ZzXHd;!04EKc z$|Hr7-6-I+Ue4&{Y!2^i!#NalIG@J_T+HF!ZFmnQy}X~tBtFnqm-3jxhgx>oz?D2c z!c_y)2CfODUB4z!nD&F36}n3&m#t~PR#QPyV0-A)yqQ*1ZrQd9!-c@rip%njv|Q=c zta21MUX6;TUs+ambWJv!DiD~Mw*7{+B*RDrcN?y?EbZH&?^#tD$%^Aut(gvWnrF{D zo)cXZ*g5>H_mM?`%%opc0)5ktr>?ge6&1|Oic1M$+tOW>fur|rVJ50Op}?6KMJR3C zl3_^v4dq2vU3yhl1=hU79GR)Vp5Eo;gn0U|si^K(XJsH8iaF3(pYLr_7WgK?de;h7 zaK}~j97Rp*GM929m{VW3R2UWGl>SdGZ2DfPib(~U`bw8{;1xf(P3LwiaH4yb?FY&# zwW2zcaBLYlzE{*&V+2VUfg>*sl;9D_1uBUt@bVYuv6N_ z%3r!`tENsTG;rO(4B?%(-F8Eyhjotmvfm19HRb4%?|)(Cj_S@du@A=t#$KTVP3*y5 z6R+WQ6T7gR?fm!s`%k}p^4E7iJpKMB1G6SR#-M<(49uA*W1cA3>TbIZ)-s#BXxC*B zs_4SP{M5u*0}Cb=F=*ljJ~439#4UVk;xl}1;0qI9>XWau&r=%bEBB}Y=2?NwR^4D@ zLMnl)F_T}^M=PpgZ7!t60YDaL+CM`EfgN!G$G5J`tXGQZYw1Q$w>!Q=p?~W*A&DJt z$rl*XC$cH+x?)o|8Z3M~O-{7O$wK6~BwRn+TDswtn#abUlp!mBqH{V-^192q^*x)^ z*|>#G@{wBthc`ogmZkqup_kR0^u34#o4?m&yzZKcZjgL>r0pIaNrLbuW=YZZ0f)uV z^D5ZjymGBM(x1PU8_|bNEB48@50zJ)Q&lJ6EN9AFOE@L%$Pex%7sGDh02MgY8GF*@q-8Q&EsHq7 zw`u^K@JN$wWEo$!f~H*jCI9$M^L!r$`CRSiZh`w0zdJ`CLyZ28)Xm38KSXA9>>;{- z=0OT?a4jIibsyKg=%eufjo+kXS7OY-Z*fOAaWH{{{NE+G0izA!5Tod55BSxNO1~gm zFxHSuq0l}08@g7J{}Bhr3)|LUrZB#S9s$ZT1!EPxkI?rB{SVMHu2t8tJq3*{9V6R= zEdLK7kHbWBgkgqp8e@EeCt`%7Nx*f4CF&g^D1xBoNQ}RPQCg%iPH6@yzWWpWm*v?} wSaB{rX_|ospem5V+c-uiI;R7%GoZUrSjCQCk=58lj4c}hQvJhAuzhp9$}n&j}q<>f9v-sF=lraXT5yljs{ z>DvZ`}UGuRwv|8VCEWh2t;pEyHIH|e1Q}^cu7U+!g@piJwo-TOm3H%n z-CDD5Gy*(s&1!5|tvat2Q}eg$o}ecxHMd#vtXi#Pc^*7y+KyjpLQ|u3&Gvl!+6~5d ztkR|A?cGpOaUczIaBCiFMys~J?QUMRT2|Bc?G_+B%0(3>b}`p48qmyphS#pu;DDfN zKdD&ELWKhX2j=T@YvsMi=lfYGA{%Jvs<7uGWGm4 zs+_w%Grl&f<^eKrW?YlC37~uU&DVF?B+A^zd zyH&H7>U=L{(VpspInPyx`F^eK`1Pi}QTOV&s-ANk*SGw->mb_agFe4$dAK$1G#jN` zaLsd_lGPC^y@d6$Q){$0ZFsNWwi<2Qpl_o}6jzYB>^OF7p%Gkmf}TE<(y2&!dgaQ> z>nrP(ib;>tcT74$M@^cbVGQ7Zdw$E>m3OL_P0^3j^b?bQNb=*&Xu_+xa2DWCDt@&OD)9hd($i8%NY99wV z&t2|tR;7t^fr<0VL|M5r8pQAc4HX_x<{|Ad^kmGRQ7X~rppT;k^repK&qMVE8XSG` z|3iO)zM#-Q+m#IQZ<≤7c*^S=D?Bd=!_b0`P~8%Y~Tg1L7k1&O=7Hp`OE=D@ZT= zi4wgPn~mwy(VS->7}Y6rxLpNboPE?Kd)18&s18>!>Z%u=)~jx8Aa%0NW`S>xE-JMZ zyt!9X!6b`@hb&_=&@1~irM!l$8eEb8ycdouRNfI9g^_vsaz7)nNqMjl*(>`RnFx$r zLfYg!+=zP;8-oWMi6&0uC40hNMzaS#O~RZE;PdbeA4$?Tv4-~$#P1dhzb9S0U;I1i zzau?)zxX%Ot21cZ$ATpYb7cmPvUctt^jJ>&h{o=bc`m0tpy5zrq^v_^q@2p>ER*_( z#_!Q^PS2%cLfNtbp=>#wGgv6Cgp6D|6w>YkkQN(9GLNrGpq)J4rNv<0PS71%LPhg% zuhUn+OHzSq^dcw?>m^zSrBjtI(MzCG)PVG5PzJSdsZ>CvgKm&9ysN4~>a9ZW3h)%k zG}8Z}5rg!P>6k&|_)m+E>9{0^;$%3&77=ufzfEPZVN-xYi*l6N$@rxbFV?U{Aqx22 zmrB^IYSJtPb%f7c=tiT7OR$iF>h;mtIqhPQwv(f?+elh^w0Mt-sr6%&gjd$|w> z@UL~I;0i1XfEnjNa?tS0en?|Py)#UvPu|SqDil%kGl%<9S50`GUco9suhMIH55vaS l@%x5NH&D118^q@8^euYhQjXrG_vkJT-UdGnvA6KM^FK45f^q-= diff --git a/target/classes/com/sacc/assessment/util/ResponseUtil.class b/target/classes/com/sacc/assessment/util/ResponseUtil.class deleted file mode 100644 index bd50233ba7ded25192c2cebcee7a1e29bf417625..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1657 zcmb7E>rN9v6#j-57M7KA5xgtlgMp?+P;ZbHuyT%n?bKF{|;$`mpBCxQ8=LTL_$m1pTI}*1E zVx3htehg!w%JJ-calao77b8%ap?8ZnT2wh*%RKQX+BKoBN});}rpA+b4dnEZ@s>r+ z;br0&WxuexTF5Uhl=H=v_b*Gu6^2VkcXj_DQLSHjC8h5r!|`OQi$!fMSqxE5i=M0K zQD_GnZxgExR>w?dny3p^Y$?A*B?N*u3H*-7e=kJmVdyra5F;N0M~RAtY(eHeDM19E z=#J8%bn0D>Vd@~5hj=9TLx(gc-{n#jOu?c@R{wfH1tCG>FiAGejOO0-cd)PF_6UuA zp)!F{T3c-cjNv#*0~p5y;^E=Xh|vdR(wQCf>>}2K^f$zJ(7TI1TJOSO_=*0v-!U+| z19Jz1Iz$XQ#3(rdtxQ@?kn=RT*Wo7HE^z`UNh0Ssh0|dQ8Jxjc%Ksc`+evB7dD2`U eO`L2dsZQWnj1Gg2fwqBZ`uE@>ZC?skm;VAUPtmgg diff --git a/target/classes/html/login.html b/target/classes/html/login.html deleted file mode 100644 index 3f27b31..0000000 --- a/target/classes/html/login.html +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - Please sign in - - - - -

- -
- diff --git a/target/test-classes/com/sacc/assessment/AssessmentApplicationTests.class b/target/test-classes/com/sacc/assessment/AssessmentApplicationTests.class deleted file mode 100644 index 28ccd8983490a9c8e2c815fa202355c70432cde4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 555 zcmb7B%Sr<=6g`P8TB=>r;9x=@5FxEd5}={}Rjn%YT*Nk;uGSAq*az>gB| zj70=-VIcQ$a?iOp$@|Ca8-QbMv{1uZh+c?whUTd@+MhAhcK5~%^$R;u44qgTbycK^ z%10uZ6Vi*V6!Wpjb(t@~y1&zo;V_mq%ZeR2k0)-{Bz3=2{A`tr;oj-3db^ zt?}x~$5u>8Ve_UiUZ-lTohJE#G1gc0bhZ`Se9C79jY&4sUgcb5nwL_f)Ee3%m+DfN zQ*Qs=v_BIMg5juAb6Kv<^fni%dbIgHPptLalOSKr#fMeJIpI~G2z4|V`v1EqL$~b8 z=fX_+buv@ZV+R4ff4KtMqzd{3ia2>jzOnxT_FNr@WSbQjVu|ADs{qSrQ3kY$98}~3 e%1ZJtV*3Y?Er<~nma;441FTlIL*id(7x)CS?S`TN From 48b146c57516c9b25eec1db194a9d6982d27eba8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B19040229=E8=B0=AD=E6=B0=B8=E9=94=8B?= Date: Mon, 19 Jul 2021 18:15:28 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BA=86Issuer=E9=83=A8?= =?UTF-8?q?=E5=88=86=E5=8A=9F=E8=83=BD=20-=E8=AF=95=E5=8D=B7=E7=AE=A1?= =?UTF-8?q?=E7=90=86=20-=E9=A2=98=E7=9B=AE=E7=AE=A1=E7=90=86=20-=E8=AF=95?= =?UTF-8?q?=E5=8D=B7=E7=AD=94=E6=A1=88=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 +- .../sacc/assessment/entity/ExamAnswer.java | 20 ----- .../com/sacc/assessment/entity/ExamPaper.java | 18 ++++- .../assessment/entity/ExamPaperAnswer.java | 18 ++++- .../entity/ExamPaperQuestionAnswer.java | 74 +++++++++++++++++++ .../com/sacc/assessment/entity/Question.java | 49 +++++++++++- .../sacc/assessment/entity/TextContent.java | 15 ++++ .../assessment/mapper/PaperRepository.java | 5 +- src/main/resources/application-dev.yml | 11 +++ src/main/resources/application.yml | 4 +- 10 files changed, 188 insertions(+), 29 deletions(-) delete mode 100644 src/main/java/com/sacc/assessment/entity/ExamAnswer.java create mode 100644 src/main/java/com/sacc/assessment/entity/ExamPaperQuestionAnswer.java create mode 100644 src/main/resources/application-dev.yml diff --git a/.gitignore b/.gitignore index f5c97eb..8549ebd 100644 --- a/.gitignore +++ b/.gitignore @@ -17,4 +17,5 @@ /target/* /src/main/webapp/WEB-INF/classes/* /src/main/webapp/userfiles/* -/target/ \ No newline at end of file +/target/ +/src/main/application-dev.yml \ No newline at end of file diff --git a/src/main/java/com/sacc/assessment/entity/ExamAnswer.java b/src/main/java/com/sacc/assessment/entity/ExamAnswer.java deleted file mode 100644 index 236c91c..0000000 --- a/src/main/java/com/sacc/assessment/entity/ExamAnswer.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.sacc.assessment.entity; - -import lombok.Data; -import org.springframework.data.jpa.domain.support.AuditingEntityListener; - -import javax.persistence.*; - -/** - * @Describe: 试卷得分结果实体 - * @Author: tyf - * @CreateTime: 2021/7/19 - **/ -@Entity(name = "issue") -@EntityListeners(AuditingEntityListener.class) -@Data -public class ExamAnswer { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - Integer id; -} diff --git a/src/main/java/com/sacc/assessment/entity/ExamPaper.java b/src/main/java/com/sacc/assessment/entity/ExamPaper.java index ea11628..3f9209d 100644 --- a/src/main/java/com/sacc/assessment/entity/ExamPaper.java +++ b/src/main/java/com/sacc/assessment/entity/ExamPaper.java @@ -1,20 +1,36 @@ package com.sacc.assessment.entity; import lombok.Data; +import org.springframework.data.annotation.CreatedDate; +import org.springframework.data.annotation.LastModifiedDate; import org.springframework.data.jpa.domain.support.AuditingEntityListener; import javax.persistence.*; +import java.time.LocalDateTime; /** * @Describe: 试卷实体 * @Author: tyf * @CreateTime: 2021/7/19 **/ -@Entity(name = "issue") +@Entity @EntityListeners(AuditingEntityListener.class) @Data public class ExamPaper { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) Integer id; + + + + + + @CreatedDate + private LocalDateTime createdAt; + + /** + * 更新时间 + */ + @LastModifiedDate + private LocalDateTime updatedAt; } diff --git a/src/main/java/com/sacc/assessment/entity/ExamPaperAnswer.java b/src/main/java/com/sacc/assessment/entity/ExamPaperAnswer.java index 5b21803..6264b05 100644 --- a/src/main/java/com/sacc/assessment/entity/ExamPaperAnswer.java +++ b/src/main/java/com/sacc/assessment/entity/ExamPaperAnswer.java @@ -1,20 +1,34 @@ package com.sacc.assessment.entity; import lombok.Data; +import org.springframework.data.annotation.CreatedDate; +import org.springframework.data.annotation.LastModifiedDate; import org.springframework.data.jpa.domain.support.AuditingEntityListener; import javax.persistence.*; +import java.time.LocalDateTime; /** - * @Describe: 单份用户试卷答案实体 + * @Describe: 试卷得分结果实体 * @Author: tyf * @CreateTime: 2021/7/19 **/ -@Entity(name = "issue") +@Entity @EntityListeners(AuditingEntityListener.class) @Data public class ExamPaperAnswer { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) Integer id; + + + + @CreatedDate + private LocalDateTime createdAt; + + /** + * 更新时间 + */ + @LastModifiedDate + private LocalDateTime updatedAt; } diff --git a/src/main/java/com/sacc/assessment/entity/ExamPaperQuestionAnswer.java b/src/main/java/com/sacc/assessment/entity/ExamPaperQuestionAnswer.java new file mode 100644 index 0000000..30f980c --- /dev/null +++ b/src/main/java/com/sacc/assessment/entity/ExamPaperQuestionAnswer.java @@ -0,0 +1,74 @@ +package com.sacc.assessment.entity; + +import com.sacc.assessment.enums.QuestionType; +import lombok.Data; +import org.springframework.data.annotation.CreatedDate; +import org.springframework.data.annotation.LastModifiedDate; +import org.springframework.data.jpa.domain.support.AuditingEntityListener; + +import javax.persistence.*; +import java.time.LocalDateTime; + +/** + * @Describe: 单份用户试卷答案实体 + * @Author: tyf + * @CreateTime: 2021/7/19 + **/ +@Entity +@EntityListeners(AuditingEntityListener.class) +@Data +public class ExamPaperQuestionAnswer { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + Integer id; + + /** + * 试卷ID + */ + private Long examPaperId; + + /** + * 用户提交试卷ID + */ + private Long examPaperAnswerId; + + /** + * 题目类型 + */ + private QuestionType questionType; + + /** + * 题目满分 + */ + private Double QuestionScore; + + /** + * 问题内容 + */ + private Long questionTextContentId; + + /** + * 填空简答做题内容 + */ + private Long answerTextContentId; + + /** + * 是否正确 + */ + private boolean isRight; + + /** + * 做题人 + */ + private Long creatStudentId; + + @CreatedDate + private LocalDateTime createdAt; + + /** + * 更新时间 + */ + @LastModifiedDate + private LocalDateTime updatedAt; + +} diff --git a/src/main/java/com/sacc/assessment/entity/Question.java b/src/main/java/com/sacc/assessment/entity/Question.java index 363ea67..845d44c 100644 --- a/src/main/java/com/sacc/assessment/entity/Question.java +++ b/src/main/java/com/sacc/assessment/entity/Question.java @@ -1,21 +1,66 @@ package com.sacc.assessment.entity; +import com.sacc.assessment.enums.QuestionType; import lombok.Data; +import org.springframework.data.annotation.CreatedDate; +import org.springframework.data.annotation.LastModifiedDate; import org.springframework.data.jpa.domain.support.AuditingEntityListener; import javax.persistence.*; +import java.time.LocalDateTime; /** * @Describe: 问题实体类 * @Author: tyf * @CreateTime: 2021/7/19 **/ -@Entity(name = "issue") +@Entity @EntityListeners(AuditingEntityListener.class) @Data public class Question { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) - Integer id; + /** + * 自增ID + */ + private Integer id; + + /** + * 题目类型 + */ + private QuestionType type; + + /** + * 题目分数 + */ + private Double score; + + /** + * 正确答案 + */ + private String correctAnswer; + + /** + * 题干信息 + */ + private Long infoTextContentId; + + /** + * 创建人 + */ + private Long creatUser; + + /** + * 创建时间 + */ + @CreatedDate + private LocalDateTime createdAt; + + /** + * 更新时间 + */ + @LastModifiedDate + private LocalDateTime updatedAt; + } diff --git a/src/main/java/com/sacc/assessment/entity/TextContent.java b/src/main/java/com/sacc/assessment/entity/TextContent.java index 2d7d8fb..94656b0 100644 --- a/src/main/java/com/sacc/assessment/entity/TextContent.java +++ b/src/main/java/com/sacc/assessment/entity/TextContent.java @@ -1,9 +1,12 @@ package com.sacc.assessment.entity; import lombok.Data; +import org.springframework.data.annotation.CreatedDate; +import org.springframework.data.annotation.LastModifiedDate; import org.springframework.data.jpa.domain.support.AuditingEntityListener; import javax.persistence.*; +import java.time.LocalDateTime; /** * @Describe: 试卷文本内容 @@ -17,5 +20,17 @@ public class TextContent { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) Integer id; + + + + + /** + * 创建更新时间 + */ + @CreatedDate + private LocalDateTime createdAt; + + @LastModifiedDate + private LocalDateTime updatedAt; } diff --git a/src/main/java/com/sacc/assessment/mapper/PaperRepository.java b/src/main/java/com/sacc/assessment/mapper/PaperRepository.java index b0a4c32..b2afc3b 100644 --- a/src/main/java/com/sacc/assessment/mapper/PaperRepository.java +++ b/src/main/java/com/sacc/assessment/mapper/PaperRepository.java @@ -1,14 +1,15 @@ package com.sacc.assessment.mapper; +import com.sacc.assessment.entity.ExamPaper; import com.sacc.assessment.entity.Question; import org.springframework.data.jpa.repository.JpaRepository; import java.awt.print.Paper; /** - * @Describe: 试卷 + * @Describe: 试卷接口 * @Author: tyf * @CreateTime: 2021/7/19 **/ -public interface PaperRepository extends JpaRepository { +public interface PaperRepository extends JpaRepository { } diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml new file mode 100644 index 0000000..7166ba7 --- /dev/null +++ b/src/main/resources/application-dev.yml @@ -0,0 +1,11 @@ +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://localhost:3306/ass?characterEncoding=utf8&serverTimezone=Asia/Shanghai + username: ass + password: root + jpa: + hibernate: + ddl-auto: update + show-sql: true + database-platform: org.hibernate.dialect.MySQL8Dialect \ No newline at end of file diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index c1318ce..27fa577 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,4 +1,6 @@ spring: + profiles: + active: dev datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/ass?characterEncoding=utf8&serverTimezone=Asia/Shanghai @@ -8,4 +10,4 @@ spring: hibernate: ddl-auto: update show-sql: true - database-platform: org.hibernate.dialect.MySQL8Dialect + database-platform: org.hibernate.dialect.MySQL8Dialect \ No newline at end of file