Browse Source

审批通过,统计错题数量减一

master
luogw 2 months ago
parent
commit
e57f67bb2f
  1. 13
      src/main/java/com/project/appeal/domain/service/Impl/SaveAppealDomainServiceImpl.java
  2. 2
      src/main/java/com/project/statistics/application/StatisticsApplicationService.java
  3. 4
      src/main/java/com/project/statistics/application/impl/StatisticsApplicationServiceImpl.java
  4. 4
      src/main/java/com/project/statistics/domain/service/SaveErrorProneStatisticsDomainService.java
  5. 12
      src/main/java/com/project/statistics/domain/service/impl/SaveSaveErrorProneStatisticsDomainServiceImpl.java

13
src/main/java/com/project/appeal/domain/service/Impl/SaveAppealDomainServiceImpl.java

@ -104,16 +104,14 @@ public class SaveAppealDomainServiceImpl implements SaveAppealDomainService {
return Result.success(appealDTO); return Result.success(appealDTO);
}else if(appealDTO.getStatus().equals(AppealStatusEnum.PASS_REVIEW.getValue()) && !Boolean.TRUE.equals(questionSnapshotDTO.getIsRight())){ }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<ExamRecordEntity.QuestionSnapshot> snapshots = examRecord.getAnswerSnapshot(); List<ExamRecordEntity.QuestionSnapshot> snapshots = examRecord.getAnswerSnapshot();
ExamRecordEntity.QuestionSnapshot updatedSnapshot = snapshots.get(index); ExamRecordEntity.QuestionSnapshot updatedSnapshot = snapshots.get(index);
if (Boolean.TRUE.equals(updatedSnapshot.getIsRight())) { if (Boolean.TRUE.equals(updatedSnapshot.getIsRight())) {
TaskEntity taskEntity = taskMapper.getTaskByTaskUserId(examRecord.getTaskUserId()); statisticsApplicationService.decreaseErrorCountAfterAppeal(taskEntity.getId(), appealDTO.getQuestionId());
statisticsApplicationService.decreaseErrorCountAfterAppeal(
taskEntity.getId(), appealDTO.getQuestionId(),
updatedSnapshot.getType(), appealDTO.getRevisedScore());
} }
} }
//通知用户 //通知用户
@ -125,12 +123,11 @@ public class SaveAppealDomainServiceImpl implements SaveAppealDomainService {
/** /**
* 计算分数审批通过需要加分 * 计算分数审批通过需要加分
*/ */
public void calculateScore(AppealDTO appealDTO, ExamRecordEntity examRecord, int index, int type) { public void calculateScore(AppealDTO appealDTO, ExamRecordEntity examRecord, int index, TaskEntity taskEntity) {
TaskEntity taskEntity = taskMapper.getTaskByTaskUserId(examRecord.getTaskUserId());
List<ExamRecordEntity.QuestionSnapshot> snapshots = examRecord.getAnswerSnapshot(); List<ExamRecordEntity.QuestionSnapshot> snapshots = examRecord.getAnswerSnapshot();
ExamRecordEntity.QuestionSnapshot snapshot = snapshots.get(index); ExamRecordEntity.QuestionSnapshot snapshot = snapshots.get(index);
int type = snapshot.getType();
QuestionTypeEnum questionType = QuestionTypeEnum.findByValue(type); QuestionTypeEnum questionType = QuestionTypeEnum.findByValue(type);
if (questionType == null) { if (questionType == null) {
throw new BusinessErrorException("不支持的题目类型:" + type); throw new BusinessErrorException("不支持的题目类型:" + type);

2
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<List<ErrorProneStatisticsDTO>> searchErrorProneTop(Long taskId); Result<List<ErrorProneStatisticsDTO>> searchErrorProneTop(Long taskId);

4
src/main/java/com/project/statistics/application/impl/StatisticsApplicationServiceImpl.java

@ -59,8 +59,8 @@ public class StatisticsApplicationServiceImpl implements StatisticsApplicationSe
} }
@Override @Override
public void decreaseErrorCountAfterAppeal(Long taskId, Long questionId, Integer questionType, Double revisedScore) { public void decreaseErrorCountAfterAppeal(Long taskId, Long questionId) {
saveErrorProneStatisticsDomainService.decreaseErrorCountAfterAppeal(taskId, questionId, questionType, revisedScore); saveErrorProneStatisticsDomainService.decreaseErrorCountAfterAppeal(taskId, questionId);
} }
@Override @Override

4
src/main/java/com/project/statistics/domain/service/SaveErrorProneStatisticsDomainService.java

@ -28,8 +28,6 @@ public interface SaveErrorProneStatisticsDomainService {
* *
* @param taskId 考试任务ID * @param taskId 考试任务ID
* @param questionId 题目ID * @param questionId 题目ID
* @param questionType 题目类型用于判断是否为简答题
* @param revisedScore 审批修改后的分数简答题判断是否得满分用
*/ */
void decreaseErrorCountAfterAppeal(Long taskId, Long questionId, Integer questionType, Double revisedScore); void decreaseErrorCountAfterAppeal(Long taskId, Long questionId);
} }

12
src/main/java/com/project/statistics/domain/service/impl/SaveSaveErrorProneStatisticsDomainServiceImpl.java

@ -354,7 +354,7 @@ public class SaveSaveErrorProneStatisticsDomainServiceImpl implements SaveErrorP
// ==================== 审批通过减少错题数 ==================== // ==================== 审批通过减少错题数 ====================
@Override @Override
public void decreaseErrorCountAfterAppeal(Long taskId, Long questionId, Integer questionType, Double revisedScore) { public void decreaseErrorCountAfterAppeal(Long taskId, Long questionId) {
TaskEntity task = taskBaseService.getById(taskId); TaskEntity task = taskBaseService.getById(taskId);
if (task == null) return; if (task == null) return;
@ -375,7 +375,10 @@ public class SaveSaveErrorProneStatisticsDomainServiceImpl implements SaveErrorP
for (Long kpId : question.getKpIdList()) { for (Long kpId : question.getKpIdList()) {
String lockKey = LOCK_PREFIX + "gen:" + taskId + ":" + kpId; String lockKey = LOCK_PREFIX + "gen:" + taskId + ":" + kpId;
boolean locked = tryLock(lockKey); boolean locked = tryLock(lockKey);
if (!locked) continue; if (!locked) {
log.warn("[易错统计-减一] 获取锁失败, lockKey={}, 题目ID={}", lockKey, questionId);
continue;
}
try { try {
ErrorProneStatisticsEntity entity = errorProneStatisticsBaseService.lambdaQuery() ErrorProneStatisticsEntity entity = errorProneStatisticsBaseService.lambdaQuery()
@ -398,7 +401,10 @@ public class SaveSaveErrorProneStatisticsDomainServiceImpl implements SaveErrorP
private void decreaseClassicErrorCount(Long taskId, Long questionId) { private void decreaseClassicErrorCount(Long taskId, Long questionId) {
String lockKey = LOCK_PREFIX + "classic:" + taskId + ":" + questionId; String lockKey = LOCK_PREFIX + "classic:" + taskId + ":" + questionId;
boolean locked = tryLock(lockKey); boolean locked = tryLock(lockKey);
if (!locked) return; if (!locked) {
log.warn("[易错统计-减一] 获取锁失败, lockKey={}, 题目ID={}", lockKey, questionId);
return;
}
try { try {
ErrorProneStatisticsEntity entity = errorProneStatisticsBaseService.lambdaQuery() ErrorProneStatisticsEntity entity = errorProneStatisticsBaseService.lambdaQuery()

Loading…
Cancel
Save