积分记录
This commit is contained in:
parent
5afa939e14
commit
9e8b08f464
@ -82,9 +82,8 @@ public class PointsRecordService : BaseService<PointsRecord>, ITransient
|
||||
.LeftJoin<EventInfo>((pr, e) => pr.EventId == e.Id)
|
||||
.LeftJoin<YD_Event.Core.Entities.EventProject>((pr, e, ep) => pr.ProjectId == ep.Id)
|
||||
.LeftJoin<YD_Event.Core.Entities.Project>((pr, e, ep, p) => ep.ProjectId == p.Id)
|
||||
.LeftJoin<EventProjectGroup>((pr, e, ep, p, pg) => pr.ProjectGroupId == pg.Id)
|
||||
.LeftJoin<EventResult>((pr, e, ep, p, pg, er) => pr.ResultId == er.Id)
|
||||
.LeftJoin<YD_Event.Core.Entities.AppUser>((pr, e, ep, p, pg, er, u) => pr.UserId == u.Id)
|
||||
.LeftJoin<EventResult>((pr, e, ep, p, er) => pr.ResultId == er.Id && !er.DeleteMark)
|
||||
.LeftJoin<YD_Event.Core.Entities.AppUser>((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<PointsRecord>, 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<PointsRecord>, ITransient
|
||||
Phone = u.Mobile,
|
||||
IdentityInfo = u.IdCardImageUrl, // 身份证图片
|
||||
TotalPoints = SqlFunc.Subqueryable<PointsRecord>()
|
||||
.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<PointsRecord>()
|
||||
.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<PointsRecord>, ITransient
|
||||
.LeftJoin<EventInfo>((p, e) => p.EventId == e.Id)
|
||||
.LeftJoin<EventProject>((p, e, ep) => p.ProjectId == ep.Id)
|
||||
.LeftJoin<YD_Event.Core.Entities.Project>((p, e, ep, pr) => ep.ProjectId == pr.Id)
|
||||
.LeftJoin<ProjectGroup>((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<EventResult>((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<PointsRecord>, ITransient
|
||||
.LeftJoin<EventInfo>((p, e) => p.EventId == e.Id)
|
||||
.LeftJoin<EventProject>((p, e, ep) => p.ProjectId == ep.Id)
|
||||
.LeftJoin<YD_Event.Core.Entities.Project>((p, e, ep, pr) => ep.ProjectId == pr.Id)
|
||||
.LeftJoin<ProjectGroup>((p, e, ep, pr, pg) => p.ProjectGroupId == pg.Id)
|
||||
.LeftJoin<YD_Event.Core.Entities.AppUser>((p, e, ep, pr, pg, u) => p.UserId == u.Id && !u.DeleteMark)
|
||||
.LeftJoin<EventResult>((p, e, ep, pr, pg, u, er) => p.ResultId == er.Id && !er.DeleteMark)
|
||||
.LeftJoin<EventRegistrationPerson>((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<YD_Event.Core.Entities.AppUser>((p, e, ep, pr, u) => p.UserId == u.Id && !u.DeleteMark)
|
||||
.LeftJoin<EventResult>((p, e, ep, pr, u, er) => p.ResultId == er.Id && !er.DeleteMark)
|
||||
.LeftJoin<EventRegistrationPerson>((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<PointsRecord>, 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,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user