Browse Source

完善采购接口

qianyi
shanji 3 years ago
parent
commit
c5975fbeab
  1. 2
      BBWY.Server.API/Controllers/PurchaseOrderController.cs
  2. 10
      BBWY.Server.Business/BBWY.Server.Business.csproj
  3. 108
      BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
  4. 6
      BBWY.Server.Model/Db/Order/OrderDropShipping.cs
  5. 3
      BBWY.Server.Model/Db/PurchaseOrder/PurchaseOrder.cs
  6. 7
      BBWY.Server.Model/Dto/Request/PurchaseOrder/OnlinePurchase/CreateOnlinePurchaseOrderRequest.cs

2
BBWY.Server.API/Controllers/PurchaseOrderController.cs

@ -58,7 +58,7 @@ namespace BBWY.Server.API.Controllers
/// </summary> /// </summary>
/// <param name="createOnlinePurchaseOrderRequest"></param> /// <param name="createOnlinePurchaseOrderRequest"></param>
[HttpPost] [HttpPost]
public void FastCreateOrder(CreateOnlinePurchaseOrderRequest createOnlinePurchaseOrderRequest) public void FastCreateOrder([FromBody]CreateOnlinePurchaseOrderRequest createOnlinePurchaseOrderRequest)
{ {
purchaseOrderBusiness.FastCreateOrder(createOnlinePurchaseOrderRequest); purchaseOrderBusiness.FastCreateOrder(createOnlinePurchaseOrderRequest);
} }

10
BBWY.Server.Business/BBWY.Server.Business.csproj

@ -5,6 +5,12 @@
<GenerateDocumentationFile>True</GenerateDocumentationFile> <GenerateDocumentationFile>True</GenerateDocumentationFile>
</PropertyGroup> </PropertyGroup>
<ItemGroup>
<Compile Remove="新文件夹\**" />
<EmbeddedResource Remove="新文件夹\**" />
<None Remove="新文件夹\**" />
</ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="FreeSql" Version="2.6.100" /> <PackageReference Include="FreeSql" Version="2.6.100" />
<PackageReference Include="FreeSql.Provider.MySql" Version="2.6.100" /> <PackageReference Include="FreeSql.Provider.MySql" Version="2.6.100" />
@ -21,8 +27,4 @@
<ProjectReference Include="..\BBWY.Server.Model\BBWY.Server.Model.csproj" /> <ProjectReference Include="..\BBWY.Server.Model\BBWY.Server.Model.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<Folder Include="新文件夹\" />
</ItemGroup>
</Project> </Project>

108
BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs

