删除AnswerStatus字段
This commit is contained in:
@ -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:
|
||||||
|
|||||||
@ -98,11 +98,6 @@ namespace QYZH.InteractiveMagazine.Models.Entity
|
|||||||
/// </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.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@ -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,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -133,10 +133,8 @@ public class UserAnswerTaskService(
|
|||||||
// 用户已完成的任务ID集合
|
// 用户已完成的任务ID集合
|
||||||
// 【已完成判断逻辑】
|
// 【已完成判断逻辑】
|
||||||
// Status: 0=未批阅,1=已批阅
|
// Status: 0=未批阅,1=已批阅
|
||||||
// AnswerStatus: 0=未答题,1=已答题,2=正确,3=半对,4=错误
|
|
||||||
// 必须同时满足: AnswerStatus >= 1(Correct/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();
|
||||||
|
|
||||||
@ -180,10 +178,8 @@ public class UserAnswerTaskService(
|
|||||||
// 该期刊下用户已完成的作答记录
|
// 该期刊下用户已完成的作答记录
|
||||||
// 【已完成判断逻辑】
|
// 【已完成判断逻辑】
|
||||||
// Status: 0=未批阅,1=已批阅
|
// Status: 0=未批阅,1=已批阅
|
||||||
// AnswerStatus: 0=未答题,1=已答题,2=正确,3=半对,4=错误
|
|
||||||
// 必须同时满足: AnswerStatus >= 1(Correct/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 列表
|
||||||
@ -349,10 +345,8 @@ public class UserAnswerTaskService(
|
|||||||
|
|
||||||
// 用户已完成的任务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;
|
||||||
|
|||||||
@ -591,7 +591,6 @@ public class JournalTaskReceiveConsumer(
|
|||||||
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,
|
||||||
@ -638,7 +637,6 @@ public class JournalTaskReceiveConsumer(
|
|||||||
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,
|
||||||
|
|||||||
Reference in New Issue
Block a user