From b822489111c49927ca959e28e6ea84439ab6cc3d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=BE=B7=E6=AD=A6=20=E9=BB=84?= <865114447@qq.com>
Date: Wed, 1 Jul 2026 09:20:07 +0800
Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4AnswerStatus=E5=AD=97?=
=?UTF-8?q?=E6=AE=B5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Entity/JournalPageTaskUserAnswer.cs | 7 ----
.../JournalPageTaskUserAnswerSnapshot.cs | 7 +---
.../Enum/AnswerStatusEnum.cs | 28 -------------
.../UserAnswerTaskService.cs | 41 ++++++++-----------
.../Consumers/JournalTaskReceiveConsumer.cs | 6 +--
5 files changed, 19 insertions(+), 70 deletions(-)
delete mode 100644 QYZH.InteractiveMagazine.Models/Enum/AnswerStatusEnum.cs
diff --git a/QYZH.InteractiveMagazine.Models/Entity/JournalPageTaskUserAnswer.cs b/QYZH.InteractiveMagazine.Models/Entity/JournalPageTaskUserAnswer.cs
index 9d22c65..3c5fc6f 100644
--- a/QYZH.InteractiveMagazine.Models/Entity/JournalPageTaskUserAnswer.cs
+++ b/QYZH.InteractiveMagazine.Models/Entity/JournalPageTaskUserAnswer.cs
@@ -128,13 +128,6 @@ namespace QYZH.InteractiveMagazine.Models.Entity
///
public int Revision { get; set; }
- ///
- /// Desc:作答状态
- /// Default:
- /// Nullable:False
- ///
- public AnswerStatusEnum AnswerStatus { get; set; }
-
///
/// Desc:作答开始时间
/// Default:
diff --git a/QYZH.InteractiveMagazine.Models/Entity/JournalPageTaskUserAnswerSnapshot.cs b/QYZH.InteractiveMagazine.Models/Entity/JournalPageTaskUserAnswerSnapshot.cs
index 6bf3ef3..1d0ee51 100644
--- a/QYZH.InteractiveMagazine.Models/Entity/JournalPageTaskUserAnswerSnapshot.cs
+++ b/QYZH.InteractiveMagazine.Models/Entity/JournalPageTaskUserAnswerSnapshot.cs
@@ -96,12 +96,7 @@ namespace QYZH.InteractiveMagazine.Models.Entity
///
/// Optimistic concurrency revision.
///
- public int Revision { get; set; }
-
- ///
- /// Answer status.
- ///
- public int AnswerStatus { get; set; }
+ public int Revision { get; set; }
///
/// Answer start time.
diff --git a/QYZH.InteractiveMagazine.Models/Enum/AnswerStatusEnum.cs b/QYZH.InteractiveMagazine.Models/Enum/AnswerStatusEnum.cs
deleted file mode 100644
index be5937c..0000000
--- a/QYZH.InteractiveMagazine.Models/Enum/AnswerStatusEnum.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-using System.ComponentModel;
-
-namespace QYZH.InteractiveMagazine.Models.Enum
-{
- ///
- /// 答题状态枚举: 10-已答题,20-进行中,30-已完成
- ///
- public enum AnswerStatusEnum
- {
- ///
- /// 已答题
- ///
- [Description("已答题")]
- Answer = 10,
-
- ///
- /// 进行中
- ///
- [Description("进行中")]
- Processing = 20,
-
- ///
- /// 已完成
- ///
- [Description("已完成")]
- Complete = 30,
- }
-}
diff --git a/QYZH.InteractiveMagazine.Service/UserAnswerTaskService.cs b/QYZH.InteractiveMagazine.Service/UserAnswerTaskService.cs
index 094c69a..7b31a88 100644
--- a/QYZH.InteractiveMagazine.Service/UserAnswerTaskService.cs
+++ b/QYZH.InteractiveMagazine.Service/UserAnswerTaskService.cs
@@ -132,11 +132,9 @@ public class UserAnswerTaskService(
// 用户已完成的任务ID集合
// 【已完成判断逻辑】
- // Status: 0=未批阅,1=已批阅
- // AnswerStatus: 0=未答题,1=已答题,2=正确,3=半对,4=错误
- // 必须同时满足: AnswerStatus >= 1(Correct/HalfRight/Error),作业才算完成,看情况再加Status == 1(已批阅)
+ // Status: 0=未批阅,1=已批阅
var userCompletedTaskIds = userAnswers
- .Where(a => a.AnswerStatus >= AnswerStatusEnum.Answer)
+ .Where(a => a.Status == (int)UserAnswerStatusEnum.Complete)
.Select(a => a.JournalPageTaskId)
.ToHashSet();
@@ -179,11 +177,9 @@ public class UserAnswerTaskService(
// ============================================
// 该期刊下用户已完成的作答记录
// 【已完成判断逻辑】
- // Status: 0=未批阅,1=已批阅
- // AnswerStatus: 0=未答题,1=已答题,2=正确,3=半对,4=错误
- // 必须同时满足: AnswerStatus >= 1(Correct/HalfRight/Error),作业才算完成,看情况再加:Status == 1(已批阅)且
+ // Status: 0=未批阅,1=已批阅
var completedAnswers = userAnswers
- .Where(a => a.JournalId == journal.Id && a.AnswerStatus >= AnswerStatusEnum.Answer)
+ .Where(a => a.JournalId == journal.Id && a.Status == (int)UserAnswerStatusEnum.Complete)
.ToList();
// 按 JournalPageTaskGroupId 去重,获取已完成的主任务 ID 列表
@@ -348,11 +344,9 @@ public class UserAnswerTaskService(
var userAnsweredTaskIds = userAnswers.Select(a => a.JournalPageTaskId).ToHashSet();
// 用户已完成的任务ID集合
- // 【已完成判断逻辑】
- // AnswerStatus: 0=未答题,1=已答题,2=正确,3=半对,4=错误
- // 只要 AnswerStatus >= 1(已答题)说明作业已完成
+ // 【已完成判断逻辑】
var userCompletedTaskIds = userAnswers
- .Where(a => a.AnswerStatus >= AnswerStatusEnum.Answer)
+ .Where(a => a.Status == (int)UserAnswerStatusEnum.Complete)
.Select(a => a.JournalPageTaskId)
.ToHashSet();
#endregion
@@ -420,7 +414,7 @@ public class UserAnswerTaskService(
var totalPageCount = pagesWithTasks.Count;
// 已完成页面数:该页面有答题记录且 AnswerStatus >= 1
var completedPageCount = pagesWithTasks
- .Count(pageId => userAnswers.Any(a => a.JournalPageId == pageId && a.AnswerStatus >= AnswerStatusEnum.Answer));
+ .Count(pageId => userAnswers.Any(a => a.JournalPageId == pageId && a.Status == (int)UserAnswerStatusEnum.Complete));
// 已作答页面数:该页面有答题记录即可
var answeredPageCount = pagesWithTasks
.Count(pageId => userAnswers.Any(a => a.JournalPageId == pageId));
@@ -561,7 +555,7 @@ public class UserAnswerTaskService(
// AnswerStatus: 0=未答题,1=已答题,2=正确,3=半对,4=错误
// 只要 AnswerStatus >= 1(已答题)说明作业已完成
var userCompletedTaskIds = userAnswers
- .Where(a => a.AnswerStatus >= AnswerStatusEnum.Answer)
+ .Where(a => a.Status == (int)UserAnswerStatusEnum.Complete)
.Select(a => a.JournalPageTaskId)
.ToHashSet();
#endregion
@@ -1134,11 +1128,8 @@ public class UserAnswerTaskService(
if (!existingRecord)
{
// 未领取过积分,检查任务是否完成
- // 条件:Status=1 且 AnswerStatus>=1
- canClaimPoints = relatedTasks.All(t =>
- userAnswers.Any(a => a.JournalPageTaskId == t.Id
- && a.Status == (int)UserAnswerStatusEnum.Complete
- && a.AnswerStatus >= AnswerStatusEnum.Answer));
+ // 条件:Status=1
+ canClaimPoints = relatedTasks.All(t => userAnswers.Any(a => a.JournalPageTaskId == t.Id && a.Status == (int)UserAnswerStatusEnum.Complete));
}
}
@@ -1245,11 +1236,11 @@ public class UserAnswerTaskService(
// ============================================
// 2. 完成校验
// 主任务校验 + 跨页题目所有任务校验
- // 完成条件:Status=1 且 AnswerStatus>=1
+ // 完成条件:Status=1
// ============================================
// 校验主任务
var mainTaskAnswer = userAnswers.FirstOrDefault(a => a.JournalPageTaskId == groupId);
- if (mainTaskAnswer == null || mainTaskAnswer.Status != (int)UserAnswerStatusEnum.Complete || mainTaskAnswer.AnswerStatus < AnswerStatusEnum.Answer)
+ if (mainTaskAnswer == null || mainTaskAnswer.Status != (int)UserAnswerStatusEnum.Complete)
{
throw new BusinessException("请先完成答题再领取积分", ResultCode.BAD_REQUEST);
}
@@ -1260,7 +1251,7 @@ public class UserAnswerTaskService(
foreach (var task in relatedTasks)
{
var answer = userAnswers.FirstOrDefault(a => a.JournalPageTaskId == task.Id);
- if (answer == null || answer.Status != (int)UserAnswerStatusEnum.Complete || answer.AnswerStatus < AnswerStatusEnum.Answer)
+ if (answer == null || answer.Status != (int)UserAnswerStatusEnum.Complete)
{
throw new BusinessException("跨页题目需要完成所有任务才能领取积分", ResultCode.BAD_REQUEST);
}
@@ -1476,9 +1467,9 @@ public class UserAnswerTaskService(
#endregion
#region 3.4 完成校验
- // 校验主任务完成状态:Status=1 且 AnswerStatus>=1
+ // 校验主任务完成状态:Status=1
var mainTaskAnswer = userAnswers.FirstOrDefault(a => a.JournalPageTaskId == groupId);
- if (mainTaskAnswer == null || mainTaskAnswer.Status != (int)UserAnswerStatusEnum.Complete || mainTaskAnswer.AnswerStatus < AnswerStatusEnum.Answer)
+ if (mainTaskAnswer == null || mainTaskAnswer.Status != (int)UserAnswerStatusEnum.Complete)
{
result.FailItems.Add(new BatchClaimFailItem
{
@@ -1495,7 +1486,7 @@ public class UserAnswerTaskService(
foreach (var task in relatedTasks)
{
var answer = userAnswers.FirstOrDefault(a => a.JournalPageTaskId == task.Id);
- if (answer == null || answer.Status != (int)UserAnswerStatusEnum.Complete || answer.AnswerStatus < AnswerStatusEnum.Answer)
+ if (answer == null || answer.Status != (int)UserAnswerStatusEnum.Complete)
{
allCompleted = false;
break;
diff --git a/QYZH.InteractiveMagazine.WorkService/Consumers/JournalTaskReceiveConsumer.cs b/QYZH.InteractiveMagazine.WorkService/Consumers/JournalTaskReceiveConsumer.cs
index fdf8660..b39a879 100644
--- a/QYZH.InteractiveMagazine.WorkService/Consumers/JournalTaskReceiveConsumer.cs
+++ b/QYZH.InteractiveMagazine.WorkService/Consumers/JournalTaskReceiveConsumer.cs
@@ -590,8 +590,7 @@ public class JournalTaskReceiveConsumer(
QuestionAnswerUrl = question.Url,
AnswerUrl = JsonSerializer.Serialize(question.AnswerUrl ?? []),
PageAnswerUrl = data.PageAnswerUrl,
- Revision = 0,
- AnswerStatus = AnswerStatusEnum.Answer,
+ Revision = 0,
AnswerStartTime = question.AnswerStartTime,
AnswerEndTime = question.AnswerEndTime,
AnswerSeconds = question.AnswerTime,
@@ -637,8 +636,7 @@ public class JournalTaskReceiveConsumer(
QuestionAnswerUrl = answer.QuestionAnswerUrl,
AnswerUrl = answer.AnswerUrl,
PageAnswerUrl = answer.PageAnswerUrl,
- Revision = answer.Revision,
- AnswerStatus = (int)answer.AnswerStatus,
+ Revision = answer.Revision,
AnswerStartTime = answer.AnswerStartTime,
AnswerEndTime = answer.AnswerEndTime,
AnswerSeconds = answer.AnswerSeconds,