From 0fd8f83b478da4a4062a4180d152e45b5941ed21 Mon Sep 17 00:00:00 2001 From: wuchunlei Date: Mon, 9 Sep 2024 14:50:42 +0800 Subject: [PATCH 1/8] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/pay/alipay/service/impl/AliPayServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/peanut/modules/pay/alipay/service/impl/AliPayServiceImpl.java b/src/main/java/com/peanut/modules/pay/alipay/service/impl/AliPayServiceImpl.java index 7ddc1e15..caa40407 100644 --- a/src/main/java/com/peanut/modules/pay/alipay/service/impl/AliPayServiceImpl.java +++ b/src/main/java/com/peanut/modules/pay/alipay/service/impl/AliPayServiceImpl.java @@ -315,11 +315,11 @@ public class AliPayServiceImpl implements AliPayService { } return "success"; } - log.info(">>>>>>>>>>验签失败"); + log.error(">>>>>>>>>>验签失败 params = {}", params.toString()); return "fail"; } catch (Exception e) { - log.info(">>>>>>>>>>订单回调异常: 订单号 = {}, msg = {}", params.get("out_trade_no"), e.getMessage()); + log.error(">>>>>>>>>>订单回调异常: 订单号 = {}, msg = {}", params.toString(), e.getMessage()); return "fail"; } } From c3252e2966b7a6150409ae6cf6a63eb388dffe08 Mon Sep 17 00:00:00 2001 From: wuchunlei Date: Mon, 9 Sep 2024 16:16:03 +0800 Subject: [PATCH 2/8] =?UTF-8?q?=E7=BB=93=E7=8F=AD=E9=99=90=E5=88=B6=20?= =?UTF-8?q?=E4=B8=AA=E4=BA=BA=E6=88=90=E7=BB=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ClassEntityServiceImpl.java | 178 ++++++++++-------- 1 file changed, 99 insertions(+), 79 deletions(-) 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 5bca267e..6ec77d7b 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 @@ -318,6 +318,19 @@ public class ClassEntityServiceImpl extends ServiceImpl() + .eq(ClassExamUser::getClassId,classEntity.getId()) + .eq(ClassExamUser::getScoreSuccess,0)); + if (classExamUsers>0){ + return R.error("有学员正在考试,请稍后再试"); + } + int replys = classTaskAndQuesReplyDao.selectCount(new LambdaQueryWrapper() + .eq(ClassTaskAndQuesReply::getClassId,classEntity.getId()) + .eq(ClassTaskAndQuesReply::getScoreSuccess,0)); + if (replys>0){ + return R.error("学员打分未完成,请完成打分后结班"); + } classEntity.setState("2"); classEntity.setEndTime(new Date()); this.getBaseMapper().updateById(classEntity); @@ -1077,98 +1090,105 @@ public class ClassEntityServiceImpl extends ServiceImpl> classExamUsers = classExamUserDao.selectMaps(new MPJLambdaWrapper() + .eq(ClassExamUser::getUserId,params.get("userId").toString()) + .eq(ClassExamUser::getClassId,classEntity.getId()) + .eq(ClassExamUser::getScoreSuccess,1) + .selectAs(ClassExamUser::getId,"id") + .selectAs(ClassExamUser::getScore,"score") + .orderByAsc(ClassExamUser::getStartTime)); + int examScore = 0; + if (classExamUsers.size() > 0){ + for (Map classExamUser:classExamUsers){ + if ((int)classExamUser.get("score")>examScore){ + examScore = (int)classExamUser.get("score"); + } + } + } + map.put("examScore",examScore); + map.put("classExamUsers",classExamUsers); + } + BigDecimal userScore = new BigDecimal(0);; + double staticScore = 2.5; + if(classModel.getIsExam()==1){ + BigDecimal examScore = new BigDecimal(map.get("examScore").toString()); + map.put("examScore",examScore); + userScore = userScore.add(examScore); + } + if(classModel.getIsQuestion()==1){ + BigDecimal questionScore = new BigDecimal(map.get("questionScore").toString()); + if (questionScore.compareTo(new BigDecimal(0))!=0){ + MPJLambdaWrapper wrapper = new MPJLambdaWrapper(); + wrapper.leftJoin(ClassCourse.class,ClassCourse::getCourseId,CourseCatalogueChapterEntity::getCourseId); + wrapper.leftJoin(ClassModel.class,ClassModel::getId,ClassCourse::getModelId); + wrapper.eq(ClassModel::getId,classModel.getId()); + wrapper.ne(CourseCatalogueChapterEntity::getQuestions,""); + int count = courseCatalogueChapterDao.selectCount(wrapper); + BigDecimal totalScore = new BigDecimal(staticScore*count); + questionScore = questionScore.divide(totalScore); + questionScore = questionScore.multiply(new BigDecimal(classModel.getQuestionScore())); + questionScore = questionScore.setScale(2,RoundingMode.HALF_UP); + map.put("questionScore",questionScore); + userScore = userScore.add(questionScore); + } + } + if(classModel.getIsTask()==1){ + BigDecimal task0Score = new BigDecimal(map.get("task0Score").toString()); + if (task0Score.compareTo(new BigDecimal(0))!=0){ + MPJLambdaWrapper wrapper = new MPJLambdaWrapper(); + wrapper.eq(ClassTask::getClassId,classEntity.getId()); + wrapper.eq(ClassTask::getType,"0"); + int count = classTaskDao.selectCount(wrapper); + BigDecimal totalScore = new BigDecimal(staticScore*count); + task0Score = task0Score.divide(totalScore); + task0Score = task0Score.multiply(new BigDecimal(classModel.getTaskScore())); + task0Score = task0Score.setScale(2,RoundingMode.HALF_UP); + map.put("task0Score",task0Score); + userScore = userScore.add(task0Score); + } + } + if(classModel.getIsMedicalcase()==1){ + BigDecimal task1Score = new BigDecimal(map.get("task1Score").toString()); + if (task1Score.compareTo(new BigDecimal(0))!=0){ + MPJLambdaWrapper wrapper = new MPJLambdaWrapper(); + wrapper.eq(ClassTask::getClassId,classEntity.getId()); + wrapper.eq(ClassTask::getType,"1"); + int count = classTaskDao.selectCount(wrapper); + BigDecimal totalScore = new BigDecimal(staticScore*count); + task1Score = task1Score.divide(totalScore); + task1Score = task1Score.multiply(new BigDecimal(classModel.getMedicalcaseScore())); + task1Score = task1Score.setScale(2,RoundingMode.HALF_UP); + map.put("task1Score",task1Score); + userScore = userScore.add(task1Score); + } + } + if(classModel.getIsExperience()==1){ + BigDecimal experienceScore = new BigDecimal(map.get("experienceScore").toString()); + if (experienceScore.compareTo(new BigDecimal(classModel.getExperienceScore()))>-1){ + experienceScore = new BigDecimal(classModel.getExperienceScore()); + } + map.put("experienceScore",experienceScore); + userScore = userScore.add(experienceScore); + } + map.put("userScore",userScore); + return map; } @Override public List userScoreList(Map params) { ClassEntity classEntity = this.getBaseMapper().selectById(params.get("classId").toString()); - ClassModel classModel = classModelDao.selectById(classEntity.getModelId()); List classUsers = classUserDao.selectList(new LambdaQueryWrapper() .eq(ClassUser::getClassId,classEntity.getId()).eq(ClassUser::getRole,"0")); List> resultList = new ArrayList<>(); if (classUsers.size() > 0){ for (ClassUser classUser:classUsers){ params.put("userId",classUser.getUserId()); - Map map = getUserScore(params); + Map map = getUserScore(params); map.put("user",myUserDao.selectById(classUser.getUserId())); - if (classModel.getIsExam()==1){ - List> classExamUsers = classExamUserDao.selectMaps(new MPJLambdaWrapper() - .eq(ClassExamUser::getUserId,classUser.getUserId()) - .eq(ClassExamUser::getClassId,classEntity.getId()) - .eq(ClassExamUser::getScoreSuccess,1) - .selectAs(ClassExamUser::getId,"id") - .selectAs(ClassExamUser::getScore,"score") - .orderByAsc(ClassExamUser::getStartTime)); - int examScore = 0; - if (classExamUsers.size() > 0){ - for (Map classExamUser:classExamUsers){ - if ((int)classExamUser.get("score")>examScore){ - examScore = (int)classExamUser.get("score"); - } - } - } - map.put("examScore",examScore); - map.put("classExamUsers",classExamUsers); - } - //处理分数占比 - BigDecimal userScore = new BigDecimal(0);; - double staticScore = 2.5; - if(classModel.getIsExam()==1){ - BigDecimal examScore = new BigDecimal(map.get("examScore").toString()); - map.put("examScore",examScore); - userScore = userScore.add(examScore); - } - if(classModel.getIsQuestion()==1){ - BigDecimal questionScore = new BigDecimal(map.get("questionScore").toString()); - MPJLambdaWrapper wrapper = new MPJLambdaWrapper(); - wrapper.leftJoin(ClassCourse.class,ClassCourse::getCourseId,CourseCatalogueChapterEntity::getCourseId); - wrapper.leftJoin(ClassModel.class,ClassModel::getId,ClassCourse::getModelId); - wrapper.eq(ClassModel::getId,classModel.getId()); - wrapper.ne(CourseCatalogueChapterEntity::getQuestions,""); - int count = courseCatalogueChapterDao.selectCount(wrapper); - BigDecimal totalScore = new BigDecimal(staticScore*count); - questionScore = questionScore.divide(totalScore); - questionScore = questionScore.multiply(new BigDecimal(classModel.getQuestionScore())); - questionScore = questionScore.setScale(2,RoundingMode.HALF_UP); - map.put("questionScore",questionScore); - userScore = userScore.add(questionScore); - } - if(classModel.getIsTask()==1){ - BigDecimal task0Score = new BigDecimal(map.get("task0Score").toString()); - MPJLambdaWrapper wrapper = new MPJLambdaWrapper(); - wrapper.eq(ClassTask::getClassId,classEntity.getId()); - wrapper.eq(ClassTask::getType,"0"); - int count = classTaskDao.selectCount(wrapper); - BigDecimal totalScore = new BigDecimal(staticScore*count); - task0Score = task0Score.divide(totalScore); - task0Score = task0Score.multiply(new BigDecimal(classModel.getTaskScore())); - task0Score = task0Score.setScale(2,RoundingMode.HALF_UP); - map.put("task0Score",task0Score); - userScore = userScore.add(task0Score); - } - if(classModel.getIsMedicalcase()==1){ - BigDecimal task1Score = new BigDecimal(map.get("task1Score").toString()); - MPJLambdaWrapper wrapper = new MPJLambdaWrapper(); - wrapper.eq(ClassTask::getClassId,classEntity.getId()); - wrapper.eq(ClassTask::getType,"1"); - int count = classTaskDao.selectCount(wrapper); - BigDecimal totalScore = new BigDecimal(staticScore*count); - task1Score = task1Score.divide(totalScore); - task1Score = task1Score.multiply(new BigDecimal(classModel.getMedicalcaseScore())); - task1Score = task1Score.setScale(2,RoundingMode.HALF_UP); - map.put("task1Score",task1Score); - userScore = userScore.add(task1Score); - } - if(classModel.getIsExperience()==1){ - BigDecimal experienceScore = new BigDecimal(map.get("experienceScore").toString()); - if (experienceScore.compareTo(new BigDecimal(classModel.getExperienceScore()))>-1){ - experienceScore = new BigDecimal(classModel.getExperienceScore()); - } - map.put("experienceScore",experienceScore); - userScore = userScore.add(experienceScore); - } - map.put("userScore",userScore); resultList.add(map); } Collections.sort(resultList, new Comparator>() { From 6bdc0a0d429bd2499b61c791738e8da4ed81cb26 Mon Sep 17 00:00:00 2001 From: wuchunlei Date: Tue, 10 Sep 2024 09:08:35 +0800 Subject: [PATCH 3/8] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=B9=B3=E6=97=B6?= =?UTF-8?q?=E6=88=90=E7=BB=A9=E6=80=BB=E5=92=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/service/impl/ClassEntityServiceImpl.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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 6ec77d7b..9000708c 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 @@ -1111,7 +1111,8 @@ public class ClassEntityServiceImpl extends ServiceImpl Date: Tue, 10 Sep 2024 10:22:18 +0800 Subject: [PATCH 4/8] =?UTF-8?q?=E5=90=8C=E4=B8=80=E5=B0=8F=E7=8F=AD?= =?UTF-8?q?=E6=9C=AA=E5=BC=80=E7=8F=AD=E5=B0=8F=E7=8F=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../peanut/modules/common/controller/ClassController.java | 6 ++++++ .../peanut/modules/common/service/ClassEntityService.java | 2 ++ .../common/service/impl/ClassEntityServiceImpl.java | 8 ++++++++ 3 files changed, 16 insertions(+) diff --git a/src/main/java/com/peanut/modules/common/controller/ClassController.java b/src/main/java/com/peanut/modules/common/controller/ClassController.java index 4ebc9cc3..be9f3ea2 100644 --- a/src/main/java/com/peanut/modules/common/controller/ClassController.java +++ b/src/main/java/com/peanut/modules/common/controller/ClassController.java @@ -179,6 +179,12 @@ public class ClassController { return R.ok().put("result",classEntityService.getClassInfo(params)); } + //同一小班未开班小班 + @RequestMapping("/getNoOpenClassSameClass") + public R getNoOpenClassSameClass(@RequestBody Map params){ + return R.ok().put("result",classEntityService.getNoOpenClassSameClass(params)); + } + //查询未加入小班 @RequestMapping("/getClassNoUser") public R getClassNoUser(){ diff --git a/src/main/java/com/peanut/modules/common/service/ClassEntityService.java b/src/main/java/com/peanut/modules/common/service/ClassEntityService.java index 84a37ccc..44f41baf 100644 --- a/src/main/java/com/peanut/modules/common/service/ClassEntityService.java +++ b/src/main/java/com/peanut/modules/common/service/ClassEntityService.java @@ -41,6 +41,8 @@ public interface ClassEntityService extends IService { List getClassNoUser(); + ClassEntity getNoOpenClassSameClass(Map params); + List getClassByCourseIdNoUser(Map params); ClassEntity getClassByUser(Map params); 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 9000708c..4d756168 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 @@ -590,6 +590,14 @@ public class ClassEntityServiceImpl extends ServiceImpl params) { + ClassEntity classEntity = this.baseMapper.selectOne(new LambdaQueryWrapper() + .eq(ClassEntity::getModelId,params.get("modelId")) + .eq(ClassEntity::getState,"0")); + return classEntity; + } + @Override public List getClassByCourseIdNoUser(Map params) { MPJLambdaWrapper wrapper = new MPJLambdaWrapper<>(); From 471fdcace665b1305eec4df491ffa8e190c46014 Mon Sep 17 00:00:00 2001 From: wuchunlei Date: Tue, 10 Sep 2024 15:13:11 +0800 Subject: [PATCH 5/8] =?UTF-8?q?=E5=BC=80=E7=8F=AD=E6=97=B6=E5=8F=96?= =?UTF-8?q?=E6=B6=88=E7=BB=93=E6=9D=9F=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/common/service/impl/ClassEntityServiceImpl.java | 2 -- 1 file changed, 2 deletions(-) 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 4d756168..5a7ad8ed 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 @@ -302,11 +302,9 @@ public class ClassEntityServiceImpl extends ServiceImpl Date: Tue, 10 Sep 2024 15:47:00 +0800 Subject: [PATCH 6/8] =?UTF-8?q?=E5=AF=BC=E5=85=A5=E8=80=83=E9=A2=98?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=88=97=E5=90=8D=E6=88=AA=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../peanut/modules/common/controller/ClassExamController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 b2e03539..08bb0e3b 100644 --- a/src/main/java/com/peanut/modules/common/controller/ClassExamController.java +++ b/src/main/java/com/peanut/modules/common/controller/ClassExamController.java @@ -50,7 +50,7 @@ public class ClassExamController { while (it.hasNext()) { Map.Entry entry = it.next(); String pos = entry.getKey(); - String rowNo = pos.substring(1); + String rowNo = pos.replaceAll("[a-zA-Z]", ""); count = Integer.parseInt(rowNo); // System.out.println(pos + ";" + entry.getValue()); } From 4b8624a3c2e1f348dff7ed2e8b15562aed1393d3 Mon Sep 17 00:00:00 2001 From: wuchunlei Date: Wed, 11 Sep 2024 09:33:49 +0800 Subject: [PATCH 7/8] =?UTF-8?q?=E5=B9=B3=E6=97=B6=E6=88=90=E7=BB=A9?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ClassEntityServiceImpl.java | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) 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 5a7ad8ed..cf4e39fb 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 @@ -1028,11 +1028,7 @@ public class ClassEntityServiceImpl extends ServiceImpl questionReplys = classTaskAndQuesReplyDao.selectList(questionWrapper); if (questionReplys.size() > 0) { @@ -1051,7 +1047,7 @@ public class ClassEntityServiceImpl extends ServiceImpl task0Replys = classTaskAndQuesReplyDao.selectList(task0wrapper); if (task0Replys.size() > 0) { for (ClassTaskAndQuesReply reply : task0Replys) { @@ -1069,7 +1065,7 @@ public class ClassEntityServiceImpl extends ServiceImpl task1Replys = classTaskAndQuesReplyDao.selectList(task1wrapper); if (task1Replys.size() > 0) { for (ClassTaskAndQuesReply reply : task1Replys) { @@ -1083,7 +1079,7 @@ public class ClassEntityServiceImpl extends ServiceImpl experiencewrapper = new MPJLambdaWrapper<>(); - experiencewrapper.eq(ClassTask::getUserId,ShiroUtils.getUId()); + experiencewrapper.eq(ClassTask::getUserId,params.get("userId")); experiencewrapper.eq(ClassTask::getClassId,classEntity.getId()); experiencewrapper.eq(ClassTask::getType,"2"); List experiences = classTaskDao.selectList(experiencewrapper); @@ -1206,11 +1202,7 @@ public class ClassEntityServiceImpl extends ServiceImpl>() { @Override public int compare(Map m1, Map m2) { - if((double)(m2.get("userScore")) > (double)(m1.get("userScore"))){ - return 1; - }else { - return -1; - } + return ((BigDecimal)m2.get("userScore")).compareTo((BigDecimal)m1.get("userScore")); } }); } From 2fe910d69029c5d6d9280aefd809ae9360ee0a7d Mon Sep 17 00:00:00 2001 From: wuchunlei Date: Wed, 11 Sep 2024 09:50:00 +0800 Subject: [PATCH 8/8] =?UTF-8?q?=E8=80=83=E8=AF=95=E9=A2=98=E7=9B=AE?= =?UTF-8?q?=E6=95=B0=E9=87=8F=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/service/impl/ClassExamServiceImpl.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/peanut/modules/common/service/impl/ClassExamServiceImpl.java b/src/main/java/com/peanut/modules/common/service/impl/ClassExamServiceImpl.java index 99965924..898b5cb8 100644 --- a/src/main/java/com/peanut/modules/common/service/impl/ClassExamServiceImpl.java +++ b/src/main/java/com/peanut/modules/common/service/impl/ClassExamServiceImpl.java @@ -157,10 +157,10 @@ public class ClassExamServiceImpl extends ServiceImpl i List> sList = new ArrayList<>(); List> mList = new ArrayList<>(); if (courseList.size() > 0) { -// int stotal = 60;//单选题总数 -// int mtotal = 40;//多选题总数 - int stotal = 5;//单选题总数 - int mtotal = 5;//多选题总数 + int stotal = 60;//单选题总数 + int mtotal = 40;//多选题总数 +// int stotal = 5;//单选题总数 +// int mtotal = 5;//多选题总数 int snum = (int)Math.floor(stotal/courseList.size()); int mnum = (int)Math.floor(mtotal/courseList.size()); for (ClassCourse classCourse:courseList){ @@ -229,7 +229,7 @@ public class ClassExamServiceImpl extends ServiceImpl i DelayQueueConfig.COMMON_EXCHANGE, DelayQueueConfig.COMMON_ROUTING_KEY, "examSubmit"+","+classExamUser.getId(), - messagePostProcessor(60*60*1000+10000)//10秒延迟 + messagePostProcessor(2*60*60*1000+3000)//3秒延迟 ); return R.ok().put("examPaper",resultList).put("id",classExamUser.getId()).put("startTime",classExamUser.getStartTime());