From 57e40440ab603bad7a8b7412c7f6d49c3d9a5ebf 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: Thu, 9 Jul 2026 15:24:49 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E7=BB=9F=E8=AE=A1=E6=80=BB?= =?UTF-8?q?=E6=88=90=E9=95=BF=E5=80=BC=E5=92=8C=E7=A7=AF=E5=88=86=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../UserAnswerTaskService.cs | 29 ++++++------------- .../Controllers/UserAnswerTaskController.cs | 4 +-- QYZH.InteractiveMagazine.slnx | 8 ++--- 3 files changed, 13 insertions(+), 28 deletions(-) diff --git a/QYZH.InteractiveMagazine.Service/UserAnswerTaskService.cs b/QYZH.InteractiveMagazine.Service/UserAnswerTaskService.cs index 1930a15..07cb83e 100644 --- a/QYZH.InteractiveMagazine.Service/UserAnswerTaskService.cs +++ b/QYZH.InteractiveMagazine.Service/UserAnswerTaskService.cs @@ -172,29 +172,18 @@ public class UserAnswerTaskService( // ============================================ // 【积分和成长值计算】 - // 1. totalGrowthPoints:从已完成作答记录中,按 JournalPageTaskGroupId 查询主任务(Id=GroupId)的 GrowthPoint - // 2. totalPoints:统计该期刊下已完成任务的 Points 总数 + // totalGrowthPoints:当前期刊下所有主任务(Id == GroupId)的成长值总和 + // totalPoints:当前期刊下所有主任务(Id == GroupId)的积分总和 // ============================================ - // 该期刊下用户已完成的作答记录 - // 【已完成判断逻辑】 - // Status: 0=未批阅,1=已批阅 - var completedAnswers = userAnswers - .Where(a => a.JournalId == journal.Id && a.Status == (int)UserAnswerStatusEnum.Complete) - .ToList(); + // 筛选当前期刊下的主任务:Id == GroupId + + var allMainTasks = journalTasks.Where(t => t.Id == t.GroupId).ToList(); - // 按 JournalPageTaskGroupId 去重,获取已完成的主任务 ID 列表 - var completedGroupIdsSet = completedAnswers.Select(a => a.JournalPageTaskGroupId).Distinct().ToList(); + // 累计成长值(所有主任务的 GrowthPoint 总和) + var totalGrowthPoints = allMainTasks.Sum(t => t.GrowthPoint); - // 从主任务表查询这些 GroupId 对应的 GrowthPoint 和 Points - var mainTasks = allTasks - .Where(t => completedGroupIdsSet.Contains(t.GroupId) && t.Id == t.GroupId) - .ToList(); - - // 累计成长值(从主任务的 GrowthPoint 累加) - var totalGrowthPoints = mainTasks.Sum(t => t.GrowthPoint); - - // 累计积分(从已完成任务的 Points 累加,每个 GroupId 只计算一次) - var totalPoints = mainTasks.Sum(t => t.Points); + // 累计积分(所有主任务的 Points 总和) + var totalPoints = allMainTasks.Sum(t => t.Points); // 【进度百分比计算】按篇数统计 // 只计算有题目的页面,进度 = 已答篇数 / 有题目的总篇数 × 100 diff --git a/QYZH.InteractiveMagazine.WeChatApi/Controllers/UserAnswerTaskController.cs b/QYZH.InteractiveMagazine.WeChatApi/Controllers/UserAnswerTaskController.cs index 161f663..e13059a 100644 --- a/QYZH.InteractiveMagazine.WeChatApi/Controllers/UserAnswerTaskController.cs +++ b/QYZH.InteractiveMagazine.WeChatApi/Controllers/UserAnswerTaskController.cs @@ -37,7 +37,7 @@ public class UserAnswerTaskController : WeChatBaseController { try { - var userId = GetCurrentUserId(); + var userId = ConstUserId;//GetCurrentUserId(); if (userId == 0) { return BaseResponse>.Fail(ResultCode.DENY, "未获取到用户信息"); @@ -275,7 +275,7 @@ public class UserAnswerTaskController : WeChatBaseController { try { - var userId = ConstUserId;//GetCurrentUserId(); + var userId = GetCurrentUserId(); if (userId == 0) { return BaseResponse.Fail(ResultCode.DENY, "未获取到用户信息"); diff --git a/QYZH.InteractiveMagazine.slnx b/QYZH.InteractiveMagazine.slnx index 93a5979..57a47a8 100644 --- a/QYZH.InteractiveMagazine.slnx +++ b/QYZH.InteractiveMagazine.slnx @@ -3,14 +3,10 @@ - - - + - - - +