平时成绩模块显示

This commit is contained in:
wuchunlei
2024-08-29 16:12:43 +08:00
parent e3801fa8a5
commit 2e5d8bf24d
2 changed files with 66 additions and 54 deletions

View File

@@ -37,6 +37,7 @@ public class ClassExamController {
@RequestMapping("/importSubject") @RequestMapping("/importSubject")
@Transactional @Transactional
public R importSubject(@RequestParam("file") MultipartFile file, @RequestParam("courseId") int courseId) { public R importSubject(@RequestParam("file") MultipartFile file, @RequestParam("courseId") int courseId) {
int num = 0;
try (InputStream fis = file.getInputStream()) { try (InputStream fis = file.getInputStream()) {
List<ClassExamOption> optionList = new ArrayList<>(); List<ClassExamOption> optionList = new ArrayList<>();
Long time = System.currentTimeMillis(); Long time = System.currentTimeMillis();
@@ -76,6 +77,7 @@ public class ClassExamController {
//出题人 //出题人
subject.setCreateUser(map.containsKey("Q"+i)?map.get("Q"+i):""); subject.setCreateUser(map.containsKey("Q"+i)?map.get("Q"+i):"");
classExamSubjectService.save(subject); classExamSubjectService.save(subject);
num++;
insertOption(optionList,subject.getId(),map.containsKey("C"+i)?map.get("C"+i):"",map.containsKey("I"+i)?map.get("I"+i):""); insertOption(optionList,subject.getId(),map.containsKey("C"+i)?map.get("C"+i):"",map.containsKey("I"+i)?map.get("I"+i):"");
insertOption(optionList,subject.getId(),map.containsKey("D"+i)?map.get("D"+i):"",map.containsKey("I"+i)?map.get("I"+i):""); insertOption(optionList,subject.getId(),map.containsKey("D"+i)?map.get("D"+i):"",map.containsKey("I"+i)?map.get("I"+i):"");
insertOption(optionList,subject.getId(),map.containsKey("E"+i)?map.get("E"+i):"",map.containsKey("I"+i)?map.get("I"+i):""); insertOption(optionList,subject.getId(),map.containsKey("E"+i)?map.get("E"+i):"",map.containsKey("I"+i)?map.get("I"+i):"");
@@ -90,7 +92,7 @@ public class ClassExamController {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return R.error(e.getMessage()); return R.error(e.getMessage());
} }
return R.ok(); return R.ok("导入成功"+num+"");
} }
public void insertOption(List<ClassExamOption> optionList,int subjectId,String content,String rightAnswer){ public void insertOption(List<ClassExamOption> optionList,int subjectId,String content,String rightAnswer){
if (StringUtils.isNotEmpty(content)){ if (StringUtils.isNotEmpty(content)){

View File

@@ -957,72 +957,82 @@ public class ClassEntityServiceImpl extends ServiceImpl<ClassEntityDao, ClassEnt
@Override @Override
public Map<String, Object> getUserScore(Map<String, Object> params) { public Map<String, Object> getUserScore(Map<String, Object> params) {
ClassEntity classEntity = this.getBaseMapper().selectById(params.get("classId").toString());
ClassModel classModel = classModelDao.selectById(classEntity.getModelId());
Map<String,Object> map = new HashMap<>(); Map<String,Object> map = new HashMap<>();
double task0Score = 0; if (classModel.getIsQuestion()==1){
MPJLambdaWrapper<ClassTaskAndQuesReply> task0wrapper = new MPJLambdaWrapper<>(); double questionScore = 0;
task0wrapper.leftJoin(ClassTask.class,ClassTask::getId,ClassTaskAndQuesReply::getRelationId); MPJLambdaWrapper<ClassTaskAndQuesReply> questionWrapper = new MPJLambdaWrapper<>();
task0wrapper.selectAll(ClassTaskAndQuesReply.class); questionWrapper.leftJoin(CourseCatalogueChapterEntity.class,CourseCatalogueChapterEntity::getId,ClassTaskAndQuesReply::getRelationId);
task0wrapper.eq(ClassTask::getClassId,params.get("classId")); questionWrapper.leftJoin(ClassCourse.class,ClassCourse::getCourseId,CourseCatalogueChapterEntity::getCourseId);
task0wrapper.eq(ClassTask::getType,"0"); questionWrapper.leftJoin(ClassModel.class,ClassModel::getId,ClassCourse::getModelId);
task0wrapper.eq(ClassTaskAndQuesReply::getUserId,ShiroUtils.getUId()); questionWrapper.leftJoin(ClassEntity.class,ClassEntity::getModelId,ClassModel::getId);
List<ClassTaskAndQuesReply> task0Replys = classTaskAndQuesReplyDao.selectList(task0wrapper); questionWrapper.selectAll(ClassTaskAndQuesReply.class);
if (task0Replys.size() > 0) { questionWrapper.eq(ClassEntity::getId,params.get("classId"));
for (ClassTaskAndQuesReply reply : task0Replys) { questionWrapper.eq(ClassTaskAndQuesReply::getUserId,ShiroUtils.getUId());
if (reply.getScoreSuccess()>1){ questionWrapper.eq(ClassTaskAndQuesReply::getClassId,params.get("classId"));
task0Score += reply.getScore(); List<ClassTaskAndQuesReply> questionReplys = classTaskAndQuesReplyDao.selectList(questionWrapper);
if (questionReplys.size() > 0) {
for (ClassTaskAndQuesReply reply : questionReplys) {
if (reply.getScoreSuccess()>=1){
questionScore += reply.getScore();
}
} }
} }
map.put("questionScore",questionScore);
} }
double task1Score = 0; if (classModel.getIsTask()==1){
MPJLambdaWrapper<ClassTaskAndQuesReply> task1wrapper = new MPJLambdaWrapper<>(); double task0Score = 0;
task1wrapper.leftJoin(ClassTask.class,ClassTask::getId,ClassTaskAndQuesReply::getRelationId); MPJLambdaWrapper<ClassTaskAndQuesReply> task0wrapper = new MPJLambdaWrapper<>();
task1wrapper.selectAll(ClassTaskAndQuesReply.class); task0wrapper.leftJoin(ClassTask.class,ClassTask::getId,ClassTaskAndQuesReply::getRelationId);
task1wrapper.eq(ClassTask::getClassId,params.get("classId")); task0wrapper.selectAll(ClassTaskAndQuesReply.class);
task1wrapper.eq(ClassTask::getType,"1"); task0wrapper.eq(ClassTask::getClassId,params.get("classId"));
task1wrapper.eq(ClassTaskAndQuesReply::getUserId,ShiroUtils.getUId()); task0wrapper.eq(ClassTask::getType,"0");
List<ClassTaskAndQuesReply> task1Replys = classTaskAndQuesReplyDao.selectList(task1wrapper); task0wrapper.eq(ClassTaskAndQuesReply::getUserId,ShiroUtils.getUId());
if (task1Replys.size() > 0) { List<ClassTaskAndQuesReply> task0Replys = classTaskAndQuesReplyDao.selectList(task0wrapper);
for (ClassTaskAndQuesReply reply : task1Replys) { if (task0Replys.size() > 0) {
if (reply.getScoreSuccess()>1){ for (ClassTaskAndQuesReply reply : task0Replys) {
task1Score += reply.getScore(); if (reply.getScoreSuccess()>1){
task0Score += reply.getScore();
}
} }
} }
map.put("task0Score",task0Score);
} }
double experienceScore = 0; if (classModel.getIsMedicalcase()==1){
MPJLambdaWrapper<ClassTask> experiencewrapper = new MPJLambdaWrapper<>(); double task1Score = 0;
experiencewrapper.eq(ClassTask::getUserId,ShiroUtils.getUId()); MPJLambdaWrapper<ClassTaskAndQuesReply> task1wrapper = new MPJLambdaWrapper<>();
experiencewrapper.eq(ClassTask::getClassId,params.get("classId")); task1wrapper.leftJoin(ClassTask.class,ClassTask::getId,ClassTaskAndQuesReply::getRelationId);
experiencewrapper.eq(ClassTask::getType,"2"); task1wrapper.selectAll(ClassTaskAndQuesReply.class);
List<ClassTask> experiences = classTaskDao.selectList(experiencewrapper); task1wrapper.eq(ClassTask::getClassId,params.get("classId"));
if (experiences.size() > 0) { task1wrapper.eq(ClassTask::getType,"1");
for (ClassTask task : experiences) { task1wrapper.eq(ClassTaskAndQuesReply::getUserId,ShiroUtils.getUId());
if (task.getScoreSuccess()>=1){ List<ClassTaskAndQuesReply> task1Replys = classTaskAndQuesReplyDao.selectList(task1wrapper);
experienceScore += task.getScore(); if (task1Replys.size() > 0) {
for (ClassTaskAndQuesReply reply : task1Replys) {
if (reply.getScoreSuccess()>1){
task1Score += reply.getScore();
}
} }
} }
map.put("task1Score",task1Score);
} }
double questionScore = 0; if (classModel.getIsExperience()==1){
MPJLambdaWrapper<ClassTaskAndQuesReply> questionWrapper = new MPJLambdaWrapper<>(); double experienceScore = 0;
questionWrapper.leftJoin(CourseCatalogueChapterEntity.class,CourseCatalogueChapterEntity::getId,ClassTaskAndQuesReply::getRelationId); MPJLambdaWrapper<ClassTask> experiencewrapper = new MPJLambdaWrapper<>();
questionWrapper.leftJoin(ClassCourse.class,ClassCourse::getCourseId,CourseCatalogueChapterEntity::getCourseId); experiencewrapper.eq(ClassTask::getUserId,ShiroUtils.getUId());
questionWrapper.leftJoin(ClassModel.class,ClassModel::getId,ClassCourse::getModelId); experiencewrapper.eq(ClassTask::getClassId,params.get("classId"));
questionWrapper.leftJoin(ClassEntity.class,ClassEntity::getModelId,ClassModel::getId); experiencewrapper.eq(ClassTask::getType,"2");
questionWrapper.selectAll(ClassTaskAndQuesReply.class); List<ClassTask> experiences = classTaskDao.selectList(experiencewrapper);
questionWrapper.eq(ClassEntity::getId,params.get("classId")); if (experiences.size() > 0) {
questionWrapper.eq(ClassTaskAndQuesReply::getUserId,ShiroUtils.getUId()); for (ClassTask task : experiences) {
questionWrapper.eq(ClassTaskAndQuesReply::getClassId,params.get("classId")); if (task.getScoreSuccess()>=1){
List<ClassTaskAndQuesReply> questionReplys = classTaskAndQuesReplyDao.selectList(questionWrapper); experienceScore += task.getScore();
if (questionReplys.size() > 0) { }
for (ClassTaskAndQuesReply reply : questionReplys) {
if (reply.getScoreSuccess()>=1){
questionScore += reply.getScore();
} }
} }
map.put("experienceScore",experienceScore);
} }
map.put("task0Score",task0Score);
map.put("task1Score",task1Score);
map.put("experienceScore",experienceScore);
map.put("questionScore",questionScore);
return map; return map;
} }