17808
2023-11-07 5dc1025f4f67a8750b8dd802f8def1fa2dfa116a
成绩统计后端
15个文件已修改
9个文件已添加
764 ■■■■■ 已修改文件
src/main/java/com/mindskip/xzs/configuration/spring/security/SecurityConfigurer.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/domain/ExamPaperAnswer.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/domain/ScoreTemplates.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/domain/ScoreTemplatesUserCount.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/domain/UserDepartment.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/domain/vo/ScoreTemplatesCountVO.java 103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/repository/ExamPaperAnswerMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/repository/ExamPaperUserMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/repository/ScoreTemplatesUserCountMapper.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/repository/UserDepartmentMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/service/ExamPaperAnswerService.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/service/ExamPaperUserService.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/service/ScoreTemplatesUserCountService.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/service/UserDepartMentService.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/service/impl/ExamPaperAnswerServiceImpl.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/service/impl/ExamPaperUserServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/service/impl/ScoreTemplatesUserCountServiceImpl.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/service/impl/UserDepartMentServiceImpl.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/viewmodel/student/exampaper/ExamPaperAnswerPageResponseVM.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/ExamPaperAnswerMapper.xml 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/ExamPaperUserMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/ScoreTemplatesUserCountMapper.xml 236 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/UserDepartmentMapper.xml 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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()
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;
    }
}
src/main/java/com/mindskip/xzs/domain/ScoreTemplates.java
New file
@@ -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;
    }
}
src/main/java/com/mindskip/xzs/domain/ScoreTemplatesUserCount.java
New file
@@ -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;
    }
}
src/main/java/com/mindskip/xzs/domain/UserDepartment.java
@@ -10,4 +10,6 @@
    private Integer id;
    private Integer userId;
    private Integer departmentId;
}
src/main/java/com/mindskip/xzs/domain/vo/ScoreTemplatesCountVO.java
New file
@@ -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;
    }
}
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);
}
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);
}
src/main/java/com/mindskip/xzs/repository/ScoreTemplatesUserCountMapper.java
New file
@@ -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);
}
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);
}
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);
}
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);
}
src/main/java/com/mindskip/xzs/service/ScoreTemplatesUserCountService.java
New file
@@ -0,0 +1,11 @@
package com.mindskip.xzs.service;
import com.mindskip.xzs.domain.ScoreTemplatesUserCount;
public interface ScoreTemplatesUserCountService extends BaseService<ScoreTemplatesUserCount>{
}
src/main/java/com/mindskip/xzs/service/UserDepartMentService.java
New file
@@ -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);
}
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);
    }
}
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);
            //单选分数
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);
    }
}
src/main/java/com/mindskip/xzs/service/impl/ScoreTemplatesUserCountServiceImpl.java
New file
@@ -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;
    }
}
src/main/java/com/mindskip/xzs/service/impl/UserDepartMentServiceImpl.java
New file
@@ -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);
    }
}
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;
    }
}
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>
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
src/main/resources/mapper/ScoreTemplatesUserCountMapper.xml
New file
@@ -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>
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>