This commit is contained in:
zpc 2026-02-04 00:43:50 +08:00
parent 3fc2c8eea5
commit 69b3c02b60

View File

@ -63,26 +63,28 @@ public class WelfareService : IWelfareService
// 构建查询
var now = DateTime.Now;
var query = _dbContext.Goods
.Where(g => g.Status == type
&& g.Type == WelfareType
&& g.IsOpen == (type == 1 ? (byte)0 : (byte)1)
&& g.UnlockAmount <= userTotalConsumption);
IQueryable<Good> query;
// type=1 进行中:只显示开奖时间未到的福利屋
if (type == 1)
{
query = query.Where(g => g.OpenTime == null || g.OpenTime > now);
}
// 排序
if (type == 1)
{
query = query.OrderByDescending(g => g.Sort).ThenByDescending(g => g.Id);
// type=1 进行中Status=1, IsOpen=0, 且开奖时间未到
query = _dbContext.Goods
.Where(g => g.Status == 1
&& g.Type == WelfareType
&& g.IsOpen == 0
&& g.UnlockAmount <= userTotalConsumption
&& (g.OpenTime == null || g.OpenTime > now))
.OrderByDescending(g => g.Sort)
.ThenByDescending(g => g.Id);
}
else
{
query = query.OrderByDescending(g => g.OpenTime);
// type=3 已结束:已开奖的 或 开奖时间已过但未开奖的
query = _dbContext.Goods
.Where(g => g.Type == WelfareType
&& g.UnlockAmount <= userTotalConsumption
&& (g.IsOpen == 1 || (g.OpenTime != null && g.OpenTime <= now)))
.OrderByDescending(g => g.OpenTime);
}
// 获取总数
@ -593,26 +595,28 @@ public class WelfareService : IWelfareService
// 构建查询
var now = DateTime.Now;
var query = _dbContext.Goods
.Where(g => g.Status == type
&& g.Type == WelfareType
&& g.IsOpen == (type == 1 ? (byte)0 : (byte)1)
&& g.UnlockAmount <= userTotalConsumption);
IQueryable<Good> query;
// type=1 进行中:只显示开奖时间未到的福利屋
if (type == 1)
{
query = query.Where(g => g.OpenTime == null || g.OpenTime > now);
}
// 排序
if (type == 1)
{
query = query.OrderByDescending(g => g.Sort).ThenByDescending(g => g.Id);
// type=1 进行中Status=1, IsOpen=0, 且开奖时间未到
query = _dbContext.Goods
.Where(g => g.Status == 1
&& g.Type == WelfareType
&& g.IsOpen == 0
&& g.UnlockAmount <= userTotalConsumption
&& (g.OpenTime == null || g.OpenTime > now))
.OrderByDescending(g => g.Sort)
.ThenByDescending(g => g.Id);
}
else
{
query = query.OrderByDescending(g => g.OpenTime);
// type=3 已结束:已开奖的 或 开奖时间已过但未开奖的
query = _dbContext.Goods
.Where(g => g.Type == WelfareType
&& g.UnlockAmount <= userTotalConsumption
&& (g.IsOpen == 1 || (g.OpenTime != null && g.OpenTime <= now)))
.OrderByDescending(g => g.OpenTime);
}
// 获取总数计算最后一页