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()