From 5acb98d50adb693d31df019fae334e17c1f79c84 Mon Sep 17 00:00:00 2001
From: shanji <18996038927@163.com>
Date: Wed, 29 Jun 2022 13:47:33 +0800
Subject: [PATCH] =?UTF-8?q?ods=E5=88=9B=E5=BB=BA=E6=97=B6=E9=97=B4?=
=?UTF-8?q?=E4=B8=8D=E5=85=81=E8=AE=B8=E4=B8=BA=E7=A9=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controllers/OrderController.cs | 10 -
BBWY.Server.Business/Order/OrderBusiness.cs | 211 ++----------------
2 files changed, 23 insertions(+), 198 deletions(-)
diff --git a/BBWY.Server.API/Controllers/OrderController.cs b/BBWY.Server.API/Controllers/OrderController.cs
index c269630a..3e2fd356 100644
--- a/BBWY.Server.API/Controllers/OrderController.cs
+++ b/BBWY.Server.API/Controllers/OrderController.cs
@@ -102,16 +102,6 @@ namespace BBWY.Server.API.Controllers
orderBusiness.SDCalculationCost(sdCalculationCostRequest);
}
- ///
- /// 关联采购单
- ///
- ///
- [HttpPost]
- public void RelationPurchaseOrder([FromBody] RelationPurchaseOrderRequest relationPurchaseOrderRequest)
- {
- orderBusiness.RelationPurchaseOrder(relationPurchaseOrderRequest);
- }
-
///
/// 关联采购单V2
///
diff --git a/BBWY.Server.Business/Order/OrderBusiness.cs b/BBWY.Server.Business/Order/OrderBusiness.cs
index bc43c98f..c0ae7597 100644
--- a/BBWY.Server.Business/Order/OrderBusiness.cs
+++ b/BBWY.Server.Business/Order/OrderBusiness.cs
@@ -734,171 +734,6 @@ namespace BBWY.Server.Business
});
}
- ///
- /// 关联外部订单
- ///
- ///
- public void RelationPurchaseOrder(RelationPurchaseOrderRequest relationPurchaseOrderRequest)
- {
- var dbOrder = fsql.Select(relationPurchaseOrderRequest.OrderDropShipping.OrderId).ToOne();
- if (dbOrder == null)
- throw new BusinessException($"订单号{relationPurchaseOrderRequest.OrderDropShipping.OrderId}不存在");
-
- if (relationPurchaseOrderRequest.PlatformCommissionRatio == 0M)
- relationPurchaseOrderRequest.PlatformCommissionRatio = 0.05M;
-
- IInsert insertOrderDropShipping = null;
- IUpdate updateOrderDropShipping = null;
- IInsert insertOrderCost = null;
- IUpdate updateOrderCost = null;
- IDelete deletePurchaseOrder = null;
- IDelete deleteOrderCostDetail = null;
- IUpdate updateOrderSku = null;
- List insertPurchaseOrderList = new List();
- List insertOrderCostDetailList = new List();
-
-
- #region 代发信息表
- var dbOrderDropShipping = fsql.Select().Where(ods => ods.OrderId == relationPurchaseOrderRequest.OrderDropShipping.OrderId).ToOne();
- if (dbOrderDropShipping == null)
- {
- var orderDropShipping = relationPurchaseOrderRequest.OrderDropShipping.Map();
- orderDropShipping.CreateTime = DateTime.Now;
- orderDropShipping.ShopId = dbOrder.ShopId;
- orderDropShipping.Id = idGenerator.NewLong();
- insertOrderDropShipping = fsql.Insert(orderDropShipping);
- updateOrderSku = fsql.Update().Set(osku => osku.OrderDropShippingId, orderDropShipping.Id)
- .Where(osku => osku.OrderId == dbOrder.Id);
- }
- else
- {
- var orderDropShippingId = dbOrderDropShipping.Id;
- relationPurchaseOrderRequest.OrderDropShipping.Map(dbOrderDropShipping);
- dbOrderDropShipping.Id = orderDropShippingId;
- updateOrderDropShipping = fsql.Update().IgnoreColumns(new string[] { "CreateTime" }).SetSource(dbOrderDropShipping);
- }
- #endregion
-
- #region 采购单表
- var oldPourchaseIdList = fsql.Select().Where(ocd => ocd.OrderId == relationPurchaseOrderRequest.OrderDropShipping.OrderId)
- .ToList(ocd => ocd.PurchaseOrderPKId);
- deletePurchaseOrder = fsql.Delete().Where(po => oldPourchaseIdList.Contains(po.Id));
- insertPurchaseOrderList.AddRange(relationPurchaseOrderRequest.RelationPurchaseOrderSkuList.Select(x => new PurchaseOrder()
- {
- Id = idGenerator.NewLong(),
- CreateTime = DateTime.Now,
- ProductId = x.ProductId,
- PurchaseMethod = Enums.PurchaseMethod.线下采购,
- StorageType = Enums.StorageType.代发,
- PurchaseOrderId = relationPurchaseOrderRequest.OrderDropShipping.PurchaseOrderId,
- PurchasePlatform = relationPurchaseOrderRequest.OrderDropShipping.PurchasePlatform,
- PurchaseQuantity = x.Quantity,
- RemainingQuantity = 0,
- ShopId = dbOrder.ShopId,
- SkuId = x.SkuId,
- SingleConsumableAmount = 0,
- SingleFirstFreight = 0,
- SingleFreight = relationPurchaseOrderRequest.OrderDropShipping.PurchaseFreight / relationPurchaseOrderRequest.RelationPurchaseOrderSkuList.Count() / x.Quantity,
- SingleOperationAmount = 0,
- SingleStorageAmount = 0,
- SingleSkuAmount = x.SingleSkuAmount,
- SingleDeliveryFreight = 0
- }));
- #endregion
-
- #region 订单成本表
- var orderCost = fsql.Select(relationPurchaseOrderRequest.OrderDropShipping.OrderId).ToOne();
- if (orderCost != null)
- {
- orderCost.PlatformCommissionRatio = relationPurchaseOrderRequest.PlatformCommissionRatio;
- orderCost.PlatformCommissionAmount = dbOrder.OrderSellerPrice * relationPurchaseOrderRequest.PlatformCommissionRatio;
- orderCost.DeliveryExpressFreight = relationPurchaseOrderRequest.OrderDropShipping.DeliveryFreight;
- orderCost.PurchaseAmount = relationPurchaseOrderRequest.OrderDropShipping.PurchaseAmount;
- orderCost.Profit = dbOrder.OrderSellerPrice +
- dbOrder.FreightPrice -
- orderCost.PurchaseAmount -
- orderCost.DeliveryExpressFreight -
- orderCost.PlatformCommissionAmount;
- updateOrderCost = fsql.Update().SetSource(orderCost).IgnoreColumns(oc => new
- {
- oc.CreateTime,
- oc.SDCommissionAmount,
- oc.PlatformCommissionAmount,
- oc.PlatformCommissionRatio
- });
- }
- else
- {
- var preferentialAmount = fsql.Select().Where(oc => oc.OrderId == relationPurchaseOrderRequest.OrderDropShipping.OrderId)
- .ToAggregate(g => g.Sum(g.Key.CouponPrice));
- orderCost = new OrderCost()
- {
- OrderId = relationPurchaseOrderRequest.OrderDropShipping.OrderId,
- CreateTime = DateTime.Now,
- DeliveryExpressFreight = relationPurchaseOrderRequest.OrderDropShipping.DeliveryFreight,
- PlatformCommissionRatio = relationPurchaseOrderRequest.PlatformCommissionRatio,
- SDCommissionAmount = 0,
- PurchaseAmount = relationPurchaseOrderRequest.RelationPurchaseOrderSkuList.Sum(s => s.SingleSkuAmount * s.Quantity),
- PlatformCommissionAmount = dbOrder.OrderSellerPrice * relationPurchaseOrderRequest.PlatformCommissionRatio,
- PreferentialAmount = preferentialAmount,
- IsManualEdited = true
- };
-
- orderCost.Profit = dbOrder.OrderSellerPrice +
- dbOrder.FreightPrice -
- orderCost.PurchaseAmount -
- orderCost.DeliveryExpressFreight -
- orderCost.PlatformCommissionAmount;
- insertOrderCost = fsql.Insert(orderCost);
- }
- #endregion
-
- #region 订单成本明细表
- var oldOrderCostDetailIdList = fsql.Select().Where(ocd => ocd.OrderId == relationPurchaseOrderRequest.OrderDropShipping.OrderId)
- .ToList(ocd => ocd.Id);
- deleteOrderCostDetail = fsql.Delete().Where(ocd => oldOrderCostDetailIdList.Contains(ocd.Id));
- insertOrderCostDetailList.AddRange(relationPurchaseOrderRequest.RelationPurchaseOrderSkuList.Select(x => new OrderCostDetail()
- {
- Id = idGenerator.NewLong(),
- ConsumableAmount = 0,
- CreateTime = DateTime.Now,
- DeductionQuantity = x.Quantity,
- DeliveryExpressFreight = 0,
- FirstFreight = 0,
- OperationAmount = 0,
- OrderId = relationPurchaseOrderRequest.OrderDropShipping.OrderId,
- ProductId = x.ProductId,
- PurchaseFreight = relationPurchaseOrderRequest.OrderDropShipping.PurchaseFreight / relationPurchaseOrderRequest.RelationPurchaseOrderSkuList.Count(),
- SkuAmount = x.SingleSkuAmount * x.Quantity,
- SkuId = x.SkuId,
- StorageAmount = 0,
- TotalCost = x.SingleSkuAmount * x.Quantity + relationPurchaseOrderRequest.OrderDropShipping.PurchaseFreight / relationPurchaseOrderRequest.RelationPurchaseOrderSkuList.Count(),
- UnitCost = x.SingleSkuAmount,
- PurchaseOrderPKId = insertPurchaseOrderList.FirstOrDefault(po => po.SkuId == x.SkuId).Id
- }));
- #endregion
-
- fsql.Transaction(() =>
- {
- deletePurchaseOrder?.ExecuteAffrows();
- deleteOrderCostDetail?.ExecuteAffrows();
- insertOrderDropShipping?.ExecuteAffrows();
- updateOrderDropShipping?.ExecuteAffrows();
- insertOrderCost?.ExecuteAffrows();
- updateOrderCost?.ExecuteAffrows();
- updateOrderSku?.ExecuteAffrows();
- fsql.Insert(insertPurchaseOrderList).ExecuteAffrows();
- fsql.Insert(insertOrderCostDetailList).ExecuteAffrows();
- if (dbOrder.StorageType != Enums.StorageType.代发)
- {
- fsql.Update(relationPurchaseOrderRequest.OrderDropShipping.OrderId)
- .Set(o => o.StorageType, Enums.StorageType.代发)
- .SetIf(dbOrder.OrderState == Enums.OrderState.等待采购, o => o.OrderState, Enums.OrderState.待出库)
- .ExecuteAffrows();
- }
- });
- }
-
///
/// 关联外部订单
///
@@ -941,7 +776,7 @@ namespace BBWY.Server.Business
}
else
{
- updateOrderDropShippingList.Add(fsql.Update().SetSource(orderDropShipping).IgnoreColumns(new string[] { "CreateTime", "ShopId" }));
+ updateOrderDropShippingList.Add(fsql.Update().SetSource(orderDropShipping).IgnoreColumns(ods => new { ods.CreateTime, ods.ShopId }));
}
#endregion
@@ -1052,30 +887,30 @@ namespace BBWY.Server.Business
}
fsql.Transaction(() =>
- {
- deletePurchaseOrder.ExecuteAffrows();
- deleteOrderCostDetail.ExecuteAffrows();
- foreach (var update in updateOrderSkuList)
- update.ExecuteAffrows();
- fsql.Insert(insertPurchaseOrderList).ExecuteAffrows();
- fsql.Insert(insertOrderCostDetailList).ExecuteAffrows();
- insertOrderCost?.ExecuteAffrows();
- updateOrderCost?.ExecuteAffrows();
- if (insertOrderDropShippingList.Count() > 0)
- fsql.Insert(insertOrderDropShippingList).ExecuteAffrows();
- if (updateOrderDropShippingList.Count() > 0)
{
- foreach (var update in updateOrderDropShippingList)
+ deletePurchaseOrder.ExecuteAffrows();
+ deleteOrderCostDetail.ExecuteAffrows();
+ foreach (var update in updateOrderSkuList)
update.ExecuteAffrows();
- }
- if (dbOrder.StorageType != Enums.StorageType.代发)
- {
- fsql.Update(dbOrder.Id)
- .Set(o => o.StorageType, Enums.StorageType.代发)
- .SetIf(dbOrder.OrderState == Enums.OrderState.等待采购, o => o.OrderState, Enums.OrderState.待出库)
- .ExecuteAffrows();
- }
- });
+ fsql.Insert(insertPurchaseOrderList).ExecuteAffrows();
+ fsql.Insert(insertOrderCostDetailList).ExecuteAffrows();
+ insertOrderCost?.ExecuteAffrows();
+ updateOrderCost?.ExecuteAffrows();
+ if (insertOrderDropShippingList.Count() > 0)
+ fsql.Insert(insertOrderDropShippingList).ExecuteAffrows();
+ if (updateOrderDropShippingList.Count() > 0)
+ {
+ foreach (var update in updateOrderDropShippingList)
+ update.ExecuteAffrows();
+ }
+ if (dbOrder.StorageType != Enums.StorageType.代发)
+ {
+ fsql.Update(dbOrder.Id)
+ .Set(o => o.StorageType, Enums.StorageType.代发)
+ .SetIf(dbOrder.OrderState == Enums.OrderState.等待采购, o => o.OrderState, Enums.OrderState.待出库)
+ .ExecuteAffrows();
+ }
+ });
}
///