diff --git a/QYZH.InteractiveMagazine.Models/Dto/Journal/JournalPageTaskUpdateInput.cs b/QYZH.InteractiveMagazine.Models/Dto/Journal/JournalPageTaskUpdateInput.cs index 9cbaf60..4a25873 100644 --- a/QYZH.InteractiveMagazine.Models/Dto/Journal/JournalPageTaskUpdateInput.cs +++ b/QYZH.InteractiveMagazine.Models/Dto/Journal/JournalPageTaskUpdateInput.cs @@ -44,7 +44,7 @@ namespace QYZH.InteractiveMagazine.Models.Dto.Journal /// /// 成长值 /// - public float GrowthPoint { get; set; } + public int GrowthPoint { get; set; } /// /// 理解力评分 /// diff --git a/QYZH.InteractiveMagazine.Models/Entity/JournalPageTask.cs b/QYZH.InteractiveMagazine.Models/Entity/JournalPageTask.cs index c7927b9..0238674 100644 --- a/QYZH.InteractiveMagazine.Models/Entity/JournalPageTask.cs +++ b/QYZH.InteractiveMagazine.Models/Entity/JournalPageTask.cs @@ -1,8 +1,5 @@ using QYZH.InteractiveMagazine.Models.Enum; using SqlSugar; -using System; -using System.Linq; -using System.Text; namespace QYZH.InteractiveMagazine.Models.Entity { @@ -10,14 +7,8 @@ namespace QYZH.InteractiveMagazine.Models.Entity ///杂志任务; /// [SugarTable("JournalPageTask")] - public partial class JournalPageTask : SqlSugarBaseEntity - { - public JournalPageTask() - { - - - } - + public class JournalPageTask : SqlSugarBaseEntity + { /// /// Desc:书id /// Default: @@ -64,7 +55,7 @@ namespace QYZH.InteractiveMagazine.Models.Entity /// Default:0 /// Nullable:True /// - public int? GrowthPoint { get; set; } + public int GrowthPoint { get; set; } /// /// Desc:积分设置 diff --git a/QYZH.InteractiveMagazine.Service/JournalPageTaskService.cs b/QYZH.InteractiveMagazine.Service/JournalPageTaskService.cs index 4976a0a..de9c047 100644 --- a/QYZH.InteractiveMagazine.Service/JournalPageTaskService.cs +++ b/QYZH.InteractiveMagazine.Service/JournalPageTaskService.cs @@ -61,7 +61,7 @@ public class JournalPageTaskService(BaseRepository journalRepository, O task.Type = input.Type; task.Task = input.Task; task.Points = input.Points; - task.GrowthPoint = (int?)input.GrowthPoint; + task.GrowthPoint = input.GrowthPoint; task.Comprehension = input.Comprehension; task.Judgment = input.Judgment; task.Expression = input.Expression; @@ -99,7 +99,7 @@ public class JournalPageTaskService(BaseRepository journalRepository, O No = task.No, Type = task.Type, Points = task.Points, - GrowthPoint = task.GrowthPoint ?? 0, + GrowthPoint = task.GrowthPoint, Comprehension = task.Comprehension, Judgment = task.Judgment, Expression = task.Expression, diff --git a/QYZH.InteractiveMagazine.Service/UserAnswerTaskService.cs b/QYZH.InteractiveMagazine.Service/UserAnswerTaskService.cs index 7b31a88..c946979 100644 --- a/QYZH.InteractiveMagazine.Service/UserAnswerTaskService.cs +++ b/QYZH.InteractiveMagazine.Service/UserAnswerTaskService.cs @@ -191,7 +191,7 @@ public class UserAnswerTaskService( .ToList(); // 累计成长值(从主任务的 GrowthPoint 累加) - var totalGrowthPoints = mainTasks.Sum(t => t.GrowthPoint ?? 0); + var totalGrowthPoints = mainTasks.Sum(t => t.GrowthPoint); // 累计积分(从已完成任务的 Points 累加,每个 GroupId 只计算一次) var totalPoints = mainTasks.Sum(t => t.Points); @@ -435,7 +435,7 @@ public class UserAnswerTaskService( .GroupBy(t => t.GroupId) .Select(g => g.First()) .ToList(); - var totalGrowthPoints = distinctSecondLevelTasks.Sum(t => t.GrowthPoint) ?? 0; + var totalGrowthPoints = distinctSecondLevelTasks.Sum(t => t.GrowthPoint); var totalPoints = distinctSecondLevelTasks.Sum(t => t.Points); children.Add(new SecondCatalogOutput @@ -835,7 +835,7 @@ public class UserAnswerTaskService( { GroupId = groupId, TaskName = mainTask.Task ?? string.Empty, - TotalGrowthPoints = mainTask.GrowthPoint ?? 0, + TotalGrowthPoints = mainTask.GrowthPoint, TotalPoints = mainTask.Points, AnswerMinutes = groupAnswerMinutes, Status = taskStatus @@ -1266,7 +1266,7 @@ public class UserAnswerTaskService( // 重复领取校验 var existingRecord = await answerRepository.Context.Queryable() .Where(r => r.UserId == userId) - .Where(r => r.ChangeType == PointsChangeTypeEnum.TaskReward.ToString() && r.RelatedId == groupId) + .Where(r => r.ChangeType == nameof(PointsChangeTypeEnum.TaskReward) && r.RelatedId == groupId) .FirstAsync(); if (existingRecord != null) @@ -1276,7 +1276,7 @@ public class UserAnswerTaskService( // 积分、成长值、得分(均取主任务数据) int totalPoints = mainTask.Points; - int totalGrowthPoints = mainTask.GrowthPoint ?? 0; + int totalGrowthPoints = mainTask.GrowthPoint; float score = mainTaskAnswer.Score; if (totalPoints <= 0) @@ -1310,8 +1310,11 @@ public class UserAnswerTaskService( { // 4a. 手动更新 Users.Points(积分累加) var newPointsBalance = user.Points + totalPoints; + // 4b. 手动更新 Users.GrowthPoints(成长值累加) + var newGrowthPointsBalance = user.GrowthPoints + totalGrowthPoints; await answerRepository.Context.Updateable() .SetColumns(u => u.Points == newPointsBalance) + .SetColumns(u => u.GrowthPoints == newGrowthPointsBalance) .SetColumns(u => u.UpdatedAt == DateTime.Now) .Where(u => u.Id == userId) .ExecuteCommandAsync(); @@ -1324,7 +1327,7 @@ public class UserAnswerTaskService( BalanceAfter = newPointsBalance, ChangeType = PointsChangeTypeEnum.TaskReward.ToString(), RelatedId = groupId, - Description = $"完成任务奖励:{mainTask.Task}", + Description = $"完成任务奖励,GroupId:{mainTask.GroupId}", Type = PointsFlowTypeEnum.Income, Status = (int)PointsRecordStatusEnum.Success, IsDeleted = false, @@ -1518,7 +1521,7 @@ public class UserAnswerTaskService( #region 3.6 计算积分、成长值、得分 int points = mainTask.Points; - int growthPoints = mainTask.GrowthPoint ?? 0; + int growthPoints = mainTask.GrowthPoint; float score = mainTaskAnswer.Score; if (points <= 0) @@ -1603,8 +1606,12 @@ public class UserAnswerTaskService( // 4a. 手动更新 Users.Points(积分累加) var newPointsBalance = user.Points + totalPointsAmount; + // 4b. 手动更新 Users.GrowthPoints(成长值累加) + var newGrowthPointsBalance = user.GrowthPoints + totalGrowthPoints; + await answerRepository.Context.Updateable() .SetColumns(u => u.Points == newPointsBalance) + .SetColumns(u => u.GrowthPoints == newGrowthPointsBalance) .SetColumns(u => u.UpdatedAt == DateTime.Now) .Where(u => u.Id == userId) .ExecuteCommandAsync(); @@ -1620,7 +1627,7 @@ public class UserAnswerTaskService( BalanceAfter = newPointsBalance, ChangeType = PointsChangeTypeEnum.TaskReward.ToString(), RelatedId = task.GroupId, - Description = $"完成任务奖励:{task.TaskName}", + Description = $"完成任务奖励,GroupId:{task.GroupId}", Type = PointsFlowTypeEnum.Income, Status = (int)PointsRecordStatusEnum.Success, IsDeleted = false, diff --git a/QYZH.InteractiveMagazine.WorkService/Consumers/JournalTaskReceiveConsumer.cs b/QYZH.InteractiveMagazine.WorkService/Consumers/JournalTaskReceiveConsumer.cs index b39a879..3c378af 100644 --- a/QYZH.InteractiveMagazine.WorkService/Consumers/JournalTaskReceiveConsumer.cs +++ b/QYZH.InteractiveMagazine.WorkService/Consumers/JournalTaskReceiveConsumer.cs @@ -275,7 +275,7 @@ public class JournalTaskReceiveConsumer( prompt.AppendLine(task.Prompt); prompt.AppendLine(); prompt.AppendLine("题目配置:"); - prompt.AppendLine($"- 成长值上限:{task.GrowthPoint ?? 0}"); + prompt.AppendLine($"- 成长值上限:{task.GrowthPoint}"); prompt.AppendLine($"- 积分上限:{task.Points}"); prompt.AppendLine($"- 理解力上限:{task.Comprehension}"); prompt.AppendLine($"- 判断力上限:{task.Judgment}");