赛事统一查询规则
- 线上支付 (PaymentMethod == 2) :只显示已支付 (PaymentStatus == 1) 的记录 - 线下支付 (PaymentMethod == 1) :显示待审核 (PaymentStatus == 0) 和已支付 (PaymentStatus == 1) 的记录
This commit is contained in:
parent
c559033720
commit
2e615d43c6
@ -262,7 +262,8 @@ public class EventClientController : IDynamicApiController
|
|||||||
{
|
{
|
||||||
var userId = GetCurrentUserId();
|
var userId = GetCurrentUserId();
|
||||||
isRegistered = await _registrationRepository.IsAnyAsync(r =>
|
isRegistered = await _registrationRepository.IsAnyAsync(r =>
|
||||||
r.EventId == id && r.CreatedUserId == userId && r.PaymentStatus != 4 && r.PaymentStatus == 1);
|
r.EventId == id && r.CreatedUserId == userId &&
|
||||||
|
((r.PaymentMethod == 2 && r.PaymentStatus == 1) || (r.PaymentMethod == 1 && (r.PaymentStatus == 0 || r.PaymentStatus == 1))));
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
@ -855,8 +856,9 @@ public class EventClientController : IDynamicApiController
|
|||||||
|
|
||||||
var query = _registrationRepository.AsQueryable()
|
var query = _registrationRepository.AsQueryable()
|
||||||
.LeftJoin<EventInfo>((r, e) => r.EventId == e.Id)
|
.LeftJoin<EventInfo>((r, e) => r.EventId == e.Id)
|
||||||
// 只显示未取消的报名,排除 PaymentStatus=3(已退款/已取消)的记录
|
// 线上支付只显示已支付(1),线下支付显示待审核(0)和已支付(1)
|
||||||
.Where(r => r.CreatedUserId == userId && !r.DeleteMark && r.PaymentStatus == 1)
|
.Where(r => r.CreatedUserId == userId && !r.DeleteMark &&
|
||||||
|
((r.PaymentMethod == 2 && r.PaymentStatus == 1) || (r.PaymentMethod == 1 && (r.PaymentStatus == 0 || r.PaymentStatus == 1))))
|
||||||
.OrderByDescending(r => r.RegistrationTime)
|
.OrderByDescending(r => r.RegistrationTime)
|
||||||
.Select((r, e) => new MyEventListDto
|
.Select((r, e) => new MyEventListDto
|
||||||
{
|
{
|
||||||
|
|||||||
@ -605,7 +605,8 @@ public class MyController : IDynamicApiController
|
|||||||
|
|
||||||
// 1. 先分页查询报名记录
|
// 1. 先分页查询报名记录
|
||||||
var regQuery = _registrationRepository.AsQueryable()
|
var regQuery = _registrationRepository.AsQueryable()
|
||||||
.Where(r => r.CreatedUserId == userId && !r.DeleteMark && r.PaymentStatus != 3 && r.PaymentStatus != 4 && r.PaymentStatus != 5)
|
.Where(r => r.CreatedUserId == userId && !r.DeleteMark &&
|
||||||
|
((r.PaymentMethod == 2 && r.PaymentStatus == 1) || (r.PaymentMethod == 1 && (r.PaymentStatus == 0 || r.PaymentStatus == 1))))
|
||||||
.OrderByDescending(r => r.RegistrationTime);
|
.OrderByDescending(r => r.RegistrationTime);
|
||||||
|
|
||||||
var pagedRegs = await regQuery.ToPagedListAsync(input);
|
var pagedRegs = await regQuery.ToPagedListAsync(input);
|
||||||
|
|||||||
@ -106,8 +106,8 @@ namespace YD_Event.Application.Event;
|
|||||||
var counts = await _personRepository.AsQueryable()
|
var counts = await _personRepository.AsQueryable()
|
||||||
.InnerJoin<EventRegistration>((p, r) => p.RegistrationId == r.Id)
|
.InnerJoin<EventRegistration>((p, r) => p.RegistrationId == r.Id)
|
||||||
.Where((p, r) => r.EventId == eventId
|
.Where((p, r) => r.EventId == eventId
|
||||||
&& r.PaymentStatus != 4 && r.PaymentStatus != 3 // 排除已取消的报名
|
// 线上支付只显示已支付(1),线下支付显示待审核(0)和已支付(1)
|
||||||
&& r.PaymentStatus != 5 // 排除预报名记录
|
&& ((r.PaymentMethod == 2 && r.PaymentStatus == 1) || (r.PaymentMethod == 1 && (r.PaymentStatus == 0 || r.PaymentStatus == 1)))
|
||||||
&& !p.DeleteMark // 排除已删除的人员
|
&& !p.DeleteMark // 排除已删除的人员
|
||||||
&& p.PersonType == PersonType.Athlete) // 只统计运动员
|
&& p.PersonType == PersonType.Athlete) // 只统计运动员
|
||||||
.GroupBy((p, r) => new { p.ProjectId, p.GroupName })
|
.GroupBy((p, r) => new { p.ProjectId, p.GroupName })
|
||||||
@ -118,8 +118,8 @@ namespace YD_Event.Application.Event;
|
|||||||
var personWithTeam = await _personRepository.AsQueryable()
|
var personWithTeam = await _personRepository.AsQueryable()
|
||||||
.InnerJoin<EventRegistration>((p, r) => p.RegistrationId == r.Id)
|
.InnerJoin<EventRegistration>((p, r) => p.RegistrationId == r.Id)
|
||||||
.Where((p, r) => r.EventId == eventId
|
.Where((p, r) => r.EventId == eventId
|
||||||
&& r.PaymentStatus != 4 && r.PaymentStatus != 3
|
// 线上支付只显示已支付(1),线下支付显示待审核(0)和已支付(1)
|
||||||
&& r.PaymentStatus != 5 // 排除预报名记录
|
&& ((r.PaymentMethod == 2 && r.PaymentStatus == 1) || (r.PaymentMethod == 1 && (r.PaymentStatus == 0 || r.PaymentStatus == 1)))
|
||||||
&& !p.DeleteMark
|
&& !p.DeleteMark
|
||||||
&& p.PersonType == PersonType.Athlete
|
&& p.PersonType == PersonType.Athlete
|
||||||
&& r.TeamName != null)
|
&& r.TeamName != null)
|
||||||
@ -284,8 +284,8 @@ namespace YD_Event.Application.Event;
|
|||||||
var counts = await _personRepository.AsQueryable()
|
var counts = await _personRepository.AsQueryable()
|
||||||
.InnerJoin<EventRegistration>((p, r) => p.RegistrationId == r.Id)
|
.InnerJoin<EventRegistration>((p, r) => p.RegistrationId == r.Id)
|
||||||
.Where((p, r) => r.EventId == eventId
|
.Where((p, r) => r.EventId == eventId
|
||||||
&& r.PaymentStatus != 4 && r.PaymentStatus != 3
|
// 线上支付只显示已支付(1),线下支付显示待审核(0)和已支付(1)
|
||||||
&& r.PaymentStatus != 5 // 排除预报名记录
|
&& ((r.PaymentMethod == 2 && r.PaymentStatus == 1) || (r.PaymentMethod == 1 && (r.PaymentStatus == 0 || r.PaymentStatus == 1)))
|
||||||
&& !p.DeleteMark
|
&& !p.DeleteMark
|
||||||
&& p.PersonType == PersonType.Athlete)
|
&& p.PersonType == PersonType.Athlete)
|
||||||
.GroupBy((p, r) => new { p.ProjectId, p.GroupName })
|
.GroupBy((p, r) => new { p.ProjectId, p.GroupName })
|
||||||
@ -296,8 +296,8 @@ namespace YD_Event.Application.Event;
|
|||||||
var personWithTeam = await _personRepository.AsQueryable()
|
var personWithTeam = await _personRepository.AsQueryable()
|
||||||
.InnerJoin<EventRegistration>((p, r) => p.RegistrationId == r.Id)
|
.InnerJoin<EventRegistration>((p, r) => p.RegistrationId == r.Id)
|
||||||
.Where((p, r) => r.EventId == eventId
|
.Where((p, r) => r.EventId == eventId
|
||||||
&& r.PaymentStatus != 4 && r.PaymentStatus != 3
|
// 线上支付只显示已支付(1),线下支付显示待审核(0)和已支付(1)
|
||||||
&& r.PaymentStatus != 5 // 排除预报名记录
|
&& ((r.PaymentMethod == 2 && r.PaymentStatus == 1) || (r.PaymentMethod == 1 && (r.PaymentStatus == 0 || r.PaymentStatus == 1)))
|
||||||
&& !p.DeleteMark
|
&& !p.DeleteMark
|
||||||
&& p.PersonType == PersonType.Athlete
|
&& p.PersonType == PersonType.Athlete
|
||||||
&& r.TeamName != null)
|
&& r.TeamName != null)
|
||||||
@ -327,8 +327,8 @@ namespace YD_Event.Application.Event;
|
|||||||
var basicPersons = await _personRepository.AsQueryable()
|
var basicPersons = await _personRepository.AsQueryable()
|
||||||
.InnerJoin<EventRegistration>((p, r) => p.RegistrationId == r.Id)
|
.InnerJoin<EventRegistration>((p, r) => p.RegistrationId == r.Id)
|
||||||
.Where((p, r) => p.ProjectId == eventProj.Id
|
.Where((p, r) => p.ProjectId == eventProj.Id
|
||||||
&& r.PaymentStatus != 4 && r.PaymentStatus != 3
|
// 线上支付只显示已支付(1),线下支付显示待审核(0)和已支付(1)
|
||||||
&& r.PaymentStatus != 5 // 排除预报名记录
|
&& ((r.PaymentMethod == 2 && r.PaymentStatus == 1) || (r.PaymentMethod == 1 && (r.PaymentStatus == 0 || r.PaymentStatus == 1)))
|
||||||
&& !p.DeleteMark
|
&& !p.DeleteMark
|
||||||
&& p.PersonType == PersonType.Athlete)
|
&& p.PersonType == PersonType.Athlete)
|
||||||
.OrderBy(p => p.GroupName)
|
.OrderBy(p => p.GroupName)
|
||||||
|
|||||||
@ -86,7 +86,8 @@ public class EventRecordService : BaseService<EventRegistration>, ITransient
|
|||||||
.LeftJoin<AppUserEntity>((r, e, u) => r.CreatedUserId == u.Id)
|
.LeftJoin<AppUserEntity>((r, e, u) => r.CreatedUserId == u.Id)
|
||||||
.LeftJoin<SysUserEntity>((r, e, u, s) => r.CreatedUserId == s.Id)
|
.LeftJoin<SysUserEntity>((r, e, u, s) => r.CreatedUserId == s.Id)
|
||||||
.LeftJoin<MerchantEntity>((r, e, u, s, m) => r.CreatedUserId == m.CreatedUserId)
|
.LeftJoin<MerchantEntity>((r, e, u, s, m) => r.CreatedUserId == m.CreatedUserId)
|
||||||
.Where((r, e, u, s, m) => r.PaymentStatus != 5) // 排除预报名记录
|
// 线上支付只显示已支付(1),线下支付显示待审核(0)和已支付(1)
|
||||||
|
.Where((r, e, u, s, m) => (r.PaymentMethod == 2 && r.PaymentStatus == 1) || (r.PaymentMethod == 1 && (r.PaymentStatus == 0 || r.PaymentStatus == 1)))
|
||||||
.WhereIF(!string.IsNullOrWhiteSpace(input.EventName), (r, e, u, s, m) => e.EventName.Contains(input.EventName))
|
.WhereIF(!string.IsNullOrWhiteSpace(input.EventName), (r, e, u, s, m) => e.EventName.Contains(input.EventName))
|
||||||
.WhereIF(input.StartTime.HasValue, (r, e, u, s, m) => e.MatchStartTime >= input.StartTime)
|
.WhereIF(input.StartTime.HasValue, (r, e, u, s, m) => e.MatchStartTime >= input.StartTime)
|
||||||
.WhereIF(input.EndTime.HasValue, (r, e, u, s, m) => e.MatchStartTime <= input.EndTime)
|
.WhereIF(input.EndTime.HasValue, (r, e, u, s, m) => e.MatchStartTime <= input.EndTime)
|
||||||
|
|||||||
@ -66,7 +66,8 @@ public class EventRegistrationService : BaseService<EventRegistration>, ITransie
|
|||||||
public async Task<PageResult<RegistrationListOutput>> Page(RegistrationQueryInput input)
|
public async Task<PageResult<RegistrationListOutput>> Page(RegistrationQueryInput input)
|
||||||
{
|
{
|
||||||
var query = _repository.AsQueryable()
|
var query = _repository.AsQueryable()
|
||||||
.Where(x => x.PaymentStatus != 4 && x.PaymentStatus != 3 && x.PaymentStatus != 5) // 过滤掉已取消、已退款和预报名的记录
|
// 线上支付只显示已支付(1),线下支付显示待审核(0)和已支付(1)
|
||||||
|
.Where(x => (x.PaymentMethod == 2 && x.PaymentStatus == 1) || (x.PaymentMethod == 1 && (x.PaymentStatus == 0 || x.PaymentStatus == 1)))
|
||||||
.WhereIF(input.EventId.HasValue, x => x.EventId == input.EventId)
|
.WhereIF(input.EventId.HasValue, x => x.EventId == input.EventId)
|
||||||
.WhereIF(input.RegistrationMode.HasValue, x => x.RegistrationMode == input.RegistrationMode)
|
.WhereIF(input.RegistrationMode.HasValue, x => x.RegistrationMode == input.RegistrationMode)
|
||||||
.WhereIF(!string.IsNullOrWhiteSpace(input.UnitName), x => x.TeamName.Contains(input.UnitName))
|
.WhereIF(!string.IsNullOrWhiteSpace(input.UnitName), x => x.TeamName.Contains(input.UnitName))
|
||||||
@ -500,7 +501,8 @@ public class EventRegistrationService : BaseService<EventRegistration>, ITransie
|
|||||||
public async Task<byte[]> Export(RegistrationQueryInput input)
|
public async Task<byte[]> Export(RegistrationQueryInput input)
|
||||||
{
|
{
|
||||||
var registrations = await _repository.AsQueryable()
|
var registrations = await _repository.AsQueryable()
|
||||||
.Where(x => x.PaymentStatus != 4 && x.PaymentStatus != 3 && x.PaymentStatus != 5) // 过滤掉已取消、已退款和预报名的记录
|
// 线上支付只显示已支付(1),线下支付显示待审核(0)和已支付(1)
|
||||||
|
.Where(x => (x.PaymentMethod == 2 && x.PaymentStatus == 1) || (x.PaymentMethod == 1 && (x.PaymentStatus == 0 || x.PaymentStatus == 1)))
|
||||||
.WhereIF(input.EventId.HasValue, x => x.EventId == input.EventId)
|
.WhereIF(input.EventId.HasValue, x => x.EventId == input.EventId)
|
||||||
.WhereIF(input.RegistrationMode.HasValue, x => x.RegistrationMode == input.RegistrationMode)
|
.WhereIF(input.RegistrationMode.HasValue, x => x.RegistrationMode == input.RegistrationMode)
|
||||||
.WhereIF(!string.IsNullOrWhiteSpace(input.UnitName), x => x.TeamName.Contains(input.UnitName))
|
.WhereIF(!string.IsNullOrWhiteSpace(input.UnitName), x => x.TeamName.Contains(input.UnitName))
|
||||||
|
|||||||
@ -131,9 +131,8 @@ public class EventScoreService : BaseService<EventResult>, ITransient
|
|||||||
.LeftJoin<EventResult>((p, r, res) => p.Id == res.RegistrationPersonId)
|
.LeftJoin<EventResult>((p, r, res) => p.Id == res.RegistrationPersonId)
|
||||||
.LeftJoin<EventCertificate>((p, r, res, c) => res.Id == c.ResultId)
|
.LeftJoin<EventCertificate>((p, r, res, c) => res.Id == c.ResultId)
|
||||||
.Where((p, r, res, c) => r.EventId == input.EventId
|
.Where((p, r, res, c) => r.EventId == input.EventId
|
||||||
&& r.PaymentStatus != 3 // 排除已退款的报名
|
// 线上支付只显示已支付(1),线下支付显示待审核(0)和已支付(1)
|
||||||
&& r.PaymentStatus != 4 // 排除已取消的报名
|
&& ((r.PaymentMethod == 2 && r.PaymentStatus == 1) || (r.PaymentMethod == 1 && (r.PaymentStatus == 0 || r.PaymentStatus == 1)))
|
||||||
&& r.PaymentStatus != 5 // 排除预报名记录
|
|
||||||
&& (p.PersonType == PersonType.Athlete || p.PersonType == PersonType.User));
|
&& (p.PersonType == PersonType.Athlete || p.PersonType == PersonType.User));
|
||||||
|
|
||||||
// 应用筛选条件
|
// 应用筛选条件
|
||||||
@ -172,8 +171,8 @@ public class EventScoreService : BaseService<EventResult>, ITransient
|
|||||||
// 先查找所有可能的 MerchantCertificationId
|
// 先查找所有可能的 MerchantCertificationId
|
||||||
var registrationIds = await _registrationRepository.AsQueryable()
|
var registrationIds = await _registrationRepository.AsQueryable()
|
||||||
.Where(r => r.EventId == input.EventId
|
.Where(r => r.EventId == input.EventId
|
||||||
&& r.PaymentStatus != 3
|
// 线上支付只显示已支付(1),线下支付显示待审核(0)和已支付(1)
|
||||||
&& r.PaymentStatus != 4)
|
&& ((r.PaymentMethod == 2 && r.PaymentStatus == 1) || (r.PaymentMethod == 1 && (r.PaymentStatus == 0 || r.PaymentStatus == 1))))
|
||||||
.Select(r => r.MerchantCertificationId)
|
.Select(r => r.MerchantCertificationId)
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
|
|
||||||
@ -340,7 +339,8 @@ public class EventScoreService : BaseService<EventResult>, ITransient
|
|||||||
var athleteUserIds = await _personRepository.AsQueryable()
|
var athleteUserIds = await _personRepository.AsQueryable()
|
||||||
.InnerJoin<EventRegistration>((p, r) => p.RegistrationId == r.Id)
|
.InnerJoin<EventRegistration>((p, r) => p.RegistrationId == r.Id)
|
||||||
.Where((p, r) => r.EventId == input.EventId
|
.Where((p, r) => r.EventId == input.EventId
|
||||||
&& r.PaymentStatus != 5 // 排除预报名记录
|
// 线上支付只显示已支付(1),线下支付显示待审核(0)和已支付(1)
|
||||||
|
&& ((r.PaymentMethod == 2 && r.PaymentStatus == 1) || (r.PaymentMethod == 1 && (r.PaymentStatus == 0 || r.PaymentStatus == 1)))
|
||||||
&& p.PersonType == PersonType.Athlete && !p.DeleteMark)
|
&& p.PersonType == PersonType.Athlete && !p.DeleteMark)
|
||||||
.Select(p => p.UserId)
|
.Select(p => p.UserId)
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
@ -382,7 +382,8 @@ public class EventScoreService : BaseService<EventResult>, ITransient
|
|||||||
var existingPersons = await _personRepository.AsQueryable()
|
var existingPersons = await _personRepository.AsQueryable()
|
||||||
.InnerJoin<EventRegistration>((p, r) => p.RegistrationId == r.Id)
|
.InnerJoin<EventRegistration>((p, r) => p.RegistrationId == r.Id)
|
||||||
.Where((p, r) => r.EventId == input.EventId
|
.Where((p, r) => r.EventId == input.EventId
|
||||||
&& r.PaymentStatus != 5 // 排除预报名记录
|
// 线上支付只显示已支付(1),线下支付显示待审核(0)和已支付(1)
|
||||||
|
&& ((r.PaymentMethod == 2 && r.PaymentStatus == 1) || (r.PaymentMethod == 1 && (r.PaymentStatus == 0 || r.PaymentStatus == 1)))
|
||||||
&& coachLeaderUserIds.Contains(p.UserId) && p.PersonType == input.PersonType && !p.DeleteMark)
|
&& coachLeaderUserIds.Contains(p.UserId) && p.PersonType == input.PersonType && !p.DeleteMark)
|
||||||
.LeftJoin<YD_Event.Core.Entities.AppUser>((p, r, u) => p.UserId == u.Id)
|
.LeftJoin<YD_Event.Core.Entities.AppUser>((p, r, u) => p.UserId == u.Id)
|
||||||
.Select((p, r, u) => new
|
.Select((p, r, u) => new
|
||||||
@ -551,7 +552,9 @@ public class EventScoreService : BaseService<EventResult>, ITransient
|
|||||||
// 步骤2:批量预加载该赛事的所有人员数据(包含团队信息)
|
// 步骤2:批量预加载该赛事的所有人员数据(包含团队信息)
|
||||||
var allPersonsWithTeam = await _personRepository.AsQueryable()
|
var allPersonsWithTeam = await _personRepository.AsQueryable()
|
||||||
.InnerJoin<EventRegistration>((p, r) => p.RegistrationId == r.Id)
|
.InnerJoin<EventRegistration>((p, r) => p.RegistrationId == r.Id)
|
||||||
.Where((p, r) => r.EventId == eventId)
|
.Where((p, r) => r.EventId == eventId
|
||||||
|
// 线上支付只显示已支付(1),线下支付显示待审核(0)和已支付(1)
|
||||||
|
&& ((r.PaymentMethod == 2 && r.PaymentStatus == 1) || (r.PaymentMethod == 1 && (r.PaymentStatus == 0 || r.PaymentStatus == 1))))
|
||||||
.Select((p, r) => new {
|
.Select((p, r) => new {
|
||||||
p.Id,
|
p.Id,
|
||||||
p.RegistrationItemId,
|
p.RegistrationItemId,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user