From e57f67bb2f26967266bded5cd74d38a9353693f8 Mon Sep 17 00:00:00 2001 From: luogw <3132758203@qq.com> Date: Tue, 7 Jul 2026 15:01:35 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=A1=E6=89=B9=E9=80=9A=E8=BF=87=EF=BC=8C?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E9=94=99=E9=A2=98=E6=95=B0=E9=87=8F=E5=87=8F?= =?UTF-8?q?=E4=B8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/Impl/SaveAppealDomainServiceImpl.java | 13 +++++-------- .../application/StatisticsApplicationService.java | 2 +- .../impl/StatisticsApplicationServiceImpl.java | 4 ++-- .../SaveErrorProneStatisticsDomainService.java | 4 +--- ...veSaveErrorProneStatisticsDomainServiceImpl.java | 12 +++++++++--- 5 files changed, 18 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/project/appeal/domain/service/Impl/SaveAppealDomainServiceImpl.java b/src/main/java/com/project/appeal/domain/service/Impl/SaveAppealDomainServiceImpl.java index 2780842..f71f619 100644 --- a/src/main/java/com/project/appeal/domain/service/Impl/SaveAppealDomainServiceImpl.java +++ b/src/main/java/com/project/appeal/domain/service/Impl/SaveAppealDomainServiceImpl.java @@ -104,16 +104,14 @@ public class SaveAppealDomainServiceImpl implements SaveAppealDomainService { return Result.success(appealDTO); }else if(appealDTO.getStatus().equals(AppealStatusEnum.PASS_REVIEW.getValue()) && !Boolean.TRUE.equals(questionSnapshotDTO.getIsRight())){ //审批通过需要加分 - calculateScore(appealDTO, examRecord, index, questionSnapshotDTO.getType()); + TaskEntity taskEntity = taskMapper.getTaskByTaskUserId(examRecord.getTaskUserId()); + calculateScore(appealDTO, examRecord, index, taskEntity); //加分后试题变正确,减少错题数 List snapshots = examRecord.getAnswerSnapshot(); ExamRecordEntity.QuestionSnapshot updatedSnapshot = snapshots.get(index); if (Boolean.TRUE.equals(updatedSnapshot.getIsRight())) { - TaskEntity taskEntity = taskMapper.getTaskByTaskUserId(examRecord.getTaskUserId()); - statisticsApplicationService.decreaseErrorCountAfterAppeal( - taskEntity.getId(), appealDTO.getQuestionId(), - updatedSnapshot.getType(), appealDTO.getRevisedScore()); + statisticsApplicationService.decreaseErrorCountAfterAppeal(taskEntity.getId(), appealDTO.getQuestionId()); } } //通知用户 @@ -125,12 +123,11 @@ public class SaveAppealDomainServiceImpl implements SaveAppealDomainService { /** * 计算分数(审批通过需要加分) */ - public void calculateScore(AppealDTO appealDTO, ExamRecordEntity examRecord, int index, int type) { - TaskEntity taskEntity = taskMapper.getTaskByTaskUserId(examRecord.getTaskUserId()); - + public void calculateScore(AppealDTO appealDTO, ExamRecordEntity examRecord, int index, TaskEntity taskEntity) { List snapshots = examRecord.getAnswerSnapshot(); ExamRecordEntity.QuestionSnapshot snapshot = snapshots.get(index); + int type = snapshot.getType(); QuestionTypeEnum questionType = QuestionTypeEnum.findByValue(type); if (questionType == null) { throw new BusinessErrorException("不支持的题目类型:" + type); diff --git a/src/main/java/com/project/statistics/application/StatisticsApplicationService.java b/src/main/java/com/project/statistics/application/StatisticsApplicationService.java index f942965..7021473 100644 --- a/src/main/java/com/project/statistics/application/StatisticsApplicationService.java +++ b/src/main/java/com/project/statistics/application/StatisticsApplicationService.java @@ -19,7 +19,7 @@ public interface StatisticsApplicationService { /** * 审批通过后减少错题数 */ - void decreaseErrorCountAfterAppeal(Long taskId, Long questionId, Integer questionType, Double revisedScore); + void decreaseErrorCountAfterAppeal(Long taskId, Long questionId); Result> searchErrorProneTop(Long taskId); diff --git a/src/main/java/com/project/statistics/application/impl/StatisticsApplicationServiceImpl.java b/src/main/java/com/project/statistics/application/impl/StatisticsApplicationServiceImpl.java index 7889609..37a4d2c 100644 --- a/src/main/java/com/project/statistics/application/impl/StatisticsApplicationServiceImpl.java +++ b/src/main/java/com/project/statistics/application/impl/StatisticsApplicationServiceImpl.java @@ -59,8 +59,8 @@ public class StatisticsApplicationServiceImpl implements StatisticsApplicationSe } @Override - public void decreaseErrorCountAfterAppeal(Long taskId, Long questionId, Integer questionType, Double revisedScore) { - saveErrorProneStatisticsDomainService.decreaseErrorCountAfterAppeal(taskId, questionId, questionType, revisedScore); + public void decreaseErrorCountAfterAppeal(Long taskId, Long questionId) { + saveErrorProneStatisticsDomainService.decreaseErrorCountAfterAppeal(taskId, questionId); } @Override diff --git a/src/main/java/com/project/statistics/domain/service/SaveErrorProneStatisticsDomainService.java b/src/main/java/com/project/statistics/domain/service/SaveErrorProneStatisticsDomainService.java index f1680b3..82d7562 100644 --- a/src/main/java/com/project/statistics/domain/service/SaveErrorProneStatisticsDomainService.java +++ b/src/main/java/com/project/statistics/domain/service/SaveErrorProneStatisticsDomainService.java @@ -28,8 +28,6 @@ public interface SaveErrorProneStatisticsDomainService { * * @param taskId 考试任务ID * @param questionId 题目ID - * @param questionType 题目类型(用于判断是否为简答题) - * @param revisedScore 审批修改后的分数(简答题判断是否得满分用) */ - void decreaseErrorCountAfterAppeal(Long taskId, Long questionId, Integer questionType, Double revisedScore); + void decreaseErrorCountAfterAppeal(Long taskId, Long questionId); } diff --git a/src/main/java/com/project/statistics/domain/service/impl/SaveSaveErrorProneStatisticsDomainServiceImpl.java b/src/main/java/com/project/statistics/domain/service/impl/SaveSaveErrorProneStatisticsDomainServiceImpl.java index 51e081b..52084fc 100644 --- a/src/main/java/com/project/statistics/domain/service/impl/SaveSaveErrorProneStatisticsDomainServiceImpl.java +++ b/src/main/java/com/project/statistics/domain/service/impl/SaveSaveErrorProneStatisticsDomainServiceImpl.java @@ -354,7 +354,7 @@ public class SaveSaveErrorProneStatisticsDomainServiceImpl implements SaveErrorP // ==================== 审批通过减少错题数 ==================== @Override - public void decreaseErrorCountAfterAppeal(Long taskId, Long questionId, Integer questionType, Double revisedScore) { + public void decreaseErrorCountAfterAppeal(Long taskId, Long questionId) { TaskEntity task = taskBaseService.getById(taskId); if (task == null) return; @@ -375,7 +375,10 @@ public class SaveSaveErrorProneStatisticsDomainServiceImpl implements SaveErrorP for (Long kpId : question.getKpIdList()) { String lockKey = LOCK_PREFIX + "gen:" + taskId + ":" + kpId; boolean locked = tryLock(lockKey); - if (!locked) continue; + if (!locked) { + log.warn("[易错统计-减一] 获取锁失败, lockKey={}, 题目ID={}", lockKey, questionId); + continue; + } try { ErrorProneStatisticsEntity entity = errorProneStatisticsBaseService.lambdaQuery() @@ -398,7 +401,10 @@ public class SaveSaveErrorProneStatisticsDomainServiceImpl implements SaveErrorP private void decreaseClassicErrorCount(Long taskId, Long questionId) { String lockKey = LOCK_PREFIX + "classic:" + taskId + ":" + questionId; boolean locked = tryLock(lockKey); - if (!locked) return; + if (!locked) { + log.warn("[易错统计-减一] 获取锁失败, lockKey={}, 题目ID={}", lockKey, questionId); + return; + } try { ErrorProneStatisticsEntity entity = errorProneStatisticsBaseService.lambdaQuery()