From 1a31140e7cd37cdab10f82c9608ac3689aba34f2 Mon Sep 17 00:00:00 2001 From: luoweijian <1329394916@qq.com> Date: Tue, 3 Mar 2026 16:30:47 +0800 Subject: [PATCH] bug --- .../appeal/domain/enums/AppealStatusEnum.java | 9 +++++++++ .../exam/domain/dto/ExamRecordDTO.java | 5 +++++ .../BuildExamRecordDomainServiceImpl.java | 19 ++++++++++++++++++- 3 files changed, 32 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/project/appeal/domain/enums/AppealStatusEnum.java b/src/main/java/com/project/appeal/domain/enums/AppealStatusEnum.java index a2dc85f..41b144d 100644 --- a/src/main/java/com/project/appeal/domain/enums/AppealStatusEnum.java +++ b/src/main/java/com/project/appeal/domain/enums/AppealStatusEnum.java @@ -13,4 +13,13 @@ public enum AppealStatusEnum implements HasValueEnum { private final Integer value; private final String desc; + + public static String getDescByValue(Integer value) { + for (AppealStatusEnum appealStatusEnum : AppealStatusEnum.values()) { + if (appealStatusEnum.getValue().equals(value)) { + return appealStatusEnum.desc; + } + } + return ""; + } } diff --git a/src/main/java/com/project/exam/domain/dto/ExamRecordDTO.java b/src/main/java/com/project/exam/domain/dto/ExamRecordDTO.java index a6060de..4af9dab 100644 --- a/src/main/java/com/project/exam/domain/dto/ExamRecordDTO.java +++ b/src/main/java/com/project/exam/domain/dto/ExamRecordDTO.java @@ -67,6 +67,11 @@ public class ExamRecordDTO extends BaseDTO { private String analysis; // 该题是否已发起申诉 private Boolean hasAppealed; + // 审批状态 + private Integer appealStatus; + private String appealStatusText; + // 审批理由 + private String appealReason; // 该题分值 private Double score; // 用户得分 diff --git a/src/main/java/com/project/exam/domain/service/impl/BuildExamRecordDomainServiceImpl.java b/src/main/java/com/project/exam/domain/service/impl/BuildExamRecordDomainServiceImpl.java index f9cf35a..8211516 100644 --- a/src/main/java/com/project/exam/domain/service/impl/BuildExamRecordDomainServiceImpl.java +++ b/src/main/java/com/project/exam/domain/service/impl/BuildExamRecordDomainServiceImpl.java @@ -2,6 +2,10 @@ package com.project.exam.domain.service.impl; import cn.hutool.core.util.BooleanUtil; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.project.appeal.domain.entity.AppealEntity; +import com.project.appeal.domain.enums.AppealStatusEnum; +import com.project.appeal.domain.service.AppealBaseService; import com.project.base.domain.utils.ServletUtils; import com.project.ding.domain.enums.UserRoleEnum; import com.project.ding.utils.SecurityUtils; @@ -9,6 +13,7 @@ import com.project.exam.domain.dto.ExamRecordDTO; import com.project.exam.domain.service.BuildExamRecordDomainService; import com.project.task.domain.enums.QuestionTypeEnum; import io.vavr.control.Try; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Objects; @@ -21,7 +26,8 @@ public class BuildExamRecordDomainServiceImpl implements BuildExamRecordDomainSe private final static String X_DEBUG_MODE_HEADER = "X-Debug-Mode"; - + @Autowired + private AppealBaseService appealBaseService; private final static String X_DEBUG_MODE_VALUE = "true"; @Override @@ -63,6 +69,17 @@ public class BuildExamRecordDomainServiceImpl implements BuildExamRecordDomainSe if (Objects.isNull(answerSnapshotDTO.getHasAppealed())) { answerSnapshotDTO.setHasAppealed(Boolean.FALSE); } + if (BooleanUtil.isTrue(answerSnapshotDTO.getHasAppealed())) { + LambdaQueryWrapper entityQueryWrapper = new LambdaQueryWrapper<>(); + entityQueryWrapper.eq(AppealEntity::getQuestionId, answerSnapshotDTO.getQuestionId()); + entityQueryWrapper.eq(AppealEntity::getExamId, dto.getId()); + AppealEntity appeal = appealBaseService.getOne(entityQueryWrapper); + if (Objects.nonNull(appeal)) { + answerSnapshotDTO.setAppealStatus(appeal.getStatus()); + answerSnapshotDTO.setAppealStatusText(AppealStatusEnum.getDescByValue(appeal.getStatus())); + answerSnapshotDTO.setAppealReason(appeal.getReason()); + } + } }); return dto; }