feat: 上线新手任务功能
This commit is contained in:
@@ -18,7 +18,7 @@ public enum AssignmentRequirementTypeEnum
|
|||||||
Agree = 8,
|
Agree = 8,
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 更新昵称
|
/// 更新昵称
|
||||||
/// </summary>
|
/// </summary>
|
||||||
UpdateNick = 16,
|
UpdateNick = 16,
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ public class NoviceProvider : IAssignmentProvider
|
|||||||
.ToList();
|
.ToList();
|
||||||
|
|
||||||
//根路径
|
//根路径
|
||||||
var rootAssignmentDefine = assignmentDefines.Where(x => x.PreAssignmentId == null).FirstOrDefault();
|
var rootAssignmentDefine = assignmentDefines.Where(x => x.PreAssignmentId == null).OrderBy(x=>x.OrderNum).FirstOrDefault();
|
||||||
//代表没有定义新手任务
|
//代表没有定义新手任务
|
||||||
if (rootAssignmentDefine is null)
|
if (rootAssignmentDefine is null)
|
||||||
{
|
{
|
||||||
@@ -28,12 +28,14 @@ public class NoviceProvider : IAssignmentProvider
|
|||||||
}
|
}
|
||||||
|
|
||||||
//1:查询该用户有正在进行的新手任务,如果有跳过
|
//1:查询该用户有正在进行的新手任务,如果有跳过
|
||||||
if (context.CurrentUserAssignments.Any(x => x.AssignmentState == AssignmentStateEnum.Progress))
|
if (context.CurrentUserAssignments
|
||||||
|
.Where(x => x.AssignmentState == AssignmentStateEnum.Progress)
|
||||||
|
.Any(x => assignmentDefines.Select(d => d.Id).Contains(x.AssignmentDefineId)))
|
||||||
{
|
{
|
||||||
return output;
|
return output;
|
||||||
}
|
}
|
||||||
|
|
||||||
//2: 查询该用户是否有完成的新手任务,如果有,则根据链表选择最后的节点
|
//2: 查询该用户是否有完成的新手任务,如果没有,直接返回根节点,如果有,则根据链表选择最后的节点
|
||||||
var assignmentFilterIds = context.CurrentUserAssignments
|
var assignmentFilterIds = context.CurrentUserAssignments
|
||||||
.Where(x =>
|
.Where(x =>
|
||||||
//已经完成的
|
//已经完成的
|
||||||
@@ -42,6 +44,13 @@ public class NoviceProvider : IAssignmentProvider
|
|||||||
.Select(x => x.AssignmentDefineId)
|
.Select(x => x.AssignmentDefineId)
|
||||||
.ToList();
|
.ToList();
|
||||||
|
|
||||||
|
if (assignmentFilterIds.Count == 0)
|
||||||
|
{
|
||||||
|
output.Add(rootAssignmentDefine);
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//该用户接受的最后一个新手任务
|
//该用户接受的最后一个新手任务
|
||||||
var lastAssignment = assignmentDefines.Where(x => assignmentFilterIds.Contains(x.Id))
|
var lastAssignment = assignmentDefines.Where(x => assignmentFilterIds.Contains(x.Id))
|
||||||
.OrderByDescending(x => x.OrderNum).First();
|
.OrderByDescending(x => x.OrderNum).First();
|
||||||
@@ -50,6 +59,7 @@ public class NoviceProvider : IAssignmentProvider
|
|||||||
if (assignmentDefines.Any(x => x.OrderNum > lastAssignment.OrderNum))
|
if (assignmentDefines.Any(x => x.OrderNum > lastAssignment.OrderNum))
|
||||||
{
|
{
|
||||||
output.Add(assignmentDefines.FirstOrDefault(x => x.OrderNum == lastAssignment.OrderNum + 1));
|
output.Add(assignmentDefines.FirstOrDefault(x => x.OrderNum == lastAssignment.OrderNum + 1));
|
||||||
|
return output;
|
||||||
}
|
}
|
||||||
|
|
||||||
return output;
|
return output;
|
||||||
|
|||||||
Reference in New Issue
Block a user