删除AnswerStatus字段

This commit is contained in:
2026-07-01 09:20:07 +08:00
parent 2ca2a4c114
commit b822489111
5 changed files with 19 additions and 70 deletions

View File

@ -128,13 +128,6 @@ namespace QYZH.InteractiveMagazine.Models.Entity
/// </summary> /// </summary>
public int Revision { get; set; } public int Revision { get; set; }
/// <summary>
/// Desc:作答状态
/// Default:
/// Nullable:False
/// </summary>
public AnswerStatusEnum AnswerStatus { get; set; }
/// <summary> /// <summary>
/// Desc:作答开始时间 /// Desc:作答开始时间
/// Default: /// Default:

View File

@ -96,12 +96,7 @@ namespace QYZH.InteractiveMagazine.Models.Entity
/// <summary> /// <summary>
/// Optimistic concurrency revision. /// Optimistic concurrency revision.
/// </summary> /// </summary>
public int Revision { get; set; } public int Revision { get; set; }
/// <summary>
/// Answer status.
/// </summary>
public int AnswerStatus { get; set; }
/// <summary> /// <summary>
/// Answer start time. /// Answer start time.

View File

@ -1,28 +0,0 @@
using System.ComponentModel;
namespace QYZH.InteractiveMagazine.Models.Enum
{
/// <summary>
/// 答题状态枚举: 10-已答题20-进行中30-已完成
/// </summary>
public enum AnswerStatusEnum
{
/// <summary>
/// 已答题
/// </summary>
[Description("已答题")]
Answer = 10,
/// <summary>
/// 进行中
/// </summary>
[Description("进行中")]
Processing = 20,
/// <summary>
/// 已完成
/// </summary>
[Description("已完成")]
Complete = 30,
}
}

View File

