From 2e5d8bf24debc29e6534a0fb1041f873e55131c1 Mon Sep 17 00:00:00 2001 From: wuchunlei Date: Thu, 29 Aug 2024 16:12:43 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B9=B3=E6=97=B6=E6=88=90=E7=BB=A9=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ClassExamController.java | 4 +- .../service/impl/ClassEntityServiceImpl.java | 116 ++++++++++-------- 2 files changed, 66 insertions(+), 54 deletions(-) diff --git a/src/main/java/com/peanut/modules/common/controller/ClassExamController.java b/src/main/java/com/peanut/modules/common/controller/ClassExamController.java index a85c7ae7..6700b33c 100644 --- a/src/main/java/com/peanut/modules/common/controller/ClassExamController.java +++ b/src/main/java/com/peanut/modules/common/controller/ClassExamController.java @@ -37,6 +37,7 @@ public class ClassExamController { @RequestMapping("/importSubject") @Transactional public R importSubject(@RequestParam("file") MultipartFile file, @RequestParam("courseId") int courseId) { + int num = 0; try (InputStream fis = file.getInputStream()) { List optionList = new ArrayList<>(); Long time = System.currentTimeMillis(); @@ -76,6 +77,7 @@ public class ClassExamController { //出题人 subject.setCreateUser(map.containsKey("Q"+i)?map.get("Q"+i):""); 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("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):""); @@ -90,7 +92,7 @@ public class ClassExamController { TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return R.error(e.getMessage()); } - return R.ok(); + return R.ok("导入成功"+num+"条"); } public void insertOption(List optionList,int subjectId,String content,String rightAnswer){ if (StringUtils.isNotEmpty(content)){ diff --git a/src/main/java/com/peanut/modules/common/service/impl/ClassEntityServiceImpl.java b/src/main/java/com/peanut/modules/common/service/impl/ClassEntityServiceImpl.java index fb811c89..9cd9a5ab 100644 --- a/src/main/java/com/peanut/modules/common/service/impl/ClassEntityServiceImpl.java +++ b/src/main/java/com/peanut/modules/common/service/impl/ClassEntityServiceImpl.java @@ -957,72 +957,82 @@ public class ClassEntityServiceImpl extends ServiceImpl getUserScore(Map params) { + ClassEntity classEntity = this.getBaseMapper().selectById(params.get("classId").toString()); + ClassModel classModel = classModelDao.selectById(classEntity.getModelId()); Map map = new HashMap<>(); - double task0Score = 0; - MPJLambdaWrapper task0wrapper = new MPJLambdaWrapper<>(); - task0wrapper.leftJoin(ClassTask.class,ClassTask::getId,ClassTaskAndQuesReply::getRelationId); - task0wrapper.selectAll(ClassTaskAndQuesReply.class); - task0wrapper.eq(ClassTask::getClassId,params.get("classId")); - task0wrapper.eq(ClassTask::getType,"0"); - task0wrapper.eq(ClassTaskAndQuesReply::getUserId,ShiroUtils.getUId()); - List task0Replys = classTaskAndQuesReplyDao.selectList(task0wrapper); - if (task0Replys.size() > 0) { - for (ClassTaskAndQuesReply reply : task0Replys) { - if (reply.getScoreSuccess()>1){ - task0Score += reply.getScore(); + if (classModel.getIsQuestion()==1){ + double questionScore = 0; + MPJLambdaWrapper questionWrapper = new MPJLambdaWrapper<>(); + questionWrapper.leftJoin(CourseCatalogueChapterEntity.class,CourseCatalogueChapterEntity::getId,ClassTaskAndQuesReply::getRelationId); + questionWrapper.leftJoin(ClassCourse.class,ClassCourse::getCourseId,CourseCatalogueChapterEntity::getCourseId); + questionWrapper.leftJoin(ClassModel.class,ClassModel::getId,ClassCourse::getModelId); + questionWrapper.leftJoin(ClassEntity.class,ClassEntity::getModelId,ClassModel::getId); + questionWrapper.selectAll(ClassTaskAndQuesReply.class); + questionWrapper.eq(ClassEntity::getId,params.get("classId")); + questionWrapper.eq(ClassTaskAndQuesReply::getUserId,ShiroUtils.getUId()); + questionWrapper.eq(ClassTaskAndQuesReply::getClassId,params.get("classId")); + List 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; - MPJLambdaWrapper task1wrapper = new MPJLambdaWrapper<>(); - task1wrapper.leftJoin(ClassTask.class,ClassTask::getId,ClassTaskAndQuesReply::getRelationId); - task1wrapper.selectAll(ClassTaskAndQuesReply.class); - task1wrapper.eq(ClassTask::getClassId,params.get("classId")); - task1wrapper.eq(ClassTask::getType,"1"); - task1wrapper.eq(ClassTaskAndQuesReply::getUserId,ShiroUtils.getUId()); - List task1Replys = classTaskAndQuesReplyDao.selectList(task1wrapper); - if (task1Replys.size() > 0) { - for (ClassTaskAndQuesReply reply : task1Replys) { - if (reply.getScoreSuccess()>1){ - task1Score += reply.getScore(); + if (classModel.getIsTask()==1){ + double task0Score = 0; + MPJLambdaWrapper task0wrapper = new MPJLambdaWrapper<>(); + task0wrapper.leftJoin(ClassTask.class,ClassTask::getId,ClassTaskAndQuesReply::getRelationId); + task0wrapper.selectAll(ClassTaskAndQuesReply.class); + task0wrapper.eq(ClassTask::getClassId,params.get("classId")); + task0wrapper.eq(ClassTask::getType,"0"); + task0wrapper.eq(ClassTaskAndQuesReply::getUserId,ShiroUtils.getUId()); + List task0Replys = classTaskAndQuesReplyDao.selectList(task0wrapper); + if (task0Replys.size() > 0) { + for (ClassTaskAndQuesReply reply : task0Replys) { + if (reply.getScoreSuccess()>1){ + task0Score += reply.getScore(); + } } } + map.put("task0Score",task0Score); } - double experienceScore = 0; - MPJLambdaWrapper experiencewrapper = new MPJLambdaWrapper<>(); - experiencewrapper.eq(ClassTask::getUserId,ShiroUtils.getUId()); - experiencewrapper.eq(ClassTask::getClassId,params.get("classId")); - experiencewrapper.eq(ClassTask::getType,"2"); - List experiences = classTaskDao.selectList(experiencewrapper); - if (experiences.size() > 0) { - for (ClassTask task : experiences) { - if (task.getScoreSuccess()>=1){ - experienceScore += task.getScore(); + if (classModel.getIsMedicalcase()==1){ + double task1Score = 0; + MPJLambdaWrapper task1wrapper = new MPJLambdaWrapper<>(); + task1wrapper.leftJoin(ClassTask.class,ClassTask::getId,ClassTaskAndQuesReply::getRelationId); + task1wrapper.selectAll(ClassTaskAndQuesReply.class); + task1wrapper.eq(ClassTask::getClassId,params.get("classId")); + task1wrapper.eq(ClassTask::getType,"1"); + task1wrapper.eq(ClassTaskAndQuesReply::getUserId,ShiroUtils.getUId()); + List task1Replys = classTaskAndQuesReplyDao.selectList(task1wrapper); + if (task1Replys.size() > 0) { + for (ClassTaskAndQuesReply reply : task1Replys) { + if (reply.getScoreSuccess()>1){ + task1Score += reply.getScore(); + } } } + map.put("task1Score",task1Score); } - double questionScore = 0; - MPJLambdaWrapper questionWrapper = new MPJLambdaWrapper<>(); - questionWrapper.leftJoin(CourseCatalogueChapterEntity.class,CourseCatalogueChapterEntity::getId,ClassTaskAndQuesReply::getRelationId); - questionWrapper.leftJoin(ClassCourse.class,ClassCourse::getCourseId,CourseCatalogueChapterEntity::getCourseId); - questionWrapper.leftJoin(ClassModel.class,ClassModel::getId,ClassCourse::getModelId); - questionWrapper.leftJoin(ClassEntity.class,ClassEntity::getModelId,ClassModel::getId); - questionWrapper.selectAll(ClassTaskAndQuesReply.class); - questionWrapper.eq(ClassEntity::getId,params.get("classId")); - questionWrapper.eq(ClassTaskAndQuesReply::getUserId,ShiroUtils.getUId()); - questionWrapper.eq(ClassTaskAndQuesReply::getClassId,params.get("classId")); - List questionReplys = classTaskAndQuesReplyDao.selectList(questionWrapper); - if (questionReplys.size() > 0) { - for (ClassTaskAndQuesReply reply : questionReplys) { - if (reply.getScoreSuccess()>=1){ - questionScore += reply.getScore(); + if (classModel.getIsExperience()==1){ + double experienceScore = 0; + MPJLambdaWrapper experiencewrapper = new MPJLambdaWrapper<>(); + experiencewrapper.eq(ClassTask::getUserId,ShiroUtils.getUId()); + experiencewrapper.eq(ClassTask::getClassId,params.get("classId")); + experiencewrapper.eq(ClassTask::getType,"2"); + List experiences = classTaskDao.selectList(experiencewrapper); + if (experiences.size() > 0) { + for (ClassTask task : experiences) { + if (task.getScoreSuccess()>=1){ + experienceScore += task.getScore(); + } } } + map.put("experienceScore",experienceScore); } - map.put("task0Score",task0Score); - map.put("task1Score",task1Score); - map.put("experienceScore",experienceScore); - map.put("questionScore",questionScore); return map; }