From 9e8b08f4643db72f43d79b1cbe4f668c7441f624 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A9=AC=E6=A2=93=E5=BD=AD?= Date: Fri, 8 May 2026 13:36:29 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=AF=E5=88=86=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Points/PointsRecordService.cs | 47 +++++++++---------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/YD_Event.Application/Points/PointsRecordService.cs b/YD_Event.Application/Points/PointsRecordService.cs index 614620a..9d88036 100644 --- a/YD_Event.Application/Points/PointsRecordService.cs +++ b/YD_Event.Application/Points/PointsRecordService.cs @@ -82,9 +82,8 @@ public class PointsRecordService : BaseService, ITransient .LeftJoin((pr, e) => pr.EventId == e.Id) .LeftJoin((pr, e, ep) => pr.ProjectId == ep.Id) .LeftJoin((pr, e, ep, p) => ep.ProjectId == p.Id) - .LeftJoin((pr, e, ep, p, pg) => pr.ProjectGroupId == pg.Id) - .LeftJoin((pr, e, ep, p, pg, er) => pr.ResultId == er.Id) - .LeftJoin((pr, e, ep, p, pg, er, u) => pr.UserId == u.Id) + .LeftJoin((pr, e, ep, p, er) => pr.ResultId == er.Id && !er.DeleteMark) + .LeftJoin((pr, e, ep, p, er, u) => pr.UserId == u.Id) .WhereIF(input.Type.HasValue, pr => pr.Type == input.Type) .WhereIF(!string.IsNullOrWhiteSpace(input.ActionKeyword), (pr, e) => e.EventName.Contains(input.ActionKeyword) || pr.Remark.Contains(input.ActionKeyword)) .WhereIF(input.StartTime.HasValue, pr => pr.CreatedTime >= input.StartTime) @@ -102,13 +101,13 @@ public class PointsRecordService : BaseService, ITransient query = query.Where(pr => pr.UserId == userId && pr.MerchantCertificationId == null); } - var result = await query.Select((pr, e, ep, p, pg, er, u) => new UserPointsLogDto + var result = await query.Select((pr, e, ep, p, er, u) => new UserPointsLogDto { Id = pr.Id, Type = pr.Type, Action = e.EventName ?? pr.Remark ?? "未知动作", ProjectName = p.Name, - GroupName = pg.GroupName, + GroupName = er.GroupName, ParticipantName = u.Name, // 显示关联用户的姓名 Rank = er.Rank > 0 ? er.Rank : null, // 使用 EventResult 中的名次 Points = pr.Points, @@ -172,12 +171,12 @@ public class PointsRecordService : BaseService, ITransient Phone = u.Mobile, IdentityInfo = u.IdCardImageUrl, // 身份证图片 TotalPoints = SqlFunc.Subqueryable() - .Where(p => p.UserId == u.Id && !p.DeleteMark) + .Where(p => p.UserId == u.Id && !p.DeleteMark && p.MerchantCertificationId == null) .WhereIF(input.StartTime.HasValue, p => p.CreatedTime >= input.StartTime) .WhereIF(input.EndTime.HasValue, p => p.CreatedTime <= input.EndTime) .Sum(p => p.Points), // 实时计算 LastUpdateTime = SqlFunc.Subqueryable() - .Where(p => p.UserId == u.Id && !p.DeleteMark) + .Where(p => p.UserId == u.Id && !p.DeleteMark && p.MerchantCertificationId == null) .WhereIF(input.StartTime.HasValue, p => p.CreatedTime >= input.StartTime) .WhereIF(input.EndTime.HasValue, p => p.CreatedTime <= input.EndTime) .Max(p => p.CreatedTime) @@ -243,20 +242,21 @@ public class PointsRecordService : BaseService, ITransient .LeftJoin((p, e) => p.EventId == e.Id) .LeftJoin((p, e, ep) => p.ProjectId == ep.Id) .LeftJoin((p, e, ep, pr) => ep.ProjectId == pr.Id) - .LeftJoin((p, e, ep, pr, pg) => p.ProjectGroupId == pg.Id) - .Where((p, e, ep, pr, pg) => !p.DeleteMark) - .Where((p, e, ep, pr, pg) => p.UserId == input.UserId) - .WhereIF(input.Type.HasValue, (p, e, ep, pr, pg) => p.Type == input.Type) - .OrderByDescending((p, e, ep, pr, pg) => p.CreatedTime); + .LeftJoin((p, e, ep, pr, er) => p.ResultId == er.Id && !er.DeleteMark) + .Where((p, e, ep, pr, er) => !p.DeleteMark) + .Where((p, e, ep, pr, er) => p.UserId == input.UserId) + .Where((p, e, ep, pr, er) => p.MerchantCertificationId == null) + .WhereIF(input.Type.HasValue, (p, e, ep, pr, er) => p.Type == input.Type) + .OrderByDescending((p, e, ep, pr, er) => p.CreatedTime); return await query - .Select((p, e, ep, pr, pg) => new PointsDetailOutput + .Select((p, e, ep, pr, er) => new PointsDetailOutput { CreatedTime = p.CreatedTime, Type = p.Type, Action = e.EventName, Item = pr.Name, - Group = pg.GroupName, + Group = er.GroupName, Points = p.Points, Remark = p.Remark }).ToPagedListAsync(input); @@ -270,17 +270,16 @@ public class PointsRecordService : BaseService, ITransient .LeftJoin((p, e) => p.EventId == e.Id) .LeftJoin((p, e, ep) => p.ProjectId == ep.Id) .LeftJoin((p, e, ep, pr) => ep.ProjectId == pr.Id) - .LeftJoin((p, e, ep, pr, pg) => p.ProjectGroupId == pg.Id) - .LeftJoin((p, e, ep, pr, pg, u) => p.UserId == u.Id && !u.DeleteMark) - .LeftJoin((p, e, ep, pr, pg, u, er) => p.ResultId == er.Id && !er.DeleteMark) - .LeftJoin((p, e, ep, pr, pg, u, er, per) => er.RegistrationPersonId == per.Id && !per.DeleteMark) - .Where((p, e, ep, pr, pg, u, er, per) => !p.DeleteMark) - .Where((p, e, ep, pr, pg, u, er, per) => p.MerchantCertificationId == input.UserId) - .WhereIF(input.Type.HasValue, (p, e, ep, pr, pg, u, er, per) => p.Type == input.Type) - .OrderByDescending((p, e, ep, pr, pg, u, er, per) => p.CreatedTime); + .LeftJoin((p, e, ep, pr, u) => p.UserId == u.Id && !u.DeleteMark) + .LeftJoin((p, e, ep, pr, u, er) => p.ResultId == er.Id && !er.DeleteMark) + .LeftJoin((p, e, ep, pr, u, er, per) => er.RegistrationPersonId == per.Id && !per.DeleteMark) + .Where((p, e, ep, pr, u, er, per) => !p.DeleteMark) + .Where((p, e, ep, pr, u, er, per) => p.MerchantCertificationId == input.UserId) + .WhereIF(input.Type.HasValue, (p, e, ep, pr, u, er, per) => p.Type == input.Type) + .OrderByDescending((p, e, ep, pr, u, er, per) => p.CreatedTime); var rawData = await query - .Select((p, e, ep, pr, pg, u, er, per) => new + .Select((p, e, ep, pr, u, er, per) => new { PointRecordId = p.Id, CreatedTime = p.CreatedTime, @@ -289,7 +288,7 @@ public class PointsRecordService : BaseService, ITransient Item = pr.Name, ProjectId = pr.Id, ProjectType = pr.ProjectType, - Group = pg.GroupName, + Group = er.GroupName, Points = p.Points, Remark = p.Remark, ParticipantName = u.Name,