@ -132,11 +132,9 @@ public class UserAnswerTaskService(
// 用户已完成的任务ID集合 // 用户已完成的任务ID集合
// 【已完成判断逻辑】 // 【已完成判断逻辑】
// Status: 0=未批阅1=已批阅 // Status: 0=未批阅1=已批阅
// AnswerStatus: 0=未答题1=已答题2=正确3=半对4=错误
// 必须同时满足: AnswerStatus >= 1Correct/HalfRight/Error作业才算完成,看情况再加Status == 1已批阅
var userCompletedTaskIds = userAnswers var userCompletedTaskIds = userAnswers
.Where(a => a.AnswerStatus >= AnswerStatusEnum.Answer) .Where(a => a.Status == (int)UserAnswerStatusEnum.Complete)
.Select(a => a.JournalPageTaskId) .Select(a => a.JournalPageTaskId)
.ToHashSet(); .ToHashSet();
@ -179,11 +177,9 @@ public class UserAnswerTaskService(
// ============================================ // ============================================
// 该期刊下用户已完成的作答记录 // 该期刊下用户已完成的作答记录
// 【已完成判断逻辑】 // 【已完成判断逻辑】
// Status: 0=未批阅1=已批阅 // Status: 0=未批阅1=已批阅
// AnswerStatus: 0=未答题1=已答题2=正确3=半对4=错误
// 必须同时满足: AnswerStatus >= 1Correct/HalfRight/Error作业才算完成看情况再加Status == 1已批阅
var completedAnswers = userAnswers 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(); .ToList();
// 按 JournalPageTaskGroupId 去重,获取已完成的主任务 ID 列表 // 按 JournalPageTaskGroupId 去重,获取已完成的主任务 ID 列表
@ -348,11 +344,9 @@ public class UserAnswerTaskService(
var userAnsweredTaskIds = userAnswers.Select(a => a.JournalPageTaskId).ToHashSet(); var userAnsweredTaskIds = userAnswers.Select(a => a.JournalPageTaskId).ToHashSet();
// 用户已完成的任务ID集合 // 用户已完成的任务ID集合
// 【已完成判断逻辑】 // 【已完成判断逻辑】
// AnswerStatus: 0=未答题1=已答题2=正确3=半对4=错误
// 只要 AnswerStatus >= 1已答题说明作业已完成
var userCompletedTaskIds = userAnswers var userCompletedTaskIds = userAnswers
.Where(a => a.AnswerStatus >= AnswerStatusEnum.Answer) .Where(a => a.Status == (int)UserAnswerStatusEnum.Complete)
.Select(a => a.JournalPageTaskId) .Select(a => a.JournalPageTaskId)
.ToHashSet(); .ToHashSet();
#endregion #endregion
@ -420,7 +414,7 @@ public class UserAnswerTaskService(
var totalPageCount = pagesWithTasks.Count; var totalPageCount = pagesWithTasks.Count;
// 已完成页面数:该页面有答题记录且 AnswerStatus >= 1 // 已完成页面数:该页面有答题记录且 AnswerStatus >= 1
var completedPageCount = pagesWithTasks 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 var answeredPageCount = pagesWithTasks
.Count(pageId => userAnswers.Any(a => a.JournalPageId == pageId)); .Count(pageId => userAnswers.Any(a => a.JournalPageId == pageId));
@ -561,7 +555,7 @@ public class UserAnswerTaskService(
// AnswerStatus: 0=未答题1=已答题2=正确3=半对4=错误 // AnswerStatus: 0=未答题1=已答题2=正确3=半对4=错误
// 只要 AnswerStatus >= 1已答题说明作业已完成 // 只要 AnswerStatus >= 1已答题说明作业已完成
var userCompletedTaskIds = userAnswers var userCompletedTaskIds = userAnswers
.Where(a => a.AnswerStatus >= AnswerStatusEnum.Answer) .Where(a => a.Status == (int)UserAnswerStatusEnum.Complete)
.Select(a => a.JournalPageTaskId) .Select(a => a.JournalPageTaskId)
.ToHashSet(); .ToHashSet();
#endregion #endregion
@ -1134,11 +1128,8 @@ public class UserAnswerTaskService(
if (!existingRecord) if (!existingRecord)
{ {
// 未领取过积分,检查任务是否完成 // 未领取过积分,检查任务是否完成
// 条件Status=1 且 AnswerStatus>=1 // 条件Status=1
canClaimPoints = relatedTasks.All(t => canClaimPoints = relatedTasks.All(t => userAnswers.Any(a => a.JournalPageTaskId == t.Id && a.Status == (int)UserAnswerStatusEnum.Complete));
userAnswers.Any(a => a.JournalPageTaskId == t.Id
&& a.Status == (int)UserAnswerStatusEnum.Complete
&& a.AnswerStatus >= AnswerStatusEnum.Answer));
} }
} }
@ -1245,11 +1236,11 @@ public class UserAnswerTaskService(
// ============================================ // ============================================
// 2. 完成校验 // 2. 完成校验
// 主任务校验 + 跨页题目所有任务校验 // 主任务校验 + 跨页题目所有任务校验
// 完成条件Status=1 且 AnswerStatus>=1 // 完成条件Status=1
// ============================================ // ============================================
// 校验主任务 // 校验主任务
var mainTaskAnswer = userAnswers.FirstOrDefault(a => a.JournalPageTaskId == groupId); 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); throw new BusinessException("请先完成答题再领取积分", ResultCode.BAD_REQUEST);
} }
@ -1260,7 +1251,7 @@ public class UserAnswerTaskService(
foreach (var task in relatedTasks) foreach (var task in relatedTasks)
{ {
var answer = userAnswers.FirstOrDefault(a => a.JournalPageTaskId == task.Id); 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); throw new BusinessException("跨页题目需要完成所有任务才能领取积分", ResultCode.BAD_REQUEST);
} }
@ -1476,9 +1467,9 @@ public class UserAnswerTaskService(
#endregion #endregion
#region 3.4 #region 3.4
// 校验主任务完成状态Status=1 且 AnswerStatus>=1 // 校验主任务完成状态Status=1
var mainTaskAnswer = userAnswers.FirstOrDefault(a => a.JournalPageTaskId == groupId); 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 result.FailItems.Add(new BatchClaimFailItem
{ {
@ -1495,7 +1486,7 @@ public class UserAnswerTaskService(
foreach (var task in relatedTasks) foreach (var task in relatedTasks)
{ {
var answer = userAnswers.FirstOrDefault(a => a.JournalPageTaskId == task.Id); 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; allCompleted = false;
break; break;

View File

@ -590,8 +590,7 @@ public class JournalTaskReceiveConsumer(
QuestionAnswerUrl = question.Url, QuestionAnswerUrl = question.Url,
AnswerUrl = JsonSerializer.Serialize(question.AnswerUrl ?? []), AnswerUrl = JsonSerializer.Serialize(question.AnswerUrl ?? []),
PageAnswerUrl = data.PageAnswerUrl, PageAnswerUrl = data.PageAnswerUrl,
Revision = 0, Revision = 0,
AnswerStatus = AnswerStatusEnum.Answer,
AnswerStartTime = question.AnswerStartTime, AnswerStartTime = question.AnswerStartTime,
AnswerEndTime = question.AnswerEndTime, AnswerEndTime = question.AnswerEndTime,
AnswerSeconds = question.AnswerTime, AnswerSeconds = question.AnswerTime,
@ -637,8 +636,7 @@ public class JournalTaskReceiveConsumer(
QuestionAnswerUrl = answer.QuestionAnswerUrl, QuestionAnswerUrl = answer.QuestionAnswerUrl,
AnswerUrl = answer.AnswerUrl, AnswerUrl = answer.AnswerUrl,
PageAnswerUrl = answer.PageAnswerUrl, PageAnswerUrl = answer.PageAnswerUrl,
Revision = answer.Revision, Revision = answer.Revision,
AnswerStatus = (int)answer.AnswerStatus,
AnswerStartTime = answer.AnswerStartTime, AnswerStartTime = answer.AnswerStartTime,
AnswerEndTime = answer.AnswerEndTime, AnswerEndTime = answer.AnswerEndTime,
AnswerSeconds = answer.AnswerSeconds, AnswerSeconds = answer.AnswerSeconds,