package com.nenusoftware.onlineexam.service.paperdetail.impl;
import com.alibaba.fastjson.JSONArray;
import com.nenusoftware.onlineexam.entity.answer.Answer;
import com.nenusoftware.onlineexam.entity.paper.Paper;
import com.nenusoftware.onlineexam.entity.paperdetail.PaperDetail;
import com.nenusoftware.onlineexam.entity.score.Score;
import com.nenusoftware.onlineexam.entity.wrong.Wrong;
import com.nenusoftware.onlineexam.mapper.paperdetail.PaperDetailMapper;
import com.nenusoftware.onlineexam.service.paper.PaperService;
import com.nenusoftware.onlineexam.service.paperdetail.PaperDetailService;
import com.nenusoftware.onlineexam.service.score.ScoreService;
import com.nenusoftware.onlineexam.service.wrong.WrongService;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.List;
/**
* @Author:kongyy
* @Description: PaperDetailService的底层实现方法
* @Date: 10:33 2020/6/16
*/
@Service
public class PaperDetailServiceImpl implements PaperDetailService {
@Resource
PaperDetailMapper paperDetailMapper;
@Resource
PaperService paperService;
@Resource
ScoreService scoreService;
@Resource
WrongService wrongService;
/**
* 列出所有试卷详细信息
* @return 返回List形式的试卷详细信息
* @throws Exception 抛出错误类型
*/
@Override
public List<PaperDetail> listAllPaperDetail() throws Exception{
List<PaperDetail> paperDetailList = Collections.emptyList();
paperDetailList = paperDetailMapper.listAllPaperDetail();
for (PaperDetail detail : paperDetailList) {
PaperDetail paperDetail = new PaperDetail();
paperDetail = detail;
if("简答题".equals(paperDetail.getExerciseType())){
String str, str1, str2, str3;
str1 = paperDetail.getAnswer();
str2 = paperDetail.getAnswer2();
str3 = paperDetail.getAnswer3();
str = "得分点为:" + str1 + " " + str2 + " " + str3;
paperDetail.setAnswer(str);
}
}
return paperDetailList;
}
/**
* 根据试卷编号列出试卷详细信息
* @param paperId 试卷编号
* @return 返回List形式的试卷详细信息
* @throws Exception 抛出错误类型
*/
@Override
public List<PaperDetail> listPaperDetailByPaperId(int paperId) throws Exception{
List<PaperDetail> paperDetailList = Collections.emptyList();
paperDetailList = paperDetailMapper.listPaperDetailByPaperId(paperId);
for (PaperDetail detail : paperDetailList) {
PaperDetail paperDetail = new PaperDetail();
paperDetail = detail;
String str, str1, str2, str3;
str1 = paperDetail.getAnswer();
str2 = paperDetail.getAnswer2();
str3 = paperDetail.getAnswer3();
str = "关键字为:" + str1 + " " + str2 + " " + str3;
paperDetail.setAnswer(str);
}
return paperDetailList;
}
/**
* 增加试卷详细信息
* @param paperDetail 试卷详细信息实体
* @throws Exception 抛出错误类型
*/
@Override
public void addPaperDetail(PaperDetail paperDetail) throws Exception {
paperDetailMapper.addPaperDetail(paperDetail);
}
/**
* 删除试卷详细信息
* @param paperDetailId 试卷详细信息编号
* @return 删除成功返回true,删除失败返回false
* @throws Exception 抛出错误类型
*/
@Override
public boolean deletePaperDetail(int paperDetailId) throws Exception{
return paperDetailMapper.deletePaperDetail(paperDetailId);
}
/**
* 修改试卷详细信息
* @param paperDetail 试卷详细信息实体
* @throws Exception 抛出错误类型
*/
@Override
public void updatePaperDetail(PaperDetail paperDetail) throws Exception{
paperDetailMapper.updatePaperDetail(paperDetail);
}
/**
* 模糊查询(查询试卷题目的内容或类型)
* @param keyWord 输入查询的关键字
* @return 返回List形式的试卷详细信息
* @throws Exception 抛出错误类型
*/
@Override
public List<PaperDetail> queryPaperDetail(String keyWord) throws Exception{
List<PaperDetail> paperDetaillist = Collections.emptyList();
keyWord = "%" + keyWord + "%";
paperDetaillist = paperDetailMapper.queryPaperDetail(keyWord);
return paperDetaillist;
}
/**
* 根据题目类型列出试卷详细信息
* @param exerciseType 题目类型
* @return 返回List形式的试卷详细信息
* @throws Exception 抛出错误类型
*/
@Override
public List<PaperDetail> queryExerciseByTypes(String exerciseType) throws Exception{
List<PaperDetail> paperDetailList = Collections.emptyList();
paperDetailList = paperDetailMapper.queryExerciseByTypes(exerciseType);
for (PaperDetail detail : paperDetailList) {
PaperDetail paperDetail = new PaperDetail();
paperDetail = detail;
if("简答题".equals(paperDetail.getExerciseType())){
String str, str1, str2, str3;
str1 = paperDetail.getAnswer();
str2 = paperDetail.getAnswer2();
str3 = paperDetail.getAnswer3();
str = "得分点为:" + str1 + " " + str2 + " " + str3;
paperDetail.setAnswer(str);
}
}
return paperDetailList;
}
/**
* 根据试卷Id查询题目选项
* @param paperDetailId 试卷详细信息编号
* @return 返回List形式的试卷详细信息
* @throws Exception 抛出错误类型
*/
@Override
public List<PaperDetail> queryExerciseItemsById(int paperDetailId) throws Exception{
List<PaperDetail> paperDetailItemsList = Collections.emptyList();
paperDetailItemsList = paperDetailMapper.queryExerciseItemsById(paperDetailId);
return paperDetailItemsList;
}
/**
* 根据试题内容获取题目编号
* @param content 试题内容
* @return 题目编号
* @throws Exception 抛出错误类型
*/
@Override
public PaperDetail queryIdByContent(@Param("content") String content) throws Exception{
return paperDetailMapper.queryIdByContent(content);
}
/**
* 根据题目的id来查找题目
* @param paperDetailId 题目id
* @return 返回查找到的PaperDetail对象
* @throws Exception 抛出错误类型
*/
@Override
public PaperDetail queryQuestion(int paperDetailId) throws Exception{
List<PaperDetail> paperDetailItemsList = Collections.emptyList();
PaperDetail paperDetail = new PaperDetail();
paperDetailItemsList = paperDetailMapper.queryQuestion(paperDetailId);
paperDetail = paperDetailItemsList.get(0);
return paperDetail;
}
/**
*根据学生做题信息,计算学生得了多少分
* @param jsonArray 学生做题信息,其中包含两项信息,学生答案:answer和这道题目的id:paperDetailId
* @param userId 学生的id
* @return 返回学生得的分数
* @throws Exception 抛出错误类型
*/
@Override
public int judgeQuestion(JSONArray jsonArray, int userId) throws Exception{
int result = 0;
String paperIdStr = jsonArray.getJSONObject(0).getString("paperId");
int paperId = Integer.parseInt(paperIdStr);
try{
for(int i=0;i<jsonArray.size();i++){
Answer answer = new Answer();
PaperDetail paperDetail = new PaperDetail();
String paperDetailIdStr = jsonArray.getJSONObject(i).getString("paperDetailId");
String solution = json
盈梓的博客
- 粉丝: 9792
- 资源: 2681
最新资源
- Java毕业设计-springboot-vue-公寓报修管理系统(源码+sql脚本+29页零基础部署图文详解+33页论文+环境工具+教程+视频+模板).zip
- 储能双向DCDC变流器模型预测控制详解:结合下垂控制、PI电压环与模型预测电流环的研究参考文献,储能双向DCDC变流器-模型预测控制 储能buck-boost双向dcdc负载 初级控制为下垂控制 电压
- Java毕业设计-springboot-vue-华强北商城二手手机管理系统(源码+sql脚本+29页零基础部署图文详解+48页论文+环境工具+教程+视频+模板).zip
- Java毕业设计-springboot-vue-海滨学院班级回忆录(源码+sql脚本+29页零基础部署图文详解+30页论文+环境工具+教程+视频+模板).zip
- Java毕业设计-springboot-vue-欢迪迈手机商城设计与开发(源码+sql脚本+29页零基础部署图文详解+30页论文+环境工具+教程+视频+模板).zip
- "IEEE 33配电网中含分布式电源的潮流计算:24小时的牛顿拉夫逊法编程及无功补偿与移动风机光伏电源位置调整",ieee33配电网含分布式电源潮流计算 24小时 牛顿拉夫逊法,算例编程matla
- 2023-04-06-项目笔记 - 第三百八十二阶段 - 4.4.2.380全局变量的作用域-380 -2025.01.18
- 《智云物业4.20版本更新详解》 在信息化管理日益重要的今天,物业管理系统扮演着不可或缺的角色 本文将深入解析智云物业4.2
- InfiniBand架构1.3虚拟化特性扩展及其配置方法
- 基于解混扩散模型的自监督高光谱图像去噪技术及其应用(CVPR 2024)
- Java毕业设计-springboot-vue-疾病防控综合系统(源码+sql脚本+29页零基础部署图文详解+37页论文+环境工具+教程+视频+模板).zip
- Java毕业设计-springboot-vue-基于保信息学科平台(源码+sql脚本+29页零基础部署图文详解+29页论文+环境工具+教程+视频+模板).zip
- Greenplum Platform Extension Framework 6.11.0 for RHEL 8 gpdb pxf
- 永磁同步电机PMSM自抗扰控制ADRC转速外环一阶控制与内环PI控制SVPWM技术:优势显著超调小对比研究参考论文,永磁同步电机PMSM自抗扰控制ADRC控制 转速外环自抗扰ADRC控制(一阶)
- Java毕业设计-springboot-vue-健身房管理系统(源码+sql脚本+29页零基础部署图文详解+27页论文+环境工具+教程+视频+模板).zip
- Java毕业设计-springboot-vue-健身房管理系统(源码+sql脚本+29页零基础部署图文详解+29页论文+环境工具+教程+视频+模板).zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