Browse Source

Merge branch 'associatPurchaseOrder'

updatebug
shanji 2 years ago
parent
commit
cc91d88232
  1. 10
      BBWYB.Server.API/Controllers/PurchaseOrderController.cs
  2. 1
      BBWYB.Server.API/appsettings.json
  3. 50
      BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
  4. 15
      BBWYB.Server.Model/Dto/Request/PurchaseOrder/SetHistoryPurchaseOrderRequest.cs

10
BBWYB.Server.API/Controllers/PurchaseOrderController.cs

@ -58,6 +58,16 @@ namespace BBWYB.Server.API.Controllers
purchaseOrderBusiness.AssociatePurchaseOrder(request);
}
/// <summary>
/// 设置历史采购单
/// </summary>
/// <param name="request"></param>
[HttpPost]
public void SetHistoryPurchaseOrder([FromBody] SetHistoryPurchaseOrderRequest request)
{
purchaseOrderBusiness.SetHistoryPurchaseOrder(request);
}
/// <summary>
/// 1688回调
/// </summary>

1
BBWYB.Server.API/appsettings.json

@ -14,7 +14,6 @@
},
"AllowedSwagger": true,
"Secret": "D96BFA5B-F2AF-45BC-9342-5A55C3F9BBB0",
//ApiVersionRequirements
"ApiVersionRequirements": [
{
"Api": "/api/purchaseOrder/createpurchaseorder",

50
BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs

@ -466,7 +466,10 @@ namespace BBWYB.Server.Business
if (request.AssociationPurchaseOrderList == null || request.AssociationPurchaseOrderList.Count() == 0)
throw new BusinessException("缺少采购单信息");
var dbPurchaseOrderList = fsql.Select<OrderPurchaseInfo>().Where(opi => opi.OrderId == request.OrderId && opi.IsEnabled == true).ToList();
var dbPurchaseOrderList = fsql.Select<OrderPurchaseInfo>().Where(opi => opi.OrderId == request.OrderId).ToList();
var dbInvalidPurchaseOrderIdList = dbPurchaseOrderList.Where(opi => !opi.IsEnabled).Select(opi => opi.PurchaseOrderId).ToList();
var dbOrderSkuList = fsql.Select<OrderSku>().Where(osku => osku.OrderId == request.OrderId).ToList();
var dbOrderCostDetailList = fsql.Select<OrderCostDetail>().Where(ocd => ocd.OrderId == request.OrderId && ocd.IsEnabled == true).ToList();
var dbOrderCost = fsql.Select<OrderCost>(request.OrderId).ToOne();
@ -481,6 +484,9 @@ namespace BBWYB.Server.Business
foreach (var purchaseOrder in request.AssociationPurchaseOrderList)
{
if (dbInvalidPurchaseOrderIdList.Contains(purchaseOrder.PurchaserOrderId))
continue;
var avgFreight = purchaseOrder.PurchaseFreight / purchaseOrder.AssocationOrderCostDetailList.Count();
var dbPurchaserOrder = dbPurchaseOrderList.FirstOrDefault(x => x.PurchaseOrderId == purchaseOrder.PurchaserOrderId);
if (dbPurchaserOrder == null)
@ -543,8 +549,8 @@ namespace BBWYB.Server.Business
}
}
var totalPurchaseAmount = request.AssociationPurchaseOrderList.Sum(p => p.PurchaseAmount + p.PurchaseFreight);
var totalPurchaseAmount = request.AssociationPurchaseOrderList.Where(x => !dbInvalidPurchaseOrderIdList.Contains(x.PurchaserOrderId))
.Sum(p => p.PurchaseAmount + p.PurchaseFreight);
var profit = dbOrder.OrderTotalPrice - totalPurchaseAmount - (dbOrderCost?.DeliveryExpressFreight ?? 0); // -orderCost.PlatformCommissionAmount
if (dbOrderCost == null)
@ -594,6 +600,44 @@ namespace BBWYB.Server.Business
});
}
public void SetHistoryPurchaseOrder(SetHistoryPurchaseOrderRequest request)
{
var dbOrderCostDetailList = fsql.Select<OrderCostDetail>().Where(ocd => ocd.OrderId == request.OrderId)
.ToList();
var dbOrderCost = fsql.Select<OrderCost>(request.OrderId).ToOne();
var dbOrder = fsql.Select<Order>(request.OrderId).ToOne();
var invalidCost = dbOrderCostDetailList.Sum(ocd => ocd.SkuAmount + ocd.PurchaseFreight);
//orderCost.PlatformCommissionAmount = dbOrder.OrderSellerPrice * orderCost.PlatformCommissionRatio;
try
{
dbOrderCost.PurchaseAmount = dbOrderCostDetailList.Where(ocd => ocd.PurchaseOrderId != request.PurchaseOrderId).Sum(ocd => ocd.TotalCost);
}
catch
{
dbOrderCost.PurchaseAmount = 0;
}
dbOrderCost.Profit = dbOrder.OrderTotalPrice -
dbOrderCost.PurchaseAmount -
dbOrderCost.DeliveryExpressFreight; // -orderCost.PlatformCommissionAmount
fsql.Transaction(() =>
{
fsql.Update<OrderPurchaseInfo>()
.Set(opi => opi.IsEnabled, false)
.Where(opi => opi.PurchaseOrderId == request.PurchaseOrderId)
.ExecuteAffrows();
fsql.Update<OrderCostDetail>()
.Set(ocd => ocd.IsEnabled, false)
.Where(ocd => ocd.PurchaseOrderId == request.PurchaseOrderId)
.ExecuteAffrows();
fsql.Update<OrderCost>().SetSource(dbOrderCost).ExecuteAffrows();
});
}
#region 1688CallBack
public void CallbackFrom1688(string jsonStr)
{

15
BBWYB.Server.Model/Dto/Request/PurchaseOrder/SetHistoryPurchaseOrderRequest.cs

@ -0,0 +1,15 @@
namespace BBWYB.Server.Model.Dto
{
public class SetHistoryPurchaseOrderRequest
{
/// <summary>
/// 订单Id
/// </summary>
public string OrderId { get; set; }
/// <summary>
/// 采购单Id
/// </summary>
public string PurchaseOrderId { get; set; }
}
}
Loading…
Cancel
Save