|
|
@ -1,6 +1,11 @@
|
|
|
|
package com.sztzjy.trade.service.impl;
|
|
|
|
package com.sztzjy.trade.service.impl;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
|
|
|
|
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
|
|
|
|
|
import com.fasterxml.jackson.databind.SerializationFeature;
|
|
|
|
import com.github.pagehelper.PageInfo;
|
|
|
|
import com.github.pagehelper.PageInfo;
|
|
|
|
|
|
|
|
import com.nimbusds.jose.shaded.gson.JsonObject;
|
|
|
|
|
|
|
|
import com.nimbusds.jose.shaded.gson.JsonParser;
|
|
|
|
import com.sztzjy.trade.config.exception.handler.ServiceException;
|
|
|
|
import com.sztzjy.trade.config.exception.handler.ServiceException;
|
|
|
|
import com.sztzjy.trade.entity.*;
|
|
|
|
import com.sztzjy.trade.entity.*;
|
|
|
|
import com.sztzjy.trade.entity.dto.StuExaminationGradesDTO;
|
|
|
|
import com.sztzjy.trade.entity.dto.StuExaminationGradesDTO;
|
|
|
@ -16,7 +21,9 @@ import com.sztzjy.trade.util.ConvertUtil;
|
|
|
|
import com.sztzjy.trade.util.PageUtil;
|
|
|
|
import com.sztzjy.trade.util.PageUtil;
|
|
|
|
import com.sztzjy.trade.util.ResultEntity;
|
|
|
|
import com.sztzjy.trade.util.ResultEntity;
|
|
|
|
import com.sztzjy.trade.util.file.IFileUtil;
|
|
|
|
import com.sztzjy.trade.util.file.IFileUtil;
|
|
|
|
|
|
|
|
import org.json.JSONObject;
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
|
import org.springframework.http.HttpStatus;
|
|
|
|
import org.springframework.http.HttpStatus;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import org.springframework.util.Assert;
|
|
|
|
import org.springframework.util.Assert;
|
|
|
@ -56,10 +63,15 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService {
|
|
|
|
StuScoreDetailsInfoMapper stuScoreDetailsInfoMapper;
|
|
|
|
StuScoreDetailsInfoMapper stuScoreDetailsInfoMapper;
|
|
|
|
@Autowired
|
|
|
|
@Autowired
|
|
|
|
private IFileUtil fileUtil;
|
|
|
|
private IFileUtil fileUtil;
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
|
|
|
StuUploadExpermentMapper stuUploadExpermentMapper;
|
|
|
|
|
|
|
|
@Value("${file.path}")
|
|
|
|
|
|
|
|
private String filePath;
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public PageInfo getHomework(String userId, String type, Integer index, Integer size) {
|
|
|
|
public PageInfo getHomework(String userId, String type, Integer index, Integer size) {
|
|
|
|
if(!type.equals("考试")){
|
|
|
|
if(!type.equals("考试")){
|
|
|
|
TchHomeworkManageExample homeworkManageExample=new TchHomeworkManageExample();
|
|
|
|
TchHomeworkManageExample homeworkManageExample=new TchHomeworkManageExample();
|
|
|
|
|
|
|
|
homeworkManageExample.setOrderByClause("create_time desc");
|
|
|
|
homeworkManageExample.createCriteria().andUserIdEqualTo(userId).andHomeworkTypeEqualTo(type);
|
|
|
|
homeworkManageExample.createCriteria().andUserIdEqualTo(userId).andHomeworkTypeEqualTo(type);
|
|
|
|
List<TchHomeworkManage> tchHomeworkManages = homeworkManageMapper.selectByExample(homeworkManageExample);
|
|
|
|
List<TchHomeworkManage> tchHomeworkManages = homeworkManageMapper.selectByExample(homeworkManageExample);
|
|
|
|
|
|
|
|
|
|
|
@ -67,6 +79,7 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService {
|
|
|
|
return PageUtil.pageHelper(tchHomeworkManages, index, size);
|
|
|
|
return PageUtil.pageHelper(tchHomeworkManages, index, size);
|
|
|
|
}else {
|
|
|
|
}else {
|
|
|
|
TchExamManageExample examManageExample=new TchExamManageExample();
|
|
|
|
TchExamManageExample examManageExample=new TchExamManageExample();
|
|
|
|
|
|
|
|
examManageExample.setOrderByClause("create_time desc");
|
|
|
|
examManageExample.createCriteria().andUserIdEqualTo(userId);
|
|
|
|
examManageExample.createCriteria().andUserIdEqualTo(userId);
|
|
|
|
List<TchExamManage> tchExamManages = examManageMapper.selectByExample(examManageExample);
|
|
|
|
List<TchExamManage> tchExamManages = examManageMapper.selectByExample(examManageExample);
|
|
|
|
|
|
|
|
|
|
|
@ -76,49 +89,20 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public Integer add(TchHomeworkExamDTO homeworkExamDTO, MultipartFile file) {
|
|
|
|
public Integer add(TchHomeworkExamDTO homeworkExamDTO) {
|
|
|
|
|
|
|
|
|
|
|
|
//将班级集合集合转为字符串
|
|
|
|
//将班级集合集合转为字符串
|
|
|
|
String className="";
|
|
|
|
String className="";
|
|
|
|
for (int i = 0; i < homeworkExamDTO.getClassNameList().size(); i++) {
|
|
|
|
for (int i = 0; i < homeworkExamDTO.getClassNameList().size(); i++) {
|
|
|
|
|
|
|
|
|
|
|
|
if(homeworkExamDTO.getClassNameList().size()-1==i){
|
|
|
|
if(homeworkExamDTO.getClassNameList().size()-1==i){
|
|
|
|
className=className+homeworkExamDTO.getClassNameList().get(0);
|
|
|
|
className=className+homeworkExamDTO.getClassNameList().get(i);
|
|
|
|
}else {
|
|
|
|
}else {
|
|
|
|
className=className+homeworkExamDTO.getClassNameList().get(0)+",";
|
|
|
|
className=className+homeworkExamDTO.getClassNameList().get(i)+",";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// TODO: 2024/8/6 取出所选题的数量,在题库中随机抽取,将题目ID拼接成字符串存到数据库中
|
|
|
|
|
|
|
|
//取出所选题的总数量
|
|
|
|
|
|
|
|
List<TchTopicDetailsDTO> topicDetailsDTOS = homeworkExamDTO.getTopicDetailsDTOS();
|
|
|
|
|
|
|
|
int quantity=0;
|
|
|
|
|
|
|
|
for (TchTopicDetailsDTO topicDetailsDTO: topicDetailsDTOS) {
|
|
|
|
|
|
|
|
quantity=quantity+topicDetailsDTO.getQuantity();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//查询题库所有题
|
|
|
|
|
|
|
|
List<StuLearningAssessment> stuLearningAssessments = learningAssessmentMapper.selectByExample(null);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(quantity>stuLearningAssessments.size()){
|
|
|
|
|
|
|
|
throw new ServiceException(HttpStatus.ACCEPTED,"要选择的题目数量不能大于题库的总数量");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 打乱集合
|
|
|
|
|
|
|
|
Collections.shuffle(stuLearningAssessments);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 获取前quantity个元素
|
|
|
|
|
|
|
|
List<StuLearningAssessment> subList = stuLearningAssessments.subList(0, quantity);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//遍历集合,取出id拼接成字符串
|
|
|
|
|
|
|
|
String topicId="";
|
|
|
|
|
|
|
|
for (int i = 0; i < subList.size(); i++) {
|
|
|
|
|
|
|
|
if(subList.size()-1==i){
|
|
|
|
|
|
|
|
topicId=topicId+subList.get(0).getTopicId();
|
|
|
|
|
|
|
|
}else {
|
|
|
|
|
|
|
|
topicId=topicId+subList.get(0).getTopicId()+",";
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// TODO: 2024/8/6 1、题库作业,2、附件作业,3、考试
|
|
|
|
// TODO: 2024/8/6 1、题库作业,2、附件作业,3、考试
|
|
|
|
|
|
|
|
|
|
|
@ -143,7 +127,10 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService {
|
|
|
|
homeworkManage.setOptionNumberState(homeworkExamDTO.getOptionNumberState());
|
|
|
|
homeworkManage.setOptionNumberState(homeworkExamDTO.getOptionNumberState());
|
|
|
|
homeworkManage.setParsingState(homeworkExamDTO.getParsingState());
|
|
|
|
homeworkManage.setParsingState(homeworkExamDTO.getParsingState());
|
|
|
|
homeworkManage.setAnswerSate(homeworkExamDTO.getAnswerSate());
|
|
|
|
homeworkManage.setAnswerSate(homeworkExamDTO.getAnswerSate());
|
|
|
|
homeworkManage.setTopicId(topicId);
|
|
|
|
//将题目ID转成String逗号隔开
|
|
|
|
|
|
|
|
String join = String.join(",", homeworkExamDTO.getTopicId());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
homeworkManage.setTopicId(join);
|
|
|
|
homeworkManage.setTotalPeople(0);
|
|
|
|
homeworkManage.setTotalPeople(0);
|
|
|
|
homeworkManage.setTatalScore(new BigDecimal(0));
|
|
|
|
homeworkManage.setTatalScore(new BigDecimal(0));
|
|
|
|
homeworkManage.setNumberPassers(0);
|
|
|
|
homeworkManage.setNumberPassers(0);
|
|
|
@ -167,9 +154,8 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService {
|
|
|
|
homeworkManage.setState(0);
|
|
|
|
homeworkManage.setState(0);
|
|
|
|
homeworkManage.setHomeworkAsk(homeworkExamDTO.getHomeworkAsk());
|
|
|
|
homeworkManage.setHomeworkAsk(homeworkExamDTO.getHomeworkAsk());
|
|
|
|
|
|
|
|
|
|
|
|
String upload = localFileUtil.upload(file);
|
|
|
|
homeworkManage.setUserId(homeworkExamDTO.getUserId());
|
|
|
|
|
|
|
|
homeworkManage.setHomeworkAnnex(homeworkExamDTO.getUrl());
|
|
|
|
homeworkManage.setHomeworkAnnex(upload);
|
|
|
|
|
|
|
|
homeworkManage.setCreateTime(new Date());
|
|
|
|
homeworkManage.setCreateTime(new Date());
|
|
|
|
|
|
|
|
|
|
|
|
return homeworkManageMapper.insert(homeworkManage);
|
|
|
|
return homeworkManageMapper.insert(homeworkManage);
|
|
|
@ -194,7 +180,10 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService {
|
|
|
|
examManage.setOptionNumberState(homeworkExamDTO.getOptionNumberState());
|
|
|
|
examManage.setOptionNumberState(homeworkExamDTO.getOptionNumberState());
|
|
|
|
examManage.setParsingState(homeworkExamDTO.getParsingState());
|
|
|
|
examManage.setParsingState(homeworkExamDTO.getParsingState());
|
|
|
|
examManage.setAnswerSate(homeworkExamDTO.getAnswerSate());
|
|
|
|
examManage.setAnswerSate(homeworkExamDTO.getAnswerSate());
|
|
|
|
examManage.setTopicId(topicId);
|
|
|
|
//将题目ID转成String逗号隔开
|
|
|
|
|
|
|
|
String join = String.join(",", homeworkExamDTO.getTopicId());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
examManage.setTopicId(join);
|
|
|
|
examManage.setRespondentsPeoples(0);
|
|
|
|
examManage.setRespondentsPeoples(0);
|
|
|
|
examManage.setAnswerTotal(0);
|
|
|
|
examManage.setAnswerTotal(0);
|
|
|
|
examManage.setAnswerIncorrectlyTotal(0);
|
|
|
|
examManage.setAnswerIncorrectlyTotal(0);
|
|
|
@ -204,24 +193,58 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService {
|
|
|
|
|
|
|
|
|
|
|
|
//作业或考试添加成功,则继续添加选题详情
|
|
|
|
//作业或考试添加成功,则继续添加选题详情
|
|
|
|
|
|
|
|
|
|
|
|
if(insert>1){
|
|
|
|
|
|
|
|
|
|
|
|
// // TODO: 2024/8/6 取出所选题的数量,在题库中随机抽取,将题目ID拼接成字符串存到数据库中
|
|
|
|
|
|
|
|
// //取出所选题的总数量
|
|
|
|
|
|
|
|
// List<TchTopicDetailsDTO> topicDetailsDTOS = homeworkExamDTO.getTopicDetailsDTOS();
|
|
|
|
|
|
|
|
// int quantity=0;
|
|
|
|
|
|
|
|
// for (TchTopicDetailsDTO topicDetailsDTO: topicDetailsDTOS) {
|
|
|
|
|
|
|
|
// quantity=quantity+topicDetailsDTO.getQuantity();
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// //查询题库所有题
|
|
|
|
|
|
|
|
// List<StuLearningAssessment> stuLearningAssessments = learningAssessmentMapper.selectByExample(null);
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// if(quantity>stuLearningAssessments.size()){
|
|
|
|
|
|
|
|
// throw new ServiceException(HttpStatus.ACCEPTED,"要选择的题目数量不能大于题库的总数量");
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// // 打乱集合
|
|
|
|
|
|
|
|
// Collections.shuffle(stuLearningAssessments);
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// // 获取前quantity个元素
|
|
|
|
|
|
|
|
// List<StuLearningAssessment> subList = stuLearningAssessments.subList(0, quantity);
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// //遍历集合,取出id拼接成字符串
|
|
|
|
|
|
|
|
// String topicId="";
|
|
|
|
|
|
|
|
// for (int i = 0; i < subList.size(); i++) {
|
|
|
|
|
|
|
|
// if(subList.size()-1==i){
|
|
|
|
|
|
|
|
// topicId=topicId+subList.get(0).getTopicId();
|
|
|
|
|
|
|
|
// }else {
|
|
|
|
|
|
|
|
// topicId=topicId+subList.get(0).getTopicId()+",";
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(insert>0){
|
|
|
|
//选题详情赋值,取出选题详情集合
|
|
|
|
//选题详情赋值,取出选题详情集合
|
|
|
|
List<TchTopicDetails> tchTopicDetails = convertUtil.DTOListToEntity(topicDetailsDTOS, TchTopicDetails.class);
|
|
|
|
List<TchTopicDetails> tchTopicDetails = convertUtil.DTOListToEntity(homeworkExamDTO.getTopicDetailsDTOS(), TchTopicDetails.class);
|
|
|
|
|
|
|
|
|
|
|
|
for (TchTopicDetails tchTopicDetail: tchTopicDetails) {
|
|
|
|
for (TchTopicDetails tchTopicDetail: tchTopicDetails) {
|
|
|
|
tchTopicDetail.setId(UUID.randomUUID().toString());
|
|
|
|
tchTopicDetail.setId(UUID.randomUUID().toString());
|
|
|
|
tchTopicDetail.setTaskName(homeworkExamDTO.getType());
|
|
|
|
tchTopicDetail.setTaskName(homeworkExamDTO.getType());
|
|
|
|
tchTopicDetail.setTaskId(string);
|
|
|
|
tchTopicDetail.setTaskId(string);
|
|
|
|
|
|
|
|
|
|
|
|
return topicDetailsMapper.insert(tchTopicDetail);
|
|
|
|
topicDetailsMapper.insert(tchTopicDetail);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public Integer update(TchHomeworkExamDTO homeworkExamDTO, MultipartFile file) {
|
|
|
|
public Integer update(TchHomeworkExamDTO homeworkExamDTO) {
|
|
|
|
|
|
|
|
|
|
|
|
//将班级集合和题目id集合转为字符串
|
|
|
|
//将班级集合和题目id集合转为字符串
|
|
|
|
String className="";
|
|
|
|
String className="";
|
|
|
@ -234,36 +257,36 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// TODO: 2024/8/6 取出所选题的数量,在题库中随机抽取,将题目ID拼接成字符串存到数据库中
|
|
|
|
// // TODO: 2024/8/6 取出所选题的数量,在题库中随机抽取,将题目ID拼接成字符串存到数据库中
|
|
|
|
//取出所选题的总数量
|
|
|
|
// //取出所选题的总数量
|
|
|
|
List<TchTopicDetailsDTO> topicDetailsDTOS = homeworkExamDTO.getTopicDetailsDTOS();
|
|
|
|
// List<TchTopicDetailsDTO> topicDetailsDTOS = homeworkExamDTO.getTopicDetailsDTOS();
|
|
|
|
int quantity=0;
|
|
|
|
// int quantity=0;
|
|
|
|
for (TchTopicDetailsDTO topicDetailsDTO: topicDetailsDTOS) {
|
|
|
|
// for (TchTopicDetailsDTO topicDetailsDTO: topicDetailsDTOS) {
|
|
|
|
quantity=quantity+topicDetailsDTO.getQuantity();
|
|
|
|
// quantity=quantity+topicDetailsDTO.getQuantity();
|
|
|
|
}
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
//查询题库所有题
|
|
|
|
// //查询题库所有题
|
|
|
|
List<StuLearningAssessment> stuLearningAssessments = learningAssessmentMapper.selectByExample(null);
|
|
|
|
// List<StuLearningAssessment> stuLearningAssessments = learningAssessmentMapper.selectByExample(null);
|
|
|
|
|
|
|
|
//
|
|
|
|
if(quantity>stuLearningAssessments.size()){
|
|
|
|
// if(quantity>stuLearningAssessments.size()){
|
|
|
|
throw new ServiceException(HttpStatus.ACCEPTED,"要选择的题目数量不能大于题库的总数量");
|
|
|
|
// throw new ServiceException(HttpStatus.ACCEPTED,"要选择的题目数量不能大于题库的总数量");
|
|
|
|
}
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
// 打乱集合
|
|
|
|
// // 打乱集合
|
|
|
|
Collections.shuffle(stuLearningAssessments);
|
|
|
|
// Collections.shuffle(stuLearningAssessments);
|
|
|
|
|
|
|
|
//
|
|
|
|
// 获取前quantity个元素
|
|
|
|
// // 获取前quantity个元素
|
|
|
|
List<StuLearningAssessment> subList = stuLearningAssessments.subList(0, quantity);
|
|
|
|
// List<StuLearningAssessment> subList = stuLearningAssessments.subList(0, quantity);
|
|
|
|
|
|
|
|
//
|
|
|
|
//遍历集合,取出id拼接成字符串
|
|
|
|
// //遍历集合,取出id拼接成字符串
|
|
|
|
String topicId="";
|
|
|
|
// String topicId="";
|
|
|
|
for (int i = 0; i < subList.size(); i++) {
|
|
|
|
// for (int i = 0; i < subList.size(); i++) {
|
|
|
|
if(subList.size()-1==i){
|
|
|
|
// if(subList.size()-1==i){
|
|
|
|
topicId=topicId+subList.get(0).getTopicId();
|
|
|
|
// topicId=topicId+subList.get(0).getTopicId();
|
|
|
|
}else {
|
|
|
|
// }else {
|
|
|
|
topicId=topicId+subList.get(0).getTopicId()+",";
|
|
|
|
// topicId=topicId+subList.get(0).getTopicId()+",";
|
|
|
|
}
|
|
|
|
// }
|
|
|
|
}
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
// TODO: 2024/8/6 1、题库作业,2、附件作业,3、考试
|
|
|
|
// TODO: 2024/8/6 1、题库作业,2、附件作业,3、考试
|
|
|
|
int update=0; //用于判断作业或考试是否更新成功
|
|
|
|
int update=0; //用于判断作业或考试是否更新成功
|
|
|
@ -285,7 +308,11 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService {
|
|
|
|
tchHomeworkManage.setOptionNumberState(homeworkExamDTO.getOptionNumberState());
|
|
|
|
tchHomeworkManage.setOptionNumberState(homeworkExamDTO.getOptionNumberState());
|
|
|
|
tchHomeworkManage.setParsingState(homeworkExamDTO.getParsingState());
|
|
|
|
tchHomeworkManage.setParsingState(homeworkExamDTO.getParsingState());
|
|
|
|
tchHomeworkManage.setAnswerSate(homeworkExamDTO.getAnswerSate());
|
|
|
|
tchHomeworkManage.setAnswerSate(homeworkExamDTO.getAnswerSate());
|
|
|
|
tchHomeworkManage.setTopicId(topicId);
|
|
|
|
|
|
|
|
|
|
|
|
//将题目ID转成String逗号隔开
|
|
|
|
|
|
|
|
String join = String.join(",", homeworkExamDTO.getTopicId());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
tchHomeworkManage.setTopicId(join);
|
|
|
|
tchHomeworkManage.setTotalPeople(0);
|
|
|
|
tchHomeworkManage.setTotalPeople(0);
|
|
|
|
tchHomeworkManage.setTatalScore(new BigDecimal(0));
|
|
|
|
tchHomeworkManage.setTatalScore(new BigDecimal(0));
|
|
|
|
tchHomeworkManage.setNumberPassers(0);
|
|
|
|
tchHomeworkManage.setNumberPassers(0);
|
|
|
@ -308,9 +335,8 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService {
|
|
|
|
tchHomeworkManage.setEndTime(homeworkExamDTO.getEndTime());
|
|
|
|
tchHomeworkManage.setEndTime(homeworkExamDTO.getEndTime());
|
|
|
|
tchHomeworkManage.setHomeworkAsk(homeworkExamDTO.getHomeworkAsk());
|
|
|
|
tchHomeworkManage.setHomeworkAsk(homeworkExamDTO.getHomeworkAsk());
|
|
|
|
|
|
|
|
|
|
|
|
String upload = localFileUtil.upload(file);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
tchHomeworkManage.setHomeworkAnnex(upload);
|
|
|
|
tchHomeworkManage.setHomeworkAnnex(homeworkExamDTO.getUrl());
|
|
|
|
tchHomeworkManage.setUpdateTime(new Date());
|
|
|
|
tchHomeworkManage.setUpdateTime(new Date());
|
|
|
|
tchHomeworkManage.setTotalPeople(0);
|
|
|
|
tchHomeworkManage.setTotalPeople(0);
|
|
|
|
tchHomeworkManage.setTatalScore(new BigDecimal(0));
|
|
|
|
tchHomeworkManage.setTatalScore(new BigDecimal(0));
|
|
|
@ -339,7 +365,10 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService {
|
|
|
|
examManage.setOptionNumberState(homeworkExamDTO.getOptionNumberState());
|
|
|
|
examManage.setOptionNumberState(homeworkExamDTO.getOptionNumberState());
|
|
|
|
examManage.setParsingState(homeworkExamDTO.getParsingState());
|
|
|
|
examManage.setParsingState(homeworkExamDTO.getParsingState());
|
|
|
|
examManage.setAnswerSate(homeworkExamDTO.getAnswerSate());
|
|
|
|
examManage.setAnswerSate(homeworkExamDTO.getAnswerSate());
|
|
|
|
examManage.setTopicId(topicId);
|
|
|
|
//将题目ID转成String逗号隔开
|
|
|
|
|
|
|
|
String join = String.join(",", homeworkExamDTO.getTopicId());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
examManage.setTopicId(join);
|
|
|
|
examManage.setRespondentsPeoples(0);
|
|
|
|
examManage.setRespondentsPeoples(0);
|
|
|
|
examManage.setAnswerTotal(0);
|
|
|
|
examManage.setAnswerTotal(0);
|
|
|
|
examManage.setAnswerIncorrectlyTotal(0);
|
|
|
|
examManage.setAnswerIncorrectlyTotal(0);
|
|
|
@ -353,7 +382,7 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService {
|
|
|
|
if(update>0){
|
|
|
|
if(update>0){
|
|
|
|
|
|
|
|
|
|
|
|
//取出选题详情集合
|
|
|
|
//取出选题详情集合
|
|
|
|
List<TchTopicDetails> tchTopicDetails = convertUtil.DTOListToEntity(topicDetailsDTOS, TchTopicDetails.class);
|
|
|
|
List<TchTopicDetails> tchTopicDetails = convertUtil.DTOListToEntity(homeworkExamDTO.getTopicDetailsDTOS(), TchTopicDetails.class);
|
|
|
|
|
|
|
|
|
|
|
|
//根据考试或作业ID查询选题详情信息
|
|
|
|
//根据考试或作业ID查询选题详情信息
|
|
|
|
TchTopicDetailsExample topicDetailsExample=new TchTopicDetailsExample();
|
|
|
|
TchTopicDetailsExample topicDetailsExample=new TchTopicDetailsExample();
|
|
|
@ -549,7 +578,7 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public List<StuLearningAssessment> getTopic(String topicName, String attCourses, String topicType) {
|
|
|
|
public PageInfo getTopic(String topicName, String attCourses, String topicType,String schoolId,Integer index,Integer size) {
|
|
|
|
StuLearningAssessmentExample assessmentExample=new StuLearningAssessmentExample();
|
|
|
|
StuLearningAssessmentExample assessmentExample=new StuLearningAssessmentExample();
|
|
|
|
StuLearningAssessmentExample.Criteria criteria=assessmentExample.createCriteria();
|
|
|
|
StuLearningAssessmentExample.Criteria criteria=assessmentExample.createCriteria();
|
|
|
|
|
|
|
|
|
|
|
@ -558,14 +587,17 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if(!attCourses.isEmpty()){
|
|
|
|
if(!attCourses.isEmpty()){
|
|
|
|
criteria.andAttributionCoursesEqualTo(attCourses);
|
|
|
|
criteria.andAttributionChapterEqualTo(attCourses);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if(!topicType.isEmpty()){
|
|
|
|
if(!topicType.isEmpty()){
|
|
|
|
criteria.andTopicTypeEqualTo(topicType);
|
|
|
|
criteria.andTopicTypeEqualTo(topicType);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
criteria.andSchoolIdEqualTo(schoolId);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<StuLearningAssessment> stuLearningAssessments = learningAssessmentMapper.selectByExample(assessmentExample);
|
|
|
|
|
|
|
|
|
|
|
|
return learningAssessmentMapper.selectByExample(assessmentExample);
|
|
|
|
return PageUtil.pageHelper(stuLearningAssessments,index,size);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -651,4 +683,176 @@ public class TchHomeworkExamServiceImpl implements TchHomeworkExamService {
|
|
|
|
|
|
|
|
|
|
|
|
return new ResultEntity(HttpStatus.OK,"成功",PageUtil.pageHelper(stuHomeworkDetailsDTOS,index,size));
|
|
|
|
return new ResultEntity(HttpStatus.OK,"成功",PageUtil.pageHelper(stuHomeworkDetailsDTOS,index,size));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public ResultEntity getCourseList(String schoolId) {
|
|
|
|
|
|
|
|
List<String> list=learningAssessmentMapper.getCourseList(schoolId);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return new ResultEntity(HttpStatus.OK,"课程列表展示",list);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public List<TchTopicDetailsDTO> getTopicDetails(List<TchTopicDetailsDTO> dtoList) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//查询题目类型分别的总数量
|
|
|
|
|
|
|
|
List<TchTopicTypeDTO> topicType = learningAssessmentMapper.getTopicType();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (TchTopicDetailsDTO dto:dtoList) {
|
|
|
|
|
|
|
|
for (TchTopicTypeDTO tchTopicTypeDTO:topicType) {
|
|
|
|
|
|
|
|
if(dto.getTopicType().equals(tchTopicTypeDTO.getType())){
|
|
|
|
|
|
|
|
dto.setQuantity(tchTopicTypeDTO.getQuantity());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return dtoList;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public TchHomeworkExamDTO getRandomTopic(List<TchTopicDetailsDTO> dtoList) {
|
|
|
|
|
|
|
|
List<StuLearningAssessment> stuLearningAssessments = learningAssessmentMapper.selectByExample(null);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//分离每种题的类型
|
|
|
|
|
|
|
|
Map<String, List<StuLearningAssessment>> map = new HashMap<>();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (StuLearningAssessment assessment : stuLearningAssessments) {
|
|
|
|
|
|
|
|
String type = assessment.getTopicType();
|
|
|
|
|
|
|
|
// 如果Map中没有此题型,则初始化一个新的列表
|
|
|
|
|
|
|
|
map.putIfAbsent(type, new ArrayList<>());
|
|
|
|
|
|
|
|
// 将题目添加到对应的题型列表中
|
|
|
|
|
|
|
|
map.get(type).add(assessment);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//用于存储题目id
|
|
|
|
|
|
|
|
List<String> list=new ArrayList<>();
|
|
|
|
|
|
|
|
for (TchTopicDetailsDTO dto:dtoList) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<String> randomElements = getRandomElements(map.get(dto.getTopicType()), dto.getTopicsSelected());
|
|
|
|
|
|
|
|
list.addAll(randomElements);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
TchHomeworkExamDTO tchHomeworkExamDTO=new TchHomeworkExamDTO();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
tchHomeworkExamDTO.setTopicId(list);
|
|
|
|
|
|
|
|
tchHomeworkExamDTO.setTopicDetailsDTOS(dtoList);
|
|
|
|
|
|
|
|
return tchHomeworkExamDTO;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public Integer release(String id, String type,Integer state) {
|
|
|
|
|
|
|
|
if(type.equals("考试")){
|
|
|
|
|
|
|
|
TchExamManage examManage = examManageMapper.selectByPrimaryKey(id);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
examManage.setState(state);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return examManageMapper.updateByPrimaryKey(examManage);
|
|
|
|
|
|
|
|
}else {
|
|
|
|
|
|
|
|
TchHomeworkManage tchHomeworkManage = homeworkManageMapper.selectByPrimaryKey(id);
|
|
|
|
|
|
|
|
tchHomeworkManage.setState(state);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return homeworkManageMapper.updateByPrimaryKey(tchHomeworkManage);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public String upload(MultipartFile file, String userId,String jsonString) {
|
|
|
|
|
|
|
|
String upload = fileUtil.upload(file);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(jsonString==null){ //第一次上传
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
StuUploadExperment stuUploadExperment=new StuUploadExperment();
|
|
|
|
|
|
|
|
Integer uuid= UUID.randomUUID().toString().replaceAll("-","").hashCode();
|
|
|
|
|
|
|
|
uuid = uuid < 0 ? -uuid : uuid;//String.hashCode() 值会为空
|
|
|
|
|
|
|
|
stuUploadExperment.setId(uuid);
|
|
|
|
|
|
|
|
stuUploadExperment.setUserId(userId);
|
|
|
|
|
|
|
|
stuUploadExperment.setFilePath(upload);
|
|
|
|
|
|
|
|
stuUploadExperment.setCreateTime(new Date());
|
|
|
|
|
|
|
|
stuUploadExperment.setFileSize((double) file.getSize());
|
|
|
|
|
|
|
|
stuUploadExperment.setFileName(file.getOriginalFilename());
|
|
|
|
|
|
|
|
stuUploadExperment.setSufxx(getFileExtension(file.getOriginalFilename()));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
stuUploadExpermentMapper.insert(stuUploadExperment);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 创建 ObjectMapper 实例
|
|
|
|
|
|
|
|
ObjectMapper objectMapper = new ObjectMapper();
|
|
|
|
|
|
|
|
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); // 使用 ISO 8601 日期格式
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 将对象转换为 JSON 字符串
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
return objectMapper.writeValueAsString(stuUploadExperment);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} catch (JsonProcessingException e) {
|
|
|
|
|
|
|
|
throw new RuntimeException(e);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}else { //非第一次上传,修改文件信息
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
//将jsonString转为StuUploadExperment对象
|
|
|
|
|
|
|
|
ObjectMapper objectMapper = new ObjectMapper();
|
|
|
|
|
|
|
|
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); // 日期格式
|
|
|
|
|
|
|
|
StuUploadExperment experiment = objectMapper.readValue(jsonString, StuUploadExperment.class);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//服务器上删除上一次上传的文件
|
|
|
|
|
|
|
|
boolean remove = fileUtil.remove(experiment.getFilePath());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//修改文件上传信息
|
|
|
|
|
|
|
|
experiment.setUserId(userId);
|
|
|
|
|
|
|
|
experiment.setFilePath(upload);
|
|
|
|
|
|
|
|
experiment.setFileSize((double) file.getSize());
|
|
|
|
|
|
|
|
experiment.setFileName(file.getOriginalFilename());
|
|
|
|
|
|
|
|
experiment.setUpdateTime(new Date());
|
|
|
|
|
|
|
|
experiment.setSufxx(getFileExtension(file.getOriginalFilename()));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
stuUploadExpermentMapper.updateByPrimaryKey(experiment);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 将对象转换为 JSON 字符串
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
return objectMapper.writeValueAsString(experiment);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} catch (JsonProcessingException e) {
|
|
|
|
|
|
|
|
throw new RuntimeException(e);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return null;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 获取文件后缀
|
|
|
|
|
|
|
|
* @param fileName
|
|
|
|
|
|
|
|
* @return
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
private String getFileExtension(String fileName) {
|
|
|
|
|
|
|
|
if (fileName != null && fileName.contains(".")) {
|
|
|
|
|
|
|
|
return fileName.substring(fileName.lastIndexOf('.') + 1);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return ""; // 没有后缀的情况
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 随机抽取题目ID
|
|
|
|
|
|
|
|
* @param list
|
|
|
|
|
|
|
|
* @param n
|
|
|
|
|
|
|
|
* @return
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
public static List<String> getRandomElements(List<StuLearningAssessment> list, int n) {
|
|
|
|
|
|
|
|
if (n > list.size()) {
|
|
|
|
|
|
|
|
throw new IllegalArgumentException("请求的元素数量大于列表大小");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Collections.shuffle(list); // 打乱列表顺序
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//返回题目ID
|
|
|
|
|
|
|
|
List<StuLearningAssessment> stuLearningAssessments = list.subList(0, n);
|
|
|
|
|
|
|
|
List<String> ids=new ArrayList<>();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (StuLearningAssessment stuLearningAssessment:stuLearningAssessments) {
|
|
|
|
|
|
|
|
ids.add(stuLearningAssessment.getTopicId());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return ids; // 返回前 n 个元素的题目ID
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|