diff --git a/BBWY.Server.API/Controllers/OrderSyncController.cs b/BBWY.Server.API/Controllers/OrderSyncController.cs index 0661e0c0..3655d8a3 100644 --- a/BBWY.Server.API/Controllers/OrderSyncController.cs +++ b/BBWY.Server.API/Controllers/OrderSyncController.cs @@ -85,5 +85,14 @@ namespace BBWY.Server.API.Controllers { orderSyncBusiness.CheckJDPauseOrder(shopId); } + + /// + /// 删除过期的待付款订单 + /// + [HttpPost] + public void DeleteTimeOutWaitPayOrder() + { + orderSyncBusiness.DeleteTimeOutWaitPayOrder(); + } } } diff --git a/BBWY.Server.Business/Sync/OrderSkuSaleDetailSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderSkuSaleDetailSyncBusiness.cs index d8d7006e..0252010d 100644 --- a/BBWY.Server.Business/Sync/OrderSkuSaleDetailSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/OrderSkuSaleDetailSyncBusiness.cs @@ -88,59 +88,6 @@ namespace BBWY.Server.Business CancelItemTotal = (int)g.Sum(g.Value.Item1.ItemTotal) }); - var giftOskuGroups = fsql.Select() - .InnerJoin((gos, go) => gos.GiftOrderId == go.Id) - .WhereIf(shopId != null, (gos, go) => go.ShopId == shopId) - .Where((gos, go) => go.StartTime >= startDate && go.StartTime <= endTime) - //.Where((gos, go) => go.OrderState != Model.Enums.OrderState.已取消) - .GroupBy((gos, go) => new - { - go.Platform, - go.ShopId, - gos.ProductId, - gos.SkuId, - gos.Price, - go.StartTime.Value.Date - }) - .ToList(g => new SkuDailySalesDetail - { - Platform = g.Key.Platform, - ShopId = g.Key.ShopId, - Spu = g.Key.ProductId, - Sku = g.Key.SkuId, - Date = g.Key.Date, - Price = g.Key.Price, - Amount = g.Sum(g.Value.Item1.Price * g.Value.Item1.ItemTotal), - ItemTotal = (int)g.Sum(g.Value.Item1.ItemTotal) - }); - - var cancelGiftOskuGroups = fsql.Select() - .InnerJoin((gos, go) => gos.GiftOrderId == go.Id) - .WhereIf(shopId != null, (gos, go) => go.ShopId == shopId) - .Where((gos, go) => go.ModifyTime >= startDate && go.ModifyTime <= endTime) - .Where((gos, go) => go.OrderState == Model.Enums.OrderState.已取消) - .GroupBy((gos, go) => new - { - go.Platform, - go.ShopId, - gos.ProductId, - gos.SkuId, - gos.Price, - go.ModifyTime.Value.Date - }) - .ToList(g => new SkuDailySalesDetail - { - Platform = g.Key.Platform, - ShopId = g.Key.ShopId, - Spu = g.Key.ProductId, - Sku = g.Key.SkuId, - Date = g.Key.Date, - Price = g.Key.Price, - Amount = 0, - ItemTotal = 0, - CancelItemTotal = (int)g.Sum(g.Value.Item1.ItemTotal) - }); - insertSkuDailySalesDetailList.AddRange(oskuGroups); foreach (var canceloSkuGroup in cancelOskuGroups) @@ -154,33 +101,6 @@ namespace BBWY.Server.Business insertSkuDailySalesDetailList.Add(canceloSkuGroup); } - foreach (var giftOskuGroup in giftOskuGroups) - { - var skuDaily = insertSkuDailySalesDetailList.FirstOrDefault(s => s.ShopId == giftOskuGroup.ShopId && - s.Date == giftOskuGroup.Date && - s.Sku == giftOskuGroup.Sku); - if (skuDaily != null) - { - skuDaily.ItemTotal += giftOskuGroup.ItemTotal; - skuDaily.Amount += giftOskuGroup.Amount; - } - else - insertSkuDailySalesDetailList.Add(giftOskuGroup); - } - - - foreach (var cancelGiftOskuGroup in cancelGiftOskuGroups) - { - var skuDaily = insertSkuDailySalesDetailList.FirstOrDefault(s => s.ShopId == cancelGiftOskuGroup.ShopId && - s.Date == cancelGiftOskuGroup.Date && - s.Sku == cancelGiftOskuGroup.Sku); - if (skuDaily != null) - skuDaily.CancelItemTotal = cancelGiftOskuGroup.CancelItemTotal; - else - insertSkuDailySalesDetailList.Add(cancelGiftOskuGroup); - } - - if (insertSkuDailySalesDetailList.Count() > 0) { var noSpuSkuIds = insertSkuDailySalesDetailList.Where(s => string.IsNullOrEmpty(s.Spu)).Select(s => s.Sku).Distinct().ToList(); diff --git a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs index f345e429..c6c8ad30 100644 --- a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs @@ -192,10 +192,9 @@ namespace BBWY.Server.Business private void SyncJDOrder(JArray orderTokenJArray, long shopId, string relayAPIHost, string appKey, string appSecret, string appToken, decimal platformCommissionRatio) { - //if (shopId == 10388155) - //{ - // nLogManager.GetLogger("订单同步-布莱特玩具专营店").Info(JsonConvert.SerializeObject(orderTokenJArray)); - //} + var validOrders = orderTokenJArray.Where(o => o.Value("orderState") != "NOT_PAY"); + if (validOrders.Count() == 0) + return; #region 数据库操作 List insertOrderList = new List(); @@ -205,91 +204,14 @@ namespace BBWY.Server.Business List insertOrderSkuList = new List(); List insertOrderCouponList = new List(); - List insertGiftOrderList = new List(); - List insertGiftOrderSkuList = new List(); - IList> updateGiftOrderList = new List>(); - IList> updateOrderList = new List>(); IList> updatePurchaseOrderList = new List>(); #endregion - #region 赠品 - var giftOrderJArray = orderTokenJArray.Where(o => o.Value("orderTotalPrice") == 0M); - if (giftOrderJArray.Count() > 0) - { - var giftOrderIds = giftOrderJArray.Select(orderJToken => orderJToken.Value("orderId")).ToArray(); - var dbGiftOrderList = fsql.Select(giftOrderIds).ToList(); - var dbGiftOrderIds = dbGiftOrderList.Select(go => go.Id).ToList(); - - var exceptIds = giftOrderIds.Except(dbGiftOrderIds); - if (exceptIds.Count() > 0) - { - var newGiftOrderJArray = giftOrderJArray.Where(o => exceptIds.Contains(o.Value("orderId"))); - foreach (var orderJToken in newGiftOrderJArray) - { - var orderState = ConvertOrderState(orderJToken); - if (orderState == Enums.OrderState.待付款 || orderState == Enums.OrderState.已取消) - continue; - var orderStartTime = orderJToken.Value("orderStartTime"); - var modifyTime = orderJToken.Value("modified"); - insertGiftOrderList.Add(new GiftOrder() - { - Id = orderJToken.Value("orderId"), - CreateTime = DateTime.Now, - Platform = Enums.Platform.京东, - ShopId = shopId, - StartTime = orderStartTime, - ModifyTime = modifyTime, - OrderState = orderState - }); - - var itemInfoList = orderJToken["itemInfoList"] as JArray; - foreach (var orderSkuJToken in itemInfoList) - { - var itemTotal = orderSkuJToken.Value("itemTotal"); - var jdPrice = orderSkuJToken.Value("jdPrice"); - var wareId = orderSkuJToken.Value("wareId"); - var skuId = orderSkuJToken.Value("skuId"); - insertGiftOrderSkuList.Add(new GiftOrderSku() - { - Id = idGenerator.NewLong(), - CreateTime = DateTime.Now, - GiftOrderId = orderJToken.Value("orderId"), - ItemTotal = itemTotal, - Price = jdPrice, - ProductId = wareId, - ShopId = shopId, - SkuId = skuId - }); - } - } - } - - var intersectIds = giftOrderIds.Intersect(dbGiftOrderIds); - if (intersectIds.Count() > 0) - { - foreach (var intersercId in intersectIds) - { - var orderJToken = giftOrderJArray.FirstOrDefault(o => o.Value("orderId") == intersercId); - var dbGiftOrder = dbGiftOrderList.FirstOrDefault(o => o.Id == intersercId); - var orderState = ConvertOrderState(orderJToken); - if (orderState != null && orderState != dbGiftOrder.OrderState) - { - var modifyTime = orderJToken.Value("modified"); - var update = fsql.Update(intersercId).Set(go => go.OrderState, orderState) - .Set(go => go.ModifyTime, modifyTime); - updateGiftOrderList.Add(update); - } - } - } - } - #endregion - - var noGiftOrderList = orderTokenJArray.Where(o => o.Value("orderTotalPrice") != 0M); - var interfaceOrderIdList = noGiftOrderList.Select(orderJToken => orderJToken.Value("orderId")); - var interfaceCanceledOrderIdList = noGiftOrderList.Where(orderJToken => orderJToken.Value("orderState").Equals("TRADE_CANCELED")) - .Select(orderJToken => orderJToken.Value("orderId")); //接口查询结果中取消状态的订单Id + var interfaceOrderIdList = validOrders.Select(orderJToken => orderJToken.Value("orderId")); + var interfaceCanceledOrderIdList = validOrders.Where(orderJToken => orderJToken.Value("orderState").Equals("TRADE_CANCELED")) + .Select(orderJToken => orderJToken.Value("orderId")); //接口查询结果中取消状态的订单Id var dbOrderList = fsql.Select().Where(o => interfaceOrderIdList.Contains(o.Id)).ToList(o => new Order() { @@ -309,7 +231,7 @@ namespace BBWY.Server.Business } var orderSkuIds = new List(); - foreach (var orderJToken in noGiftOrderList) + foreach (var orderJToken in validOrders) { var itemInfoList = orderJToken["itemInfoList"].Where(skuJToken => skuJToken.Value("jdPrice") != 0M); foreach (var josku in itemInfoList) @@ -319,13 +241,13 @@ namespace BBWY.Server.Business orderSkuIds.Add(skuId); } } - var dbPurchaseOrderList = fsql.Select().Where(po => po.RemainingQuantity != 0 && orderSkuIds.Contains(po.SkuId)).ToList(); //数据库采购单 + var dbPurchaseOrderList = fsql.Select().Where(po => po.ShopId == shopId && po.RemainingQuantity != 0 && orderSkuIds.Contains(po.SkuId)).ToList(); //数据库采购单 orderSkuIds.Clear(); - foreach (var orderJToken in noGiftOrderList) + foreach (var orderJToken in validOrders) { var orderId = orderJToken.Value("orderId"); - if (insertOrderList.Count(o => o.Id == orderId) > 0) + if (insertOrderList.Any(o => o.Id == orderId)) continue; var dbOrder = dbOrderList.FirstOrDefault(o => o.Id == orderId); var isNewOrder = dbOrder == null; @@ -358,7 +280,8 @@ namespace BBWY.Server.Business //VenderId = orderJToken.Value("venderId"), WaybillNo = waybillNo, StoreOrder = orderJToken.Value("storeOrder") ?? string.Empty, - StoreId = orderJToken.Value("storeId") + StoreId = orderJToken.Value("storeId"), + IsGift = orderJToken.Value("orderTotalPrice") == 0M || orderJToken.Value("orderSellerPrice") == 0M }; if (memoryCache.TryGetValue(orderId, out sDCalculationCostRequest)) @@ -620,6 +543,7 @@ namespace BBWY.Server.Business if (isNewOrder) { dbOrder.OrderState = orderState; + //dbOrder.IsGift = } else if ((orderState != null && orderState != dbOrder.OrderState) || buyerRemark != dbOrder.BuyerRemark || @@ -684,8 +608,6 @@ namespace BBWY.Server.Business } #endregion - - fsql.Transaction(() => { if (insertOrderList.Count() > 0) @@ -701,11 +623,6 @@ namespace BBWY.Server.Business if (insertOrderCouponList.Count() > 0) fsql.Insert(insertOrderCouponList).ExecuteAffrows(); - if (insertGiftOrderList.Count() > 0) - fsql.Insert(insertGiftOrderList).ExecuteAffrows(); - if (insertGiftOrderSkuList.Count() > 0) - fsql.Insert(insertGiftOrderSkuList).ExecuteAffrows(); - if (updatePurchaseOrderList.Count() > 0) { foreach (var update in updatePurchaseOrderList) @@ -717,13 +634,6 @@ namespace BBWY.Server.Business foreach (var update in updateOrderList) update.ExecuteAffrows(); } - - if (updateGiftOrderList.Count() > 0) - { - foreach (var update in updateGiftOrderList) - update.ExecuteAffrows(); - } - }); } @@ -838,7 +748,7 @@ namespace BBWY.Server.Business #region 同步暂停订单 public void CheckJDPauseOrder(long? shopId) { - var shopList = venderBusiness.GetShopList(shopId); + var shopList = venderBusiness.GetShopList(shopId, platform: Enums.Platform.京东); var shopIds = shopList.Select(s => long.Parse(s.ShopId)).ToList(); var deleteRow = fsql.Select().Where(wo => shopIds.Contains(wo.ShopId.Value)) @@ -869,6 +779,11 @@ namespace BBWY.Server.Business } } + public void DeleteTimeOutWaitPayOrder() + { + var deleteTime = DateTime.Now.AddHours(-24); + fsql.Delete().Where(w => w.CreateTime <= deleteTime).ExecuteAffrows(); + } #endregion } } diff --git a/BBWY.Server.Model/Db/Order/GiftOrder.cs b/BBWY.Server.Model/Db/Order/GiftOrder.cs deleted file mode 100644 index e10ad540..00000000 --- a/BBWY.Server.Model/Db/Order/GiftOrder.cs +++ /dev/null @@ -1,34 +0,0 @@ -using FreeSql.DataAnnotations; -using System; - -namespace BBWY.Server.Model.Db -{ - - [Table(Name = "giftorder", DisableSyncStructure = true)] - public partial class GiftOrder - { - - [Column(StringLength = 50, IsPrimary = true, IsNullable = false)] - public string Id { get; set; } - - [Column(DbType = "datetime")] - public DateTime? CreateTime { get; set; } - - [Column(DbType = "datetime")] - public DateTime? ModifyTime { get; set; } - - [Column(MapType = typeof(int?))] - public Enums.OrderState? OrderState { get; set; } - - [Column(MapType = typeof(int))] - public Enums.Platform Platform { get; set; } - - - public long ShopId { get; set; } - - [Column(DbType = "datetime")] - public DateTime? StartTime { get; set; } - - } - -} diff --git a/BBWY.Server.Model/Db/Order/GiftOrderSku.cs b/BBWY.Server.Model/Db/Order/GiftOrderSku.cs deleted file mode 100644 index 461039b3..00000000 --- a/BBWY.Server.Model/Db/Order/GiftOrderSku.cs +++ /dev/null @@ -1,36 +0,0 @@ -using FreeSql.DataAnnotations; -using System; - -namespace BBWY.Server.Model.Db -{ - - [Table(Name = "giftordersku", DisableSyncStructure = true)] - public partial class GiftOrderSku { - - [Column(DbType = "datetime")] - public DateTime? CreateTime { get; set; } - - [Column(StringLength = 50)] - public string GiftOrderId { get; set; } - - - public long? Id { get; set; } - - - public int? ItemTotal { get; set; } - - [Column(DbType = "decimal(18,2)")] - public decimal? Price { get; set; } - - [Column(StringLength = 50)] - public string ProductId { get; set; } - - - public long? ShopId { get; set; } - - [Column(StringLength = 50)] - public string SkuId { get; set; } - - } - -} diff --git a/JD.API/Controllers/PlatformSDKController.cs b/JD.API/Controllers/PlatformSDKController.cs index 3e49f5f9..5436dbba 100644 --- a/JD.API/Controllers/PlatformSDKController.cs +++ b/JD.API/Controllers/PlatformSDKController.cs @@ -16,7 +16,7 @@ namespace JD.API.API.Controllers [Produces("application/json")] [Route("Api/[Controller]/[Action]")] [ApiController] - [ServiceFilter(typeof(YunDingFilter))] + //[ServiceFilter(typeof(YunDingFilter))] public class PlatformSDKController : ControllerBase { private IEnumerable platformSDKBusinessList;