积分记录
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<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.EventProject>((pr, e, ep) => pr.ProjectId == ep.Id)
|
||||||
.LeftJoin<YD_Event.Core.Entities.Project>((pr, e, ep, p) => ep.ProjectId == p.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, er) => pr.ResultId == er.Id && !er.DeleteMark)
|
||||||
.LeftJoin<EventResult>((pr, e, ep, p, pg, er) => pr.ResultId == er.Id)
|
.LeftJoin<YD_Event.Core.Entities.AppUser>((pr, e, ep, p, er, u) => pr.UserId == u.Id)
|
||||||
.LeftJoin<YD_Event.Core.Entities.AppUser>((pr, e, ep, p, pg, er, u) => pr.UserId == u.Id)
|
|
||||||
.WhereIF(input.Type.HasValue, pr => pr.Type == input.Type)
|
.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(!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)
|
.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);
|
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,
|
Id = pr.Id,
|
||||||
Type = pr.Type,
|
Type = pr.Type,
|
||||||
Action = e.EventName ?? pr.Remark ?? "未知动作",
|
Action = e.EventName ?? pr.Remark ?? "未知动作",
|
||||||
ProjectName = p.Name,
|
ProjectName = p.Name,
|
||||||
GroupName = pg.GroupName,
|
GroupName = er.GroupName,
|
||||||
ParticipantName = u.Name, // 显示关联用户的姓名
|
ParticipantName = u.Name, // 显示关联用户的姓名
|
||||||
Rank = er.Rank > 0 ? er.Rank : null, // 使用 EventResult 中的名次
|
Rank = er.Rank > 0 ? er.Rank : null, // 使用 EventResult 中的名次
|
||||||
Points = pr.Points,
|
Points = pr.Points,
|
||||||
@ -172,12 +171,12 @@ public class PointsRecordService : BaseService<PointsRecord>, ITransient
|
|||||||
Phone = u.Mobile,
|
Phone = u.Mobile,
|
||||||
IdentityInfo = u.IdCardImageUrl, // 身份证图片
|
IdentityInfo = u.IdCardImageUrl, // 身份证图片
|
||||||
TotalPoints = SqlFunc.Subqueryable<PointsRecord>()
|
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.StartTime.HasValue, p => p.CreatedTime >= input.StartTime)
|
||||||
.WhereIF(input.EndTime.HasValue, p => p.CreatedTime <= input.EndTime)
|
.WhereIF(input.EndTime.HasValue, p => p.CreatedTime <= input.EndTime)
|
||||||
.Sum(p => p.Points), // 实时计算
|
.Sum(p => p.Points), // 实时计算
|
||||||
LastUpdateTime = SqlFunc.Subqueryable<PointsRecord>()
|
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.StartTime.HasValue, p => p.CreatedTime >= input.StartTime)
|
||||||
.WhereIF(input.EndTime.HasValue, p => p.CreatedTime <= input.EndTime)
|
.WhereIF(input.EndTime.HasValue, p => p.CreatedTime <= input.EndTime)
|
||||||
.Max(p => p.CreatedTime)
|
.Max(p => p.CreatedTime)
|
||||||
@ -243,20 +242,21 @@ public class PointsRecordService : BaseService<PointsRecord>, ITransient
|
|||||||
.LeftJoin<EventInfo>((p, e) => p.EventId == e.Id)
|
.LeftJoin<EventInfo>((p, e) => p.EventId == e.Id)
|
||||||
.LeftJoin<EventProject>((p, e, ep) => p.ProjectId == ep.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<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<EventResult>((p, e, ep, pr, er) => p.ResultId == er.Id && !er.DeleteMark)
|
||||||
.Where((p, e, ep, pr, pg) => !p.DeleteMark)
|
.Where((p, e, ep, pr, er) => !p.DeleteMark)
|
||||||
.Where((p, e, ep, pr, pg) => p.UserId == input.UserId)
|
.Where((p, e, ep, pr, er) => p.UserId == input.UserId)
|
||||||
.WhereIF(input.Type.HasValue, (p, e, ep, pr, pg) => p.Type == input.Type)
|
.Where((p, e, ep, pr, er) => p.MerchantCertificationId == null)
|
||||||
.OrderByDescending((p, e, ep, pr, pg) => p.CreatedTime);
|
.WhereIF(input.Type.HasValue, (p, e, ep, pr, er) => p.Type == input.Type)
|
||||||
|
.OrderByDescending((p, e, ep, pr, er) => p.CreatedTime);
|
||||||
|
|
||||||
return await query
|
return await query
|
||||||
.Select((p, e, ep, pr, pg) => new PointsDetailOutput
|
.Select((p, e, ep, pr, er) => new PointsDetailOutput
|
||||||
{
|
{
|
||||||
CreatedTime = p.CreatedTime,
|
CreatedTime = p.CreatedTime,
|
||||||
Type = p.Type,
|
Type = p.Type,
|
||||||
Action = e.EventName,
|
Action = e.EventName,
|
||||||
Item = pr.Name,
|
Item = pr.Name,
|
||||||
Group = pg.GroupName,
|
Group = er.GroupName,
|
||||||
Points = p.Points,
|
Points = p.Points,
|
||||||
Remark = p.Remark
|
Remark = p.Remark
|
||||||
}).ToPagedListAsync(input);
|
}).ToPagedListAsync(input);
|
||||||
@ -270,17 +270,16 @@ public class PointsRecordService : BaseService<PointsRecord>, ITransient
|
|||||||
.LeftJoin<EventInfo>((p, e) => p.EventId == e.Id)
|
.LeftJoin<EventInfo>((p, e) => p.EventId == e.Id)
|
||||||
.LeftJoin<EventProject>((p, e, ep) => p.ProjectId == ep.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<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, u) => p.UserId == u.Id && !u.DeleteMark)
|
||||||
.LeftJoin<YD_Event.Core.Entities.AppUser>((p, e, ep, pr, pg, u) => p.UserId == u.Id && !u.DeleteMark)
|
.LeftJoin<EventResult>((p, e, ep, pr, u, er) => p.ResultId == er.Id && !er.DeleteMark)
|
||||||
.LeftJoin<EventResult>((p, e, ep, pr, pg, u, er) => p.ResultId == er.Id && !er.DeleteMark)
|
.LeftJoin<EventRegistrationPerson>((p, e, ep, pr, u, er, per) => er.RegistrationPersonId == per.Id && !per.DeleteMark)
|
||||||
.LeftJoin<EventRegistrationPerson>((p, e, ep, pr, pg, u, er, per) => er.RegistrationPersonId == per.Id && !per.DeleteMark)
|
.Where((p, e, ep, pr, u, er, per) => !p.DeleteMark)
|
||||||
.Where((p, e, ep, pr, pg, u, er, per) => !p.DeleteMark)
|
.Where((p, e, ep, pr, u, er, per) => p.MerchantCertificationId == input.UserId)
|
||||||
.Where((p, e, ep, pr, pg, u, er, per) => p.MerchantCertificationId == input.UserId)
|
.WhereIF(input.Type.HasValue, (p, e, ep, pr, u, er, per) => p.Type == input.Type)
|
||||||
.WhereIF(input.Type.HasValue, (p, e, ep, pr, pg, u, er, per) => p.Type == input.Type)
|
.OrderByDescending((p, e, ep, pr, u, er, per) => p.CreatedTime);
|
||||||
.OrderByDescending((p, e, ep, pr, pg, u, er, per) => p.CreatedTime);
|
|
||||||
|
|
||||||
var rawData = await query
|
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,
|
PointRecordId = p.Id,
|
||||||
CreatedTime = p.CreatedTime,
|
CreatedTime = p.CreatedTime,
|
||||||
@ -289,7 +288,7 @@ public class PointsRecordService : BaseService<PointsRecord>, ITransient
|
|||||||
Item = pr.Name,
|
Item = pr.Name,
|
||||||
ProjectId = pr.Id,
|
ProjectId = pr.Id,
|
||||||
ProjectType = pr.ProjectType,
|
ProjectType = pr.ProjectType,
|
||||||
Group = pg.GroupName,
|
Group = er.GroupName,
|
||||||
Points = p.Points,
|
Points = p.Points,
|
||||||
Remark = p.Remark,
|
Remark = p.Remark,
|
||||||
ParticipantName = u.Name,
|
ParticipantName = u.Name,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user