using BBWYB.Common.Models;
using BBWYB.Server.API.Filters;
using BBWYB.Server.Business;
using BBWYB.Server.Model.Dto;
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace BBWYB.Server.API.Controllers
{
[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
public class PurchaseOrderController : BaseApiController
{
private PurchaseOrderBusiness purchaseOrderBusiness;
public PurchaseOrderController(IHttpContextAccessor httpContextAccessor, PurchaseOrderBusiness purchaseOrderBusiness) : base(httpContextAccessor)
{
this.purchaseOrderBusiness = purchaseOrderBusiness;
}
///
/// 预览订单
///
///
///
[HttpPost]
public PreviewOrderResponse PreviewPurchaseOrder([FromBody] PreviewOrderRequest request)
{
return purchaseOrderBusiness.PreviewPurchaseOrder(request);
}
///
/// 创建采购单
///
///
[HttpPost]
public void CreatePurchaseOrder([FromBody] CreateOrderRequest request)
{
purchaseOrderBusiness.CreatePurchaseOrder(request);
}
///
/// 获取关联采购单列表
///
///
///
[HttpGet("{orderId}")]
public IList GetAssociationPurchaseOrderList([FromRoute] string orderId)
{
return purchaseOrderBusiness.GetAssociationPurchaseOrderList(orderId);
}
///
/// 关联采购单
///
///
[HttpPost]
public void AssociatePurchaseOrder([FromBody] AssociationOrderRequest request)
{
purchaseOrderBusiness.AssociatePurchaseOrder(request);
}
///
/// 预览关联采购单 (自动匹配订单sku与采购金额) (不支持关联预览的采购平台将返回null)
///
///
///
[HttpPost]
public AssociationPurchaseOrderResponse PreviewAssocationPurchaseOrder([FromBody] AssocationPurchaseOrderPreviewRequest request)
{
return purchaseOrderBusiness.PreviewAssocationPurchaseOrder(request);
}
///
/// 修改采购快递单
///
///
[HttpPost]
public void EditPurchaseExpressOrder([FromBody] EditPurchaseExpressOrderRequest request)
{
purchaseOrderBusiness.EditPurchaseExpressOrder(request);
}
///
/// 设置历史采购单
///
///
[HttpPost]
public void SetHistoryPurchaseOrder([FromBody] SetHistoryPurchaseOrderRequest request)
{
purchaseOrderBusiness.SetHistoryPurchaseOrder(request);
}
///
/// 手动签收采购单
///
///
[HttpPost]
public void SignPurchaseOrder([FromBody] SignPurchaseOrderRequest request)
{
throw new BusinessException("SignPurchaseOrder接口已经停用");
//purchaseOrderBusiness.SignPurchaseOrder(request);
}
///
/// 手动发货
///
///
[HttpPost]
public void ManualDelivery([FromBody] ManualDeliveryRequest request)
{
purchaseOrderBusiness.ManualDelivery(request);
}
///
/// 设置快递单和入仓采购单(厂商代发入仓订单专用)
///
///
[HttpPost]
public void PurchaserDelivery([FromBody] PurchaserDeliveryRequest request)
{
purchaseOrderBusiness.PurchaserDelivery(request);
}
///
/// 手动收货
///
///
[HttpPost]
public void ManualSign([FromBody] ManualSignRequest request)
{
purchaseOrderBusiness.ManualSign(request);
}
///
/// 批量手动收货
///
///
[HttpPost]
public void BatchManualSign([FromBody] BatchManualSignRequest request)
{
purchaseOrderBusiness.BatchManualSign(request);
}
///
/// 1688回调
///
///
///
[HttpPost]
[AllowAnonymous]
public void CallbackFrom1688([FromForm] string message, [FromForm] string _aop_signature)
{
purchaseOrderBusiness.CallbackFrom1688(message);
}
[Consumes("application/x-www-form-urlencoded")]
[HttpPost]
[AllowAnonymous]
public IActionResult KuaiDi100Publish([FromForm] string sign, [FromForm] string param)
{
#region 去掉本次请求的DTO格式
var filters = ControllerContext.ActionDescriptor.FilterDescriptors;
var filterToRemove = filters.FirstOrDefault(f => f.Filter.GetType() == typeof(ResultFilter));
if (filterToRemove != null)
filters.Remove(filterToRemove);
#endregion
purchaseOrderBusiness.KuaiDi100Publish(param);
return new JsonResult(new
{
result = true,
returnCode = "200",
message = "成功"
});
}
}
}