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); } /// /// 网页创建采购单 /// /// [HttpPost, AllowAnonymous] public void WebCreatePurchaseOrder([FromBody] WebCreateOrderRequest request) { purchaseOrderBusiness.WebCreatePurchaseOrder(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); } /// /// 删除历史采购单 /// /// [HttpDelete] public void DeletePurchaseOrder([FromBody] DeletePurchaseOrderRequest request) { request.IsDelete = true; 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 = "成功" }); } } }