Browse Source

修改售后接口

qianyi
shanji 3 years ago
parent
commit
0111e132e3
  1. 11
      BBWY.Server.API/Controllers/OrderController.cs
  2. 70
      BBWY.Server.Business/Order/OrderBusiness.cs
  3. 9
      BBWY.Server.Model/Dto/Request/Order/EditAfterSaleOrderSkuRequest.cs

11
BBWY.Server.API/Controllers/OrderController.cs

@ -132,6 +132,17 @@ namespace BBWY.Server.API.Controllers
orderBusiness.EditVenderRemark(editVenderRemarkRequest); orderBusiness.EditVenderRemark(editVenderRemarkRequest);
} }
/// <summary>
/// 修改售后
/// </summary>
/// <param name="editAfterSaleOrderSkuRequest"></param>
[HttpPost]
public void EditAfterSaleOrderSku([FromBody] EditAfterSaleOrderSkuRequest editAfterSaleOrderSkuRequest)
{
orderBusiness.EditAfterSaleOrderSku(editAfterSaleOrderSkuRequest);
}
/// <summary> /// <summary>
/// 指定时间范围的订单同步 /// 指定时间范围的订单同步
/// </summary> /// </summary>

70
BBWY.Server.Business/Order/OrderBusiness.cs

@ -1001,6 +1001,76 @@ namespace BBWY.Server.Business
.ExecuteAffrows(); .ExecuteAffrows();
} }
/// <summary>
/// 修改售后
/// </summary>
/// <param name="editAfterSaleOrderSkuRequest"></param>
/// <exception cref="BusinessException"></exception>
public void EditAfterSaleOrderSku(EditAfterSaleOrderSkuRequest editAfterSaleOrderSkuRequest)
{
var dbOrder = fsql.Select<Order>(editAfterSaleOrderSkuRequest.OrderId).ToOne();
if (dbOrder == null)
throw new BusinessException("订单不存在");
var dbOrderCost = fsql.Select<OrderCost>(editAfterSaleOrderSkuRequest.OrderId).ToOne();
if (dbOrderCost == null)
throw new BusinessException("缺少订单成本");
IInsert<AfterSaleOrder> insertAfterSaleOrder = null;
IUpdate<AfterSaleOrder> updateAfterSaleOrder = null;
IUpdate<OrderCost> updateOrderCost = null;
var afterSaleOrderSkuList = fsql.Select<AfterSaleOrder>().Where(aso => aso.OrderId == editAfterSaleOrderSkuRequest.OrderId).ToList();
if (afterSaleOrderSkuList.Any(aso => aso.Id == editAfterSaleOrderSkuRequest.Id))
{
var dbAfterSaleOrderSku = afterSaleOrderSkuList.FirstOrDefault(aso => aso.Id == editAfterSaleOrderSkuRequest.Id);
editAfterSaleOrderSkuRequest.Map(dbAfterSaleOrderSku);
updateAfterSaleOrder = fsql.Update<AfterSaleOrder>().SetSource(dbAfterSaleOrderSku).IgnoreColumns(aso => new { aso.CreateTime });
}
else
{
editAfterSaleOrderSkuRequest.Id = idGenerator.NewLong();
var afterSaleOrder = editAfterSaleOrderSkuRequest.Map<AfterSaleOrder>();
afterSaleOrder.CreateTime = DateTime.Now;
insertAfterSaleOrder = fsql.Insert(afterSaleOrder);
afterSaleOrderSkuList.Add(afterSaleOrder);
}
var refundAfterSaleOrderSkuIds = afterSaleOrderSkuList.Where(aso => aso.RefundAmount != 0).Select(aso => aso.SkuId);
dbOrderCost.RefundAmount = afterSaleOrderSkuList.Sum(aso => aso.RefundAmount ?? 0);
dbOrderCost.ReissueProductAmount = afterSaleOrderSkuList.Sum(aso => aso.ReissueProductAmount ?? 0);
dbOrderCost.ReissueFreight = afterSaleOrderSkuList.Sum(aso => aso.ReissueFreight ?? 0);
dbOrderCost.ReissueAfterSaleAmount = afterSaleOrderSkuList.Sum(aso => aso.ReissueAfterSaleAmount ?? 0);
//退款采购货款
var refundPurchaseAmount = fsql.Select<OrderSku>().Where(osku => osku.OrderId == editAfterSaleOrderSkuRequest.OrderId &&
refundAfterSaleOrderSkuIds.Contains(osku.SkuId))
.Sum(osku => osku.Price * osku.ItemTotal);
//退款之后平台扣点
dbOrderCost.PlatformCommissionAmount = (dbOrder.OrderSellerPrice - dbOrderCost.RefundAmount) * (dbOrderCost?.PlatformCommissionRatio ?? 0.05M);
//订单利润
dbOrderCost.Profit = dbOrder.OrderSellerPrice + dbOrder.FreightPrice - dbOrderCost.RefundAmount -
(dbOrderCost.PurchaseAmount - refundPurchaseAmount) -
dbOrderCost.DeliveryExpressFreight -
dbOrderCost.PlatformCommissionAmount -
dbOrderCost.ReissueProductAmount -
dbOrderCost.ReissueFreight -
dbOrderCost.ReissueAfterSaleAmount;
updateOrderCost = fsql.Update<OrderCost>().SetSource(dbOrderCost).IgnoreColumns(oc => new { oc.CreateTime });
fsql.Transaction(() =>
{
fsql.Update<Order>(editAfterSaleOrderSkuRequest.OrderId).Set(o => o.IsAfterSaleOrder, true).ExecuteAffrows();
updateOrderCost.ExecuteAffrows();
insertAfterSaleOrder?.ExecuteAffrows();
updateAfterSaleOrder?.ExecuteAffrows();
});
}
/// <summary> /// <summary>
/// 同步订单 /// 同步订单
/// </summary> /// </summary>

9
BBWY.Server.Model/Dto/Request/Order/EditAfterSaleOrderSkuRequest.cs

@ -0,0 +1,9 @@
using BBWY.Server.Model.Db;
namespace BBWY.Server.Model.Dto
{
public class EditAfterSaleOrderSkuRequest: AfterSaleOrder
{
}
}
Loading…
Cancel
Save