From 5dc1025f4f67a8750b8dd802f8def1fa2dfa116a Mon Sep 17 00:00:00 2001 From: 17808 <1780814303@qq.com> Date: 星期二, 07 十一月 2023 17:43:48 +0800 Subject: [PATCH] 成绩统计后端 --- src/main/java/com/mindskip/xzs/domain/ExamPaperAnswer.java | 26 ++ src/main/java/com/mindskip/xzs/viewmodel/student/exampaper/ExamPaperAnswerPageResponseVM.java | 23 + src/main/java/com/mindskip/xzs/service/UserDepartMentService.java | 21 + src/main/java/com/mindskip/xzs/service/impl/ExamPaperAnswerServiceImpl.java | 16 + src/main/java/com/mindskip/xzs/repository/ScoreTemplatesUserCountMapper.java | 14 + src/main/java/com/mindskip/xzs/service/ExamPaperAnswerService.java | 12 src/main/java/com/mindskip/xzs/service/impl/UserDepartMentServiceImpl.java | 58 ++++ src/main/java/com/mindskip/xzs/repository/ExamPaperUserMapper.java | 6 src/main/java/com/mindskip/xzs/repository/UserDepartmentMapper.java | 6 src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java | 11 src/main/resources/mapper/ScoreTemplatesUserCountMapper.xml | 236 ++++++++++++++++++ src/main/java/com/mindskip/xzs/service/ScoreTemplatesUserCountService.java | 11 src/main/resources/mapper/ExamPaperAnswerMapper.xml | 23 + src/main/java/com/mindskip/xzs/domain/UserDepartment.java | 2 src/main/resources/mapper/ExamPaperUserMapper.xml | 5 src/main/java/com/mindskip/xzs/repository/ExamPaperAnswerMapper.java | 6 src/main/resources/mapper/UserDepartmentMapper.xml | 15 + src/main/java/com/mindskip/xzs/configuration/spring/security/SecurityConfigurer.java | 2 src/main/java/com/mindskip/xzs/service/impl/ScoreTemplatesUserCountServiceImpl.java | 37 ++ src/main/java/com/mindskip/xzs/domain/ScoreTemplatesUserCount.java | 66 +++++ src/main/java/com/mindskip/xzs/service/ExamPaperUserService.java | 4 src/main/java/com/mindskip/xzs/domain/ScoreTemplates.java | 54 ++++ src/main/java/com/mindskip/xzs/domain/vo/ScoreTemplatesCountVO.java | 103 +++++++ src/main/java/com/mindskip/xzs/service/impl/ExamPaperUserServiceImpl.java | 7 24 files changed, 743 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/mindskip/xzs/configuration/spring/security/SecurityConfigurer.java b/src/main/java/com/mindskip/xzs/configuration/spring/security/SecurityConfigurer.java index da15ddd..a3db86f 100644 --- a/src/main/java/com/mindskip/xzs/configuration/spring/security/SecurityConfigurer.java +++ b/src/main/java/com/mindskip/xzs/configuration/spring/security/SecurityConfigurer.java @@ -79,7 +79,7 @@ .and().authenticationProvider(restAuthenticationProvider) .authorizeRequests() .antMatchers(securityIgnoreUrls.toArray(ignores)).permitAll() - .antMatchers("/api/admin/department/list", "/api/admin/video/getList","/api/admin/user/conversion").permitAll() + .antMatchers("/api/admin/department/list", "/api/admin/video/getList","/api/admin/user/conversion","/api/admin/examPaperGrade/updates").permitAll() .antMatchers("/api/admin/**").hasRole(RoleEnum.ADMIN.getName()) .antMatchers("/api/student/**").hasRole(RoleEnum.STUDENT.getName()) .anyRequest().permitAll() diff --git a/src/main/java/com/mindskip/xzs/domain/ExamPaperAnswer.java b/src/main/java/com/mindskip/xzs/domain/ExamPaperAnswer.java index d73aac7..0e8aa9d 100644 --- a/src/main/java/com/mindskip/xzs/domain/ExamPaperAnswer.java +++ b/src/main/java/com/mindskip/xzs/domain/ExamPaperAnswer.java @@ -78,6 +78,14 @@ private Integer taskExamId; + private String formattedTime; + + + private String userName; + + + + public Integer getId() { return id; } @@ -204,4 +212,22 @@ public void setCounts(Integer counts) { this.counts = counts; } + + public String getFormattedTime() { + return formattedTime; + } + + public void setFormattedTime(String formattedTime) { + this.formattedTime = formattedTime == null ? null : formattedTime.trim(); + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + } diff --git a/src/main/java/com/mindskip/xzs/domain/ScoreTemplates.java b/src/main/java/com/mindskip/xzs/domain/ScoreTemplates.java new file mode 100644 index 0000000..230372b --- /dev/null +++ b/src/main/java/com/mindskip/xzs/domain/ScoreTemplates.java @@ -0,0 +1,54 @@ +package com.mindskip.xzs.domain; + +import java.io.Serializable; +import java.util.Date; + +public class ScoreTemplates implements Serializable { + + private Integer id; + private Integer examPaperId; + private Integer userId; + private Integer examTemplatesId; + + private Date createTime; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getExamPaperId() { + return examPaperId; + } + + public void setExamPaperId(Integer examPaperId) { + this.examPaperId = examPaperId; + } + + public Integer getUserId() { + return userId; + } + + public void setUserId(Integer userId) { + this.userId = userId; + } + + public Integer getExamTemplatesId() { + return examTemplatesId; + } + + public void setExamTemplatesId(Integer examTemplatesId) { + this.examTemplatesId = examTemplatesId; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } +} diff --git a/src/main/java/com/mindskip/xzs/domain/ScoreTemplatesUserCount.java b/src/main/java/com/mindskip/xzs/domain/ScoreTemplatesUserCount.java new file mode 100644 index 0000000..5d73da5 --- /dev/null +++ b/src/main/java/com/mindskip/xzs/domain/ScoreTemplatesUserCount.java @@ -0,0 +1,66 @@ +package com.mindskip.xzs.domain; + +import java.io.Serializable; +import java.util.Date; + +public class ScoreTemplatesUserCount implements Serializable { + + private Integer id; + private Integer examPaperId; + private Integer userId; + private Integer examTemplatesId; + + private Date createTime; + + + private String formattedCreateTime; + + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getExamPaperId() { + return examPaperId; + } + + public void setExamPaperId(Integer examPaperId) { + this.examPaperId = examPaperId; + } + + public Integer getUserId() { + return userId; + } + + public void setUserId(Integer userId) { + this.userId = userId; + } + + public Integer getExamTemplatesId() { + return examTemplatesId; + } + + public void setExamTemplatesId(Integer examTemplatesId) { + this.examTemplatesId = examTemplatesId; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + public String getFormattedCreateTime() { + return formattedCreateTime; + } + public void setFormattedCreateTime(String formattedCreateTime) { + this.formattedCreateTime = formattedCreateTime; + } + +} diff --git a/src/main/java/com/mindskip/xzs/domain/UserDepartment.java b/src/main/java/com/mindskip/xzs/domain/UserDepartment.java index d6b9938..0446dc9 100644 --- a/src/main/java/com/mindskip/xzs/domain/UserDepartment.java +++ b/src/main/java/com/mindskip/xzs/domain/UserDepartment.java @@ -10,4 +10,6 @@ private Integer id; private Integer userId; private Integer departmentId; + + } diff --git a/src/main/java/com/mindskip/xzs/domain/vo/ScoreTemplatesCountVO.java b/src/main/java/com/mindskip/xzs/domain/vo/ScoreTemplatesCountVO.java new file mode 100644 index 0000000..7573439 --- /dev/null +++ b/src/main/java/com/mindskip/xzs/domain/vo/ScoreTemplatesCountVO.java @@ -0,0 +1,103 @@ +package com.mindskip.xzs.domain.vo; + +import com.mindskip.xzs.base.BasePage; + +import java.io.Serializable; +import java.util.Date; + +public class ScoreTemplatesCountVO extends BasePage implements Serializable { + + private Integer id; + private String name; + private Integer count; + private Integer userId; + private String userName; + private String userScore; + private String paperScore; + + private Integer createUser; + private Date createTime; + + private String formattedTime; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Integer getCount() { + return count; + } + + public void setCount(Integer count) { + this.count = count; + } + + public Integer getUserId() { + return userId; + } + + public void setUserId(Integer userId) { + this.userId = userId; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getUserScore() { + return userScore; + } + + public void setUserScore(String userScore) { + this.userScore = userScore; + } + + public String getPaperScore() { + return paperScore; + } + + public void setPaperScore(String paperScore) { + this.paperScore = paperScore; + } + + public Integer getCreateUser() { + return createUser; + } + + public void setCreateUser(Integer createUser) { + this.createUser = createUser; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public String getFormattedTime() { + return formattedTime; + } + + public void setFormattedTime(String formattedTime) { + this.formattedTime = formattedTime; + } +} diff --git a/src/main/java/com/mindskip/xzs/repository/ExamPaperAnswerMapper.java b/src/main/java/com/mindskip/xzs/repository/ExamPaperAnswerMapper.java index 62b874e..196f0a0 100644 --- a/src/main/java/com/mindskip/xzs/repository/ExamPaperAnswerMapper.java +++ b/src/main/java/com/mindskip/xzs/repository/ExamPaperAnswerMapper.java @@ -2,7 +2,9 @@ import com.mindskip.xzs.domain.ExamPaperAnswer; import com.mindskip.xzs.domain.ExamTemplatesUserCount; +import com.mindskip.xzs.domain.ScoreTemplatesUserCount; import com.mindskip.xzs.domain.other.KeyValue; +import com.mindskip.xzs.domain.vo.ScoreTemplatesCountVO; import com.mindskip.xzs.viewmodel.admin.paper.ExamPaperGradePageRequestVM; import com.mindskip.xzs.viewmodel.student.exampaper.ExamPaperAnswerPageVM; import org.apache.ibatis.annotations.Mapper; @@ -31,4 +33,8 @@ List<ExamPaperAnswer> getByExamPaperIdAndUserId(@Param("examTemplatesUserCount")List<ExamTemplatesUserCount> examTemplatesUserCount); List<ExamPaperAnswer> adminPageByGrade(ExamPaperGradePageRequestVM grade); + + List<ExamPaperAnswer> getByScorePaperIdAndUserId(@Param("scoreTemplatesUserCounts")List<ScoreTemplatesUserCount> scoreTemplatesUserCounts); + + List<ExamPaperAnswer> getByCreatUser(ScoreTemplatesCountVO scoreTemplatesCountVO); } diff --git a/src/main/java/com/mindskip/xzs/repository/ExamPaperUserMapper.java b/src/main/java/com/mindskip/xzs/repository/ExamPaperUserMapper.java index 0b0ce91..31c700b 100644 --- a/src/main/java/com/mindskip/xzs/repository/ExamPaperUserMapper.java +++ b/src/main/java/com/mindskip/xzs/repository/ExamPaperUserMapper.java @@ -1,10 +1,8 @@ package com.mindskip.xzs.repository; import com.mindskip.xzs.domain.ExamPaperUser; -import jdk.internal.dynalink.linker.LinkerServices; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; -import org.springframework.security.core.parameters.P; import java.util.List; @@ -20,4 +18,8 @@ List<ExamPaperUser> getByExamPaperId(@Param("examPaperId") Integer examPaperId); Integer removeByExamPaperId(@Param("examPaperId") Integer examPaperId); + + + + Integer getByPaperIdAndCreatUser(Integer examPaperId, Integer createUser); } diff --git a/src/main/java/com/mindskip/xzs/repository/ScoreTemplatesUserCountMapper.java b/src/main/java/com/mindskip/xzs/repository/ScoreTemplatesUserCountMapper.java new file mode 100644 index 0000000..b54d51e --- /dev/null +++ b/src/main/java/com/mindskip/xzs/repository/ScoreTemplatesUserCountMapper.java @@ -0,0 +1,14 @@ +package com.mindskip.xzs.repository; + +import com.mindskip.xzs.domain.ScoreTemplatesUserCount; +import com.mindskip.xzs.domain.vo.ScoreTemplatesCountVO; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface ScoreTemplatesUserCountMapper extends BaseMapper<ScoreTemplatesUserCount> { + + + List<ScoreTemplatesUserCount> getByUserIdAndTemplatesId(ScoreTemplatesCountVO scoreTemplatesCountVO); +} diff --git a/src/main/java/com/mindskip/xzs/repository/UserDepartmentMapper.java b/src/main/java/com/mindskip/xzs/repository/UserDepartmentMapper.java index 77e2789..9c70b21 100644 --- a/src/main/java/com/mindskip/xzs/repository/UserDepartmentMapper.java +++ b/src/main/java/com/mindskip/xzs/repository/UserDepartmentMapper.java @@ -1,10 +1,8 @@ package com.mindskip.xzs.repository; -import com.mindskip.xzs.domain.ExamPaper; import com.mindskip.xzs.domain.UserDepartment; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; -import org.springframework.security.core.parameters.P; import java.util.List; @@ -17,4 +15,8 @@ Integer removeByUserId(@Param("userId") Integer userId); Integer removeByDepartmentId(@Param("departmentId") Integer departmentId); + + UserDepartment selectByUser(Integer id); + + void updateUserDepartMent(UserDepartment userDepartment); } diff --git a/src/main/java/com/mindskip/xzs/service/ExamPaperAnswerService.java b/src/main/java/com/mindskip/xzs/service/ExamPaperAnswerService.java index 25f191b..6e8358a 100644 --- a/src/main/java/com/mindskip/xzs/service/ExamPaperAnswerService.java +++ b/src/main/java/com/mindskip/xzs/service/ExamPaperAnswerService.java @@ -1,10 +1,8 @@ package com.mindskip.xzs.service; import com.github.pagehelper.PageInfo; -import com.mindskip.xzs.domain.ExamPaperAnswer; -import com.mindskip.xzs.domain.ExamPaperAnswerInfo; -import com.mindskip.xzs.domain.ExamTemplatesUserCount; -import com.mindskip.xzs.domain.User; +import com.mindskip.xzs.domain.*; +import com.mindskip.xzs.domain.vo.ScoreTemplatesCountVO; import com.mindskip.xzs.viewmodel.admin.paper.ExamPaperGradePageRequestVM; import com.mindskip.xzs.viewmodel.student.exam.ExamPaperSubmitVM; import com.mindskip.xzs.viewmodel.student.exampaper.ExamPaperAnswerPageVM; @@ -59,5 +57,9 @@ List<ExamPaperAnswer> getByExamPaperIdAndUserId(List<ExamTemplatesUserCount> examTemplatesUserCount); - PageInfo<ExamPaperAnswer> adminPageByGrade(ExamPaperGradePageRequestVM grade); + List<ExamPaperAnswer> adminPageByGrade(ExamPaperGradePageRequestVM grade); + + List<ExamPaperAnswer> getByScorePaperIdAndUserId(List<ScoreTemplatesUserCount> scoreTemplatesUserCounts); + + List<ExamPaperAnswer> getByCreatUser(ScoreTemplatesCountVO scoreTemplatesCountVO); } diff --git a/src/main/java/com/mindskip/xzs/service/ExamPaperUserService.java b/src/main/java/com/mindskip/xzs/service/ExamPaperUserService.java index 2e40a5d..d41a493 100644 --- a/src/main/java/com/mindskip/xzs/service/ExamPaperUserService.java +++ b/src/main/java/com/mindskip/xzs/service/ExamPaperUserService.java @@ -1,7 +1,6 @@ package com.mindskip.xzs.service; import com.mindskip.xzs.domain.ExamPaperUser; -import org.apache.ibatis.annotations.Param; import java.util.List; @@ -16,4 +15,7 @@ List<ExamPaperUser> getByExamPaperId(Integer examPaperId); Integer removeByExamPaperId(Integer examPaperId); + + + Integer getByPaperIdAndCreatUser(Integer examPaperId, Integer createUser); } diff --git a/src/main/java/com/mindskip/xzs/service/ScoreTemplatesUserCountService.java b/src/main/java/com/mindskip/xzs/service/ScoreTemplatesUserCountService.java new file mode 100644 index 0000000..e82571c --- /dev/null +++ b/src/main/java/com/mindskip/xzs/service/ScoreTemplatesUserCountService.java @@ -0,0 +1,11 @@ +package com.mindskip.xzs.service; + +import com.mindskip.xzs.domain.ScoreTemplatesUserCount; + +public interface ScoreTemplatesUserCountService extends BaseService<ScoreTemplatesUserCount>{ + + + + + +} diff --git a/src/main/java/com/mindskip/xzs/service/UserDepartMentService.java b/src/main/java/com/mindskip/xzs/service/UserDepartMentService.java new file mode 100644 index 0000000..bd2b247 --- /dev/null +++ b/src/main/java/com/mindskip/xzs/service/UserDepartMentService.java @@ -0,0 +1,21 @@ +package com.mindskip.xzs.service; + +import com.mindskip.xzs.domain.UserDepartment; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + + +public interface UserDepartMentService extends BaseService<UserDepartment> { + + List<UserDepartment> selectByUserId(@Param("userId") Integer userId); + + List<UserDepartment> selectByDepartmentId(@Param("departmentId") Integer departmentId); + + Integer removeByUserId(@Param("userId") Integer userId); + Integer removeByDepartmentId(@Param("departmentId") Integer departmentId); + + UserDepartment selectByUser(Integer id); + + void updateUserDepartMent(UserDepartment userDepartment); +} diff --git a/src/main/java/com/mindskip/xzs/service/impl/ExamPaperAnswerServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/ExamPaperAnswerServiceImpl.java index ead6f2b..19bf6e4 100644 --- a/src/main/java/com/mindskip/xzs/service/impl/ExamPaperAnswerServiceImpl.java +++ b/src/main/java/com/mindskip/xzs/service/impl/ExamPaperAnswerServiceImpl.java @@ -10,6 +10,7 @@ import com.mindskip.xzs.domain.other.ExamPaperAnswerUpdate; import com.mindskip.xzs.domain.other.KeyValue; import com.mindskip.xzs.domain.task.TaskItemAnswerObject; +import com.mindskip.xzs.domain.vo.ScoreTemplatesCountVO; import com.mindskip.xzs.repository.ExamPaperAnswerMapper; import com.mindskip.xzs.repository.ExamPaperMapper; import com.mindskip.xzs.repository.QuestionMapper; @@ -295,8 +296,17 @@ } @Override - public PageInfo<ExamPaperAnswer> adminPageByGrade(ExamPaperGradePageRequestVM grade) { - return PageHelper.startPage(grade.getPageIndex(), grade.getPageSize(), "user_score desc").doSelectPageInfo(() -> - examPaperAnswerMapper.adminPageByGrade(grade)); + public List<ExamPaperAnswer> adminPageByGrade(ExamPaperGradePageRequestVM grade) { + return examPaperAnswerMapper.adminPageByGrade(grade); + } + + @Override + public List<ExamPaperAnswer> getByScorePaperIdAndUserId(List<ScoreTemplatesUserCount> scoreTemplatesUserCounts) { + return examPaperAnswerMapper.getByScorePaperIdAndUserId(scoreTemplatesUserCounts); + } + + @Override + public List<ExamPaperAnswer> getByCreatUser(ScoreTemplatesCountVO scoreTemplatesCountVO) { + return examPaperAnswerMapper.getByCreatUser(scoreTemplatesCountVO); } } diff --git a/src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java index a16fe1a..15957bc 100644 --- a/src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java +++ b/src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java @@ -372,7 +372,6 @@ keys.remove(index); } } - if (!values.isEmpty()) { int index = random.nextInt(values.size()); int score = values.get(index); @@ -481,6 +480,8 @@ * @param titleItemsVM title */ private void randomQuestionType(ExamPaperEditRequestVM examPaperEditRequestVM, List<ExamPaperTitleItemObject> frameTextContentList, List<ExamPaperTitleItemVM> titleItemsVM) throws QuestionException { + + //鍗曢�� Integer singleChoice = examPaperEditRequestVM.getQuestionTypeVMS().stream().mapToInt(QuestionTypeVM::getSingleChoice).sum(); //澶氶�� @@ -522,10 +523,10 @@ //鍒ゆ柇 - Map<Integer, Integer> judgmentMap = list.stream() - .filter(e -> e.getQuestionType().equals(QuestionTypeEnum.TrueFalse.getCode())) - .collect(Collectors.toMap(Question::getId, Question::getScore)); - Integer trueFalse = questionTypeVM.getTrueFalse() * 2; + List<Question> collect1 = list.stream().filter(e -> e.getQuestionType().equals(QuestionTypeEnum.TrueFalse.getCode())).collect(Collectors.toList()); + Map<Integer, Integer> judgmentMap = collect1.stream().collect(Collectors.toMap(Question::getId, Question::getScore)); + Integer trueFalse1 = questionTypeVM.getTrueFalse(); + Integer trueFalse = trueFalse1 * 2; selectRandomScores(multiple, judgmentMap, questionTypeVM.getTrueFalse(), trueFalse); //鍗曢�夊垎鏁� diff --git a/src/main/java/com/mindskip/xzs/service/impl/ExamPaperUserServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/ExamPaperUserServiceImpl.java index 337bf93..3cb95d8 100644 --- a/src/main/java/com/mindskip/xzs/service/impl/ExamPaperUserServiceImpl.java +++ b/src/main/java/com/mindskip/xzs/service/impl/ExamPaperUserServiceImpl.java @@ -42,4 +42,11 @@ public Integer removeByExamPaperId(Integer examPaperId) { return examPaperUserMapper.removeByExamPaperId(examPaperId); } + + @Override + public Integer getByPaperIdAndCreatUser(Integer examPaperId, Integer createUser) { + return examPaperUserMapper.getByPaperIdAndCreatUser(examPaperId, createUser); + } + + } diff --git a/src/main/java/com/mindskip/xzs/service/impl/ScoreTemplatesUserCountServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/ScoreTemplatesUserCountServiceImpl.java new file mode 100644 index 0000000..9dfcc2b --- /dev/null +++ b/src/main/java/com/mindskip/xzs/service/impl/ScoreTemplatesUserCountServiceImpl.java @@ -0,0 +1,37 @@ +package com.mindskip.xzs.service.impl; + +import com.mindskip.xzs.domain.ScoreTemplatesUserCount; +import com.mindskip.xzs.repository.*; +import com.mindskip.xzs.service.ExamPaperQuestionCustomerAnswerService; +import com.mindskip.xzs.service.ScoreTemplatesUserCountService; +import com.mindskip.xzs.service.TextContentService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class ScoreTemplatesUserCountServiceImpl extends BaseServiceImpl<ScoreTemplatesUserCount> implements ScoreTemplatesUserCountService { + + + private final ExamPaperAnswerMapper examPaperAnswerMapper; + private final ExamPaperMapper examPaperMapper; + private final TextContentService textContentService; + private final QuestionMapper questionMapper; + private final ExamPaperQuestionCustomerAnswerService examPaperQuestionCustomerAnswerService; + private final TaskExamCustomerAnswerMapper taskExamCustomerAnswerMapper; + private final ScoreTemplatesUserCountMapper scoreTemplatesUserCountMapper; + + @Autowired + public ScoreTemplatesUserCountServiceImpl(ExamPaperAnswerMapper examPaperAnswerMapper, ExamPaperMapper examPaperMapper, TextContentService textContentService, QuestionMapper questionMapper, ExamPaperQuestionCustomerAnswerService examPaperQuestionCustomerAnswerService, TaskExamCustomerAnswerMapper taskExamCustomerAnswerMapper,ScoreTemplatesUserCountMapper scoreTemplatesUserCountMapper) { + super(scoreTemplatesUserCountMapper); + this.examPaperAnswerMapper = examPaperAnswerMapper; + this.examPaperMapper = examPaperMapper; + this.textContentService = textContentService; + this.questionMapper = questionMapper; + this.examPaperQuestionCustomerAnswerService = examPaperQuestionCustomerAnswerService; + this.taskExamCustomerAnswerMapper = taskExamCustomerAnswerMapper; + this.scoreTemplatesUserCountMapper = scoreTemplatesUserCountMapper; + } + + + +} diff --git a/src/main/java/com/mindskip/xzs/service/impl/UserDepartMentServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/UserDepartMentServiceImpl.java new file mode 100644 index 0000000..17ff5f9 --- /dev/null +++ b/src/main/java/com/mindskip/xzs/service/impl/UserDepartMentServiceImpl.java @@ -0,0 +1,58 @@ +package com.mindskip.xzs.service.impl; + +import com.mindskip.xzs.domain.UserDepartment; +import com.mindskip.xzs.repository.UserDepartmentMapper; +import com.mindskip.xzs.service.UserDepartMentService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationEventPublisher; +import org.springframework.stereotype.Service; + +import java.util.List; + + +@Service +public class UserDepartMentServiceImpl extends BaseServiceImpl<UserDepartment> implements UserDepartMentService { + + private final UserDepartmentMapper userDepartmentMapper; + private final ApplicationEventPublisher eventPublisher; + + @Autowired + public UserDepartMentServiceImpl(UserDepartmentMapper userDepartMentMapper, ApplicationEventPublisher eventPublisher) { + super(userDepartMentMapper); + this.userDepartmentMapper = userDepartMentMapper; + this.eventPublisher = eventPublisher; + } + + + @Override + public List<UserDepartment> selectByUserId(Integer userId) { + return userDepartmentMapper.selectByUserId(userId); + } + + @Override + public List<UserDepartment> selectByDepartmentId(Integer departmentId) { + return userDepartmentMapper.selectByDepartmentId(departmentId); + } + + @Override + public Integer removeByUserId(Integer userId) { + return userDepartmentMapper.removeByUserId(userId); + } + + @Override + public Integer removeByDepartmentId(Integer departmentId) { + return userDepartmentMapper.removeByDepartmentId(departmentId); + } + + @Override + public UserDepartment selectByUser(Integer id) { + return userDepartmentMapper.selectByUser(id); + } + + @Override + public void updateUserDepartMent(UserDepartment userDepartment) { + userDepartmentMapper.updateUserDepartMent(userDepartment); + } + + +} diff --git a/src/main/java/com/mindskip/xzs/viewmodel/student/exampaper/ExamPaperAnswerPageResponseVM.java b/src/main/java/com/mindskip/xzs/viewmodel/student/exampaper/ExamPaperAnswerPageResponseVM.java index eabbf69..57cbf69 100644 --- a/src/main/java/com/mindskip/xzs/viewmodel/student/exampaper/ExamPaperAnswerPageResponseVM.java +++ b/src/main/java/com/mindskip/xzs/viewmodel/student/exampaper/ExamPaperAnswerPageResponseVM.java @@ -1,9 +1,11 @@ package com.mindskip.xzs.viewmodel.student.exampaper; +import com.fasterxml.jackson.annotation.JsonFormat; + public class ExamPaperAnswerPageResponseVM { private Integer id; - + @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8") private String createTime; private String userScore; @@ -33,6 +35,10 @@ private Double avgSource; private Integer counts; + + private Integer userId; + + private Integer createUser; public Integer getId() { return id; @@ -160,4 +166,19 @@ public void setCounts(Integer counts) { this.counts = counts; } + public Integer getUserId() { + return userId; + } + + public void setUserId(Integer userId) { + this.userId = userId; + } + + public Integer getCreateUser() { + return createUser; + } + + public void setCreateUser(Integer createUser) { + this.createUser = createUser; + } } diff --git a/src/main/resources/mapper/ExamPaperAnswerMapper.xml b/src/main/resources/mapper/ExamPaperAnswerMapper.xml index d39c223..4d449a4 100644 --- a/src/main/resources/mapper/ExamPaperAnswerMapper.xml +++ b/src/main/resources/mapper/ExamPaperAnswerMapper.xml @@ -33,6 +33,11 @@ paper_score, question_correct, question_count, do_time, status, create_user, create_time, task_exam_id,counts </sql> + <sql id="Base_Column_List3"> + id, exam_paper_id, paper_name, paper_type, subject_id, system_score, user_score, + paper_score, question_correct, question_count, do_time, status, create_user, create_time, + task_exam_id,DATE_FORMAT(create_time, '%Y-%m-%d %H:%i:%s') AS formattedTime + </sql> <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap"> select <include refid="Base_Column_List" /> @@ -307,7 +312,7 @@ <select id="adminPageByGrade" resultMap="BaseResultMap" parameterType="com.mindskip.xzs.viewmodel.admin.paper.ExamPaperGradePageRequestVM"> select <include refid="Base_Column_List2" /> - from t_exam_paper_answer + from t_exam_paper_answer where create_time between '2023-01-01'and '2023-12-31' <where> <if test="subjectId != null"> and subject_id = #{subjectId} @@ -317,5 +322,21 @@ </if> </where> </select> + <select id="getByScorePaperIdAndUserId" resultMap="BaseResultMap" parameterType="list"> + select + <include refid="Base_Column_List1" /> + from t_exam_paper_answer + where (exam_paper_id,create_user) in + <if test="scoreTemplatesUserCounts !=null and scoreTemplatesUserCounts.size() > 0"> + <foreach collection="scoreTemplatesUserCounts" item="item" index="item" open="(" separator="," close=")"> + (#{item.examPaperId},#{item.userId}) + </foreach> + </if> + </select> + <select id="getByCreatUser" resultMap="BaseResultMap" parameterType="com.mindskip.xzs.domain.vo.ScoreTemplatesCountVO"> + select + <include refid="Base_Column_List3"/> + from t_exam_paper_answer where create_user = #{createUser} and create_time between '2023-01-01'and '2023-12-31' + </select> </mapper> diff --git a/src/main/resources/mapper/ExamPaperUserMapper.xml b/src/main/resources/mapper/ExamPaperUserMapper.xml index 63ddd11..d945130 100644 --- a/src/main/resources/mapper/ExamPaperUserMapper.xml +++ b/src/main/resources/mapper/ExamPaperUserMapper.xml @@ -27,6 +27,11 @@ where exam_paper_id = #{examPaperId} and deleted = 0 </select> + <select id="getByPaperIdAndCreatUser" resultType="java.lang.Integer"> + select user_id from t_exam_paper_user + where exam_paper_id = #{examPaperId} and user_id = #{createUser} + </select> + <insert id="saves" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id"> insert into t_exam_paper_user(id, exam_paper_id, user_id, deleted) values diff --git a/src/main/resources/mapper/ScoreTemplatesUserCountMapper.xml b/src/main/resources/mapper/ScoreTemplatesUserCountMapper.xml new file mode 100644 index 0000000..328e5d9 --- /dev/null +++ b/src/main/resources/mapper/ScoreTemplatesUserCountMapper.xml @@ -0,0 +1,236 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.mindskip.xzs.repository.ScoreTemplatesUserCountMapper"> + <resultMap id="BaseResultMap" type="com.mindskip.xzs.domain.ExamPaperAnswer"> + <id column="id" jdbcType="INTEGER" property="id" /> + <result column="exam_paper_id" jdbcType="INTEGER" property="examPaperId" /> + <result column="paper_name" jdbcType="VARCHAR" property="paperName" /> + <result column="paper_type" jdbcType="INTEGER" property="paperType" /> + <result column="subject_id" jdbcType="INTEGER" property="subjectId" /> + <result column="system_score" jdbcType="INTEGER" property="systemScore" /> + <result column="user_score" jdbcType="INTEGER" property="userScore" /> + <result column="paper_score" jdbcType="INTEGER" property="paperScore" /> + <result column="question_correct" jdbcType="INTEGER" property="questionCorrect" /> + <result column="question_count" jdbcType="INTEGER" property="questionCount" /> + <result column="do_time" jdbcType="INTEGER" property="doTime" /> + <result column="status" jdbcType="INTEGER" property="status" /> + <result column="create_user" jdbcType="INTEGER" property="createUser" /> + <result column="create_time" jdbcType="TIMESTAMP" property="createTime" /> + <result column="task_exam_id" jdbcType="INTEGER" property="taskExamId" /> + <result column="counts" jdbcType="INTEGER" property="counts"/></resultMap> + <sql id="Base_Column_List"> + id, exam_paper_id, paper_name, paper_type, subject_id, system_score, user_score, + paper_score, question_correct, question_count, do_time, status, create_user, create_time, + task_exam_id + </sql> + <sql id="Base_Column_List1"> + id, exam_paper_id, paper_name, paper_type, subject_id, system_score, TRUNCATE(user_score/10,0) as user_score, + TRUNCATE(paper_score/10,0) as paper_score, question_correct, question_count, do_time, status, create_user, create_time, + task_exam_id + </sql> + <sql id="Base_Column_List2"> + id, exam_paper_id, paper_name, paper_type, subject_id, system_score, user_score, + paper_score, question_correct, question_count, do_time, status, create_user, create_time, + task_exam_id,counts + </sql> + <sql id="Base_Column_List3"> + id, exam_paper_id, paper_name, paper_type, subject_id, system_score, user_score, + paper_score, question_correct, question_count, do_time, status, create_user, DATE_FORMAT(create_time, '%Y-%m-%d %H:%i:%s') AS formattedTime, + task_exam_id,counts + </sql> + <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap"> + select + <include refid="Base_Column_List" /> + from t_exam_paper_answer + where id = #{id,jdbcType=INTEGER} + </select> + <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer"> + delete from t_exam_paper_answer + where id = #{id,jdbcType=INTEGER} + </delete> + <insert id="insert" parameterType="com.mindskip.xzs.domain.ExamPaperAnswer" useGeneratedKeys="true" keyProperty="id"> + insert into t_exam_paper_answer (id, exam_paper_id, paper_name, + paper_type, subject_id, system_score, + user_score, paper_score, question_correct, + question_count, do_time, status, + create_user, create_time, task_exam_id + ) + values (#{id,jdbcType=INTEGER}, #{examPaperId,jdbcType=INTEGER}, #{paperName,jdbcType=VARCHAR}, + #{paperType,jdbcType=INTEGER}, #{subjectId,jdbcType=INTEGER}, #{systemScore,jdbcType=INTEGER}, + #{userScore,jdbcType=INTEGER}, #{paperScore,jdbcType=INTEGER}, #{questionCorrect,jdbcType=INTEGER}, + #{questionCount,jdbcType=INTEGER}, #{doTime,jdbcType=INTEGER}, #{status,jdbcType=INTEGER}, + #{createUser,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, #{taskExamId,jdbcType=INTEGER} + ) + </insert> + <insert id="insertSelective" parameterType="com.mindskip.xzs.domain.ExamPaperAnswer" useGeneratedKeys="true" keyProperty="id"> + insert into t_exam_paper_answer + <trim prefix="(" suffix=")" suffixOverrides=","> + <if test="id != null"> + id, + </if> + <if test="examPaperId != null"> + exam_paper_id, + </if> + <if test="paperName != null"> + paper_name, + </if> + <if test="paperType != null"> + paper_type, + </if> + <if test="subjectId != null"> + subject_id, + </if> + <if test="systemScore != null"> + system_score, + </if> + <if test="userScore != null"> + user_score, + </if> + <if test="paperScore != null"> + paper_score, + </if> + <if test="questionCorrect != null"> + question_correct, + </if> + <if test="questionCount != null"> + question_count, + </if> + <if test="doTime != null"> + do_time, + </if> + <if test="status != null"> + status, + </if> + <if test="createUser != null"> + create_user, + </if> + <if test="createTime != null"> + create_time, + </if> + <if test="taskExamId != null"> + task_exam_id, + </if> + </trim> + <trim prefix="values (" suffix=")" suffixOverrides=","> + <if test="id != null"> + #{id,jdbcType=INTEGER}, + </if> + <if test="examPaperId != null"> + #{examPaperId,jdbcType=INTEGER}, + </if> + <if test="paperName != null"> + #{paperName,jdbcType=VARCHAR}, + </if> + <if test="paperType != null"> + #{paperType,jdbcType=INTEGER}, + </if> + <if test="subjectId != null"> + #{subjectId,jdbcType=INTEGER}, + </if> + <if test="systemScore != null"> + #{systemScore,jdbcType=INTEGER}, + </if> + <if test="userScore != null"> + #{userScore,jdbcType=INTEGER}, + </if> + <if test="paperScore != null"> + #{paperScore,jdbcType=INTEGER}, + </if> + <if test="questionCorrect != null"> + #{questionCorrect,jdbcType=INTEGER}, + </if> + <if test="questionCount != null"> + #{questionCount,jdbcType=INTEGER}, + </if> + <if test="doTime != null"> + #{doTime,jdbcType=INTEGER}, + </if> + <if test="status != null"> + #{status,jdbcType=INTEGER}, + </if> + <if test="createUser != null"> + #{createUser,jdbcType=INTEGER}, + </if> + <if test="createTime != null"> + #{createTime,jdbcType=TIMESTAMP}, + </if> + <if test="taskExamId != null"> + #{taskExamId,jdbcType=INTEGER}, + </if> + </trim> + </insert> + <update id="updateByPrimaryKeySelective" parameterType="com.mindskip.xzs.domain.ExamPaperAnswer"> + update t_exam_paper_answer + <set> + <if test="examPaperId != null"> + exam_paper_id = #{examPaperId,jdbcType=INTEGER}, + </if> + <if test="paperName != null"> + paper_name = #{paperName,jdbcType=VARCHAR}, + </if> + <if test="paperType != null"> + paper_type = #{paperType,jdbcType=INTEGER}, + </if> + <if test="subjectId != null"> + subject_id = #{subjectId,jdbcType=INTEGER}, + </if> + <if test="systemScore != null"> + system_score = #{systemScore,jdbcType=INTEGER}, + </if> + <if test="userScore != null"> + user_score = #{userScore,jdbcType=INTEGER}, + </if> + <if test="paperScore != null"> + paper_score = #{paperScore,jdbcType=INTEGER}, + </if> + <if test="questionCorrect != null"> + question_correct = #{questionCorrect,jdbcType=INTEGER}, + </if> + <if test="questionCount != null"> + question_count = #{questionCount,jdbcType=INTEGER}, + </if> + <if test="doTime != null"> + do_time = #{doTime,jdbcType=INTEGER}, + </if> + <if test="status != null"> + status = #{status,jdbcType=INTEGER}, + </if> + <if test="createUser != null"> + create_user = #{createUser,jdbcType=INTEGER}, + </if> + <if test="createTime != null"> + create_time = #{createTime,jdbcType=TIMESTAMP}, + </if> + <if test="taskExamId != null"> + task_exam_id = #{taskExamId,jdbcType=INTEGER}, + </if> + </set> + where id = #{id,jdbcType=INTEGER} + </update> + <update id="updateByPrimaryKey" parameterType="com.mindskip.xzs.domain.ExamPaperAnswer"> + update t_exam_paper_answer + set exam_paper_id = #{examPaperId,jdbcType=INTEGER}, + paper_name = #{paperName,jdbcType=VARCHAR}, + paper_type = #{paperType,jdbcType=INTEGER}, + subject_id = #{subjectId,jdbcType=INTEGER}, + system_score = #{systemScore,jdbcType=INTEGER}, + user_score = #{userScore,jdbcType=INTEGER}, + paper_score = #{paperScore,jdbcType=INTEGER}, + question_correct = #{questionCorrect,jdbcType=INTEGER}, + question_count = #{questionCount,jdbcType=INTEGER}, + do_time = #{doTime,jdbcType=INTEGER}, + status = #{status,jdbcType=INTEGER}, + create_user = #{createUser,jdbcType=INTEGER}, + create_time = #{createTime,jdbcType=TIMESTAMP}, + task_exam_id = #{taskExamId,jdbcType=INTEGER} + where id = #{id,jdbcType=INTEGER} + </update> + + <select id="getByUserIdAndTemplatesId" resultMap="BaseResultMap" parameterType="com.mindskip.xzs.domain.vo.ScoreTemplatesCountVO"> + select + <include refid="Base_Column_List1"/> + from t_exam_paper_answer + where create_user = #{createUser} + </select> + +</mapper> diff --git a/src/main/resources/mapper/UserDepartmentMapper.xml b/src/main/resources/mapper/UserDepartmentMapper.xml index 962c4ed..4434e15 100644 --- a/src/main/resources/mapper/UserDepartmentMapper.xml +++ b/src/main/resources/mapper/UserDepartmentMapper.xml @@ -30,6 +30,12 @@ from t_user_department where department_id = #{departmentId,jdbcType=INTEGER} </select> + <select id="selectByUser" resultType="com.mindskip.xzs.domain.UserDepartment"> + select + <include refid="Base_Column_List" /> + from t_user_department + where user_id=#{id} + </select> <delete id="removeByUserId"> delete from t_user_department where user_id = #{userId} @@ -38,4 +44,13 @@ <delete id="removeByDepartmentId"> delete from t_user_department where department_id = #{departmentId} </delete> + + <update id="updateUserDepartMent" parameterType="com.mindskip.xzs.domain.UserDepartment"> + update t_user_department + <set> + <if test="user_id != null">user_id = #{userId},</if> + <if test="department_id != null">department_id = #{departmentId},</if> + </set> + where id = #{id} + </update> </mapper> \ No newline at end of file -- Gitblit v1.8.0