瀏覽代碼

优化sql 增加索引

田爽 11 月之前
父節點
當前提交
803d8a6cab
共有 3 個文件被更改,包括 7 次插入3 次删除
  1. 1 1
      src/Hotline.Api/Controllers/OrderController.cs
  2. 4 1
      src/Hotline/Orders/Order.cs
  3. 2 1
      src/XF.Domain.Repository/Entity.cs

+ 1 - 1
src/Hotline.Api/Controllers/OrderController.cs

@@ -3008,7 +3008,7 @@ public class OrderController : BaseController
             .WhereIF(dto.ExpiredOrAlmostOverdue.HasValue && dto.ExpiredOrAlmostOverdue == false, d => d.NearlyExpiredTime < DateTime.Now && d.ExpiredTime > DateTime.Now)//即将超期 未办
             .Where(d => d.Source < ESource.MLSQ || d.Source > ESource.WZSC)
             .Where(d => d.Status != EOrderStatus.BackToProvince)
-            .Where(d => d.OrderSpecials.Any() == false || d.OrderSpecials.Any(s => s.State == 0) == false)
+            .Where(d => SqlFunc.Subqueryable<OrderSpecial>().Where(os => os.OrderId  == d.Id).NotAny())
             .OrderByDescending(d => d.StartTime)
             .ToPagedListAsync(dto, HttpContext.RequestAborted);
 

+ 4 - 1
src/Hotline/Orders/Order.cs

@@ -22,7 +22,10 @@ namespace Hotline.Orders
     /// </summary>
     [Description("工单")]
     [SugarIndex("unique_order_no", nameof(Order.No), OrderByType.Desc, true)]
-    public partial class Order : PositionWorkflowEntity
+    [SugarIndex("index_floweduserids", nameof(Order.FlowedUserIds), OrderByType.Asc)]
+    [SugarIndex("index_handlerusers", nameof(Order.HandlerUsers), OrderByType.Asc)]
+    [SugarIndex("index_handlerorgs", nameof(Order.HandlerOrgs), OrderByType.Asc)]
+	public partial class Order : PositionWorkflowEntity
     {
         public Order()
         {

+ 2 - 1
src/XF.Domain.Repository/Entity.cs

@@ -90,10 +90,11 @@ public abstract class SoftDeleteEntity : Entity, IHasDeletionTime, ISoftDelete
 /// <summary>
 /// 实体(带有创建时间和软删除)
 /// </summary>
+[SugarIndex("index_isDeleted", nameof(CreationSoftDeleteEntity.IsDeleted), OrderByType.Asc)]
 public abstract class CreationSoftDeleteEntity : CreationEntity, IHasDeletionTime, ISoftDelete
 {
     [SugarColumn(ColumnDescription = "是否删除", DefaultValue = "f")]
-    public bool IsDeleted { get; set; }
+	public bool IsDeleted { get; set; }
 
     /// <summary>
     /// 删除时间