package com.example.teesystem.service.impl;
import cn.hutool.core.lang.hash.Hash;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.teesystem.common.cache.KnowledgeCache;
import com.example.teesystem.common.cache.UserCache;
import com.example.teesystem.common.utils.DocUtil;
import com.example.teesystem.common.utils.IssueUtil;
import com.example.teesystem.common.utils.Response;
import com.example.teesystem.common.utils.ResultCode;
import com.example.teesystem.entity.Class;
import com.example.teesystem.entity.*;
import com.example.teesystem.entity.vo.PageRequestVo;
import com.example.teesystem.entity.vo.PageResponseVo;
import com.example.teesystem.entity.vo.examEvaluation.WordVo;
import com.example.teesystem.entity.vo.examPaper.ExamPaperSelectVo1;
import com.example.teesystem.entityDto.*;
import com.example.teesystem.filter.MyHandlerInterceptor;
import com.example.teesystem.mapper.*;
import com.example.teesystem.service.ExamEvaluationService;
import com.example.teesystem.service.ExamIssueService;
import lombok.RequiredArgsConstructor;
import org.apache.tomcat.util.buf.StringUtils;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletResponse;
import java.math.RoundingMode;
import java.text.NumberFormat;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author NieYaShi
* @description 针对表【t_exam_evaluation】的数据库操作Service实现
* @createDate 2022-04-19 14:44:43
*/
@Service
@RequiredArgsConstructor
public class ExamEvaluationServiceImpl extends ServiceImpl<ExamEvaluationMapper, ExamEvaluation>
implements ExamEvaluationService {
private final IssueRecordMapper issueRecordMapper;
private final IssueMapper issueMapper;
private final ExamPaperMapper examPaperMapper;
private final ExamIssueMapper examIssueMapper;
private final ExamEvaluationMapper examEvaluationMapper;
private final ChapterMapper chapterMapper;
private final ClassStudentMapper classStudentMapper;
private final CourseMapper courseMapper;
private final ClassMapper classMapper;
private final PaperFeedbackMapper paperFeedbackMapper;
private final ExamIssueService examIssueService;
@Override
public Response getStudentIssueCorrect() {
Map<String, Float> result = new HashMap<>();
QueryWrapper<IssueRecord> issueRecordQueryWrapper = new QueryWrapper<>();
issueRecordQueryWrapper
.eq("student_id", MyHandlerInterceptor.getUid())
.orderByAsc("issue_id");
List<IssueRecord> issueRecordList = issueRecordMapper.selectList(issueRecordQueryWrapper);
if (issueRecordList.size() == 0){
return Response.ok(result);
}
List<Integer> issueIds = new ArrayList<>();
for (IssueRecord issueRecord : issueRecordList) {
issueIds.add(issueRecord.getIssueId());
}
QueryWrapper<Issue> issueQueryWrapper = new QueryWrapper<>();
issueQueryWrapper
.in("id", issueIds)
.orderByAsc("id");
List<Issue> issueList = issueMapper.selectList(issueQueryWrapper);
Map<Integer, List<IssueRecord>> recodeMap = getRecordeMap(issueRecordList, issueList);
for (Integer key : recodeMap.keySet()) {
float rightNum = 0;
float wrongNum = 0;
for (IssueRecord issueRecord : recodeMap.get(key)) {
rightNum += issueRecord.getRightNum();
wrongNum += issueRecord.getWrongNum();
}
float correct = rightNum / (rightNum + wrongNum);
result.put(IssueUtil.getIssueTypeName(key), correct);
}
return Response.ok(result);
}
@Override
public Response getStudentIssueAvgDifficulty() {
Map<String, Float> result = new HashMap<>();
QueryWrapper<IssueRecord> issueRecordQueryWrapper = new QueryWrapper<>();
issueRecordQueryWrapper
.eq("student_id", MyHandlerInterceptor.getUid())
.orderByAsc("issue_id");
List<IssueRecord> issueRecordList = issueRecordMapper.selectList(issueRecordQueryWrapper);
if (issueRecordList.size() == 0){
return Response.ok(result);
}
List<Integer> issueIds = new ArrayList<>();
for (IssueRecord issueRecord : issueRecordList) {
issueIds.add(issueRecord.getIssueId());
}
QueryWrapper<Issue> issueQueryWrapper = new QueryWrapper<>();
issueQueryWrapper
.in("id", issueIds)
.orderByAsc("id");
List<Issue> issueList = issueMapper.selectList(issueQueryWrapper);
Map<Integer, List<Issue>> issueMap = issueList.stream().collect(Collectors.groupingBy(
Issue::getType));
for (Integer key : issueMap.keySet()) {
float difficulty = 0;
for (Issue issue : issueMap.get(key)) {
difficulty += issue.getDifficulty();
}
result.put(IssueUtil.getIssueTypeName(key), difficulty / issueMap.get(key).size());
}
return Response.ok(result);
}
private Map<Integer, List<IssueRecord>> getRecordeMap(List<IssueRecord> issueRecordList, List<Issue> issueList) {
Map<Integer, List<IssueRecord>> recordeMap = new HashMap<>();
for (int i = 0; i < issueRecordList.size(); i++) {
if (issueList.get(i).getType().equals(IssueUtil.JUDGE)) {
if (recordeMap.get(IssueUtil.JUDGE) == null) {
List<IssueRecord> issueRecords = new ArrayList<>();
issueRecords.add(issueRecordList.get(i));
recordeMap.put(IssueUtil.JUDGE, issueRecords);
} else {
List<IssueRecord> issueRecords = recordeMap.get(IssueUtil.JUDGE);
issueRecords.add(issueRecordList.get(i));
recordeMap.put(IssueUtil.JUDGE, issueRecords);
}
} else if (issueList.get(i).getType().equals(IssueUtil.FILL_IN_THE_BLANKS)) {
if (recordeMap.get(IssueUtil.FILL_IN_THE_BLANKS) == null) {
List<IssueRecord> issueRecords = new ArrayList<>();
issueRecords.add(issueRecordList.get(i));
recordeMap.put(IssueUtil.FILL_IN_THE_BLANKS, issueRecords);
} else {
List<IssueRecord> issueRecords = recordeMap.get(IssueUtil.FILL_IN_THE_BLANKS);
issueRecords.add(issueRecordList.get(i));
recordeMap.put(IssueUtil.FILL_IN_THE_BLANKS, issueRecords);
}
} else if (issueList.get(i).getType().equals(IssueUtil.SINGLE_CHOICE)) {
if (recordeMap.get(IssueUtil.SINGLE_CHOICE) == null) {
List<IssueRecord> issueRecords = new ArrayList<>();
issueRecords.add(issueRecordList.get(i));
recordeMap.put(IssueUtil.SINGLE_CHOICE, issueRecords);
} else {
List<IssueRecord> issueRecords = recordeMap.get(IssueUtil.SINGLE_CHOICE);
issueRecords.add(issueRecordList.get(i));
recordeMap.put(IssueUtil.SINGLE_CHOICE, issueRecords);
}
} else if (issueList.get(i).getType().equals(IssueUtil.MULTIPLE_CHOICE)) {
if (recordeMap.get(IssueUtil.MULTIPLE_CHOICE) == null) {
List<IssueRecord> issueRecords = new ArrayList<>();
issueRecords.add(issueRecordList.get(i));
recordeMap.put(IssueUtil.MULTIPLE_CHOICE, issueRecords);
} else {
List<IssueRecord> issueRecords = recordeMap.get(IssueUtil.MULTIPLE_CHOICE);
issueRecords.add(issueRecordL
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
本源码提供了一个基于Java的实训项目训考评一体化系统后端服务设计。项目包含395个文件,其中包括357个Java源文件、32个XML文件、1个JAR包、1个JSON文件、1个Excel文件、1个属性文件、1个YAML文件和1个HTML文件。这个系统是一个实训项目的一部分,主要提供后端服务,支持训考评的一体化管理,适合用于教学实训和考核评估场景。
资源推荐
资源详情
资源评论
收起资源包目录
基于Java的实训项目训考评一体化系统后端服务设计源码 (396个子文件)
pk.html 3KB
j2ee.jar 500KB
ExamEvaluationServiceImpl.java 48KB
ExamPaperServiceImpl.java 43KB
ExamServiceImpl.java 23KB
IssueServiceImpl.java 22KB
UserServiceImpl.java 22KB
ExamIssueServiceImpl.java 18KB
ChartUtils.java 17KB
PKController.java 15KB
PdfFontUtil.java 15KB
ExamPaperController.java 14KB
McffServiceImpl.java 13KB
CourseController.java 13KB
IssueController.java 13KB
UserController.java 12KB
AdvancedTrainingServiceImpl.java 10KB
KnowledgeServiceImpl.java 10KB
PKServiceImpl.java 10KB
WrongSetServiceImpl.java 10KB
IssueRecordServiceImpl.java 10KB
ClassServiceImpl.java 10KB
ClassStudentServiceImpl.java 9KB
ExamEvaluationController.java 8KB
CourseDataController.java 8KB
CourseServiceImpl.java 8KB
FileUtil.java 8KB
CourseDataServiceImpl.java 8KB
WebLogAspect.java 7KB
AssistantServiceImpl.java 7KB
ClassStudentController.java 7KB
IPUtil.java 7KB
ResultCode.java 7KB
BoatServiceImpl.java 7KB
PreCourseScoreServiceImpl.java 6KB
AdvancedTrainingController.java 6KB
PermissionAspect.java 6KB
IssueFeedbackController.java 6KB
FeatureController.java 5KB
IssueFeedbackServiceImpl.java 5KB
PermissionUtil.java 5KB
ChapterServiceImpl.java 5KB
AdvancedTrainingProgressServiceImpl.java 5KB
Library.java 5KB
TimeUtil.java 5KB
LibraryServiceImpl.java 5KB
HttpUtil.java 4KB
AssistantController.java 4KB
PaperFeedbackServiceImpl.java 4KB
IssueMapper.java 4KB
FeatureTrainingServiceImpl.java 4KB
PermissionInterceptor.java 4KB
MyHandlerInterceptor.java 4KB
KnowledgeController.java 4KB
LoginUtil.java 4KB
ChapterController.java 4KB
ExcelUtil.java 4KB
CustomExceptionHandler.java 4KB
ExamIssueController.java 4KB
ClassController.java 3KB
LogServiceImpl.java 3KB
ExamPaperMapper.java 3KB
AutoUpdate.java 3KB
ViolationServiceImpl.java 3KB
AdvanceTrainProgressController.java 3KB
DailyIssueController.java 3KB
WrongSetController.java 3KB
ExamPaperMessage.java 3KB
IssueRecordMapper.java 3KB
PKInterceptor.java 3KB
PaperFeedbackController.java 3KB
ExamPaper.java 3KB
ExamController.java 3KB
Issue.java 3KB
Base64ToFile.java 3KB
AdvancedTrainingMapper.java 3KB
Test.java 3KB
UserMapper.java 2KB
ExamPaperService.java 2KB
LibraryController.java 2KB
IssueMessage.java 2KB
DocUtil.java 2KB
ExamPaperList.java 2KB
ExamEvaluationMapper.java 2KB
PreCourseServiceImpl.java 2KB
NotMarkIssueMessage.java 2KB
WebSocketConfig.java 2KB
IssueExcel.java 2KB
Mcff.java 2KB
FileUtils.java 2KB
CourseData.java 2KB
BoatMapper.java 2KB
UserMessage.java 2KB
ValidErrorMessage.java 2KB
User.java 2KB
AuthenticationUtil.java 2KB
ExamEvaluationService.java 2KB
StudentDto.java 2KB
IssueList.java 2KB
Course.java 2KB
共 396 条
- 1
- 2
- 3
- 4
资源评论
沐知全栈开发
- 粉丝: 4771
- 资源: 3372
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功