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);
}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();
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<ExamRecordEntity.QuestionSnapshot> 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);

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

4
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

4
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);
}

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

Loading…
Cancel
Save