From c09ece6e415ee10acb2b2a89afcd2a94a8e7093d Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Sun, 2 Apr 2023 14:47:28 +0800
Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=E8=BF=87=E6=9C=9F=E7=9A=84?=
=?UTF-8?q?=E5=BE=85=E4=BB=98=E6=AC=BE=E8=AE=A2=E5=8D=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controllers/OrderSyncController.cs | 9 ++
.../Sync/OrderSkuSaleDetailSyncBusiness.cs | 80 ------------
.../Sync/OrderSyncBusiness.cs | 123 +++---------------
BBWY.Server.Model/Db/Order/GiftOrder.cs | 34 -----
BBWY.Server.Model/Db/Order/GiftOrderSku.cs | 36 -----
JD.API/Controllers/PlatformSDKController.cs | 2 +-
6 files changed, 29 insertions(+), 255 deletions(-)
delete mode 100644 BBWY.Server.Model/Db/Order/GiftOrder.cs
delete mode 100644 BBWY.Server.Model/Db/Order/GiftOrderSku.cs
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;