@ -2,6 +2,7 @@
using BBWY.Common.Models; using BBWY.Common.Models;
using BBWY.Server.Model.Db; using BBWY.Server.Model.Db;
using BBWY.Server.Model.Dto; using BBWY.Server.Model.Dto;
using FreeSql;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
@ -74,10 +75,117 @@ namespace BBWY.Server.Business
{ {
if (createOnlinePurchaseOrderRequest.Platform != Model.Enums.Platform.) if (createOnlinePurchaseOrderRequest.Platform != Model.Enums.Platform.)
throw new NotImplementedException(); throw new NotImplementedException();
var dbOrder = fsql.Select<Order>(createOnlinePurchaseOrderRequest.OrderId).ToOne();
if (dbOrder == null)
throw new BusinessException("订单不存在");
if (dbOrder.OrderState != Model.Enums.OrderState.)
throw new BusinessException("只能为等待采购的订单进行采购");
var orderSku = fsql.Select<OrderSku>().Where(osku => osku.OrderId == createOnlinePurchaseOrderRequest.OrderId).ToOne();
if (orderSku == null)
throw new BusinessException("订单Sku不存在");
var createOrderResponse = platformSDKBusinessList.FirstOrDefault(p => p.Platform == createOnlinePurchaseOrderRequest.Platform) var createOrderResponse = platformSDKBusinessList.FirstOrDefault(p => p.Platform == createOnlinePurchaseOrderRequest.Platform)
.FastCreateOrder(createOnlinePurchaseOrderRequest); .FastCreateOrder(createOnlinePurchaseOrderRequest);
IInsert<PurchaseOrder> insertPurchaseOrder = null;
IInsert<OrderCostDetail> insertOrderCostDetail = null;
IInsert<OrderCost> insertOrderCost = null;
IInsert<OrderDropShipping> insertOrderDropShipping = null;
#region 采购单
var purchaseOrder = new PurchaseOrder()
{
Id = idGenerator.NewLong(),
CreateTime = DateTime.Now,
ProductId = orderSku.ProductId,
SkuId = orderSku.SkuId,
PurchaseMethod = Model.Enums.PurchaseMethod.线,
PurchaseOrderId = createOrderResponse.PurchaseOrderId,
PurchasePlatform = createOnlinePurchaseOrderRequest.Platform,
PurchaseQuantity = orderSku.ItemTotal.Value,
RemainingQuantity = 0,
ShopId = createOnlinePurchaseOrderRequest.ShopId,
SingleConsumableAmount = 0,
SingleDeliveryFreight = 0,
SingleFirstFreight = 0,
SingleStorageAmount = 0,
SingleOperationAmount = 0,
SingleSkuAmount = createOrderResponse.ProductAmount / orderSku.ItemTotal.Value,
SingleFreight = createOrderResponse.FreightAmount / orderSku.ItemTotal.Value,
StorageType = Model.Enums.StorageType.
};
insertPurchaseOrder = fsql.Insert(purchaseOrder);
#endregion
#region 成本明细
var orderCostDetail = new OrderCostDetail()
{
Id = idGenerator.NewLong(),
ConsumableAmount = 0,
CreateTime = DateTime.Now,
DeductionQuantity = orderSku.ItemTotal.Value,
DeliveryExpressFreight = 0,
FirstFreight = 0,
OperationAmount = 0,
OrderId = createOnlinePurchaseOrderRequest.OrderId,
ProductId = orderSku.ProductId,
PurchaseFreight = createOrderResponse.FreightAmount,
PurchaseOrderPKId = purchaseOrder.Id,
SkuAmount = createOrderResponse.ProductAmount,
SkuId = orderSku.SkuId,
StorageAmount = 0,
UnitCost = purchaseOrder.UnitCost,
TotalCost = createOrderResponse.TotalAmount //purchaseOrder.UnitCost * orderSku.ItemTotal.Value
};
insertOrderCostDetail = fsql.Insert(orderCostDetail);
#endregion
#region 订单成本
var orderCost = new OrderCost()
{
OrderId = orderSku.OrderId,
CreateTime = DateTime.Now,
DeliveryExpressFreight = 0,
IsManualEdited = false,
PlatformCommissionRatio = 0.05M,
PreferentialAmount = dbOrder.PreferentialAmount,
SDCommissionAmount = 0,
PurchaseAmount = createOrderResponse.TotalAmount
};
orderCost.PlatformCommissionAmount = dbOrder.OrderSellerPrice * orderCost.PlatformCommissionRatio;
orderCost.Profit = dbOrder.OrderSellerPrice +
dbOrder.FreightPrice -
orderCost.PurchaseAmount -
orderCost.DeliveryExpressFreight -
orderCost.PlatformCommissionAmount;
insertOrderCost = fsql.Insert(orderCost);
#endregion
#region 采购信息
var orderDropShipping = new OrderDropShipping()
{
OrderId = createOnlinePurchaseOrderRequest.OrderId,
BuyerAccount = createOnlinePurchaseOrderRequest.BuyerAccount,
SellerAccount = createOnlinePurchaseOrderRequest.SellerAccount,
CreateTime = DateTime.Now,
DeliveryFreight = 0,
PurchaseAmount = createOrderResponse.TotalAmount,
PurchaseOrderId = createOrderResponse.PurchaseOrderId,
PurchasePlatform = createOnlinePurchaseOrderRequest.Platform
};
insertOrderDropShipping = fsql.Insert(orderDropShipping);
#endregion
fsql.Transaction(() =>
{
insertPurchaseOrder.ExecuteAffrows();
insertOrderCostDetail.ExecuteAffrows();
insertOrderCost.ExecuteAffrows();
insertOrderDropShipping.ExecuteAffrows();
fsql.Update<Order>(createOnlinePurchaseOrderRequest.OrderId).Set(o => o.OrderState, Model.Enums.OrderState.)
.Set(o => o.StorageType, Model.Enums.StorageType.)
.ExecuteAffrows();
});
} }
} }
} }

6
BBWY.Server.Model/Db/Order/OrderDropShipping.cs

@ -17,7 +17,7 @@ namespace BBWY.Server.Model.Db
/// <summary> /// <summary>
/// 买家账号 /// 买家账号
/// </summary> /// </summary>
[Column(StringLength = 50)] [Column(StringLength = 200)]
public string BuyerAccount { get; set; } public string BuyerAccount { get; set; }
[Column(DbType = "datetime")] [Column(DbType = "datetime")]
@ -38,7 +38,7 @@ namespace BBWY.Server.Model.Db
/// <summary> /// <summary>
/// 采购单号 /// 采购单号
/// </summary> /// </summary>
[Column(StringLength = 50)] [Column(StringLength = 200)]
public string PurchaseOrderId { get; set; } public string PurchaseOrderId { get; set; }
/// <summary> /// <summary>
@ -50,7 +50,7 @@ namespace BBWY.Server.Model.Db
/// <summary> /// <summary>
/// 卖家账号 /// 卖家账号
/// </summary> /// </summary>
[Column(StringLength = 50)] [Column(StringLength = 200)]
public string SellerAccount { get; set; } public string SellerAccount { get; set; }
} }

3
BBWY.Server.Model/Db/PurchaseOrder/PurchaseOrder.cs

@ -29,6 +29,9 @@ namespace BBWY.Server.Model.Db
//[Column(DbType = "decimal(20,2)")] //[Column(DbType = "decimal(20,2)")]
//public decimal Freight { get; set; } = 0.00M; //public decimal Freight { get; set; } = 0.00M;
/// <summary>
/// 产品Id
/// </summary>
[Column(StringLength = 50)] [Column(StringLength = 50)]
public string ProductId { get; set; } public string ProductId { get; set; }

7
BBWY.Server.Model/Dto/Request/PurchaseOrder/OnlinePurchase/CreateOnlinePurchaseOrderRequest.cs

@ -21,5 +21,12 @@
/// 店铺Id /// 店铺Id
/// </summary> /// </summary>
public long ShopId { get; set; } public long ShopId { get; set; }
/// <summary>
/// 买家账号
/// </summary>
public string BuyerAccount { get; set; }
public string SellerAccount { get; set; }
} }
} }

Loading…
Cancel
Save