From aa70f5cc66839a284a3c945da713b0beddaaf9ba Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Thu, 15 Jun 2023 01:16:52 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E7=8A=B6=E6=80=81=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/PurchaseOrderController.cs | 31 +++------ .../PlatformSDK/QuanTanBusiness.cs | 63 +++++++++---------- .../PurchaseOrder/PurchaseOrderBusiness.cs | 13 +--- .../BatchPurchase/BatchPurchaseBusiness.cs | 2 +- BBWY.Server.Model/Enums.cs | 33 +++++++++- 5 files changed, 74 insertions(+), 68 deletions(-) diff --git a/BBWY.Server.API/Controllers/PurchaseOrderController.cs b/BBWY.Server.API/Controllers/PurchaseOrderController.cs index caf9b7c4..72b1669c 100644 --- a/BBWY.Server.API/Controllers/PurchaseOrderController.cs +++ b/BBWY.Server.API/Controllers/PurchaseOrderController.cs @@ -88,16 +88,16 @@ namespace BBWY.Server.API.Controllers purchaseOrderBusiness.CallbackFrom1688(message); } - /// - /// 拳探发货回调 - /// - /// - [HttpPost] - [AllowAnonymous] - public void QuanTanSendGoodsCallback([FromBody] QuanTanSendGoodsNotifyRequest request) - { - purchaseOrderBusiness.QuanTanSendGoodsCallback(request); - } + ///// + ///// 拳探发货回调 + ///// + ///// + //[HttpPost] + //[AllowAnonymous] + //public void QuanTanSendGoodsCallback([FromBody] QuanTanSendGoodsNotifyRequest request) + //{ + // purchaseOrderBusiness.QuanTanSendGoodsCallback(request); + //} /// /// 拳探改价回调 @@ -109,16 +109,5 @@ namespace BBWY.Server.API.Controllers { purchaseOrderBusiness.QuanTanEditPriceCallback(request); } - - /// - /// 签收采购单 - /// - /// - [HttpPost] - [AllowAnonymous] - public void SignPurchaseOrder([FromBody] BBWYBSignCallBackRequest request) - { - purchaseOrderBusiness.SignPurchaseOrder(request); - } } } diff --git a/BBWY.Server.Business/PlatformSDK/QuanTanBusiness.cs b/BBWY.Server.Business/PlatformSDK/QuanTanBusiness.cs index c52a4bba..40f33bc5 100644 --- a/BBWY.Server.Business/PlatformSDK/QuanTanBusiness.cs +++ b/BBWY.Server.Business/PlatformSDK/QuanTanBusiness.cs @@ -23,44 +23,44 @@ namespace BBWY.Server.Business public override PayPurchaseOrderResponse PayPurchaseOrder(PayPurchaseOrderRequest payPurchaseOrderRequest) { - var qtResponse = quanTanOrderClient.PayOrder(new QuanTanPayOrderRequest { orderId = payPurchaseOrderRequest.OrderId, userAccount = payPurchaseOrderRequest.AppToken }, payPurchaseOrderRequest.AppKey, payPurchaseOrderRequest.AppSecret); - if (qtResponse.Status == 200) return new PayPurchaseOrderResponse { Success = true, PurchaseOrderState = PurchaseOrderState.待发货 }; + if (qtResponse.Status == 200) return new PayPurchaseOrderResponse { Success = true, PurchaseOrderState = PurchaseOrderState.等待采购 }; if (qtResponse.Message != null && qtResponse.Message.Contains("已支付")) { - var res = quanTanOrderClient.GetOrderDetail(new QuanTanGetOrderDetailRequest - { - orderId = payPurchaseOrderRequest.OrderId, - userAccount = payPurchaseOrderRequest.AppToken - }, payPurchaseOrderRequest.AppKey, payPurchaseOrderRequest.AppSecret); - if (res.Status == 200) - { - PurchaseOrderState purchaseOrder = PurchaseOrderState.待发货; - switch (res.Data.Status) - { - case -1: - purchaseOrder = PurchaseOrderState.已取消; - break; - case 0: - purchaseOrder = PurchaseOrderState.待发货; - break; - case 1: - purchaseOrder = PurchaseOrderState.待收货; - break; - case 2: - - case 3: - purchaseOrder = PurchaseOrderState.已完成; - break; - } - return new PayPurchaseOrderResponse { Success = true, PurchaseOrderState = purchaseOrder }; - - } + throw new BusinessException("无需重复支付"); + //var res = quanTanOrderClient.GetOrderDetail(new QuanTanGetOrderDetailRequest + //{ + // orderId = payPurchaseOrderRequest.OrderId, + // userAccount = payPurchaseOrderRequest.AppToken + //}, payPurchaseOrderRequest.AppKey, payPurchaseOrderRequest.AppSecret); + //if (res.Status == 200) + //{ + // PurchaseOrderState purchaseOrder = PurchaseOrderState.待发货; + // switch (res.Data.Status) + // { + // case -1: + // purchaseOrder = PurchaseOrderState.已取消; + // break; + // case 0: + // purchaseOrder = PurchaseOrderState.待发货; + // break; + // case 1: + // purchaseOrder = PurchaseOrderState.待收货; + // break; + // case 2: + + // case 3: + // purchaseOrder = PurchaseOrderState.已完成; + // break; + // } + // return new PayPurchaseOrderResponse { Success = true, PurchaseOrderState = purchaseOrder }; + + //} } if (qtResponse.Message != null && qtResponse.Message.Contains("已删除")) @@ -72,9 +72,6 @@ namespace BBWY.Server.Business Success = false, Msg = qtResponse.Message }; - - - } public override CancelPurchaseOrderResponse CancelPurchaseOrder(CancelPurchaseOrderRequest request) { diff --git a/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs index c86f3325..12f44cf1 100644 --- a/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs +++ b/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs @@ -443,16 +443,9 @@ namespace BBWY.Server.Business #endregion #region bbwyb Callback - public void SignPurchaseOrder(BBWYBSignCallBackRequest request) - { - var pv2 = fsql.Select(request.OrderId).ToOne(); - if (pv2.OrderState == Enums.PurchaseOrderState.待收货) - { - fsql.Update(request.OrderId).Set(p => p.OrderState, Enums.PurchaseOrderState.待质检) - .Set(p => p.SignTime, DateTime.Now) - .ExecuteAffrows(); - } - } + + + #endregion /// diff --git a/BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs b/BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs index 9f5b44e1..dee1c9ae 100644 --- a/BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs +++ b/BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs @@ -367,7 +367,7 @@ namespace BBWY.Server.Business { Id = createOrderResponse.PurchaseOrderId, ShopId = request.ShopId, - OrderState = createOrderResponse.IsPay ? Enums.PurchaseOrderState.待发货 : Enums.PurchaseOrderState.待付款, + OrderState = createOrderResponse.IsPay ? Enums.PurchaseOrderState.等待采购 : Enums.PurchaseOrderState.待付款, PurchasePlatform = purchasePlatform, ConsigneeContactName = request.Consignee.ContactName, ConsigneeMobile = request.Consignee.Mobile, diff --git a/BBWY.Server.Model/Enums.cs b/BBWY.Server.Model/Enums.cs index 917b567c..0d2eb456 100644 --- a/BBWY.Server.Model/Enums.cs +++ b/BBWY.Server.Model/Enums.cs @@ -322,12 +322,39 @@ } /// - /// 采购单状态 待付款 = 0, 待发货 = 1, 待收货 = 2, 待质检 = 3, 待打包 = 4, 待结算 = 5, 已完成 = 6, 已取消= 7 + /// 订单状态 + /// 待付款 = 0 + /// 等待采购 = 1, 部分采购 = 110 + /// 待发货 = 2, 部分发货 = 120 + /// 待收货 = 3, 部分收货 = 130 + /// 已完成 = 4 + /// 锁定 = 5 + /// 已取消 = 6 + /// 暂停 = 7 + /// 已退款 = 8 + /// Unknow = 100 + /// 打包中 = 140 + /// 待完结 = 150 /// public enum PurchaseOrderState { - 待付款 = 0, 待发货 = 1, 待收货 = 2, 待质检 = 3, 待打包 = 4, 待结算 = 5, 已完成 = 6, 已取消 = 7 - } + /*待付款 = 0, 待发货 = 1, 待收货 = 2, 待质检 = 3, 待打包 = 4, 待结算 = 5, 已完成 = 6, 已取消 = 7*/ + 待付款 = 0, + 等待采购 = 1, + 部分采购 = 110, + 待发货 = 2, + 部分发货 = 120, + 待收货 = 3, + 部分收货 = 130, + 已完成 = 4, + 锁定 = 5, + 已取消 = 6, + 暂停 = 7, + 已退款 = 8, + Unknow = 100, + 打包中 = 140, + 待完结 = 150 + } public enum PackState From c77c22498a62940d88b7b9456e1d0e6956f7e0c0 Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Thu, 15 Jun 2023 12:11:55 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BatchPurchase/BatchPurchaseBusiness.cs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs b/BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs index 3ab3a661..a9eef9fd 100644 --- a/BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs +++ b/BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs @@ -661,7 +661,7 @@ namespace BBWY.Server.Business var currentOrderSkuFreightAmount = purchaseOrderSimpleInfo.FreightAmount / belongSkuGroups.Count(); //采购运费(按sku数均分) - var belongSkuBasicInfo = belongSkuBasicInfoList.FirstOrDefault(x=>x.Id == belongSkuGroup.Key); + var belongSkuBasicInfo = belongSkuBasicInfoList.FirstOrDefault(x => x.Id == belongSkuGroup.Key); var purchaseOrderSku = new PurchaseOrderSku() { @@ -946,13 +946,12 @@ namespace BBWY.Server.Business public UpdatePackStateResponse UpdatePurchaseOrderState(UpdatePurchaseOrderStateRequest request) { - - - - var order = fsql.Select().Where(p => p.Id == request.OrderId).ToOne(); - fsql.Update(order) - .Set(a => a.OrderState, request.PurchaseOrderState) - .ExecuteAffrows(); + // var order = fsql.Select().Where(p => p.Id == request.OrderId).ToOne(); + // fsql.Update(order) + //.Set(a => a.OrderState, request.PurchaseOrderState) + //.ExecuteAffrows(); + // return new UpdatePackStateResponse(); + fsql.Update(request.OrderId).Set(o => o.OrderState, request.PurchaseOrderState).ExecuteAffrows(); return new UpdatePackStateResponse(); } @@ -964,5 +963,6 @@ namespace BBWY.Server.Business .ExecuteAffrows(); return new UpdatePackStateResponse(); } + } } From 797025a3444aebadf8c4242810c9823544799b76 Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Thu, 15 Jun 2023 12:51:42 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BBWY.Client/GlobalContext.cs | 2 +- .../BatchPurchase/PurchaseOrderV2Response.cs | 3 -- BBWY.Client/Models/Enums.cs | 33 +++++++++++++++++-- .../BatchPurchase/BatchPurchaseBusiness.cs | 15 +++++++-- BBWY.Server.Model/Enums.cs | 6 ++-- 5 files changed, 48 insertions(+), 11 deletions(-) diff --git a/BBWY.Client/GlobalContext.cs b/BBWY.Client/GlobalContext.cs index 8d013252..963bd169 100644 --- a/BBWY.Client/GlobalContext.cs +++ b/BBWY.Client/GlobalContext.cs @@ -9,7 +9,7 @@ namespace BBWY.Client { ShopServiceGroupList = new List(); ShopServiceGroupLowerList = new List(); - ClientVersion = "10125"; + ClientVersion = "10126"; } private User user; diff --git a/BBWY.Client/Models/APIModel/Response/BatchPurchase/PurchaseOrderV2Response.cs b/BBWY.Client/Models/APIModel/Response/BatchPurchase/PurchaseOrderV2Response.cs index c2278421..29d69414 100644 --- a/BBWY.Client/Models/APIModel/Response/BatchPurchase/PurchaseOrderV2Response.cs +++ b/BBWY.Client/Models/APIModel/Response/BatchPurchase/PurchaseOrderV2Response.cs @@ -88,9 +88,6 @@ namespace BBWY.Client.Models //public bool? IsSubscribeKuaiDi100 { get; set; } = false; - /// - /// 采购单状态(待付款=0,待发货=1,待收货=2,待质检=3,待打包=4,待结算=5,已完成=6) - /// public PurchaseOrderState? OrderState { get; set; } /// diff --git a/BBWY.Client/Models/Enums.cs b/BBWY.Client/Models/Enums.cs index c79f546c..c8c1e2e4 100644 --- a/BBWY.Client/Models/Enums.cs +++ b/BBWY.Client/Models/Enums.cs @@ -392,12 +392,41 @@ } /// - /// 采购单状态 待付款 = 0, 待发货 = 1, 待收货 = 2, 待质检 = 3, 待打包 = 4, 待结算 = 5, 已完成 = 6, 已取消= 7 + /// 订单状态 + /// 待付款 = 0 + /// 等待采购 = 1, 部分采购 = 110 + /// 待发货 = 2, 部分发货 = 120 + /// 待收货 = 3, 部分收货 = 130 + /// 已完成 = 4 + /// 锁定 = 5 + /// 已取消 = 6 + /// 暂停 = 7 + /// 已退款 = 8 + /// Unknow = 100 + /// 打包中 = 140 + /// 待完结 = 150 /// public enum PurchaseOrderState { - 待付款 = 0, 待发货 = 1, 待收货 = 2, 待质检 = 3, 待打包 = 4, 待结算 = 5, 已完成 = 6, 已取消 = 7 + /*待付款 = 0, 待发货 = 1, 待收货 = 2, 待质检 = 3, 待打包 = 4, 待结算 = 5, 已完成 = 6, 已取消 = 7*/ + 待付款 = 0, + 等待采购 = 1, + 部分采购 = 110, + 待发货 = 2, + 部分发货 = 120, + 待收货 = 3, + 部分收货 = 130, + 已完成 = 4, + 锁定 = 5, + 已取消 = 6, + 暂停 = 7, + 已退款 = 8, + Unknow = 100, + 打包中 = 140, + 待完结 = 150 } + + public enum Settle { 未结算 = 0, diff --git a/BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs b/BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs index d4e5e169..eca9b132 100644 --- a/BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs +++ b/BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs @@ -832,8 +832,19 @@ namespace BBWY.Server.Business select = select.Where((po, pa) => childSelect.Where(posku => posku.PurchaseOrderId == po.Id).Any()); } - select = select.WhereIf(request.PurchaserName != null, (po, pa) => po.PurchaserName == request.PurchaserName) - .WhereIf(request.PurchaseOrderState != null, (po, pa) => po.OrderState == request.PurchaseOrderState) + select = select.WhereIf(request.PurchaseOrderState == Enums.PurchaseOrderState.待付款 || + request.PurchaseOrderState == Enums.PurchaseOrderState.打包中 || + request.PurchaseOrderState == Enums.PurchaseOrderState.待完结 || + request.PurchaseOrderState == Enums.PurchaseOrderState.已完成 || + request.PurchaseOrderState == Enums.PurchaseOrderState.已取消, + (po,pa) => po.OrderState == request.PurchaseOrderState) + .WhereIf(request.PurchaseOrderState == Enums.PurchaseOrderState.等待采购, (po,pa) => po.OrderState == Enums.PurchaseOrderState.等待采购 || + po.OrderState == Enums.PurchaseOrderState.部分采购) + .WhereIf(request.PurchaseOrderState == Enums.PurchaseOrderState.待发货, (po, pa) => po.OrderState == Enums.PurchaseOrderState.待发货 || + po.OrderState == Enums.PurchaseOrderState.部分发货) + .WhereIf(request.PurchaseOrderState == Enums.PurchaseOrderState.待收货, (po, pa) => po.OrderState == Enums.PurchaseOrderState.待收货 || + po.OrderState == Enums.PurchaseOrderState.部分收货) + .WhereIf(request.PurchaserName != null, (po, pa) => po.PurchaserName == request.PurchaserName) .WhereIf(request.StartDate != null, (po, pa) => po.CreateTime >= request.StartDate) .WhereIf(request.EndDate != null, (po, pa) => po.CreateTime <= request.EndDate); } diff --git a/BBWY.Server.Model/Enums.cs b/BBWY.Server.Model/Enums.cs index 47498c5e..784e9920 100644 --- a/BBWY.Server.Model/Enums.cs +++ b/BBWY.Server.Model/Enums.cs @@ -354,12 +354,12 @@ Unknow = 100, 打包中 = 140, 待完结 = 150 - } + } public enum PackState { - 待发布=0,打包中=1,已完成=2 + 待发布 = 0, 打包中 = 1, 已完成 = 2 } public enum IsDeleted @@ -373,7 +373,7 @@ 未结算 = 0, 已结清 = 1 } - + public enum BillOrigin { From 7f9ced25ff047d3818e1bb2330077aac181e9237 Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Thu, 15 Jun 2023 14:52:52 +0800 Subject: [PATCH 4/5] 1 --- .../Controllers/BatchPurchaseController.cs | 2 + .../BatchPurchase/BatchPurchaseBusiness.cs | 264 ++++++++++++++++++ 2 files changed, 266 insertions(+) diff --git a/BBWY.Server.API/Controllers/BatchPurchaseController.cs b/BBWY.Server.API/Controllers/BatchPurchaseController.cs index 276dbfe2..9de11af3 100644 --- a/BBWY.Server.API/Controllers/BatchPurchaseController.cs +++ b/BBWY.Server.API/Controllers/BatchPurchaseController.cs @@ -1,5 +1,6 @@ using BBWY.Server.Business; using BBWY.Server.Model.Dto; +using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using System.Collections.Generic; @@ -87,6 +88,7 @@ namespace BBWY.Server.API.Controllers /// /// [HttpPost] + [AllowAnonymous] public UpdatePackStateResponse UpdatePurchaseOrderState([FromBody] UpdatePurchaseOrderStateRequest request) { return batchPurchaseBusiness.UpdatePurchaseOrderState(request); diff --git a/BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs b/BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs index 00aca985..451257c7 100644 --- a/BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs +++ b/BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs @@ -431,6 +431,270 @@ namespace BBWY.Server.Business }; } + /// + /// 创建订单 + /// + /// + public BatchCreareOrderResponse BatchCreateOrderV2(BatchPurchaseCreateOrderRequestV2 request) + { + /* + 下单日志 + */ + var loggerName = $"批量采购-{request.ShopName}"; + nLogManager.GetLogger(loggerName).Info(JsonConvert.SerializeObject(request)); + + if (request.CargoParamGroupList == null || request.CargoParamGroupList.Count() == 0 || + request.CargoParamGroupList.Any(g => g.CargoParamList == null || g.CargoParamList.Count() == 0 || string.IsNullOrEmpty(g.PurchaserId))) + throw new BusinessException("缺少商品参数"); + if (request.Consignee == null || + string.IsNullOrEmpty(request.Consignee.Address) || + string.IsNullOrEmpty(request.Consignee.Mobile) || + string.IsNullOrEmpty(request.Consignee.ContactName)) + throw new BusinessException("缺少收货人信息"); + if (request.PurchaseAccountList == null || request.PurchaseAccountList.Count() == 0) + throw new BusinessException("缺少采购账号"); + + var shop = freeSqlMultiDBManager.MDSfsql.Select().Where(s => s.ShopId == request.ShopId.ToString()).ToOne(); + if (shop == null) + throw new BusinessException("无效的店铺Id"); + var successSkuIdList = new List(); + var failSkuList = new List(); + var qikuPackSkuConfigRequestList = new List(); + + var extJArray = JsonConvert.DeserializeObject(request.Extensions); + + foreach (var purchaseGroup in request.CargoParamGroupList) + { + var belongSkuGroups = purchaseGroup.CargoParamList.GroupBy(p => p.BelongSkuId); + + var belongSkuBasicInfoList = productBusiness.GetProductSkuList(new SearchProductSkuRequest() + { + AppKey = shop.AppKey, + AppSecret = shop.AppSecret, + AppToken = shop.AppToken, + Platform = (Enums.Platform)shop.PlatformId, + Sku = string.Join(",", belongSkuGroups.Select(x => x.Key)), + }); + + try + { + var purchaseAccount = request.PurchaseAccountList.FirstOrDefault(pa => pa.PurchasePlatformId == purchaseGroup.PurchasePlatform); + var platformSDKBusiness = platformSDKBusinessList.FirstOrDefault(p => p.Platform == purchaseGroup.PurchasePlatform); + string tradeMode = "", cardId = ""; + + var extJson = extJArray.FirstOrDefault(j => j.Value("PurchaserId") == purchaseGroup.PurchaserId); + if (purchaseGroup.PurchasePlatform == Enums.Platform.拳探) + cardId = extJson.Value("CardId"); + else if (purchaseGroup.PurchasePlatform == Enums.Platform.阿里巴巴) + tradeMode = extJson.Value("OrderTradeTypeCode"); + + + #region 处理JD SKU和拳探SKU的对应关系 + var belongSkus_mappingList = new List(); + if (purchaseGroup.PurchasePlatform == Enums.Platform.拳探) + { + foreach (var belongSkuGroup in belongSkuGroups) + { + var firstProductParam = belongSkuGroup.FirstOrDefault(); + if (!belongSkus_mappingList.Any(j => j.Value("BelongSkuId") == firstProductParam.BelongSkuId)) + { + belongSkus_mappingList.Add(JObject.FromObject(new { firstProductParam.BelongSkuId, firstProductParam.SkuId })); + } + } + if (belongSkus_mappingList.Count() == 0) + throw new BusinessException("缺少来源SKU信息"); + } + #endregion + + var createOrderResponse = platformSDKBusinessList.FirstOrDefault(p => p.Platform == purchaseGroup.PurchasePlatform) + .FastCreateOrder(new CreateOnlinePurchaseOrderRequest() + { + AppKey = purchaseAccount.AppKey, + AppSecret = purchaseAccount.AppSecret, + AppToken = purchaseAccount.AppToken, + Platform = purchaseGroup.PurchasePlatform, + Consignee = request.Consignee, + PurchaseOrderMode = request.PurchaseOrderMode, + Remark = purchaseGroup.Remark, + SourceShopName = request.ShopName, + SourceSku = belongSkus_mappingList, + CargoParamList = purchaseGroup.CargoParamList.Select(p => new CargoParamRequest() + { + ProductId = p.ProductId, + SkuId = p.SkuId, + Quantity = p.Quantity, + SpecId = p.SpecId + }).ToList(), + TradeMode = tradeMode, + Extensions = cardId, + AutoPay = request.AutoPay, + + }); + + var purchaseOrderSimpleInfo = platformSDKBusinessList.FirstOrDefault(p => p.Platform == purchaseGroup.PurchasePlatform).GetOrderSimpleInfo(new GetOrderInfoRequest() + { + AppKey = purchaseAccount.AppKey, + AppSecret = purchaseAccount.AppSecret, + AppToken = purchaseAccount.AppToken, + OrderId = createOrderResponse.PurchaseOrderId, + Platform = purchaseGroup.PurchasePlatform + }); + + List updatePurchaseTimeSchemeIdList = purchaseGroup.CargoParamList.Select(p => p.BelongSchemeId).Distinct().ToList(); + List insertPurchaseOrderSkuList = new List(); + + List skuPackConfigList = null; + if (purchaseGroup.PurchasePlatform == Enums.Platform.拳探) + skuPackConfigList = new List(); + + foreach (var belongSkuGroup in belongSkuGroups) + { + var firstProductParam = belongSkuGroup.FirstOrDefault(); + var currentOrderSkuProductAmount = 0M; //采购成本 + currentOrderSkuProductAmount = purchaseOrderSimpleInfo.ItemList.Where(p => belongSkuGroup.Any(p1 => p1.SkuId == p.SkuId)) + ?.Sum(p => p.ProductAmount) ?? 0M; + + var currentOrderSkuFreightAmount = purchaseOrderSimpleInfo.FreightAmount / belongSkuGroups.Count(); //采购运费(按sku数均分) + + var belongSkuBasicInfo = belongSkuBasicInfoList.FirstOrDefault(x => x.Id == belongSkuGroup.Key); + + var purchaseOrderSku = new PurchaseOrderSku() + { + Id = idGenerator.NewLong(), + ShopId = request.ShopId, + PurchaseOrderId = createOrderResponse.PurchaseOrderId, + ProductId = belongSkuBasicInfo.ProductId, + SkuId = firstProductParam.BelongSkuId, + Price = belongSkuBasicInfo.Price, + SkuTitle = belongSkuBasicInfo.Title, + Logo = belongSkuBasicInfo.Logo, + Quantity = firstProductParam.BelongQuantity, + PurchaseSchemeId = firstProductParam.BelongSchemeId, + PurchaseSkuIds = string.Join(",", belongSkuGroup.Select(p => p.SkuId).ToList()), + PurchaseAmount = currentOrderSkuProductAmount + currentOrderSkuFreightAmount, + ProductAmount = currentOrderSkuProductAmount, + PurchaseFreight = currentOrderSkuFreightAmount, + CreateTime = DateTime.Now + }; + insertPurchaseOrderSkuList.Add(purchaseOrderSku); + + + if (purchaseGroup.PurchasePlatform == Enums.Platform.拳探) + { + var skuPackConfig = request.PackSkuConfigList?.FirstOrDefault(s => s.SkuId == firstProductParam.BelongSkuId); + + if (skuPackConfig != null) + { + + skuPackConfigList.Add(new + { + skuId = firstProductParam.BelongSkuId, + skuCount = skuPackConfig.PurchaseCount, + markMessage = skuPackConfig.RemarkMessage, + wareHourses = skuPackConfig.PackSkuSplitConfigList.Select(x => new + { + wareId = x.IsJST ? "qiyuejushuitan" : x.Store.Id, + wareName = x.IsJST ? "齐越聚水潭" : x.Store.Name, + count = x.PackCount, + wareType = x.IsJST ? 3 : GetQiKuWareType(x.Store.Type) + }) + }); + } + } + } + + var purchaseOrderV2 = new PurchaseOrderV2() + { + Id = createOrderResponse.PurchaseOrderId, + ShopId = request.ShopId, + OrderState = createOrderResponse.IsPay ? Enums.PurchaseOrderState.等待采购 : Enums.PurchaseOrderState.待付款, + PurchasePlatform = purchaseGroup.PurchasePlatform, + ConsigneeContactName = request.Consignee.ContactName, + ConsigneeMobile = request.Consignee.Mobile, + ConsigneeProvince = request.Consignee.Province, + ConsigneeCity = request.Consignee.City, + ConsigneeCounty = request.Consignee.County, + ConsigneeTown = request.Consignee.Town, + ConsigneeAddress = request.Consignee.Address, + PurchaserId = purchaseGroup.PurchaserId, + PurchaserName = purchaseGroup.PurchaserName, + PurchaseAccountId = purchaseAccount.Id, + PurchaseAmount = purchaseOrderSimpleInfo.TotalAmount, + ProductAmount = purchaseOrderSimpleInfo.ProductAmount, + PurchaseFreight = purchaseOrderSimpleInfo.FreightAmount, + Remark = purchaseGroup.Remark, + CreateTime = DateTime.Now, + PurchaseMethod = Enums.PurchaseMethod.线上采购, + PurchaseOrderMode = request.PurchaseOrderMode + }; + if (createOrderResponse.IsPay) + purchaseOrderV2.PayTime = DateTime.Now; + + fsql.Transaction(() => + { + fsql.Insert(purchaseOrderV2).ExecuteAffrows(); + //fsql.Insert(purchaseOrderSku).ExecuteAffrows(); + fsql.Insert(insertPurchaseOrderSkuList).ExecuteAffrows(); + fsql.Update(updatePurchaseTimeSchemeIdList).Set(p => p.LastPurchaseTime, DateTime.Now).ExecuteAffrows(); + }); + successSkuIdList.AddRange(belongSkuGroups.Select(g => g.Key)); + + if (purchaseGroup.PurchasePlatform == Enums.Platform.拳探) + { + qikuPackSkuConfigRequestList.Add(new + { + orderId = purchaseOrderV2.Id, + //shopId = request.ShopId.ToString(), + shopId = purchaseGroup.PurchaserId, //拳探店铺Id(商家Id) + originShopName = request.ShopName, + userName = purchaseAccount.AccountName, + platform = Enums.Platform.拳探, + purchaseTaskModels = skuPackConfigList + }); + } + } + catch (Exception ex) + { + failSkuList.AddRange(belongSkuGroups.Select(g => new BatchCreareOrderFailDetail() + { + SkuId = g.Key, + ErrorMsg = ex.Message + })); + //throw new BusinessException(errorBuilder.ToString()); + } + } + + if (qikuPackSkuConfigRequestList.Count() > 0) + { + Task.Factory.StartNew(() => + { + foreach (var qikuPackSkuConfigRequest in qikuPackSkuConfigRequestList) + { + try + { + var qikuResponse = restApiService.SendRequest("http://qiku.qiyue666.com/", + "api/PackPurchaseTask/BatchPublicPurchaseTask", + qikuPackSkuConfigRequest, + null, + HttpMethod.Post); + if (qikuResponse.StatusCode != System.Net.HttpStatusCode.OK) + throw new Exception(qikuResponse.Content); + } + catch (Exception ex) + { + nLogManager.GetLogger($"发布打包任务-{request.ShopName}").Error(ex, JsonConvert.SerializeObject(qikuPackSkuConfigRequest)); + } + } + }); + } + + return new BatchCreareOrderResponse() + { + FailSkuList = failSkuList, + SuccessSkuIdList = successSkuIdList + }; + } + private int GetQiKuWareType(Enums.StockType stockType) { if (stockType == Enums.StockType.京仓) From c1768657b3424f51c4ae067e3ed3ae7a0be577a4 Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Thu, 15 Jun 2023 15:18:19 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E5=8E=BB=E6=8E=89=E5=A4=B1=E6=95=88?= =?UTF-8?q?=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Views/BatchPurchase/BatchPurchaseOrderList.xaml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/BBWY.Client/Views/BatchPurchase/BatchPurchaseOrderList.xaml b/BBWY.Client/Views/BatchPurchase/BatchPurchaseOrderList.xaml index 2ea7916f..4349e0ca 100644 --- a/BBWY.Client/Views/BatchPurchase/BatchPurchaseOrderList.xaml +++ b/BBWY.Client/Views/BatchPurchase/BatchPurchaseOrderList.xaml @@ -132,14 +132,14 @@ Background="{Binding PurchaseOrderState,Converter={StaticResource objConverter},ConverterParameter=待质检:#8080FF:#F2F2F2}" Foreground="{Binding PurchaseOrderState,Converter={StaticResource objConverter},ConverterParameter=待质检:White:#4A4A4A}" Command="{Binding SetPurchaseOrderStateCommand}" CommandParameter="{x:Static cmodel:PurchaseOrderState.待质检}"/>--> - - --> + - + +