新增实战考核开始考试功能等

newBigdata
yz 11 months ago
parent b27c25847d
commit d73e4f8d7f

@ -1,6 +1,7 @@
package com.sztzjy.financial_bigdata.controller.common;
import com.github.pagehelper.PageInfo;
import com.sztzjy.financial_bigdata.annotation.AnonymousAccess;
import com.sztzjy.financial_bigdata.entity.SysCourse;
import com.sztzjy.financial_bigdata.service.common.ICourseService;
import com.sztzjy.financial_bigdata.util.ResultEntity;
@ -21,6 +22,7 @@ public class CourseController {
//查看课程
@GetMapping("selectCourse")
@ApiOperation("查看课程")
@AnonymousAccess
public ResultEntity<PageInfo<SysCourse>> selectCourse(@RequestParam String schoolId,
@RequestParam Integer index,
@RequestParam Integer size) {
@ -31,6 +33,7 @@ public class CourseController {
//增加课程
@PostMapping("insertCourse")
@ApiOperation("增加课程")
@AnonymousAccess
public ResultEntity insertCourse(@ApiParam("新增课程对象") @RequestBody SysCourse course) {
Boolean flag = courseService.insertCourse(course);
if (flag){
@ -43,6 +46,7 @@ public class CourseController {
//删除课程
@GetMapping("deleteCourse")
@ApiOperation("删除课程")
@AnonymousAccess
public ResultEntity deleteCourse(@ApiParam("删除课程Id") @RequestParam String courseId,
@RequestParam String schoolId){
Boolean flag = courseService.deleteCourse(courseId,schoolId);

@ -2,13 +2,16 @@ package com.sztzjy.financial_bigdata.controller.stu;
import com.sztzjy.financial_bigdata.annotation.AnonymousAccess;
import com.sztzjy.financial_bigdata.entity.SysObjectiveQuestion;
import com.sztzjy.financial_bigdata.entity.stu_dto.StuTheoryTestDto;
import com.sztzjy.financial_bigdata.mapper.SysObjectiveQuestionMapper;
import com.sztzjy.financial_bigdata.service.stu.IExamService;
import com.sztzjy.financial_bigdata.util.ResultEntity;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@ -16,16 +19,35 @@ import java.util.List;
@Api(tags = "实战考核")
@RequestMapping("api/stu/examController")
public class ExamController {
@Autowired
IExamService examService;
//基础知识题目展示
// @GetMapping("basicKnowledge")
// @ApiOperation("基础知识")
// @AnonymousAccess
// public ResultEntity<List<SysObjectiveQuestion>> basicKnowledge(@RequestParam String userId) {
//
// }
//实战考核基础知识题目展示(开始考试)
@GetMapping("basicKnowledge")
@ApiOperation("基础知识(开始考试)")
@AnonymousAccess
public ResultEntity<List<SysObjectiveQuestion>> basicKnowledge(@ApiParam("考试管理id") @RequestParam String examManageId,
@RequestParam String userId) {
List<SysObjectiveQuestion> list=examService.basicKnowledge(examManageId,userId);
for (int i = 0; i < list.size(); i++) {
list.get(i).setSchoolId(String.valueOf(i+1));
}
return new ResultEntity<>(HttpStatus.OK, "基础知识(开始考试)、客观题列表查询成功",list);
}
//交卷
@GetMapping("commitExam")
@ApiOperation("考试交卷")
@AnonymousAccess
public ResultEntity commitExam(@RequestBody StuTheoryTestDto theoryTestDto){
int flag=examService.commitExam(theoryTestDto);
if(flag==1){
return new ResultEntity<>(HttpStatus.OK, "提交试卷成功");
}else {
return new ResultEntity<>(HttpStatus.BAD_REQUEST, "提交试卷失败");
}
}
//案例考核
}

@ -2,19 +2,17 @@ package com.sztzjy.financial_bigdata.controller.stu;
import com.sztzjy.financial_bigdata.annotation.AnonymousAccess;
import com.sztzjy.financial_bigdata.entity.*;
import com.sztzjy.financial_bigdata.entity.stu_dto.StuCommitCaseDto;
import com.sztzjy.financial_bigdata.entity.sys_dto.SysCourseChapterDto;
import com.sztzjy.financial_bigdata.entity.sys_dto.SysCourseDto;
import com.sztzjy.financial_bigdata.mapper.StuTrainingMapper;
import com.sztzjy.financial_bigdata.mapper.SysCourseChapterMapper;
import com.sztzjy.financial_bigdata.mapper.SysCourseMapper;
import com.sztzjy.financial_bigdata.mapper.*;
import com.sztzjy.financial_bigdata.service.tea.ITeaResourceDataService;
import com.sztzjy.financial_bigdata.util.ResultEntity;
import com.sztzjy.financial_bigdata.annotation.AnonymousAccess;
import com.sztzjy.financial_bigdata.entity.SysCaseQuestion;
import com.sztzjy.financial_bigdata.entity.SysCaseQuestionExample;
import com.sztzjy.financial_bigdata.entity.SysCaseQuestionStep;
import com.sztzjy.financial_bigdata.entity.SysCaseQuestionStepExample;
import com.sztzjy.financial_bigdata.mapper.SysCaseQuestionMapper;
import com.sztzjy.financial_bigdata.mapper.SysCaseQuestionStepMapper;
import com.sztzjy.financial_bigdata.service.tea.ITeaCaseStepService;
import com.sztzjy.financial_bigdata.util.ResultEntity;
import io.swagger.annotations.Api;
@ -31,6 +29,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.ArrayList;
@ -54,6 +53,10 @@ public class ExerciseExperimentalTraining {
SysCaseQuestionStepMapper caseQuestionStepMapper;
@Autowired
ITeaCaseStepService stepService;
@Autowired
ITeaResourceDataService resourceDataService;
@Autowired
SysResourceDataMapper resourceDataMapper;
//获取案例题基础信息
@GetMapping("getCaseInfo")
@ -86,17 +89,17 @@ public class ExerciseExperimentalTraining {
@PostMapping("commitCase")
@ApiOperation("提交案例题")
@AnonymousAccess
public ResultEntity getCaseStepInfo(@ApiParam("将学生答案传递到answer中") @RequestParam SysCaseQuestionStep caseQuestionStep) {
public ResultEntity getCaseStepInfo(@RequestParam StuCommitCaseDto commitCaseDto) {
//执行记录操作
Boolean flag = stepService.commitCase(caseQuestionStep);
return new ResultEntity<>(HttpStatus.OK, "回答正确、该步骤提交成功");
Boolean flag = stepService.commitCase(commitCaseDto);
if (flag){
return new ResultEntity<>(HttpStatus.OK, "该步骤提交成功");
}else {
return new ResultEntity<>(HttpStatus.BAD_REQUEST, "该步骤重复提交");
}
}
//python在线运行
@AnonymousAccess
@ApiOperation("实训演练页面查询")
@PostMapping("getCourseChapter")
@ -130,11 +133,27 @@ public class ExerciseExperimentalTraining {
return new ResultEntity<List<SysCourseDto>>(dtoList);
}
//数据集下载
@GetMapping("downloadResourceDataByCaseId")
@ApiOperation("数据集下载")
@AnonymousAccess
@ApiOperation("点击某个章节跳转到知识测评")
@PostMapping("/skipKnowledge")
public ResultEntity<List<SysCourseDto>> skipKnowledge(@RequestParam String schoolId, @RequestParam String userId) {
return null;
public void downloadResourceDataByCaseId(@ApiParam("案例题id") @RequestParam String caseId, HttpServletResponse response) {
resourceDataService.downloadResourceDataByCaseId(caseId, response);
}
//判断案例是否有数据集
@GetMapping("haveResourceData")
@ApiOperation("判断案例是否有数据集")
@AnonymousAccess
public Boolean haveResourceData(@ApiParam("案例题id") @RequestParam String caseId){
SysResourceDataExample example = new SysResourceDataExample();
example.createCriteria().andCaseIdEqualTo(caseId);
List<SysResourceData> resourceDataList = resourceDataMapper.selectByExample(example);
if(resourceDataList!=null){
return true;
}else {
return false;
}
}
}

@ -1,6 +1,9 @@
package com.sztzjy.financial_bigdata.controller.stu;// 后端代码
import com.sztzjy.financial_bigdata.annotation.AnonymousAccess;
import com.sztzjy.financial_bigdata.util.ResultEntity;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.python.core.CompileMode;
import org.python.core.Py;
import org.python.core.PyCode;
@ -12,10 +15,13 @@ import java.io.ByteArrayInputStream;
import java.io.InputStream;
@RestController
@Api(tags = "python接口")
@RequestMapping("/api/python")
public class PythonController {
@PostMapping("/validate")
@ApiOperation("代码检验")
@AnonymousAccess
public ResultEntity validatePythonCode(@RequestBody String code) {
// 对 Python 代码进行检验
PythonInterpreter interpreter = new PythonInterpreter();

@ -60,9 +60,6 @@ public class TheoryTestController {
@AnonymousAccess
public ResultEntity endTheoryTest(@RequestBody StuTheoryTestDto theoryTestDto) {
int flag=theoryTestService.endTheoryTest(theoryTestDto);
if(theoryTestDto.getExamDuration()>120){
return new ResultEntity<>(HttpStatus.BAD_REQUEST, "提交试卷超时");
}
if(flag==1){
return new ResultEntity<>(HttpStatus.OK, "提交试卷成功");
}else {

@ -1,6 +1,7 @@
package com.sztzjy.financial_bigdata.entity;
import java.math.BigDecimal;
import java.util.Date;
import io.swagger.annotations.ApiModelProperty;
/**
@ -31,6 +32,12 @@ public class StuStudentExam {
@ApiModelProperty("班级id")
private String classId;
@ApiModelProperty("考试结束状态 true为已经交卷")
private String examEndStatus;
@ApiModelProperty("开始考试时间")
private Date startTime;
public String getStudentExamId() {
return studentExamId;
}
@ -86,4 +93,20 @@ public class StuStudentExam {
public void setClassId(String classId) {
this.classId = classId == null ? null : classId.trim();
}
public String getExamEndStatus() {
return examEndStatus;
}
public void setExamEndStatus(String examEndStatus) {
this.examEndStatus = examEndStatus == null ? null : examEndStatus.trim();
}
public Date getStartTime() {
return startTime;
}
public void setStartTime(Date startTime) {
this.startTime = startTime;
}
}

@ -2,6 +2,7 @@ package com.sztzjy.financial_bigdata.entity;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class StuStudentExamExample {
@ -564,6 +565,136 @@ public class StuStudentExamExample {
addCriterion("class_id not between", value1, value2, "classId");
return (Criteria) this;
}
public Criteria andExamEndStatusIsNull() {
addCriterion("exam_end_status is null");
return (Criteria) this;
}
public Criteria andExamEndStatusIsNotNull() {
addCriterion("exam_end_status is not null");
return (Criteria) this;
}
public Criteria andExamEndStatusEqualTo(String value) {
addCriterion("exam_end_status =", value, "examEndStatus");
return (Criteria) this;
}
public Criteria andExamEndStatusNotEqualTo(String value) {
addCriterion("exam_end_status <>", value, "examEndStatus");
return (Criteria) this;
}
public Criteria andExamEndStatusGreaterThan(String value) {
addCriterion("exam_end_status >", value, "examEndStatus");
return (Criteria) this;
}
public Criteria andExamEndStatusGreaterThanOrEqualTo(String value) {
addCriterion("exam_end_status >=", value, "examEndStatus");
return (Criteria) this;
}
public Criteria andExamEndStatusLessThan(String value) {
addCriterion("exam_end_status <", value, "examEndStatus");
return (Criteria) this;
}
public Criteria andExamEndStatusLessThanOrEqualTo(String value) {
addCriterion("exam_end_status <=", value, "examEndStatus");
return (Criteria) this;
}
public Criteria andExamEndStatusLike(String value) {
addCriterion("exam_end_status like", value, "examEndStatus");
return (Criteria) this;
}
public Criteria andExamEndStatusNotLike(String value) {
addCriterion("exam_end_status not like", value, "examEndStatus");
return (Criteria) this;
}
public Criteria andExamEndStatusIn(List<String> values) {
addCriterion("exam_end_status in", values, "examEndStatus");
return (Criteria) this;
}
public Criteria andExamEndStatusNotIn(List<String> values) {
addCriterion("exam_end_status not in", values, "examEndStatus");
return (Criteria) this;
}
public Criteria andExamEndStatusBetween(String value1, String value2) {
addCriterion("exam_end_status between", value1, value2, "examEndStatus");
return (Criteria) this;
}
public Criteria andExamEndStatusNotBetween(String value1, String value2) {
addCriterion("exam_end_status not between", value1, value2, "examEndStatus");
return (Criteria) this;
}
public Criteria andStartTimeIsNull() {
addCriterion("start_time is null");
return (Criteria) this;
}
public Criteria andStartTimeIsNotNull() {
addCriterion("start_time is not null");
return (Criteria) this;
}
public Criteria andStartTimeEqualTo(Date value) {
addCriterion("start_time =", value, "startTime");
return (Criteria) this;
}
public Criteria andStartTimeNotEqualTo(Date value) {
addCriterion("start_time <>", value, "startTime");
return (Criteria) this;
}
public Criteria andStartTimeGreaterThan(Date value) {
addCriterion("start_time >", value, "startTime");
return (Criteria) this;
}
public Criteria andStartTimeGreaterThanOrEqualTo(Date value) {
addCriterion("start_time >=", value, "startTime");
return (Criteria) this;
}
public Criteria andStartTimeLessThan(Date value) {
addCriterion("start_time <", value, "startTime");
return (Criteria) this;
}
public Criteria andStartTimeLessThanOrEqualTo(Date value) {
addCriterion("start_time <=", value, "startTime");
return (Criteria) this;
}
public Criteria andStartTimeIn(List<Date> values) {
addCriterion("start_time in", values, "startTime");
return (Criteria) this;
}
public Criteria andStartTimeNotIn(List<Date> values) {
addCriterion("start_time not in", values, "startTime");
return (Criteria) this;
}
public Criteria andStartTimeBetween(Date value1, Date value2) {
addCriterion("start_time between", value1, value2, "startTime");
return (Criteria) this;
}
public Criteria andStartTimeNotBetween(Date value1, Date value2) {
addCriterion("start_time not between", value1, value2, "startTime");
return (Criteria) this;
}
}
public static class Criteria extends GeneratedCriteria {

@ -19,6 +19,9 @@ public class StuTrainingStepRecord {
@ApiModelProperty("案例题步骤id")
private String caseStepId;
@ApiModelProperty("获得分数")
private String score;
@ApiModelProperty("学生答案")
private String stuAnswer;
@ -54,6 +57,14 @@ public class StuTrainingStepRecord {
this.caseStepId = caseStepId == null ? null : caseStepId.trim();
}
public String getScore() {
return score;
}
public void setScore(String score) {
this.score = score == null ? null : score.trim();
}
public String getStuAnswer() {
return stuAnswer;
}

@ -383,6 +383,76 @@ public class StuTrainingStepRecordExample {
addCriterion("case_step_id not between", value1, value2, "caseStepId");
return (Criteria) this;
}
public Criteria andScoreIsNull() {
addCriterion("score is null");
return (Criteria) this;
}
public Criteria andScoreIsNotNull() {
addCriterion("score is not null");
return (Criteria) this;
}
public Criteria andScoreEqualTo(String value) {
addCriterion("score =", value, "score");
return (Criteria) this;
}
public Criteria andScoreNotEqualTo(String value) {
addCriterion("score <>", value, "score");
return (Criteria) this;
}
public Criteria andScoreGreaterThan(String value) {
addCriterion("score >", value, "score");
return (Criteria) this;
}
public Criteria andScoreGreaterThanOrEqualTo(String value) {
addCriterion("score >=", value, "score");
return (Criteria) this;
}
public Criteria andScoreLessThan(String value) {
addCriterion("score <", value, "score");
return (Criteria) this;
}
public Criteria andScoreLessThanOrEqualTo(String value) {
addCriterion("score <=", value, "score");
return (Criteria) this;
}
public Criteria andScoreLike(String value) {
addCriterion("score like", value, "score");
return (Criteria) this;
}
public Criteria andScoreNotLike(String value) {
addCriterion("score not like", value, "score");
return (Criteria) this;
}
public Criteria andScoreIn(List<String> values) {
addCriterion("score in", values, "score");
return (Criteria) this;
}
public Criteria andScoreNotIn(List<String> values) {
addCriterion("score not in", values, "score");
return (Criteria) this;
}
public Criteria andScoreBetween(String value1, String value2) {
addCriterion("score between", value1, value2, "score");
return (Criteria) this;
}
public Criteria andScoreNotBetween(String value1, String value2) {
addCriterion("score not between", value1, value2, "score");
return (Criteria) this;
}
}
public static class Criteria extends GeneratedCriteria {

@ -0,0 +1,57 @@
package com.sztzjy.financial_bigdata.service.stu.impl;
import com.sztzjy.financial_bigdata.entity.SysObjectiveQuestion;
import com.sztzjy.financial_bigdata.entity.TeaExamManageWithBLOBs;
import com.sztzjy.financial_bigdata.entity.stu_dto.StuTheoryTestDto;
import com.sztzjy.financial_bigdata.mapper.SysObjectiveQuestionMapper;
import com.sztzjy.financial_bigdata.mapper.TeaExamManageMapper;
import com.sztzjy.financial_bigdata.service.stu.IExamService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@Service
public class ExamServiceImpl implements IExamService {
@Autowired
TeaExamManageMapper examManageMapper;
@Autowired
SysObjectiveQuestionMapper objectiveQuestionMapper;
//如果学生考试表查询不到 则新增一条数据
//根据examManageId 查询该考试的题目idlist 再通过idlist查询题目信息进行返回
//先判断是否考试过 如果结束考试状态不为true 判断考试时间是否超过答题时间 超过时间则不允许答题、并回显考试内容\没超过时间 则重新答题
// 如果结束考试状态为true,则直接回显题目和考生的答题记录
@Override
public List<SysObjectiveQuestion> basicKnowledge(String examManageId, String userId) {
//查询
TeaExamManageWithBLOBs teaExamManageWithBLOBs = examManageMapper.selectByPrimaryKey(examManageId);
String singleIds = teaExamManageWithBLOBs.getSingleIdlist();
String manyIds = teaExamManageWithBLOBs.getManyIdlist();
String judgeIds = teaExamManageWithBLOBs.getJudgeIdlist();
List<String> singleIdList = Arrays.asList(singleIds.substring(1, singleIds.length() - 1).split(", "));
List<String> manyIdList = Arrays.asList(manyIds.substring(1, manyIds.length() - 1).split(", "));
List<String> judgeIdList = Arrays.asList(judgeIds.substring(1, judgeIds.length() - 1).split(", "));
List<SysObjectiveQuestion> objectiveQuestionList=new ArrayList<>();
for (int i = 0; i < singleIdList.size(); i++) {
SysObjectiveQuestion objectiveQuestion = objectiveQuestionMapper.selectByPrimaryKey(singleIdList.get(i));
objectiveQuestionList.add(objectiveQuestion);
}
for (int i = 0; i < manyIdList.size(); i++) {
SysObjectiveQuestion objectiveQuestion = objectiveQuestionMapper.selectByPrimaryKey(manyIdList.get(i));
objectiveQuestionList.add(objectiveQuestion);
}
for (int i = 0; i < judgeIdList.size(); i++) {
SysObjectiveQuestion objectiveQuestion = objectiveQuestionMapper.selectByPrimaryKey(judgeIdList.get(i));
objectiveQuestionList.add(objectiveQuestion);
}
return objectiveQuestionList;
}
@Override
public int commitExam(StuTheoryTestDto theoryTestDto) {
return 0;
}
}

@ -1,6 +1,7 @@
package com.sztzjy.financial_bigdata.service.tea;
import com.sztzjy.financial_bigdata.entity.SysCaseQuestionStep;
import com.sztzjy.financial_bigdata.entity.stu_dto.StuCommitCaseDto;
import java.util.List;
@ -15,5 +16,5 @@ public interface ITeaCaseStepService {
SysCaseQuestionStep selectCaseStepDetails(String caseStepId);
Boolean commitCase(SysCaseQuestionStep caseQuestionStep);
Boolean commitCase(StuCommitCaseDto commitCaseDto);
}

@ -14,4 +14,6 @@ public interface ITeaResourceDataService {
Boolean deleteResourceData(String schoolId, String resourceDataId);
void downloadResourceData(String resourceDataId, HttpServletResponse response);
void downloadResourceDataByCaseId(String caseId, HttpServletResponse response);
}

@ -1,15 +1,18 @@
package com.sztzjy.financial_bigdata.service.tea.impl;
import com.sztzjy.financial_bigdata.config.Constant;
import com.sztzjy.financial_bigdata.entity.SysCaseQuestion;
import com.sztzjy.financial_bigdata.entity.SysCaseQuestionStep;
import com.sztzjy.financial_bigdata.entity.SysCaseQuestionStepExample;
import com.sztzjy.financial_bigdata.entity.*;
import com.sztzjy.financial_bigdata.entity.stu_dto.StuCommitCaseDto;
import com.sztzjy.financial_bigdata.mapper.StuTrainingMapper;
import com.sztzjy.financial_bigdata.mapper.StuTrainingStepRecordMapper;
import com.sztzjy.financial_bigdata.mapper.SysCaseQuestionMapper;
import com.sztzjy.financial_bigdata.mapper.SysCaseQuestionStepMapper;
import com.sztzjy.financial_bigdata.service.tea.ITeaCaseStepService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.List;
import java.util.UUID;
@ -19,6 +22,10 @@ public class TeaCaseStepServiceImpl implements ITeaCaseStepService {
SysCaseQuestionStepMapper caseQuestionStepMapper;
@Autowired
SysCaseQuestionMapper caseQuestionMapper;
@Autowired
StuTrainingStepRecordMapper trainingStepRecordMapper;
@Autowired
StuTrainingMapper trainingMapper;
@Override
public Boolean insertCase(SysCaseQuestionStep caseQuestionStep,String schoolId) {
@ -77,18 +84,70 @@ public class TeaCaseStepServiceImpl implements ITeaCaseStepService {
return sysCaseQuestionStep;
}
//************
@Override
public Boolean commitCase(SysCaseQuestionStep caseQuestionStep) {
// SysCaseQuestionStep dbCaseQuestionStep = selectCaseStepDetails(caseQuestionStep.getCaseStepId());
// if(dbCaseQuestionStep.getAnswer().equals(caseQuestionStep.getAnswer())){
// //答案正确 将答案存储到学生实训表中,并设置得分,更新实验实训得分 如果所有步骤的案例题分数都已存在、修改实验实训完成状态并修改进度
// Integer sort = caseQuestionStep.getSort();
// caseQuestionStep.getAnswer()
// }else {
//
// }
return null;
public Boolean commitCase(StuCommitCaseDto commitCaseDto) {
//先判断该步骤是否上传过
StuTrainingStepRecordExample example = new StuTrainingStepRecordExample();
example.createCriteria().andUserIdEqualTo(commitCaseDto.getUserId()).andCaseStepIdEqualTo(commitCaseDto.getCaseStepId());
List<StuTrainingStepRecord> stuTrainingStepRecords = trainingStepRecordMapper.selectByExample(example);
if(stuTrainingStepRecords==null){ //未答过该步骤题目 新增数据到stepRecord表中
SysCaseQuestionStep dbCaseQuestionStep = selectCaseStepDetails(commitCaseDto.getCaseStepId());
StuTrainingStepRecord stepRecord = new StuTrainingStepRecord();
stepRecord.setRecordId(String.valueOf(UUID.randomUUID()));
stepRecord.setUserId(commitCaseDto.getUserId());
stepRecord.setCaseId(commitCaseDto.getCaseId());
stepRecord.setCaseStepId(commitCaseDto.getCaseStepId());
stepRecord.setStuAnswer(commitCaseDto.getStuAnswer());
SysCaseQuestionStep sysCaseQuestionStep = caseQuestionStepMapper.selectByPrimaryKey(commitCaseDto.getCaseStepId());
if(dbCaseQuestionStep.getAnswer().equals(commitCaseDto.getStuAnswer())){
//答案正确 记录到案例步骤记录表中
stepRecord.setScore(String.valueOf(sysCaseQuestionStep.getScore()));
//再修改学生实训表中的部分参数 先获取学生实训表中的数据
StuTrainingWithBLOBs training = trainingMapper.selectByPrimaryKey(commitCaseDto.getStuTrainingId());
//如果案例题学生的实验实训完成情况=0 则实训进度+1否则 实训进度不加 并累加案例题学生得分 修改实验实训完成状态
if(training.getExpTrainingCompleteStatus()==null){
if(training.getProgress()==null){
training.setProgress(BigDecimal.ONE);
}else {
training.setProgress(training.getProgress().add(BigDecimal.valueOf(1)));
}
training.setExpTrainingCompleteStatus(1);
}
if(training.getCaseStuScore()==null){
training.setCaseStuScore(sysCaseQuestionStep.getScore());
}else {
training.setCaseStuScore(training.getCaseStuScore().add(sysCaseQuestionStep.getScore()));
}
trainingMapper.updateByPrimaryKeyWithBLOBs(training);
}else { //回答错误 记录到案例步骤记录表中
stepRecord.setScore("0");
//再修改学生实训表中的部分参数 先获取学生实训表中的数据
StuTrainingWithBLOBs training = trainingMapper.selectByPrimaryKey(commitCaseDto.getStuTrainingId());
//如果案例题学生的实验实训完成情况=0 则实训进度+1否则 实训进度不加 并累加案例题学生得分 修改实验实训完成状态
if(training.getExpTrainingCompleteStatus()==null){
if(training.getProgress()==null){
training.setProgress(BigDecimal.ONE);
}else {
training.setProgress(training.getProgress().add(BigDecimal.valueOf(1)));
}
training.setExpTrainingCompleteStatus(1);
}
if(training.getCaseStuScore()==null){
training.setCaseStuScore(sysCaseQuestionStep.getScore());
}else {
training.setCaseStuScore(training.getCaseStuScore().add(sysCaseQuestionStep.getScore()));
}
trainingMapper.updateByPrimaryKeyWithBLOBs(training);
}
trainingStepRecordMapper.insert(stepRecord);
return true;
}else { //回答过该题
StuTrainingStepRecord stepRecord = stuTrainingStepRecords.get(0);
stepRecord.setStuAnswer(commitCaseDto.getStuAnswer());
trainingStepRecordMapper.updateByPrimaryKeyWithBLOBs(stepRecord);
return false;
}
}
}

@ -73,4 +73,17 @@ public class TeaResourceDataServiceImpl implements ITeaResourceDataService {
SysResourceData sysResourceData = resourceDataMapper.selectByPrimaryKey(resourceDataId);
fileUtil.download(response, sysResourceData.getResourceName(), sysResourceData.getUrl());
}
@Override
public void downloadResourceDataByCaseId(String caseId, HttpServletResponse response) {
SysResourceDataExample example = new SysResourceDataExample();
example.createCriteria().andCaseIdEqualTo(caseId);
List<SysResourceData> resourceDataList = resourceDataMapper.selectByExample(example);
if(resourceDataList!=null){
for (int i = 0; i < resourceDataList.size(); i++) {
SysResourceData sysResourceData = resourceDataList.get(i);
fileUtil.download(response,sysResourceData.getResourceName(), sysResourceData.getUrl());
}
}
}
}

@ -9,6 +9,8 @@
<result column="case_score" jdbcType="DECIMAL" property="caseScore" />
<result column="total_score" jdbcType="DECIMAL" property="totalScore" />
<result column="class_id" jdbcType="VARCHAR" property="classId" />
<result column="exam_end_status" jdbcType="VARCHAR" property="examEndStatus" />
<result column="start_time" jdbcType="TIMESTAMP" property="startTime" />
</resultMap>
<resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.sztzjy.financial_bigdata.entity.StuStudentExamWithBLOBs">
<result column="single_stu_answer_ids" jdbcType="LONGVARCHAR" property="singleStuAnswerIds" />
@ -75,7 +77,7 @@
</sql>
<sql id="Base_Column_List">
student_exam_id, exam_manage_id, userid, Objective_score, case_score, total_score,
class_id
class_id, exam_end_status, start_time
</sql>
<sql id="Blob_Column_List">
single_stu_answer_ids, many_stu_answer_ids, judge_stu_answer_ids
@ -131,11 +133,13 @@
<insert id="insert" parameterType="com.sztzjy.financial_bigdata.entity.StuStudentExamWithBLOBs">
insert into stu_student_exam (student_exam_id, exam_manage_id, userid,
Objective_score, case_score, total_score,
class_id, single_stu_answer_ids, many_stu_answer_ids,
class_id, exam_end_status, start_time,
single_stu_answer_ids, many_stu_answer_ids,
judge_stu_answer_ids)
values (#{studentExamId,jdbcType=VARCHAR}, #{examManageId,jdbcType=VARCHAR}, #{userid,jdbcType=VARCHAR},
#{objectiveScore,jdbcType=DECIMAL}, #{caseScore,jdbcType=DECIMAL}, #{totalScore,jdbcType=DECIMAL},
#{classId,jdbcType=VARCHAR}, #{singleStuAnswerIds,jdbcType=LONGVARCHAR}, #{manyStuAnswerIds,jdbcType=LONGVARCHAR},
#{classId,jdbcType=VARCHAR}, #{examEndStatus,jdbcType=VARCHAR}, #{startTime,jdbcType=TIMESTAMP},
#{singleStuAnswerIds,jdbcType=LONGVARCHAR}, #{manyStuAnswerIds,jdbcType=LONGVARCHAR},
#{judgeStuAnswerIds,jdbcType=LONGVARCHAR})
</insert>
<insert id="insertSelective" parameterType="com.sztzjy.financial_bigdata.entity.StuStudentExamWithBLOBs">
@ -162,6 +166,12 @@
<if test="classId != null">
class_id,
</if>
<if test="examEndStatus != null">
exam_end_status,
</if>
<if test="startTime != null">
start_time,
</if>
<if test="singleStuAnswerIds != null">
single_stu_answer_ids,
</if>
@ -194,6 +204,12 @@
<if test="classId != null">
#{classId,jdbcType=VARCHAR},
</if>
<if test="examEndStatus != null">
#{examEndStatus,jdbcType=VARCHAR},
</if>
<if test="startTime != null">
#{startTime,jdbcType=TIMESTAMP},
</if>
<if test="singleStuAnswerIds != null">
#{singleStuAnswerIds,jdbcType=LONGVARCHAR},
</if>
@ -235,6 +251,12 @@
<if test="record.classId != null">
class_id = #{record.classId,jdbcType=VARCHAR},
</if>
<if test="record.examEndStatus != null">
exam_end_status = #{record.examEndStatus,jdbcType=VARCHAR},
</if>
<if test="record.startTime != null">
start_time = #{record.startTime,jdbcType=TIMESTAMP},
</if>
<if test="record.singleStuAnswerIds != null">
single_stu_answer_ids = #{record.singleStuAnswerIds,jdbcType=LONGVARCHAR},
</if>
@ -258,6 +280,8 @@
case_score = #{record.caseScore,jdbcType=DECIMAL},
total_score = #{record.totalScore,jdbcType=DECIMAL},
class_id = #{record.classId,jdbcType=VARCHAR},
exam_end_status = #{record.examEndStatus,jdbcType=VARCHAR},
start_time = #{record.startTime,jdbcType=TIMESTAMP},
single_stu_answer_ids = #{record.singleStuAnswerIds,jdbcType=LONGVARCHAR},
many_stu_answer_ids = #{record.manyStuAnswerIds,jdbcType=LONGVARCHAR},
judge_stu_answer_ids = #{record.judgeStuAnswerIds,jdbcType=LONGVARCHAR}
@ -273,7 +297,9 @@
Objective_score = #{record.objectiveScore,jdbcType=DECIMAL},
case_score = #{record.caseScore,jdbcType=DECIMAL},
total_score = #{record.totalScore,jdbcType=DECIMAL},
class_id = #{record.classId,jdbcType=VARCHAR}
class_id = #{record.classId,jdbcType=VARCHAR},
exam_end_status = #{record.examEndStatus,jdbcType=VARCHAR},
start_time = #{record.startTime,jdbcType=TIMESTAMP}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
@ -299,6 +325,12 @@
<if test="classId != null">
class_id = #{classId,jdbcType=VARCHAR},
</if>
<if test="examEndStatus != null">
exam_end_status = #{examEndStatus,jdbcType=VARCHAR},
</if>
<if test="startTime != null">
start_time = #{startTime,jdbcType=TIMESTAMP},
</if>
<if test="singleStuAnswerIds != null">
single_stu_answer_ids = #{singleStuAnswerIds,jdbcType=LONGVARCHAR},
</if>
@ -319,6 +351,8 @@
case_score = #{caseScore,jdbcType=DECIMAL},
total_score = #{totalScore,jdbcType=DECIMAL},
class_id = #{classId,jdbcType=VARCHAR},
exam_end_status = #{examEndStatus,jdbcType=VARCHAR},
start_time = #{startTime,jdbcType=TIMESTAMP},
single_stu_answer_ids = #{singleStuAnswerIds,jdbcType=LONGVARCHAR},
many_stu_answer_ids = #{manyStuAnswerIds,jdbcType=LONGVARCHAR},
judge_stu_answer_ids = #{judgeStuAnswerIds,jdbcType=LONGVARCHAR}
@ -331,7 +365,9 @@
Objective_score = #{objectiveScore,jdbcType=DECIMAL},
case_score = #{caseScore,jdbcType=DECIMAL},
total_score = #{totalScore,jdbcType=DECIMAL},
class_id = #{classId,jdbcType=VARCHAR}
class_id = #{classId,jdbcType=VARCHAR},
exam_end_status = #{examEndStatus,jdbcType=VARCHAR},
start_time = #{startTime,jdbcType=TIMESTAMP}
where student_exam_id = #{studentExamId,jdbcType=VARCHAR}
</update>
</mapper>

@ -6,6 +6,7 @@
<result column="user_id" jdbcType="VARCHAR" property="userId" />
<result column="case_id" jdbcType="VARCHAR" property="caseId" />
<result column="case_step_id" jdbcType="VARCHAR" property="caseStepId" />
<result column="score" jdbcType="VARCHAR" property="score" />
</resultMap>
<resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.sztzjy.financial_bigdata.entity.StuTrainingStepRecord">
<result column="stu_answer" jdbcType="LONGVARCHAR" property="stuAnswer" />
@ -69,7 +70,7 @@
</where>
</sql>
<sql id="Base_Column_List">
record_id, user_id, case_id, case_step_id
record_id, user_id, case_id, case_step_id, score
</sql>
<sql id="Blob_Column_List">
stu_answer
@ -124,9 +125,11 @@
</delete>
<insert id="insert" parameterType="com.sztzjy.financial_bigdata.entity.StuTrainingStepRecord">
insert into stu_training_step_record (record_id, user_id, case_id,
case_step_id, stu_answer)
case_step_id, score, stu_answer
)
values (#{recordId,jdbcType=VARCHAR}, #{userId,jdbcType=VARCHAR}, #{caseId,jdbcType=VARCHAR},
#{caseStepId,jdbcType=VARCHAR}, #{stuAnswer,jdbcType=LONGVARCHAR})
#{caseStepId,jdbcType=VARCHAR}, #{score,jdbcType=VARCHAR}, #{stuAnswer,jdbcType=LONGVARCHAR}
)
</insert>
<insert id="insertSelective" parameterType="com.sztzjy.financial_bigdata.entity.StuTrainingStepRecord">
insert into stu_training_step_record
@ -143,6 +146,9 @@
<if test="caseStepId != null">
case_step_id,
</if>
<if test="score != null">
score,
</if>
<if test="stuAnswer != null">
stu_answer,
</if>
@ -160,6 +166,9 @@
<if test="caseStepId != null">
#{caseStepId,jdbcType=VARCHAR},
</if>
<if test="score != null">
#{score,jdbcType=VARCHAR},
</if>
<if test="stuAnswer != null">
#{stuAnswer,jdbcType=LONGVARCHAR},
</if>
@ -186,6 +195,9 @@
<if test="record.caseStepId != null">
case_step_id = #{record.caseStepId,jdbcType=VARCHAR},
</if>
<if test="record.score != null">
score = #{record.score,jdbcType=VARCHAR},
</if>
<if test="record.stuAnswer != null">
stu_answer = #{record.stuAnswer,jdbcType=LONGVARCHAR},
</if>
@ -200,6 +212,7 @@
user_id = #{record.userId,jdbcType=VARCHAR},
case_id = #{record.caseId,jdbcType=VARCHAR},
case_step_id = #{record.caseStepId,jdbcType=VARCHAR},
score = #{record.score,jdbcType=VARCHAR},
stu_answer = #{record.stuAnswer,jdbcType=LONGVARCHAR}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
@ -210,7 +223,8 @@
set record_id = #{record.recordId,jdbcType=VARCHAR},
user_id = #{record.userId,jdbcType=VARCHAR},
case_id = #{record.caseId,jdbcType=VARCHAR},
case_step_id = #{record.caseStepId,jdbcType=VARCHAR}
case_step_id = #{record.caseStepId,jdbcType=VARCHAR},
score = #{record.score,jdbcType=VARCHAR}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
@ -227,6 +241,9 @@
<if test="caseStepId != null">
case_step_id = #{caseStepId,jdbcType=VARCHAR},
</if>
<if test="score != null">
score = #{score,jdbcType=VARCHAR},
</if>
<if test="stuAnswer != null">
stu_answer = #{stuAnswer,jdbcType=LONGVARCHAR},
</if>
@ -238,6 +255,7 @@
set user_id = #{userId,jdbcType=VARCHAR},
case_id = #{caseId,jdbcType=VARCHAR},
case_step_id = #{caseStepId,jdbcType=VARCHAR},
score = #{score,jdbcType=VARCHAR},
stu_answer = #{stuAnswer,jdbcType=LONGVARCHAR}
where record_id = #{recordId,jdbcType=VARCHAR}
</update>
@ -245,7 +263,8 @@
update stu_training_step_record
set user_id = #{userId,jdbcType=VARCHAR},
case_id = #{caseId,jdbcType=VARCHAR},
case_step_id = #{caseStepId,jdbcType=VARCHAR}
case_step_id = #{caseStepId,jdbcType=VARCHAR},
score = #{score,jdbcType=VARCHAR}
where record_id = #{recordId,jdbcType=VARCHAR}
</update>
</mapper>
Loading…
Cancel
Save