diff --git a/BBWY.Server.API/Controllers/OrderSyncController.cs b/BBWY.Server.API/Controllers/OrderSyncController.cs index 9598fd0f..a3323cab 100644 --- a/BBWY.Server.API/Controllers/OrderSyncController.cs +++ b/BBWY.Server.API/Controllers/OrderSyncController.cs @@ -47,16 +47,16 @@ namespace BBWY.Server.API.Controllers orderSyncBusiness.ManualSyncOrder(shopId, orderIds, null, null); } - /// - /// 订单批量删除 - /// - /// - /// - [HttpPost("{shopId}")] - public void OrderDelete([FromRoute]long shopId, [FromBody]IList orderIds) - { - orderSyncBusiness.OrderDelete(shopId, orderIds); - } + ///// + ///// 订单批量删除 + ///// + ///// + ///// + //[HttpPost("{shopId}")] + //public void OrderDelete([FromRoute]long shopId, [FromBody]IList orderIds) + //{ + // orderSyncBusiness.OrderDelete(shopId, orderIds); + //} /// /// 根据日期同步 @@ -105,5 +105,13 @@ namespace BBWY.Server.API.Controllers orderSyncBusiness.DeleteTimeOutWaitPayOrder(); } + /// + /// 修复订单Sku缺少的spu + /// + [HttpPost] + public void RepairOrderSkuProductId() + { + orderSyncBusiness.RepairOrderSkuProductId(); + } } } diff --git a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs index a536cd55..522107fc 100644 --- a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs @@ -866,6 +866,37 @@ namespace BBWY.Server.Business var deleteTime = DateTime.Now.AddHours(-24); fsql.Delete().Where(w => w.CreateTime <= deleteTime).ExecuteAffrows(); } + + /// + /// 修复订单Sku缺少的spu + /// + public void RepairOrderSkuProductId() + { + var date = DateTime.Now.AddHours(-2); + var waitRepairOrderSkuList = fsql.Select() + .InnerJoin((osku, psku) => osku.SkuId == psku.Id) + .Where((osku, psku) => osku.CreateTime >= date && string.IsNullOrEmpty(osku.ProductId) && osku.Price > 0) + .ToList((osku, psku) => new + { + Id = osku.Id, + SkuId = osku.SkuId, + ProductId = psku.ProductId + }); + if (waitRepairOrderSkuList.Count() == 0) + return; + + var waitRepairOrderSkuGroupList = waitRepairOrderSkuList.GroupBy(s => s.ProductId); + + fsql.Transaction(() => + { + foreach (var group in waitRepairOrderSkuGroupList) + { + var orderSkuIds = group.Select(g => g.Id).ToList(); + var productId = group.Key; + fsql.Update(orderSkuIds).Set(osku => osku.ProductId, productId).ExecuteAffrows(); + } + }); + } #endregion } }