diff --git a/src/Oms.SqlSugarCore/Orders/OrderRepository.cs b/src/Oms.SqlSugarCore/Orders/OrderRepository.cs index c85d43f..ad4e985 100644 --- a/src/Oms.SqlSugarCore/Orders/OrderRepository.cs +++ b/src/Oms.SqlSugarCore/Orders/OrderRepository.cs @@ -1215,12 +1215,14 @@ public class OrderRepository : OmsSqlSugarRepository, IOrderRepository, I return feeQuery; } + // SqlSugar:在同一 ISugarQueryable 上 Select 后再 Where/ToPageList,会沿用投影列, + // 导致 Amount/Currency 等未选字段落成默认值(金额全 0、币种空)。候选查询与最终查询拆开。 var candidates = await feeQuery .Select(f => new { f.Id, f.OrderId, f.Type, f.CostItem, f.ChargingStage }) .ToListAsync(cancellationToken); if (candidates.Count == 0) { - return feeQuery.Where(_ => false); + return db.Queryable().Where(_ => false); } var winningIds = candidates @@ -1232,7 +1234,9 @@ public class OrderRepository : OmsSqlSugarRepository, IOrderRepository, I .Id) .ToArray(); - return feeQuery.Where(f => winningIds.Contains(f.Id)); + return db.Queryable() + .Where(fee => !fee.IsDeleted) + .Where(f => winningIds.Contains(f.Id)); } private static int GetChargingStageRank(string? stage) =>