订阅轨迹中心轨迹状态,变更运单状态 #15

Merged
zzh merged 4 commits from test into master 2026-10-27 17:50:21 +08:00
2 changed files with 23 additions and 5 deletions
Showing only changes of commit fef409a4ce - Show all commits

View File

@ -108,7 +108,10 @@ public partial class OrderService : ApplicationService
StringComparer.OrdinalIgnoreCase);
var output = new OrderStatusCountsOutput
{
Total = rows.Sum(x => x.Count),
// 「全部」不含已删除;已删除单独走 deleted Tab
Total = rows
.Where(x => !string.Equals(x.Status, OrderStatusCodes.Deleted, StringComparison.OrdinalIgnoreCase))
.Sum(x => x.Count),
Counts = counts,
HandleCounts = handleCounts
};
@ -441,6 +444,7 @@ public partial class OrderService : ApplicationService
throw new BusinessException("仅草稿或已预报订单可删除");
}
// 业务删除:只改 OrderStatus=deleted,不做 IsDeleted 软删,否则「已删除」Tab 因全局软删过滤永远查不到。
order.OrderStatus = OrderStatusCodes.Deleted;
if (order.IsPaid > 0 && order.CustomerId.HasValue)
{
@ -460,7 +464,6 @@ public partial class OrderService : ApplicationService
}
await OrderRepository.UpdateAsync(order);
await OrderRepository.DeleteAsync(order);
}
/// <summary>

View File

@ -48,8 +48,18 @@ public class OrderRepository : OmsSqlSugarRepository<Order>, IOrderRepository, I
}
var status = filter.Status?.Trim();
if (!string.IsNullOrWhiteSpace(status)
&& !string.Equals(status, "all", StringComparison.OrdinalIgnoreCase))
var isDeletedTab = string.Equals(status, OrderStatusCodes.Deleted, StringComparison.OrdinalIgnoreCase);
if (isDeletedTab)
{
// 历史删除曾同时软删(IsDeleted=true),需清过滤才能在「已删除」看到
query = query.ClearFilter().Where(x => x.OrderStatus == OrderStatusCodes.Deleted);
}
else if (string.Equals(status, "all", StringComparison.OrdinalIgnoreCase))
{
// 列表「全部」不含已删除;status 为空时留给 status-counts 聚合(需含 deleted 桶)
query = query.Where(x => x.OrderStatus != OrderStatusCodes.Deleted);
}
else if (!string.IsNullOrWhiteSpace(status))
{
query = query.Where(x => x.OrderStatus == status);
}
@ -1352,7 +1362,12 @@ public class OrderRepository : OmsSqlSugarRepository<Order>, IOrderRepository, I
CancellationToken cancellationToken = default)
{
var db = await GetDbContextAsync(cancellationToken);
var query = ApplyListFilter(db.Queryable<Order>(), filter);
// 含历史「状态=deleted 且已软删」的单据,保证已删除 Tab 角标可见
var query = ApplyListFilter(
db.Queryable<Order>()
.ClearFilter()
.Where(x => !x.IsDeleted || x.OrderStatus == OrderStatusCodes.Deleted),
filter);
return await query
.GroupBy(x => x.OrderStatus)