From 4b9b0fa7edc4efea8ff2dfcafc8436b4ee5a5b46 Mon Sep 17 00:00:00 2001 From: sanji Date: Wed, 29 Nov 2023 16:40:46 +0800 Subject: [PATCH 01/57] =?UTF-8?q?pjzs=20number=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BBWY.JDSDK/Request/AttrValueAliasJson.cs | 2 + .../PlatformSDK/JDBusiness.cs | 50 +++++++++++++++---- 2 files changed, 42 insertions(+), 10 deletions(-) diff --git a/BBWY.JDSDK/Request/AttrValueAliasJson.cs b/BBWY.JDSDK/Request/AttrValueAliasJson.cs index 7c326401..be14914c 100644 --- a/BBWY.JDSDK/Request/AttrValueAliasJson.cs +++ b/BBWY.JDSDK/Request/AttrValueAliasJson.cs @@ -9,5 +9,7 @@ public string value { get; set; } public int? valueId { get; set; } + + public bool isReName { get; set; } } } diff --git a/BBWY.Server.Business/PlatformSDK/JDBusiness.cs b/BBWY.Server.Business/PlatformSDK/JDBusiness.cs index f080ddf6..705dc6f7 100644 --- a/BBWY.Server.Business/PlatformSDK/JDBusiness.cs +++ b/BBWY.Server.Business/PlatformSDK/JDBusiness.cs @@ -1011,7 +1011,7 @@ namespace BBWY.Server.Business // } // colorSaleAttrs = colorProperty["attrValueList"].ToList(); //} - List strutsSaleAttrValueList = new List(); + List> strutsSaleAttrValueList = new List>(); var isStruts = false; { var req = new CategoryReadFindSaleAttrTemplatesRequest(); @@ -1057,16 +1057,46 @@ namespace BBWY.Server.Business { //[{\"id\":5,\"unit\":\"\",\"value\":\"红色\","valueId":1234567}] var tempJarray = tempDataValues_Level1_JToken["properties"]["value"]["enum"][0]["preprocessingSaleAttrValTemplateValueList"] as JArray; - strutsSaleAttrValueList.AddRange(tempJarray.Select(j => new AttrValueAliasJson + strutsSaleAttrValueList.AddRange(tempJarray.Select(j => new List() { - id = int.Parse(tempDataValues_Level1_JToken["properties"]["id"]["enum"][0].ToString()), - value = j.Value("name"), - valueId = j.Value("id"), - unit = string.Empty + new AttrValueAliasJson + { + id = int.Parse(tempDataValues_Level1_JToken["properties"]["id"]["enum"][0].ToString()), + value = j.Value("name"), + valueId = j.Value("id"), + unit = string.Empty, + isReName = true + } })); } + else if (tempDataValues_Level1_JToken["properties"]["id"]["type"].ToString() == "number" && + tempDataValues_Level1_JToken["properties"]["value"]["type"].ToString() == "number" && + tempDataValuesJToken["items"][1]["properties"]["id"]["type"].ToString() == "number" && + tempDataValuesJToken["items"][1]["properties"]["value"]["type"].ToString() == "string") + { + var f_id = int.Parse(tempDataValues_Level1_JToken["properties"]["id"]["enum"][0].ToString()); + var f_unit = tempDataValues_Level1_JToken["properties"]["unit"]["enum"][0].ToString(); + var s_id = int.Parse(tempDataValuesJToken["items"][1]["properties"]["id"]["enum"][0].ToString()); + + strutsSaleAttrValueList.AddRange(request.GiftTemplateSkuList.Select(x => new List() + { + new AttrValueAliasJson() + { + id = f_id, + value = "1", + unit = f_unit + }, + new AttrValueAliasJson() + { + id = s_id, + value = "待替换的备注", + isReName = true + } + })); + + } else - throw new BusinessException($"不支持的properties.id.type {tempDataValues_Level1_JToken["properties"]["id"]["type"]}"); + throw new BusinessException($"不支持的properties.id.type {tempDataValues_Level1_JToken["properties"]["id"]["type"]} 或取其分支情况"); } } #endregion @@ -1131,9 +1161,9 @@ namespace BBWY.Server.Business var attrValueAlias = string.Empty; if (isStruts) { - var value = strutsSaleAttrValueList[skuIndex]; - value.value = giftSku.Title; - attrValueAlias = JsonConvert.SerializeObject(new object[] { value }); + var values = strutsSaleAttrValueList[skuIndex]; + values.FirstOrDefault(v => v.isReName).value = giftSku.Title; + attrValueAlias = JsonConvert.SerializeObject(values); } else { From a0d49a78d260fb91fcdfba80ceec251296476d7f Mon Sep 17 00:00:00 2001 From: "506583276@qq.com" <506583276@qq.com> Date: Wed, 29 Nov 2023 20:18:41 +0800 Subject: [PATCH 02/57] 10212 --- BBWY.Client/GlobalContext.cs | 2 +- .../QualityTask/QualityViewModel.cs | 40 +++++++++---------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/BBWY.Client/GlobalContext.cs b/BBWY.Client/GlobalContext.cs index ef71e519..0b2bd463 100644 --- a/BBWY.Client/GlobalContext.cs +++ b/BBWY.Client/GlobalContext.cs @@ -13,7 +13,7 @@ namespace BBWY.Client { ShopServiceGroupList = new List(); ShopServiceGroupLowerList = new List(); - ClientVersion = "10211"; + ClientVersion = "10212"; } diff --git a/BBWY.Client/ViewModels/QualityTask/QualityViewModel.cs b/BBWY.Client/ViewModels/QualityTask/QualityViewModel.cs index 2b26481f..58d9e54c 100644 --- a/BBWY.Client/ViewModels/QualityTask/QualityViewModel.cs +++ b/BBWY.Client/ViewModels/QualityTask/QualityViewModel.cs @@ -535,29 +535,29 @@ namespace BBWY.Client.ViewModels } request.BarcodeId = BarCodeModel.Id; } - IsNeedPrintCer = Need.不需要; - if (PurchaseSkuList != null && PurchaseSkuList.Count > 0 && purchaseSkuList.Any(p => p.IsNeedCer)) - { - if (PurchaseSkuList.Where(p => p.IsSetCertificate).Count() > 0) + if (IsNeedPrintCer == Need.需要) + if (PurchaseSkuList != null && PurchaseSkuList.Count > 0 && purchaseSkuList.Any(p => p.IsNeedCer)) { - MessageBox.Show("存在未确认的合格证,请先完成确认!"); - return; - } + if (PurchaseSkuList.Where(p => p.IsSetCertificate).Count() > 0) + { + MessageBox.Show("存在未确认的合格证,请先完成确认!"); + return; + } - if (purchaseSkuList.Any(p => p.IsNeedCer && p.CerDTO == null)) - { - MessageBox.Show("有未设置的合格证,请设置完所有的合格证再保存"); - return; - } - if (PurchaseSkuList.Where(p => p.IsNeedCer && p.CerDTO.Id > 0).Count() <= 0) - { - MessageBox.Show("无可选的合格证打印!"); - return; + if (purchaseSkuList.Any(p => p.IsNeedCer && p.CerDTO == null)) + { + MessageBox.Show("有未设置的合格证,请设置完所有的合格证再保存"); + return; + } + if (PurchaseSkuList.Where(p => p.IsNeedCer && p.CerDTO.Id > 0).Count() <= 0) + { + MessageBox.Show("无可选的合格证打印!"); + return; + } + request.CerId = string.Join(",", PurchaseSkuList.Where(p => p.IsNeedCer && p.CerDTO.Id > 0).Select(p => p.CerDTO.Id)); + } - request.CerId = string.Join(",", PurchaseSkuList.Where(p => p.IsNeedCer && p.CerDTO.Id > 0).Select(p => p.CerDTO.Id)); - IsNeedPrintCer = Need.需要; - } - + try { From 0c12d45e2e9cfe211e7b6dd8afc960d5d09f778c Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Wed, 29 Nov 2023 20:45:07 +0800 Subject: [PATCH 03/57] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E5=89=8D=E7=BD=AE?= =?UTF-8?q?=E8=BF=87=E6=BB=A4=E6=97=A0=E6=95=88=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EvaluationAssistant/EvaluationAssistantBusiness.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BBWY.Server.Business/EvaluationAssistant/EvaluationAssistantBusiness.cs b/BBWY.Server.Business/EvaluationAssistant/EvaluationAssistantBusiness.cs index af3e3369..05bc4b7e 100644 --- a/BBWY.Server.Business/EvaluationAssistant/EvaluationAssistantBusiness.cs +++ b/BBWY.Server.Business/EvaluationAssistant/EvaluationAssistantBusiness.cs @@ -347,7 +347,7 @@ namespace BBWY.Server.Business if (prpt.Status != Enums.PromitionTaskStatus.等待 && prpt.Status != Enums.PromitionTaskStatus.进行中) throw new BusinessException("前置任务状态必须为等待或进行中"); - var nextPromotionTaskList = fsql.Select().Where(pt1 => pt1.PreTaskId == request.PreTaskId).ToList(); + var nextPromotionTaskList = fsql.Select().Where(pt1 => pt1.PreTaskId == request.PreTaskId && pt1.IsEnabled == true).ToList(); if (nextPromotionTaskList.Count() > 0) { CheckSkuRepeat(pt, nextPromotionTaskList); From 24f6dd6f72ed395a2bbfc2f33dd59ddf2f02419c Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Sun, 3 Dec 2023 22:40:36 +0800 Subject: [PATCH 04/57] =?UTF-8?q?=E4=BF=AE=E5=A4=8D1688=E7=88=AC=E8=99=AB?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BBWY.Client/APIServices/PurchaseProductAPIService.cs | 4 ++-- BBWY.Server.API/Startup.cs | 5 +++++ .../PurchaseScheme/PurchaseProductAPIService.cs | 9 +++++---- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/BBWY.Client/APIServices/PurchaseProductAPIService.cs b/BBWY.Client/APIServices/PurchaseProductAPIService.cs index ab80e86d..647416c5 100644 --- a/BBWY.Client/APIServices/PurchaseProductAPIService.cs +++ b/BBWY.Client/APIServices/PurchaseProductAPIService.cs @@ -189,7 +189,7 @@ namespace BBWY.Client.APIServices if (_1688pageResult.StatusCode != System.Net.HttpStatusCode.OK) return null; - var match = Regex.Match(_1688pageResult.Content, @"(window\.__INIT_DATA=)(.*)(\r*\n*\s*)"); + var match = Regex.Match(_1688pageResult.Content, @"(window\.__INIT_DATA\s?=)(.*)(\r*\n*\s*)"); if (!match.Success) return null; @@ -238,7 +238,7 @@ namespace BBWY.Client.APIServices SkuId = skuId, PurchaseProductId = purchaseProductId, Price = skuPrice == 0M ? firstPrice : skuPrice, - Title = name, + Title = matchName, PurchaseSkuId = value.Value("skuId"), PurchaseSkuSpecId = value.Value("specId"), Logo = colorsProperty.FirstOrDefault(c => c.name == matchName)?.imageUrl ?? "pack://application:,,,/Resources/Images/defaultItem.png" diff --git a/BBWY.Server.API/Startup.cs b/BBWY.Server.API/Startup.cs index 84746551..ccdcc052 100644 --- a/BBWY.Server.API/Startup.cs +++ b/BBWY.Server.API/Startup.cs @@ -19,6 +19,7 @@ using System.Collections.Generic; using System.Configuration; using System.IO; using System.Linq; +using System.Net.Http; using System.Reflection; using System.Text; using Yitter.IdGenerator; @@ -65,6 +66,10 @@ namespace BBWY.Server.API services.AddControllers(); services.AddHttpContextAccessor(); services.AddHttpClient(); + services.AddHttpClient("gzip").ConfigurePrimaryHttpMessageHandler(handler => new HttpClientHandler() + { + AutomaticDecompression = System.Net.DecompressionMethods.GZip + }); services.AddCors(options => { options.AddPolicy("cors", p => diff --git a/BBWY.Server.Business/PurchaseScheme/PurchaseProductAPIService.cs b/BBWY.Server.Business/PurchaseScheme/PurchaseProductAPIService.cs index 3387715b..17413558 100644 --- a/BBWY.Server.Business/PurchaseScheme/PurchaseProductAPIService.cs +++ b/BBWY.Server.Business/PurchaseScheme/PurchaseProductAPIService.cs @@ -40,7 +40,7 @@ namespace BBWY.Server.Business this.restApiService = restApiService; _1688ProductDetailRequestHeader = new Dictionary() { - { "Host","detail.1688.com"}, + //{ "Host","detail.1688.com"}, { "User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.102 Safari/537.36 Edg/104.0.1293.70"}, { "Accept","text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"}, { "Accept-Encoding","gzip, deflate, br"}, @@ -193,12 +193,13 @@ namespace BBWY.Server.Business $"clickid={Guid.NewGuid().ToString().Md5Encrypt()}&sessionid={Guid.NewGuid().ToString().Md5Encrypt()}&sk={(request.PriceMode == Enums.PurchaseOrderMode.批发 ? "order" : "consign")}", _1688ProductDetailRequestHeader, HttpMethod.Get, - httpClientName: "gzip"); + httpClientName: "gzip", + getResponseHeader: true); if (_1688pageResult.StatusCode != System.Net.HttpStatusCode.OK) return null; - var match = Regex.Match(_1688pageResult.Content, @"(window\.__INIT_DATA=)(.*)(\r*\n*\s*)"); + var match = Regex.Match(_1688pageResult.Content, @"(window\.__INIT_DATA\s?=)(.*)(\r*\n*\s*)"); if (!match.Success) return null; @@ -246,7 +247,7 @@ namespace BBWY.Server.Business { PurchaseProductId = request.PurchaseProductId, Price = skuPrice == 0M ? firstPrice : skuPrice, - Title = name, + Title = matchName, //name PurchaseSkuId = value.Value("skuId"), PurchaseSkuSpecId = value.Value("specId"), Logo = colorsProperty.FirstOrDefault(c => c.name == matchName)?.imageUrl ?? "pack://application:,,,/Resources/Images/defaultItem.png" From 270b5a7d7c0fa662b03f8cd33f6bb1910efaa43b Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Sun, 3 Dec 2023 22:49:33 +0800 Subject: [PATCH 05/57] 10213 --- BBWY.Client/GlobalContext.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BBWY.Client/GlobalContext.cs b/BBWY.Client/GlobalContext.cs index 0b2bd463..c6ed64f3 100644 --- a/BBWY.Client/GlobalContext.cs +++ b/BBWY.Client/GlobalContext.cs @@ -13,7 +13,7 @@ namespace BBWY.Client { ShopServiceGroupList = new List(); ShopServiceGroupLowerList = new List(); - ClientVersion = "10212"; + ClientVersion = "10213"; } From fea8e7e57339729be0fea61e01715e4097948d02 Mon Sep 17 00:00:00 2001 From: sanji Date: Mon, 4 Dec 2023 11:54:16 +0800 Subject: [PATCH 06/57] =?UTF-8?q?=E4=BF=AE=E5=A4=8D1688=E7=88=AC=E8=99=AB?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../APIServices/PurchaseProductAPIService.cs | 44 ++++++++++++++++--- .../PurchaseProductAPIService.cs | 40 +++++++++++++---- 2 files changed, 69 insertions(+), 15 deletions(-) diff --git a/BBWY.Client/APIServices/PurchaseProductAPIService.cs b/BBWY.Client/APIServices/PurchaseProductAPIService.cs index 647416c5..e6aa0925 100644 --- a/BBWY.Client/APIServices/PurchaseProductAPIService.cs +++ b/BBWY.Client/APIServices/PurchaseProductAPIService.cs @@ -25,6 +25,9 @@ namespace BBWY.Client.APIServices private string qtAppId = "BBWY2023022001"; private string qtAppSecret = "908e131365d5448ca651ba20ed7ddefe"; + private List locationIdList; + private List priceIdList; + private TimeSpan purchaseProductCacheTimeSpan; //private TimeSpan _1688SessionIdTimeSpan; @@ -48,6 +51,17 @@ namespace BBWY.Client.APIServices }; purchaseProductCacheTimeSpan = TimeSpan.FromDays(1); this.quanTanProductClient = quanTanProductClient; + locationIdList = new List() + { + "300252630336272", + "1081181309101", + "16347413030323" + }; + priceIdList = new List() { + "300252630336263", + "1081181309582", + "16347413030316" + }; } public (Purchaser purchaser, IList purchaseSchemeProductSkus)? GetProductInfo(Platform platform, string productId, string skuId, string purchaseProductId, PurchaseOrderMode priceMode, PurchaseProductAPIMode apiMode) @@ -200,11 +214,18 @@ namespace BBWY.Client.APIServices var purchaser = new Purchaser() { Id = jobject["globalData"]["tempModel"]["sellerUserId"].ToString(), - Name = jobject["globalData"]["tempModel"]["companyName"].ToString(), - Location = jobject["data"]["1081181309101"] != null ? - jobject["data"]["1081181309101"]["data"]["location"].ToString() : - jobject["data"]["16347413030323"]["data"]["location"].ToString() + Name = jobject["globalData"]["tempModel"]["companyName"].ToString() }; + foreach (var lid in locationIdList) + { + if (jobject["data"][lid] != null) + { + purchaser.Location = jobject["data"][lid]["data"]["location"].ToString(); + break; + } + } + + var colorsProperty = jobject["globalData"]["skuModel"]["skuProps"].FirstOrDefault(j => j.Value("fid") == 3216 || j.Value("fid") == 1627207 || @@ -217,9 +238,18 @@ namespace BBWY.Client.APIServices imageUrl = j.Value("imageUrl") }).ToList(); - var firstPrice = jobject["data"]["1081181309582"] != null ? - jobject["data"]["1081181309582"]["data"]["priceModel"]["currentPrices"][0].Value("price") : - jobject["data"]["16347413030316"]["data"]["priceModel"]["currentPrices"][0].Value("price"); + //var firstPrice = jobject["data"]["1081181309582"] != null ? + // jobject["data"]["1081181309582"]["data"]["priceModel"]["currentPrices"][0].Value("price") : + // jobject["data"]["16347413030316"]["data"]["priceModel"]["currentPrices"][0].Value("price"); + var firstPrice = 0M; + foreach (var pid in priceIdList) + { + if (jobject["data"][pid] != null) + { + firstPrice = jobject["data"][pid]["data"]["priceModel"]["currentPrices"][0].Value("price"); + break; + } + } var purchaseSchemeProductSkus = new List(); diff --git a/BBWY.Server.Business/PurchaseScheme/PurchaseProductAPIService.cs b/BBWY.Server.Business/PurchaseScheme/PurchaseProductAPIService.cs index 17413558..51b8c2ee 100644 --- a/BBWY.Server.Business/PurchaseScheme/PurchaseProductAPIService.cs +++ b/BBWY.Server.Business/PurchaseScheme/PurchaseProductAPIService.cs @@ -25,6 +25,9 @@ namespace BBWY.Server.Business private string qtAppId = "BBWY2023022001"; private string qtAppSecret = "908e131365d5448ca651ba20ed7ddefe"; + private List locationIdList; + private List priceIdList; + private TimeSpan purchaseProductCacheTimeSpan; //private TimeSpan _1688SessionIdTimeSpan; @@ -48,6 +51,17 @@ namespace BBWY.Server.Business }; purchaseProductCacheTimeSpan = TimeSpan.FromDays(1); this.quanTanProductClient = quanTanProductClient; + locationIdList = new List() + { + "300252630336272", + "1081181309101", + "16347413030323" + }; + priceIdList = new List() { + "300252630336263", + "1081181309582", + "16347413030316" + }; } public PurchaseSkuBasicInfoResponse GetProductInfo(PurchaseSkuBasicInfoRequest request) @@ -210,12 +224,16 @@ namespace BBWY.Server.Business var purchaser = new Purchaser() { Id = jobject["globalData"]["tempModel"]["sellerUserId"].ToString(), - Name = jobject["globalData"]["tempModel"]["companyName"].ToString(), - Location = jobject["data"]["1081181309101"] != null ? - jobject["data"]["1081181309101"]["data"]["location"].ToString() : - jobject["data"]["16347413030323"]["data"]["location"].ToString(), - Platform = Enums.Platform.阿里巴巴 + Name = jobject["globalData"]["tempModel"]["companyName"].ToString() }; + foreach (var lid in locationIdList) + { + if (jobject["data"][lid] != null) + { + purchaser.Location = jobject["data"][lid]["data"]["location"].ToString(); + break; + } + } var colorsProperty = jobject["globalData"]["skuModel"]["skuProps"].FirstOrDefault(j => j.Value("fid") == 3216 || j.Value("fid") == 1627207 || @@ -228,9 +246,15 @@ namespace BBWY.Server.Business imageUrl = j.Value("imageUrl") }).ToList(); - var firstPrice = jobject["data"]["1081181309582"] != null ? - jobject["data"]["1081181309582"]["data"]["priceModel"]["currentPrices"][0].Value("price") : - jobject["data"]["16347413030316"]["data"]["priceModel"]["currentPrices"][0].Value("price"); + var firstPrice = 0M; + foreach (var pid in priceIdList) + { + if (jobject["data"][pid] != null) + { + firstPrice = jobject["data"][pid]["data"]["priceModel"]["currentPrices"][0].Value("price"); + break; + } + } var list = new List(); From cd90eff5a30eaa503ad04e767c3f3ec0f536b794 Mon Sep 17 00:00:00 2001 From: sanji Date: Mon, 4 Dec 2023 11:55:04 +0800 Subject: [PATCH 07/57] 10214 --- BBWY.Client/GlobalContext.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BBWY.Client/GlobalContext.cs b/BBWY.Client/GlobalContext.cs index c6ed64f3..2d42d82e 100644 --- a/BBWY.Client/GlobalContext.cs +++ b/BBWY.Client/GlobalContext.cs @@ -13,7 +13,7 @@ namespace BBWY.Client { ShopServiceGroupList = new List(); ShopServiceGroupLowerList = new List(); - ClientVersion = "10213"; + ClientVersion = "10214"; } From b60157bcaa9d94517757d3de6b6ac8657040c943 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Tue, 5 Dec 2023 19:29:28 +0800 Subject: [PATCH 08/57] =?UTF-8?q?=E7=B2=BE=E7=AE=80=E6=A0=87=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EvaluationAssistant/EvaluationAssistantBusiness.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/BBWY.Server.Business/EvaluationAssistant/EvaluationAssistantBusiness.cs b/BBWY.Server.Business/EvaluationAssistant/EvaluationAssistantBusiness.cs index 05bc4b7e..6e9250b3 100644 --- a/BBWY.Server.Business/EvaluationAssistant/EvaluationAssistantBusiness.cs +++ b/BBWY.Server.Business/EvaluationAssistant/EvaluationAssistantBusiness.cs @@ -160,6 +160,9 @@ namespace BBWY.Server.Business if (string.IsNullOrEmpty(request.FullTitle)) throw new BusinessException("缺少完整标题"); + if (string.IsNullOrEmpty(request.SimpleTitle)) + throw new BusinessException("缺少精简标题"); + if (string.IsNullOrEmpty(request.ActivityName)) throw new BusinessException("缺少任务名称"); From aca959edb99d32cc96ed1876486b8aed530e7117 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Tue, 5 Dec 2023 23:24:42 +0800 Subject: [PATCH 09/57] =?UTF-8?q?=E5=9C=A8=E7=BA=BF=E9=87=87=E8=B4=AD?= =?UTF-8?q?=E6=8B=A6=E6=88=AA=E4=B8=8D=E5=B1=9E=E4=BA=8E=E5=BD=93=E5=89=8D?= =?UTF-8?q?=E8=AE=A2=E5=8D=95sku=E7=9A=84=E4=B8=8B=E5=8D=95=E8=AF=B7?= =?UTF-8?q?=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PurchaseOrder/PurchaseOrderBusiness.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs index ca2b873d..3b109dcd 100644 --- a/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs +++ b/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs @@ -131,6 +131,15 @@ namespace BBWY.Server.Business throw new BusinessException("订单不存在"); if (dbOrder.OrderState != Enums.OrderState.等待采购 && dbOrder.OrderState != Enums.OrderState.待出库) throw new BusinessException("只能为等待采购或待出库的订单进行采购"); + if (createOnlinePurchaseOrderRequest.CargoParamList == null || createOnlinePurchaseOrderRequest.CargoParamList.Count() == 0) + throw new BusinessException("缺少下单参数"); + + //拦截不要属于当前订单的请求 + var orderSkus = fsql.Select().Where(osku => osku.Price != 0 && osku.OrderId == createOnlinePurchaseOrderRequest.OrderId).ToList(); + + if (createOnlinePurchaseOrderRequest.CargoParamList.Any(c => !orderSkus.Any(osku => osku.SkuId == c.BelongSkuId))) + throw new BusinessException("非法sku参数,下单sku中存在不属于该笔订单的sku"); + var oldPourchaseIdList = fsql.Select().Where(ocd => ocd.OrderId == dbOrder.Id) .ToList(ocd => ocd.PurchaseOrderPKId); @@ -138,7 +147,6 @@ namespace BBWY.Server.Business var deletePurchaseOrder = fsql.Delete().Where(po => oldPourchaseIdList.Contains(po.Id)); var deleteOrderCostDetail = fsql.Delete().Where(ocd => ocd.OrderId == dbOrder.Id); var isRepurchase = fsql.Select(dbOrder.Id).Any(); - var orderSkus = fsql.Select().Where(osku => osku.Price != 0 && osku.OrderId == createOnlinePurchaseOrderRequest.OrderId).ToList(); var orderSkuIds = orderSkus.Select(osku => osku.Id).ToList(); #region 合并重复的采购sku From fae8ac5584d434fa0ab1fd2f57026320fa65550d Mon Sep 17 00:00:00 2001 From: sanji Date: Wed, 6 Dec 2023 12:14:49 +0800 Subject: [PATCH 10/57] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=B0=8F=E6=95=B0?= =?UTF-8?q?=E8=BE=93=E5=85=A5=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Converters/InputNumberConverter.cs | 41 ++++++++++++++++--- BBWY.Client/GlobalContext.cs | 2 +- 2 files changed, 37 insertions(+), 6 deletions(-) diff --git a/BBWY.Client/Converters/InputNumberConverter.cs b/BBWY.Client/Converters/InputNumberConverter.cs index ce9c2890..3c7e2f50 100644 --- a/BBWY.Client/Converters/InputNumberConverter.cs +++ b/BBWY.Client/Converters/InputNumberConverter.cs @@ -1,4 +1,5 @@ -using System; +using MathNet.Numerics; +using System; using System.Globalization; using System.Windows; using System.Windows.Data; @@ -16,14 +17,44 @@ namespace BBWY.Client.Converters { string strValue = value as string; if (string.IsNullOrEmpty(strValue)) + { return null; + } decimal result; - var dotIndex = strValue.IndexOf('.'); - if (dotIndex == strValue.Length - 1 || - (dotIndex != -1 && strValue.EndsWith("0")) || - !decimal.TryParse(strValue, out result)) + if (strValue.IndexOf('.') == strValue.Length - 1 || (strValue.IndexOf('0') == strValue.Length - 1 && strValue.IndexOf('.') != -1) || !decimal.TryParse(strValue, out result)) + { return DependencyProperty.UnsetValue; + } return result; + + //if (string.IsNullOrEmpty(strValue)) + // return DependencyProperty.UnsetValue; + //if (strValue.EndsWith(".")) + // return DependencyProperty.UnsetValue; + //decimal result = 0M; + //var dotIndex = strValue.IndexOf('.'); + //if (dotIndex == -1) + // decimal.TryParse(strValue, out result); + //else + //{ + // //var intValueStr = strValue.Substring(0, dotIndex); + // var decimalValueStr = strValue.Substring(dotIndex + 1); + + // var n = 1M; + // if (decimalValueStr.Length == 1) + // n = 1.0M; + // if (decimalValueStr.Length == 2) + // n = 1.00M; + // if (decimalValueStr.Length == 3) + // n = 1.000M; + // if (decimalValueStr.Length == 4) + // n = 1.0000M; + // if (decimal.TryParse(strValue, out result)) + // result = decimal.Round(result * n, decimalValueStr.Length); + // else + // return DependencyProperty.UnsetValue; + //} + //return result; } } } diff --git a/BBWY.Client/GlobalContext.cs b/BBWY.Client/GlobalContext.cs index 2d42d82e..b3ad8edc 100644 --- a/BBWY.Client/GlobalContext.cs +++ b/BBWY.Client/GlobalContext.cs @@ -13,7 +13,7 @@ namespace BBWY.Client { ShopServiceGroupList = new List(); ShopServiceGroupLowerList = new List(); - ClientVersion = "10214"; + ClientVersion = "10215"; } From e0dc74ecf7af64e7ac4a5cb6bb62257c86cf1399 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Thu, 7 Dec 2023 01:32:57 +0800 Subject: [PATCH 11/57] =?UTF-8?q?=E8=B0=83=E6=95=B4=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=90=8C=E6=AD=A5,=E8=AE=A2=E5=8D=95=E5=90=88=E8=AE=A1?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E5=BA=94=E4=BB=98=3D0=E6=97=B6=E4=B8=8D?= =?UTF-8?q?=E4=BF=9D=E5=AD=98=E6=8B=86=E5=88=86=E6=98=8E=E7=BB=86=EF=BC=8C?= =?UTF-8?q?=E5=90=8C=E6=97=B6=E4=B8=8D=E4=BA=A7=E7=94=9F=E4=BA=AC=E4=BB=93?= =?UTF-8?q?=E4=BA=91=E4=BB=93=E7=9A=84=E9=87=87=E8=B4=AD=E6=88=90=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Sync/OrderSyncBusiness.cs | 627 +++++++++--------- 1 file changed, 320 insertions(+), 307 deletions(-) diff --git a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs index bedc4441..75379381 100644 --- a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs @@ -306,150 +306,151 @@ namespace BBWY.Server.Business if (orderCouponDetailResponse.Success) { var jtoken = orderCouponDetailResponse.Data["jingdong_pop_order_queryCouponDetai_responce"]["couponDetailExternal"]["couponDetailVo"]; - - #region 订单合计信息 - var orderTotal = new OrderTotalInfo() - { - CreateTime = DateTime.Now, - Id = orderId, - TotalBalance = jtoken.Value("totalBalance"), - TotalBaseDiscount = jtoken.Value("TotalBaseDiscount"), - TotalBaseFee = jtoken.Value("totalBaseFee"), - TotalCoupon = jtoken.Value("totalCoupon"), - TotalDongQuan = jtoken.Value("totalDongQuan"), - TotalExpiryGiftDiscount = jtoken.Value("totalExpiryGiftDiscount"), - TotalGlobalGeneralIncludeTax = jtoken.Value("totalGlobalGeneralIncludeTax"), - TotalGlobalGeneralTax = jtoken.Value("totalGlobalGeneralTax"), - TotalItemPrice = jtoken.Value("totalItemPrice"), - TotalJdZhiFuYouHui = jtoken.Value("totalJdZhiFuYouHui"), - TotalJingDou = jtoken.Value("totalJingDou"), - TotalJingQuan = jtoken.Value("totalJingQuan"), - TotalJingXiangLiJin = jtoken.Value("totalJingXiangLiJin"), - TotalLiJinYouHui = jtoken.Value("totalLiJinYouHui"), - TotalLuoDiPeiService = jtoken.Value("totalLuoDiPeiService"), - TotalManJian = jtoken.Value("totalManJian"), - TotalPingTaiChengDanYouHuiQuan = jtoken.Value("totalPingTaiChengDanYouHuiQuan"), - TotalPlus95 = jtoken.Value("totalPlus95"), - TotalPromotionDiscount = jtoken.Value("totalPromotionDiscount"), - TotalRemoteFee = jtoken.Value("totalRemoteFee"), - TotalShouldPay = jtoken.Value("totalShouldPay"), - TotalSuperRedEnvelope = jtoken.Value("totalSuperRedEnvelope"), - TotalTaxFee = jtoken.Value("totalTaxFee"), - TotalTuiHuanHuoWuYou = jtoken.Value("totalTuiHuanHuoWuYou"), - TotalVenderFee = jtoken.Value("totalVenderFee"), - TotalXianPinLeiDongQuan = jtoken.Value("totalXianPinLeiDongQuan"), - TotalXianPinLeiJingQuan = jtoken.Value("totalXianPinLeiJingQuan"), - TotalZhiFuYingXiaoYouHui = jtoken.Value("totalZhiFuYingXiaoYouHui") - }; - insertOrderTotalInfoList.Add(orderTotal); - #endregion - - #region 订单优惠券信息 - var couponJArray = jtoken["couponList"] as JArray; - if (couponJArray != null && couponJArray.Count() > 0) + if (jtoken.Value("totalShouldPay") > 0M) { - insertOrderCouponNewList.AddRange(couponJArray.Select(j => new OrderCoupon_New() + #region 订单合计信息 + var orderTotal = new OrderTotalInfo() { - Id = idGenerator.NewLong(), - CouponId = j.Value("couponId"), - CouponName = j.Value("couponName"), - CouponNum = j.Value("couponNum"), - CouponPrice = j.Value("couponPrice"), - CouponTypeDesc = j.Value("couponTypeDesc"), CreateTime = DateTime.Now, - JdCouponId = j.Value("jdCouponId"), - JdDivideMoney = j.Value("jdDivideMoney"), - OrderId = orderId, - PriceDivide = j.Value("priceDivide"), - VenderDivideMoney = j.Value("venderDivideMoney") - })); - } + Id = orderId, + TotalBalance = jtoken.Value("totalBalance"), + TotalBaseDiscount = jtoken.Value("TotalBaseDiscount"), + TotalBaseFee = jtoken.Value("totalBaseFee"), + TotalCoupon = jtoken.Value("totalCoupon"), + TotalDongQuan = jtoken.Value("totalDongQuan"), + TotalExpiryGiftDiscount = jtoken.Value("totalExpiryGiftDiscount"), + TotalGlobalGeneralIncludeTax = jtoken.Value("totalGlobalGeneralIncludeTax"), + TotalGlobalGeneralTax = jtoken.Value("totalGlobalGeneralTax"), + TotalItemPrice = jtoken.Value("totalItemPrice"), + TotalJdZhiFuYouHui = jtoken.Value("totalJdZhiFuYouHui"), + TotalJingDou = jtoken.Value("totalJingDou"), + TotalJingQuan = jtoken.Value("totalJingQuan"), + TotalJingXiangLiJin = jtoken.Value("totalJingXiangLiJin"), + TotalLiJinYouHui = jtoken.Value("totalLiJinYouHui"), + TotalLuoDiPeiService = jtoken.Value("totalLuoDiPeiService"), + TotalManJian = jtoken.Value("totalManJian"), + TotalPingTaiChengDanYouHuiQuan = jtoken.Value("totalPingTaiChengDanYouHuiQuan"), + TotalPlus95 = jtoken.Value("totalPlus95"), + TotalPromotionDiscount = jtoken.Value("totalPromotionDiscount"), + TotalRemoteFee = jtoken.Value("totalRemoteFee"), + TotalShouldPay = jtoken.Value("totalShouldPay"), + TotalSuperRedEnvelope = jtoken.Value("totalSuperRedEnvelope"), + TotalTaxFee = jtoken.Value("totalTaxFee"), + TotalTuiHuanHuoWuYou = jtoken.Value("totalTuiHuanHuoWuYou"), + TotalVenderFee = jtoken.Value("totalVenderFee"), + TotalXianPinLeiDongQuan = jtoken.Value("totalXianPinLeiDongQuan"), + TotalXianPinLeiJingQuan = jtoken.Value("totalXianPinLeiJingQuan"), + TotalZhiFuYingXiaoYouHui = jtoken.Value("totalZhiFuYingXiaoYouHui") + }; + insertOrderTotalInfoList.Add(orderTotal); + #endregion - #endregion + #region 订单优惠券信息 + var couponJArray = jtoken["couponList"] as JArray; + if (couponJArray != null && couponJArray.Count() > 0) + { + insertOrderCouponNewList.AddRange(couponJArray.Select(j => new OrderCoupon_New() + { + Id = idGenerator.NewLong(), + CouponId = j.Value("couponId"), + CouponName = j.Value("couponName"), + CouponNum = j.Value("couponNum"), + CouponPrice = j.Value("couponPrice"), + CouponTypeDesc = j.Value("couponTypeDesc"), + CreateTime = DateTime.Now, + JdCouponId = j.Value("jdCouponId"), + JdDivideMoney = j.Value("jdDivideMoney"), + OrderId = orderId, + PriceDivide = j.Value("priceDivide"), + VenderDivideMoney = j.Value("venderDivideMoney") + })); + } - #region 订单活动信息 - var promotionJArray = jtoken["promotionList"] as JArray; - if (promotionJArray != null && promotionJArray.Count() > 0) - { - insertOrderPromotionList.AddRange(promotionJArray.Select(j => new OrderPromotion() + #endregion + + #region 订单活动信息 + var promotionJArray = jtoken["promotionList"] as JArray; + if (promotionJArray != null && promotionJArray.Count() > 0) { - Id = idGenerator.NewLong(), - BeginTime = j.Value("beginTime"), - EndTime = j.Value("endTime"), - CreateTime = DateTime.Now, - OrderId = orderId, - PromotionId = j.Value("promotionId"), - PromotionName = j.Value("promotionName"), - SalePrice = j.Value("salePrice"), - SaleTypeDesc = j.Value("saleTypeDesc") - })); - } - #endregion + insertOrderPromotionList.AddRange(promotionJArray.Select(j => new OrderPromotion() + { + Id = idGenerator.NewLong(), + BeginTime = j.Value("beginTime"), + EndTime = j.Value("endTime"), + CreateTime = DateTime.Now, + OrderId = orderId, + PromotionId = j.Value("promotionId"), + PromotionName = j.Value("promotionName"), + SalePrice = j.Value("salePrice"), + SaleTypeDesc = j.Value("saleTypeDesc") + })); + } + #endregion - #region 订单sku金额明细 - var skuJArray = jtoken["skuList"] as JArray; - if (skuJArray != null && skuJArray.Count() > 0) - { - foreach (var oskuJtoken in skuJArray) + #region 订单sku金额明细 + var skuJArray = jtoken["skuList"] as JArray; + if (skuJArray != null && skuJArray.Count() > 0) { - var skuDiscountInfoList = oskuJtoken["skuDiscountInfoList"] as JArray; - decimal? xianPinLeiDongQuan = 0M; - if (skuDiscountInfoList != null && skuDiscountInfoList.Count > 0) + foreach (var oskuJtoken in skuJArray) { - foreach (var item1 in skuDiscountInfoList) + var skuDiscountInfoList = oskuJtoken["skuDiscountInfoList"] as JArray; + decimal? xianPinLeiDongQuan = 0M; + if (skuDiscountInfoList != null && skuDiscountInfoList.Count > 0) { - var discountTypeList = item1["discountTypeList"] as JArray; - if (discountTypeList != null && discountTypeList.Count() > 0) + foreach (var item1 in skuDiscountInfoList) { - foreach (var discountType in discountTypeList) + var discountTypeList = item1["discountTypeList"] as JArray; + if (discountTypeList != null && discountTypeList.Count() > 0) { - if (discountType.Value("type") == 6) - xianPinLeiDongQuan += discountType.Value("amount"); + foreach (var discountType in discountTypeList) + { + if (discountType.Value("type") == 6) + xianPinLeiDongQuan += discountType.Value("amount"); + } } } } - } - if (xianPinLeiDongQuan == 0M) - xianPinLeiDongQuan = oskuJtoken.Value("xianPinLeiDongQuan"); + if (xianPinLeiDongQuan == 0M) + xianPinLeiDongQuan = oskuJtoken.Value("xianPinLeiDongQuan"); - var oskuCF = new OrderSkuCFDetail() - { - OrderId = orderId, - SkuId = oskuJtoken.Value("skuCode"), - Balance = oskuJtoken.Value("balance"), - BaseDiscount = oskuJtoken.Value("baseDiscount"), - BaseFee = oskuJtoken.Value("baseFee"), - Coupon = oskuJtoken.Value("coupon"), - DongQuan = oskuJtoken.Value("dongQuan"), - ExpiryGiftDiscount = oskuJtoken.Value("expiryGiftDiscount"), - GlobalGeneralIncludeTax = oskuJtoken.Value("globalGeneralIncludeTax"), - GlobalGeneralTax = oskuJtoken.Value("globalGeneralTax"), - JdZhiFuYouHui = oskuJtoken.Value("jdZhiFuYouHui"), - JingDou = oskuJtoken.Value("jingDou"), - JingQuan = oskuJtoken.Value("jingQuan"), - JingXiangLiJin = oskuJtoken.Value("jingXiangLiJin"), - LiJinYouHui = oskuJtoken.Value("liJinYouHui"), - LuoDiPeiService = oskuJtoken.Value("luoDiPeiService"), - ManJian = oskuJtoken.Value("manJian"), - PingTaiChengDanYouHuiQuan = oskuJtoken.Value("pingTaiChengDanYouHuiQuan"), - Plus95 = oskuJtoken.Value("plus95"), - PromotionDiscount = oskuJtoken.Value("promotionDiscount"), - RemoteFee = oskuJtoken.Value("remoteFee"), - ShouldPay = oskuJtoken.Value("shouldPay"), - SuperRedEnvelope = oskuJtoken.Value("superRedEnvelope"), - TaxFee = oskuJtoken.Value("taxFee"), - TuiHuanHuoWuYou = oskuJtoken.Value("tuiHuanHuoWuYou"), - VenderFee = oskuJtoken.Value("venderFee"), - XianPinLeiDongQuan = xianPinLeiDongQuan, //数据不齐 - XianPinLeiJingQuan = oskuJtoken.Value("xianPinLeiJingQuan"), - ZhiFuYingXiaoYouHui = oskuJtoken.Value("zhiFuYingXiaoYouHui") - }; - orderSkuCFDetailList.Add(oskuCF); + var oskuCF = new OrderSkuCFDetail() + { + OrderId = orderId, + SkuId = oskuJtoken.Value("skuCode"), + Balance = oskuJtoken.Value("balance"), + BaseDiscount = oskuJtoken.Value("baseDiscount"), + BaseFee = oskuJtoken.Value("baseFee"), + Coupon = oskuJtoken.Value("coupon"), + DongQuan = oskuJtoken.Value("dongQuan"), + ExpiryGiftDiscount = oskuJtoken.Value("expiryGiftDiscount"), + GlobalGeneralIncludeTax = oskuJtoken.Value("globalGeneralIncludeTax"), + GlobalGeneralTax = oskuJtoken.Value("globalGeneralTax"), + JdZhiFuYouHui = oskuJtoken.Value("jdZhiFuYouHui"), + JingDou = oskuJtoken.Value("jingDou"), + JingQuan = oskuJtoken.Value("jingQuan"), + JingXiangLiJin = oskuJtoken.Value("jingXiangLiJin"), + LiJinYouHui = oskuJtoken.Value("liJinYouHui"), + LuoDiPeiService = oskuJtoken.Value("luoDiPeiService"), + ManJian = oskuJtoken.Value("manJian"), + PingTaiChengDanYouHuiQuan = oskuJtoken.Value("pingTaiChengDanYouHuiQuan"), + Plus95 = oskuJtoken.Value("plus95"), + PromotionDiscount = oskuJtoken.Value("promotionDiscount"), + RemoteFee = oskuJtoken.Value("remoteFee"), + ShouldPay = oskuJtoken.Value("shouldPay"), + SuperRedEnvelope = oskuJtoken.Value("superRedEnvelope"), + TaxFee = oskuJtoken.Value("taxFee"), + TuiHuanHuoWuYou = oskuJtoken.Value("tuiHuanHuoWuYou"), + VenderFee = oskuJtoken.Value("venderFee"), + XianPinLeiDongQuan = xianPinLeiDongQuan, //数据不齐 + XianPinLeiJingQuan = oskuJtoken.Value("xianPinLeiJingQuan"), + ZhiFuYingXiaoYouHui = oskuJtoken.Value("zhiFuYingXiaoYouHui") + }; + orderSkuCFDetailList.Add(oskuCF); + } } + #endregion } - #endregion - } } } @@ -726,199 +727,211 @@ namespace BBWY.Server.Business orderState != Enums.OrderState.待付款 && orderState != Enums.OrderState.已取消) { - var orderCost = dbOrderCostList.FirstOrDefault(oc => oc.OrderId == dbOrder.Id); - if (orderCost == null && orderSellerPrice > 0M) + bool checkOrderTotal = true; + if (dbOrder.StorageType == Enums.StorageType.京仓 || dbOrder.StorageType == Enums.StorageType.云仓) { - if (isNewOrder && dbOrder.StorageType == Enums.StorageType.SD && sDCalculationCostRequest != null) + var orderTotalInfo = insertOrderTotalInfoList.FirstOrDefault(x => x.Id == dbOrder.Id); + if (orderTotalInfo == null) + orderTotalInfo = dbOrderTotalList.FirstOrDefault(x => x.Id == dbOrder.Id); + if (orderTotalInfo == null || orderTotalInfo.TotalShouldPay == 0M) + checkOrderTotal = false; + } + if (checkOrderTotal) + { + var orderCost = dbOrderCostList.FirstOrDefault(oc => oc.OrderId == dbOrder.Id); + if (orderCost == null && orderSellerPrice > 0M) { - //检查SD埋点 - if (sDCalculationCostRequest.PlatformCommissionRatio == 0M) - sDCalculationCostRequest.PlatformCommissionRatio = 0.05M; - orderCost = new OrderCost() + if (isNewOrder && dbOrder.StorageType == Enums.StorageType.SD && sDCalculationCostRequest != null) { - OrderId = sDCalculationCostRequest.OrderId, - PlatformCommissionRatio = sDCalculationCostRequest.PlatformCommissionRatio, - PreferentialAmount = (dbOrderTotal?.TotalPingTaiChengDanYouHuiQuan) ?? dbOrder.PreferentialAmount, - Profit = 0, - DeliveryExpressFreight = sDCalculationCostRequest.DeliveryExpressFreight, - CreateTime = DateTime.Now, - IsManualEdited = true, - SDCommissionAmount = sDCalculationCostRequest.SDCommissionAmount, - SDOrderAmount = sDCalculationCostRequest.SDOrderAmount - }; - orderCost.CalculationSDOrderProfitAndCost(dbOrder, null); - insertOrderCostList.Add(orderCost); - } - else if (!fsql.Select(dbOrder.Id).Any()) //再查询一次数据库,以防同步开始执行后被人为操作扣减库存,造成重复扣减库存 - { - var orderSkuJArray = orderJToken["itemInfoList"].Where(skuJToken => skuJToken.Value("jdPrice") != 0M); - if (orderSkuJArray != null && orderSkuJArray.Count() > 0) + //检查SD埋点 + if (sDCalculationCostRequest.PlatformCommissionRatio == 0M) + sDCalculationCostRequest.PlatformCommissionRatio = 0.05M; + orderCost = new OrderCost() + { + OrderId = sDCalculationCostRequest.OrderId, + PlatformCommissionRatio = sDCalculationCostRequest.PlatformCommissionRatio, + PreferentialAmount = (dbOrderTotal?.TotalPingTaiChengDanYouHuiQuan) ?? dbOrder.PreferentialAmount, + Profit = 0, + DeliveryExpressFreight = sDCalculationCostRequest.DeliveryExpressFreight, + CreateTime = DateTime.Now, + IsManualEdited = true, + SDCommissionAmount = sDCalculationCostRequest.SDCommissionAmount, + SDOrderAmount = sDCalculationCostRequest.SDOrderAmount + }; + orderCost.CalculationSDOrderProfitAndCost(dbOrder, null); + insertOrderCostList.Add(orderCost); + } + else if (!fsql.Select(dbOrder.Id).Any()) //再查询一次数据库,以防同步开始执行后被人为操作扣减库存,造成重复扣减库存 { - var orderCostPurchaseAmount = 0M; - var orderDeliveryExpressFreight = 0M; //发货总运费,sku购买数量第二个开始半价 - - //var avgPreferential = preferentialAmount / orderSkuJArray.Count(); - - #region 扣减库存 - foreach (var orderSkuJToken in orderSkuJArray) + var orderSkuJArray = orderJToken["itemInfoList"].Where(skuJToken => skuJToken.Value("jdPrice") != 0M); + if (orderSkuJArray != null && orderSkuJArray.Count() > 0) { - var orderSkuId = orderSkuJToken.Value("skuId"); - var itemTotal = orderSkuJToken.Value("itemTotal"); //sku购买数量 - - #region sku拆分明细 - decimal? skuShouldPay = orderSkuCFDetailList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.ShouldPay; - if (skuShouldPay == null) - skuShouldPay = insertOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.ShouldPay; - if (skuShouldPay == null) - skuShouldPay = dbOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.ShouldPay; - - - decimal? skuPingTaiChengDanYouHuiQuan = orderSkuCFDetailList.FirstOrDefault(x => x.OrderId == orderId && - x.SkuId == orderSkuId)?.PingTaiChengDanYouHuiQuan; - if (skuPingTaiChengDanYouHuiQuan == null) - skuPingTaiChengDanYouHuiQuan = insertOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.PingTaiChengDanYouHuiQuan; - if (skuPingTaiChengDanYouHuiQuan == null) - skuPingTaiChengDanYouHuiQuan = dbOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.PingTaiChengDanYouHuiQuan; - - decimal? skuSuperRedEnvelope = orderSkuCFDetailList.FirstOrDefault(x => x.OrderId == orderId && - x.SkuId == orderSkuId)?.SuperRedEnvelope; - if (skuSuperRedEnvelope == null) - skuSuperRedEnvelope = insertOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.SuperRedEnvelope; - if (skuSuperRedEnvelope == null) - skuSuperRedEnvelope = dbOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.SuperRedEnvelope; - - decimal? skuXianPinLeiDongQuan = orderSkuCFDetailList.FirstOrDefault(x => x.OrderId == orderId && - x.SkuId == orderSkuId)?.XianPinLeiDongQuan; - if (skuXianPinLeiDongQuan == null) - skuXianPinLeiDongQuan = insertOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.XianPinLeiDongQuan; - if (skuXianPinLeiDongQuan == null) - skuXianPinLeiDongQuan = dbOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.XianPinLeiDongQuan; - - decimal? skuVenderFee = orderSkuCFDetailList.FirstOrDefault(x => x.OrderId == orderId && - x.SkuId == orderSkuId)?.VenderFee; - if (skuVenderFee == null) - skuVenderFee = insertOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.VenderFee; - if (skuVenderFee == null) - skuVenderFee = dbOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.VenderFee; - - decimal? skuJingDou = orderSkuCFDetailList.FirstOrDefault(x => x.OrderId == orderId && - x.SkuId == orderSkuId)?.JingDou; - if (skuJingDou == null) - skuJingDou = insertOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.JingDou; - if (skuJingDou == null) - skuJingDou = dbOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.JingDou; - - decimal? skuDongQuan = orderSkuCFDetailList.FirstOrDefault(x => x.OrderId == orderId && - x.SkuId == orderSkuId)?.DongQuan; - if (skuDongQuan == null) - skuDongQuan = insertOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.DongQuan; - if (skuDongQuan == null) - skuDongQuan = dbOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.DongQuan; - - decimal? skuBalnace = orderSkuCFDetailList.FirstOrDefault(x => x.OrderId == orderId && - x.SkuId == orderSkuId)?.Balance; - if (skuBalnace == null) - skuBalnace = insertOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.Balance; - if (skuBalnace == null) - skuBalnace = dbOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.Balance; - #endregion + var orderCostPurchaseAmount = 0M; + var orderDeliveryExpressFreight = 0M; //发货总运费,sku购买数量第二个开始半价 + + //var avgPreferential = preferentialAmount / orderSkuJArray.Count(); - //var itemPrice = orderSkuJToken.Value("jdPrice"); //sku单价 - var isReduceMultiTimes = false; //是否多次扣减库存 - while (itemTotal != 0) + #region 扣减库存 + foreach (var orderSkuJToken in orderSkuJArray) { - var purchaseOrder = dbPurchaseOrderList.FirstOrDefault(po => po.StorageType == dbOrder.StorageType && - po.RemainingQuantity != 0 && - po.SkuId == orderSkuId); - if (purchaseOrder == null) - break; //没有库存了 - - //本次扣减量 - var deductionQuantity = purchaseOrder.RemainingQuantity >= itemTotal ? itemTotal : purchaseOrder.RemainingQuantity; - //var deductionQuantity = itemTotal; - //本次扣减量的采购成本 - var currentPurchaseAmount = purchaseOrder.UnitCost * deductionQuantity; - //本次扣减量的发货运费 - var currentSkuDeliveryFreight = isReduceMultiTimes ? - (purchaseOrder.SingleDeliveryFreight / 2 * deductionQuantity) : - (purchaseOrder.SingleDeliveryFreight + purchaseOrder.SingleDeliveryFreight / 2 * (deductionQuantity - 1)); - - purchaseOrder.RemainingQuantity -= deductionQuantity; - itemTotal -= deductionQuantity; - - //累计采购成本 - orderCostPurchaseAmount += currentPurchaseAmount; - //累计发货运费(销售运费) - orderDeliveryExpressFreight += currentSkuDeliveryFreight; - isReduceMultiTimes = true; - - var updateSql = fsql.Update(purchaseOrder.Id).Set(po => po.RemainingQuantity - deductionQuantity); - updatePurchaseOrderList.Add(updateSql); - - var orderCostDetail = new OrderCostDetail() + var orderSkuId = orderSkuJToken.Value("skuId"); + var itemTotal = orderSkuJToken.Value("itemTotal"); //sku购买数量 + + #region sku拆分明细 + decimal? skuShouldPay = orderSkuCFDetailList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.ShouldPay; + if (skuShouldPay == null) + skuShouldPay = insertOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.ShouldPay; + if (skuShouldPay == null) + skuShouldPay = dbOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.ShouldPay; + + + decimal? skuPingTaiChengDanYouHuiQuan = orderSkuCFDetailList.FirstOrDefault(x => x.OrderId == orderId && + x.SkuId == orderSkuId)?.PingTaiChengDanYouHuiQuan; + if (skuPingTaiChengDanYouHuiQuan == null) + skuPingTaiChengDanYouHuiQuan = insertOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.PingTaiChengDanYouHuiQuan; + if (skuPingTaiChengDanYouHuiQuan == null) + skuPingTaiChengDanYouHuiQuan = dbOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.PingTaiChengDanYouHuiQuan; + + decimal? skuSuperRedEnvelope = orderSkuCFDetailList.FirstOrDefault(x => x.OrderId == orderId && + x.SkuId == orderSkuId)?.SuperRedEnvelope; + if (skuSuperRedEnvelope == null) + skuSuperRedEnvelope = insertOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.SuperRedEnvelope; + if (skuSuperRedEnvelope == null) + skuSuperRedEnvelope = dbOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.SuperRedEnvelope; + + decimal? skuXianPinLeiDongQuan = orderSkuCFDetailList.FirstOrDefault(x => x.OrderId == orderId && + x.SkuId == orderSkuId)?.XianPinLeiDongQuan; + if (skuXianPinLeiDongQuan == null) + skuXianPinLeiDongQuan = insertOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.XianPinLeiDongQuan; + if (skuXianPinLeiDongQuan == null) + skuXianPinLeiDongQuan = dbOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.XianPinLeiDongQuan; + + decimal? skuVenderFee = orderSkuCFDetailList.FirstOrDefault(x => x.OrderId == orderId && + x.SkuId == orderSkuId)?.VenderFee; + if (skuVenderFee == null) + skuVenderFee = insertOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.VenderFee; + if (skuVenderFee == null) + skuVenderFee = dbOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.VenderFee; + + decimal? skuJingDou = orderSkuCFDetailList.FirstOrDefault(x => x.OrderId == orderId && + x.SkuId == orderSkuId)?.JingDou; + if (skuJingDou == null) + skuJingDou = insertOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.JingDou; + if (skuJingDou == null) + skuJingDou = dbOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.JingDou; + + decimal? skuDongQuan = orderSkuCFDetailList.FirstOrDefault(x => x.OrderId == orderId && + x.SkuId == orderSkuId)?.DongQuan; + if (skuDongQuan == null) + skuDongQuan = insertOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.DongQuan; + if (skuDongQuan == null) + skuDongQuan = dbOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.DongQuan; + + decimal? skuBalnace = orderSkuCFDetailList.FirstOrDefault(x => x.OrderId == orderId && + x.SkuId == orderSkuId)?.Balance; + if (skuBalnace == null) + skuBalnace = insertOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.Balance; + if (skuBalnace == null) + skuBalnace = dbOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.Balance; + #endregion + + //var itemPrice = orderSkuJToken.Value("jdPrice"); //sku单价 + var isReduceMultiTimes = false; //是否多次扣减库存 + while (itemTotal != 0) { - Id = idGenerator.NewLong(), - OrderId = orderId, - ProductId = orderSkuJToken.Value("wareId"), - SkuId = orderSkuId, - CreateTime = DateTime.Now, - PurchaseOrderPKId = purchaseOrder.Id, - //UnitCost = purchaseOrder.UnitCost, - DeductionQuantity = deductionQuantity, - DeliveryExpressFreight = currentSkuDeliveryFreight, - //TotalCost = currentPurchaseAmount, - ConsumableAmount = purchaseOrder.SingleConsumableAmount * deductionQuantity, - FirstFreight = purchaseOrder.SingleFirstFreight * deductionQuantity, - //OperationAmount = purchaseOrder.SingleOperationAmount * deductionQuantity, - InStorageAmount = purchaseOrder.SingleInStorageAmount * deductionQuantity, - OutStorageAmount = purchaseOrder.SingleOutStorageAmount * deductionQuantity, - PurchaseFreight = purchaseOrder.SingleFreight * deductionQuantity, - SkuAmount = purchaseOrder.SingleSkuAmount * deductionQuantity, - StorageAmount = purchaseOrder.SingleStorageAmount * deductionQuantity, - IsEnabled = true - }; - - //orderCostDetail.SkuGrossProfit = itemPrice * deductionQuantity - avgPreferential - - // (orderCostDetail.TotalCost + orderCostDetail.DeliveryExpressFreight) - - // itemPrice * deductionQuantity * platformCommissionRatio; - - //var koudian = (skuShouldPay.Value - venderFee.Value) * deductionQuantity * platformCommissionRatio; - //orderCostDetail.SkuGrossProfit = (skuShouldPay.Value + pingtaiCoupon.Value) * deductionQuantity - - // orderCostDetail.TotalCost - orderCostDetail.DeliveryExpressFreight - - // koudian; - - orderCostDetail.CalculationSkuGrossProfit(skuShouldPay ?? 0M, - skuPingTaiChengDanYouHuiQuan ?? 0M, - skuSuperRedEnvelope ?? 0M, - skuXianPinLeiDongQuan ?? 0M, - skuVenderFee ?? 0M, - skuJingDou ?? 0M, - skuDongQuan ?? 0M, - skuBalnace ?? 0M, - platformCommissionRatio); - insertOrderCostDetailList.Add(orderCostDetail); + var purchaseOrder = dbPurchaseOrderList.FirstOrDefault(po => po.StorageType == dbOrder.StorageType && + po.RemainingQuantity != 0 && + po.SkuId == orderSkuId); + if (purchaseOrder == null) + break; //没有库存了 + + //本次扣减量 + var deductionQuantity = purchaseOrder.RemainingQuantity >= itemTotal ? itemTotal : purchaseOrder.RemainingQuantity; + //var deductionQuantity = itemTotal; + //本次扣减量的采购成本 + var currentPurchaseAmount = purchaseOrder.UnitCost * deductionQuantity; + //本次扣减量的发货运费 + var currentSkuDeliveryFreight = isReduceMultiTimes ? + (purchaseOrder.SingleDeliveryFreight / 2 * deductionQuantity) : + (purchaseOrder.SingleDeliveryFreight + purchaseOrder.SingleDeliveryFreight / 2 * (deductionQuantity - 1)); + + purchaseOrder.RemainingQuantity -= deductionQuantity; + itemTotal -= deductionQuantity; + + //累计采购成本 + orderCostPurchaseAmount += currentPurchaseAmount; + //累计发货运费(销售运费) + orderDeliveryExpressFreight += currentSkuDeliveryFreight; + isReduceMultiTimes = true; + + var updateSql = fsql.Update(purchaseOrder.Id).Set(po => po.RemainingQuantity - deductionQuantity); + updatePurchaseOrderList.Add(updateSql); + + var orderCostDetail = new OrderCostDetail() + { + Id = idGenerator.NewLong(), + OrderId = orderId, + ProductId = orderSkuJToken.Value("wareId"), + SkuId = orderSkuId, + CreateTime = DateTime.Now, + PurchaseOrderPKId = purchaseOrder.Id, + //UnitCost = purchaseOrder.UnitCost, + DeductionQuantity = deductionQuantity, + DeliveryExpressFreight = currentSkuDeliveryFreight, + //TotalCost = currentPurchaseAmount, + ConsumableAmount = purchaseOrder.SingleConsumableAmount * deductionQuantity, + FirstFreight = purchaseOrder.SingleFirstFreight * deductionQuantity, + //OperationAmount = purchaseOrder.SingleOperationAmount * deductionQuantity, + InStorageAmount = purchaseOrder.SingleInStorageAmount * deductionQuantity, + OutStorageAmount = purchaseOrder.SingleOutStorageAmount * deductionQuantity, + PurchaseFreight = purchaseOrder.SingleFreight * deductionQuantity, + SkuAmount = purchaseOrder.SingleSkuAmount * deductionQuantity, + StorageAmount = purchaseOrder.SingleStorageAmount * deductionQuantity, + IsEnabled = true + }; + + //orderCostDetail.SkuGrossProfit = itemPrice * deductionQuantity - avgPreferential - + // (orderCostDetail.TotalCost + orderCostDetail.DeliveryExpressFreight) - + // itemPrice * deductionQuantity * platformCommissionRatio; + + //var koudian = (skuShouldPay.Value - venderFee.Value) * deductionQuantity * platformCommissionRatio; + //orderCostDetail.SkuGrossProfit = (skuShouldPay.Value + pingtaiCoupon.Value) * deductionQuantity - + // orderCostDetail.TotalCost - orderCostDetail.DeliveryExpressFreight - + // koudian; + + orderCostDetail.CalculationSkuGrossProfit(skuShouldPay ?? 0M, + skuPingTaiChengDanYouHuiQuan ?? 0M, + skuSuperRedEnvelope ?? 0M, + skuXianPinLeiDongQuan ?? 0M, + skuVenderFee ?? 0M, + skuJingDou ?? 0M, + skuDongQuan ?? 0M, + skuBalnace ?? 0M, + platformCommissionRatio); + insertOrderCostDetailList.Add(orderCostDetail); + } } - } - #endregion + #endregion - #region 计算成本 - orderCost = new OrderCost() - { - OrderId = orderId, - PlatformCommissionRatio = platformCommissionRatio, - PreferentialAmount = (dbOrderTotal?.TotalPingTaiChengDanYouHuiQuan) ?? dbOrder.PreferentialAmount, - Profit = 0, - PurchaseAmount = orderCostPurchaseAmount, - DeliveryExpressFreight = orderDeliveryExpressFreight, - CreateTime = DateTime.Now - }; - if (dbOrder.OrderTotalPrice != 0) - orderCost.CalculationOrderProfitAndCost(dbOrder, null); - else - orderCost.CalculationOrderProfitAndCost(actualAmount, null); + #region 计算成本 + orderCost = new OrderCost() + { + OrderId = orderId, + PlatformCommissionRatio = platformCommissionRatio, + PreferentialAmount = (dbOrderTotal?.TotalPingTaiChengDanYouHuiQuan) ?? dbOrder.PreferentialAmount, + Profit = 0, + PurchaseAmount = orderCostPurchaseAmount, + DeliveryExpressFreight = orderDeliveryExpressFreight, + CreateTime = DateTime.Now + }; + if (dbOrder.OrderTotalPrice != 0) + orderCost.CalculationOrderProfitAndCost(dbOrder, null); + else + orderCost.CalculationOrderProfitAndCost(actualAmount, null); - insertOrderCostList.Add(orderCost); - #endregion + insertOrderCostList.Add(orderCost); + #endregion + } } } } From a22bdfd9203a5de74c3ae6e9afd3792131a2e5f1 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Thu, 7 Dec 2023 15:51:23 +0800 Subject: [PATCH 12/57] =?UTF-8?q?=E9=87=87=E8=B4=AD=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs index 3b109dcd..95d3bffc 100644 --- a/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs +++ b/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs @@ -138,7 +138,11 @@ namespace BBWY.Server.Business var orderSkus = fsql.Select().Where(osku => osku.Price != 0 && osku.OrderId == createOnlinePurchaseOrderRequest.OrderId).ToList(); if (createOnlinePurchaseOrderRequest.CargoParamList.Any(c => !orderSkus.Any(osku => osku.SkuId == c.BelongSkuId))) + { + nLogManager.Default().Info($"NewFastCreateOrder\r\n非法请求\r\n{JsonConvert.SerializeObject(createOnlinePurchaseOrderRequest)}"); throw new BusinessException("非法sku参数,下单sku中存在不属于该笔订单的sku"); + } + var oldPourchaseIdList = fsql.Select().Where(ocd => ocd.OrderId == dbOrder.Id) From 27d9c561da1a3f439c0a95ac3f039696d96c98a8 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Thu, 7 Dec 2023 17:36:37 +0800 Subject: [PATCH 13/57] 10216 --- BBWY.Client/GlobalContext.cs | 2 +- .../Purchase/1688PreviewPurchaseViewModel.cs | 31 ++++++++++++++++--- 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/BBWY.Client/GlobalContext.cs b/BBWY.Client/GlobalContext.cs index b3ad8edc..c63fb25d 100644 --- a/BBWY.Client/GlobalContext.cs +++ b/BBWY.Client/GlobalContext.cs @@ -13,7 +13,7 @@ namespace BBWY.Client { ShopServiceGroupList = new List(); ShopServiceGroupLowerList = new List(); - ClientVersion = "10215"; + ClientVersion = "10216"; } diff --git a/BBWY.Client/ViewModels/Purchase/1688PreviewPurchaseViewModel.cs b/BBWY.Client/ViewModels/Purchase/1688PreviewPurchaseViewModel.cs index fef1fb33..d3aec609 100644 --- a/BBWY.Client/ViewModels/Purchase/1688PreviewPurchaseViewModel.cs +++ b/BBWY.Client/ViewModels/Purchase/1688PreviewPurchaseViewModel.cs @@ -182,12 +182,15 @@ namespace BBWY.Client.ViewModels { foreach (var purchaseSchemeProductSku in data.Value.purchaseSchemeProductSkus) { - purchaseSchemeProductSku.SkuPurchaseSchemeId = purchaseSchemeProduct.SkuPurchaseSchemeId; - if (purchaseSchemeProduct.SelectedSkuIdList.Any(s => s == purchaseSchemeProductSku.PurchaseSkuId)) + if (orderSku != null && purchaseSchemeProductSku.SkuId == orderSku.Id) { - PurchaseSchemeProductSkuList.Add(purchaseSchemeProductSku); - purchaseSchemeProductSku.ItemTotal = orderSku.ItemTotal; - purchaseSchemeProductSku.OnItemTotalChanged = OnItemTotalChanged; + purchaseSchemeProductSku.SkuPurchaseSchemeId = purchaseSchemeProduct.SkuPurchaseSchemeId; + if (purchaseSchemeProduct.SelectedSkuIdList.Any(s => s == purchaseSchemeProductSku.PurchaseSkuId)) + { + PurchaseSchemeProductSkuList.Add(purchaseSchemeProductSku); + purchaseSchemeProductSku.ItemTotal = orderSku.ItemTotal; + purchaseSchemeProductSku.OnItemTotalChanged = OnItemTotalChanged; + } } } }); @@ -224,6 +227,24 @@ namespace BBWY.Client.ViewModels return; } + #region 由于未知原因,会存在不属于当前订单的配件sku,预览时清理一次 + for (var i = 0; i < PurchaseSchemeProductSkuList.Count(); i++) + { + var pss = PurchaseSchemeProductSkuList[i]; + if (!order.ItemList.Any(osku => osku.Id == pss.SkuId)) + { + //这个采购配件不属于这笔订单 + PurchaseSchemeProductSkuList.RemoveAt(i); + i--; + } + } + if (PurchaseSchemeProductSkuList.Count() == 0) + { + MessageBox.Show("采购配件数量为0"); + return; + } + #endregion + IsLoading = true; Task.Factory.StartNew(() => purchaseOrderService.PreviewPurchaseOrder(new Consignee() { From 760f3c84578b7f0b3bf040c400ef016d145071e7 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Thu, 7 Dec 2023 17:57:35 +0800 Subject: [PATCH 14/57] =?UTF-8?q?=E4=B8=80=E9=94=AE=E4=B8=8B=E5=8D=95?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E8=BF=87=E6=BB=A4=E4=B8=8D=E5=B1=9E=E4=BA=8E?= =?UTF-8?q?=E5=BD=93=E5=89=8D=E8=AE=A2=E5=8D=95=E7=9A=84=E9=85=8D=E4=BB=B6?= =?UTF-8?q?=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PurchaseOrder/PurchaseOrderBusiness.cs | 16 +++++++++++++++- .../OnlinePurchase/PreviewOrderReuqest.cs | 2 +- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs index 95d3bffc..344da0f2 100644 --- a/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs +++ b/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs @@ -140,7 +140,21 @@ namespace BBWY.Server.Business if (createOnlinePurchaseOrderRequest.CargoParamList.Any(c => !orderSkus.Any(osku => osku.SkuId == c.BelongSkuId))) { nLogManager.Default().Info($"NewFastCreateOrder\r\n非法请求\r\n{JsonConvert.SerializeObject(createOnlinePurchaseOrderRequest)}"); - throw new BusinessException("非法sku参数,下单sku中存在不属于该笔订单的sku"); + //移除不属于当前订单的采购配件 + for (var i = 0; i < createOnlinePurchaseOrderRequest.CargoParamList.Count(); i++) + { + var cp = createOnlinePurchaseOrderRequest.CargoParamList[i]; + if (!orderSkus.Any(osku => osku.SkuId == cp.BelongSkuId)) + { + createOnlinePurchaseOrderRequest.CargoParamList.RemoveAt(i); + i--; + } + } + + if (createOnlinePurchaseOrderRequest.CargoParamList.Count() == 0) + throw new BusinessException("经过采购配件的订单sku归属关系过滤之后,剩余采购配件数量为0,请先联系技术人员排查问题之后再手动关联"); + + //throw new BusinessException("非法sku参数,下单sku中存在不属于该笔订单的sku"); } diff --git a/BBWY.Server.Model/Dto/Request/PurchaseOrder/OnlinePurchase/PreviewOrderReuqest.cs b/BBWY.Server.Model/Dto/Request/PurchaseOrder/OnlinePurchase/PreviewOrderReuqest.cs index 23d13394..c0d0a210 100644 --- a/BBWY.Server.Model/Dto/Request/PurchaseOrder/OnlinePurchase/PreviewOrderReuqest.cs +++ b/BBWY.Server.Model/Dto/Request/PurchaseOrder/OnlinePurchase/PreviewOrderReuqest.cs @@ -12,6 +12,6 @@ namespace BBWY.Server.Model.Dto public ConsigneeRequest Consignee { get; set; } - public IList CargoParamList { get; set; } + public List CargoParamList { get; set; } } } From e5ec7d2e709ce1a138cd7cc2f1b5a4cba59f53ae Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Fri, 8 Dec 2023 01:43:49 +0800 Subject: [PATCH 15/57] =?UTF-8?q?pjzs=E6=9B=B4=E6=96=B0=E4=B8=8A=E6=9E=B6?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PlatformSDK/JDBusiness.cs | 47 ++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) diff --git a/BBWY.Server.Business/PlatformSDK/JDBusiness.cs b/BBWY.Server.Business/PlatformSDK/JDBusiness.cs index 705dc6f7..b71fe9a1 100644 --- a/BBWY.Server.Business/PlatformSDK/JDBusiness.cs +++ b/BBWY.Server.Business/PlatformSDK/JDBusiness.cs @@ -1053,7 +1053,52 @@ namespace BBWY.Server.Business attrId = tempDataJToken.Value("attrId"); var tempDataValuesJToken = JObject.Parse(tempDataJToken["valueRules"].ToString()); var tempDataValues_Level1_JToken = tempDataValuesJToken["items"][0]; - if (tempDataValues_Level1_JToken["properties"]["id"]["type"].ToString() == "model") + if (tempDataValuesJToken["items"].Count() == 3 && + tempDataValuesJToken["items"][0]["properties"]["id"]["type"].ToString() == "model" && + tempDataValuesJToken["items"][1]["properties"]["id"]["type"].ToString() == "number" && + tempDataValuesJToken["items"][1]["properties"]["value"]["type"].ToString() == "number" && + tempDataValuesJToken["items"][2]["properties"]["id"]["type"].ToString() == "number" && + tempDataValuesJToken["items"][2]["properties"]["value"]["type"].ToString() == "string") + { + var f_id = int.Parse(tempDataValuesJToken["items"][0]["properties"]["id"]["enum"][0].ToString()); + var f_tempJarray = tempDataValuesJToken["items"][0]["properties"]["value"]["enum"][0]["preprocessingSaleAttrValTemplateValueList"] as JArray; + var f_value = f_tempJarray.FirstOrDefault().Value("name"); + var f_valueId = f_tempJarray.FirstOrDefault().Value("id"); + + var s_id = int.Parse(tempDataValuesJToken["items"][1]["properties"]["id"]["enum"][0].ToString()); + var s_unit = tempDataValuesJToken["items"][1]["properties"]["unit"]["enum"][0].ToString(); + //var s_value = "1"; + + var t_id = int.Parse(tempDataValuesJToken["items"][2]["properties"]["id"]["enum"][0].ToString()); + var t_value = "待替换的备注"; + + for (var i = 0; i < request.GiftTemplateSkuList.Count(); i++) + { + strutsSaleAttrValueList.Add(new List() + { + new AttrValueAliasJson() + { + id = f_id, + value = f_value, + valueId = f_valueId, + unit = string.Empty + }, + new AttrValueAliasJson() + { + id = s_id, + value = "1", + unit = s_unit + }, + new AttrValueAliasJson() + { + id = t_id, + value = t_value, + isReName = true + } + }); + } + } + else if (tempDataValues_Level1_JToken["properties"]["id"]["type"].ToString() == "model") { //[{\"id\":5,\"unit\":\"\",\"value\":\"红色\","valueId":1234567}] var tempJarray = tempDataValues_Level1_JToken["properties"]["value"]["enum"][0]["preprocessingSaleAttrValTemplateValueList"] as JArray; From f04ede2080a2542539ee3daddcf0fb6d8ee03ed2 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Fri, 8 Dec 2023 11:05:21 +0800 Subject: [PATCH 16/57] =?UTF-8?q?=E6=8A=A5=E5=8A=A0=E5=92=8C=E4=B8=8B?= =?UTF-8?q?=E5=8D=95=E5=89=8D=20=E6=9C=AC=E5=9C=B0=E5=BA=8F=E5=88=97?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../APIServices/PurchaseOrderService.cs | 23 ++++--------------- BBWY.Client/GlobalContext.cs | 2 +- .../Models/PurchaseOrder/CargoParam.cs | 17 ++++++++++++++ .../Purchase/1688PreviewPurchaseViewModel.cs | 23 +++++++++++++++++-- 4 files changed, 43 insertions(+), 22 deletions(-) create mode 100644 BBWY.Client/Models/PurchaseOrder/CargoParam.cs diff --git a/BBWY.Client/APIServices/PurchaseOrderService.cs b/BBWY.Client/APIServices/PurchaseOrderService.cs index cfda899b..27893f6f 100644 --- a/BBWY.Client/APIServices/PurchaseOrderService.cs +++ b/BBWY.Client/APIServices/PurchaseOrderService.cs @@ -57,20 +57,13 @@ namespace BBWY.Client.APIServices /// /// /// - public ApiResponse PreviewPurchaseOrder(Consignee consignee, IList purchaseSchemeProductSkuList, Platform purchasePlatform, PurchaseAccount purchaseAccount, PurchaseOrderMode purchaseOrderMode) + public ApiResponse PreviewPurchaseOrder(Consignee consignee, List cargoParamList, Platform purchasePlatform, PurchaseAccount purchaseAccount, PurchaseOrderMode purchaseOrderMode) { return SendRequest(globalContext.BBYWApiHost, "api/purchaseOrder/PreviewPurchaseOrder", new { purchaseOrderMode, consignee, - CargoParamList = purchaseSchemeProductSkuList.Select(sku => new - { - ProductId = sku.PurchaseProductId, - SkuId = sku.PurchaseSkuId, - SpecId = sku.PurchaseSkuSpecId, - Quantity = sku.ItemTotal, - BelongSkuId = sku.SkuId - }), + CargoParamList = cargoParamList, Platform = purchasePlatform, AppKey = purchaseAccount.AppKey, AppSecret = purchaseAccount.AppSecret, @@ -99,7 +92,7 @@ namespace BBWY.Client.APIServices /// /// public ApiResponse FastCreateOrder(Consignee consignee, - IList purchaseSchemeProductSkuList, + List cargoParamList, Platform purchasePlatform, PurchaseAccount purchaseAccount, PurchaseOrderMode purchaseOrderMode, @@ -118,15 +111,7 @@ namespace BBWY.Client.APIServices { purchaseOrderMode, consignee, - CargoParamList = purchaseSchemeProductSkuList.Select(sku => new - { - ProductId = sku.PurchaseProductId, - SkuId = sku.PurchaseSkuId, - SpecId = sku.PurchaseSkuSpecId, - Quantity = sku.ItemTotal, - BelongSkuId = sku.SkuId, - SchemeId = sku.SkuPurchaseSchemeId - }), + CargoParamList = cargoParamList, Platform = purchasePlatform, purchaseAccount.AppKey, purchaseAccount.AppSecret, diff --git a/BBWY.Client/GlobalContext.cs b/BBWY.Client/GlobalContext.cs index c63fb25d..2f6a278e 100644 --- a/BBWY.Client/GlobalContext.cs +++ b/BBWY.Client/GlobalContext.cs @@ -13,7 +13,7 @@ namespace BBWY.Client { ShopServiceGroupList = new List(); ShopServiceGroupLowerList = new List(); - ClientVersion = "10216"; + ClientVersion = "10217"; } diff --git a/BBWY.Client/Models/PurchaseOrder/CargoParam.cs b/BBWY.Client/Models/PurchaseOrder/CargoParam.cs new file mode 100644 index 00000000..68e2714b --- /dev/null +++ b/BBWY.Client/Models/PurchaseOrder/CargoParam.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace BBWY.Client.Models +{ + public class CargoParam + { + public string ProductId { get; set; } + public string SkuId { get; set; } + public string SpecId { get; set; } + public int Quantity { get; set; } + public string BelongSkuId { get; set; } + + public long? SchemeId { get; set; } + } +} diff --git a/BBWY.Client/ViewModels/Purchase/1688PreviewPurchaseViewModel.cs b/BBWY.Client/ViewModels/Purchase/1688PreviewPurchaseViewModel.cs index d3aec609..f9022b7d 100644 --- a/BBWY.Client/ViewModels/Purchase/1688PreviewPurchaseViewModel.cs +++ b/BBWY.Client/ViewModels/Purchase/1688PreviewPurchaseViewModel.cs @@ -11,6 +11,7 @@ using System.Linq; using System.Threading.Tasks; using System.Windows; using System.Windows.Input; +using Newtonsoft.Json; namespace BBWY.Client.ViewModels { @@ -245,6 +246,15 @@ namespace BBWY.Client.ViewModels } #endregion + var cargoParamList = PurchaseSchemeProductSkuList.Select(sku => new CargoParam + { + ProductId = sku.PurchaseProductId, + SkuId = sku.PurchaseSkuId, + SpecId = sku.PurchaseSkuSpecId, + Quantity = sku.ItemTotal, + BelongSkuId = sku.SkuId + }).ToList(); + IsLoading = true; Task.Factory.StartNew(() => purchaseOrderService.PreviewPurchaseOrder(new Consignee() { @@ -256,7 +266,7 @@ namespace BBWY.Client.ViewModels Province = Province, TelePhone = Mobile, Town = Town - }, PurchaseSchemeProductSkuList, purchaseAccount.PurchasePlatformId, purchaseAccount, PurchaseOrderMode)) + }, cargoParamList, purchaseAccount.PurchasePlatformId, purchaseAccount, PurchaseOrderMode)) .ContinueWith(t => { IsLoading = false; @@ -296,6 +306,15 @@ namespace BBWY.Client.ViewModels MessageBox.Show("收货人信息不全", "下单"); return; } + var cargoParamList = PurchaseSchemeProductSkuList.Select(sku => new CargoParam + { + ProductId = sku.PurchaseProductId, + SkuId = sku.PurchaseSkuId, + SpecId = sku.PurchaseSkuSpecId, + Quantity = sku.ItemTotal, + BelongSkuId = sku.SkuId, + SchemeId = sku.SkuPurchaseSchemeId + }).ToList(); IsLoading = true; Task.Factory.StartNew(() => purchaseOrderService.FastCreateOrder(new Consignee() @@ -308,7 +327,7 @@ namespace BBWY.Client.ViewModels Province = Province, TelePhone = Mobile, Town = Town - }, PurchaseSchemeProductSkuList, + }, cargoParamList, purchaseAccount.PurchasePlatformId, purchaseAccount, PurchaseOrderMode, From dfaade728fcb8e2f5babf718e8095d13be1a4d5a Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Fri, 8 Dec 2023 11:10:20 +0800 Subject: [PATCH 17/57] 1 --- BBWY.Client/Models/PurchaseOrder/CargoParam.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BBWY.Client/Models/PurchaseOrder/CargoParam.cs b/BBWY.Client/Models/PurchaseOrder/CargoParam.cs index 68e2714b..7d07f421 100644 --- a/BBWY.Client/Models/PurchaseOrder/CargoParam.cs +++ b/BBWY.Client/Models/PurchaseOrder/CargoParam.cs @@ -12,6 +12,6 @@ namespace BBWY.Client.Models public int Quantity { get; set; } public string BelongSkuId { get; set; } - public long? SchemeId { get; set; } + public long SchemeId { get; set; } } } From 22d379575051dc19d9ac043fec485a49f9a43ea0 Mon Sep 17 00:00:00 2001 From: "506583276@qq.com" <506583276@qq.com> Date: Fri, 8 Dec 2023 15:17:16 +0800 Subject: [PATCH 18/57] =?UTF-8?q?=E6=89=93=E5=8D=B0=E5=B0=81=E7=AE=B1?= =?UTF-8?q?=E7=AD=96=E7=95=A5=E6=97=B6=E5=80=99=E6=8B=89=E5=8F=96=E6=9C=80?= =?UTF-8?q?=E6=96=B0=E5=B0=81=E7=AE=B1=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BBWY.Client/BBWYAppSettings.json | 4 ++-- .../PackTask/WareHouseListViewModel.cs | 18 +++++++++++++++++- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/BBWY.Client/BBWYAppSettings.json b/BBWY.Client/BBWYAppSettings.json index 197f2c55..54bc506c 100644 --- a/BBWY.Client/BBWYAppSettings.json +++ b/BBWY.Client/BBWYAppSettings.json @@ -4,6 +4,6 @@ "MDSApiHost": "http://mdsapi.qiyue666.com", "JOSApiHost": "", "1688ApiHost": "", - //"QKApiHost": "http://localhost:8080" - "QKApiHost": "http://qiku.qiyue666.com" + "QKApiHost": "http://localhost:8080" + // "QKApiHost": "http://qiku.qiyue666.com" } \ No newline at end of file diff --git a/BBWY.Client/ViewModels/PackTask/WareHouseListViewModel.cs b/BBWY.Client/ViewModels/PackTask/WareHouseListViewModel.cs index 17938dc4..8efb5100 100644 --- a/BBWY.Client/ViewModels/PackTask/WareHouseListViewModel.cs +++ b/BBWY.Client/ViewModels/PackTask/WareHouseListViewModel.cs @@ -39,6 +39,7 @@ using BBWY.Client.Extensions; using BBWY.Client.Views.PackTaskAbort; using System.Windows.Controls; using BBWY.Client.Views.SomeArrival; +using BBWY.Client.Views.PackTask; namespace BBWY.Client.ViewModels.PackTask { @@ -1135,7 +1136,7 @@ namespace BBWY.Client.ViewModels.PackTask { - if (IsPassInspection||model.TaskAbortTime != null)//验收过 跳过询问 + if (IsPassInspection || model.TaskAbortTime != null)//验收过 跳过询问 { isqualityCer = true; return; @@ -1563,6 +1564,21 @@ namespace BBWY.Client.ViewModels.PackTask { var model = (SealBoxModel)obj; + var datas = sealBoxService.GetWareSealBoxList(null, null, null, model.SealBoxId, 1, 10); + if (datas != null && datas.Data != null && datas.Success) + { + var dataModel = datas.Data; + + + var flashModel = dataModel.WaitSealBoxModels.SingleOrDefault(w => w.SealBoxId == model.SealBoxId); + + if (flashModel != null) + { + model.SealBoxSkus = flashModel.SealBoxSkus; + } + + + } SealBoxPrintDetailsWindow printDetailsWindow = new SealBoxPrintDetailsWindow(model, sealBoxService); printDetailsWindow.ShowDialog(); } From 06941f5124c796c12578b004921fcbd2d47eda37 Mon Sep 17 00:00:00 2001 From: "506583276@qq.com" <506583276@qq.com> Date: Fri, 8 Dec 2023 15:32:35 +0800 Subject: [PATCH 19/57] 10218 --- BBWY.Client/BBWYAppSettings.json | 4 ++-- BBWY.Client/GlobalContext.cs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/BBWY.Client/BBWYAppSettings.json b/BBWY.Client/BBWYAppSettings.json index 54bc506c..d4878127 100644 --- a/BBWY.Client/BBWYAppSettings.json +++ b/BBWY.Client/BBWYAppSettings.json @@ -4,6 +4,6 @@ "MDSApiHost": "http://mdsapi.qiyue666.com", "JOSApiHost": "", "1688ApiHost": "", - "QKApiHost": "http://localhost:8080" - // "QKApiHost": "http://qiku.qiyue666.com" + // "QKApiHost": "http://localhost:8080" + "QKApiHost": "http://qiku.qiyue666.com" } \ No newline at end of file diff --git a/BBWY.Client/GlobalContext.cs b/BBWY.Client/GlobalContext.cs index 2f6a278e..5378a754 100644 --- a/BBWY.Client/GlobalContext.cs +++ b/BBWY.Client/GlobalContext.cs @@ -13,7 +13,7 @@ namespace BBWY.Client { ShopServiceGroupList = new List(); ShopServiceGroupLowerList = new List(); - ClientVersion = "10217"; + ClientVersion = "10218"; } From 35451d405a7490ef1be129a29bd2f0ec97421381 Mon Sep 17 00:00:00 2001 From: sanji Date: Fri, 8 Dec 2023 18:50:04 +0800 Subject: [PATCH 20/57] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=A0=87=E9=A2=98?= =?UTF-8?q?=E8=A7=A3=E6=9E=90=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BBWY.Server.Business/PlatformSDK/JDBusiness.cs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/BBWY.Server.Business/PlatformSDK/JDBusiness.cs b/BBWY.Server.Business/PlatformSDK/JDBusiness.cs index b71fe9a1..351acc47 100644 --- a/BBWY.Server.Business/PlatformSDK/JDBusiness.cs +++ b/BBWY.Server.Business/PlatformSDK/JDBusiness.cs @@ -128,7 +128,21 @@ namespace BBWY.Server.Business var title = s["saleAttrs"] != null ? string.Join("-", s["saleAttrs"].Select(a => a["attrValueAlias"][0].ToString())) : string.Empty; if (!string.IsNullOrEmpty(title) && title.Contains("id") && title.Contains("value")) { - title = string.Join("", JArray.Parse(title).Select(j => $"{j.Value("value")}{j.Value("unit")}")); + if (title.Contains("]-[")) + { + title = title.Replace("]-[", "]^["); + var titleArray = title.Split(new char[] { '^' }, StringSplitOptions.RemoveEmptyEntries); + StringBuilder sb = new StringBuilder(); + foreach (var titleStr in titleArray) + { + sb.Append(string.Join("", JArray.Parse(titleStr).Select(j => $"{j.Value("value")}{j.Value("unit")}"))); + } + title = sb.ToString(); + } + else + { + title = string.Join("", JArray.Parse(title).Select(j => $"{j.Value("value")}{j.Value("unit")}")); + } } return title; } From 7567797a71b989d75d9759acd5f20245209e388d Mon Sep 17 00:00:00 2001 From: "506583276@qq.com" <506583276@qq.com> Date: Fri, 8 Dec 2023 20:34:53 +0800 Subject: [PATCH 21/57] 1 --- .../PackagingTask/PrintPackDetailWindow.xaml.cs | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/BBWY.Client/Views/PackagingTask/PrintPackDetailWindow.xaml.cs b/BBWY.Client/Views/PackagingTask/PrintPackDetailWindow.xaml.cs index 655e135f..54b0767c 100644 --- a/BBWY.Client/Views/PackagingTask/PrintPackDetailWindow.xaml.cs +++ b/BBWY.Client/Views/PackagingTask/PrintPackDetailWindow.xaml.cs @@ -71,7 +71,7 @@ namespace BBWY.Client.Views.PackagingTask try { var applicationPath = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); - string printNames = System.IO.Path.Combine(applicationPath, "printName.init"); + string printNames = System.IO.Path.Combine(applicationPath, "printPackDetailName.init"); if (File.Exists(printNames)) { PrintName = File.ReadAllText(printNames); @@ -121,8 +121,23 @@ namespace BBWY.Client.Views.PackagingTask for (int i = 0; i < PrintCount; i++) { printWindow.PrintBox(PrintName); + } + var applicationPath = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); + string printNames = System.IO.Path.Combine(applicationPath, "printPackDetailName.init"); + try + { + if (File.Exists(printNames)) + { + File.Delete(printNames); + } + } + catch + { + + } + File.WriteAllText(printNames, PrintName); this.Close(); From 85137285eff6aa56601672ffff7eb08d625e1a15 Mon Sep 17 00:00:00 2001 From: "506583276@qq.com" <506583276@qq.com> Date: Fri, 8 Dec 2023 20:35:51 +0800 Subject: [PATCH 22/57] 10219 --- BBWY.Client/GlobalContext.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BBWY.Client/GlobalContext.cs b/BBWY.Client/GlobalContext.cs index 5378a754..90bc01bb 100644 --- a/BBWY.Client/GlobalContext.cs +++ b/BBWY.Client/GlobalContext.cs @@ -13,7 +13,7 @@ namespace BBWY.Client { ShopServiceGroupList = new List(); ShopServiceGroupLowerList = new List(); - ClientVersion = "10218"; + ClientVersion = "10219"; } From 6f1f52fc9b60b3c6271200340be254b3fc426257 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Mon, 11 Dec 2023 02:38:09 +0800 Subject: [PATCH 23/57] =?UTF-8?q?=E9=A2=84=E4=BC=B0=E6=88=90=E6=9C=AC?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BBWY.Server.API/BBWY.Server.API.csproj | 4 +- .../OrderEstimateCostSyncController.cs | 37 +++ .../BBWY.Server.Business.csproj | 4 +- .../Sync/OrderEstimateCostSyncBusiness.cs | 300 ++++++++++++++++++ BBWY.Server.Business/TaskSchedulerManager.cs | 4 + BBWY.Server.Model/BBWY.Server.Model.csproj | 2 +- BBWY.Server.Model/Db/Order/OrderCost.cs | 6 + BBWY.Server.Model/Db/Order/OrderCostDetail.cs | 9 +- BBWY.Server.Model/Db/Order/SkuRecentCost.cs | 94 ++++++ .../Dto/Request/Sync/SkuRecentCostRequest.cs | 15 + BBWY.Test/BBWY.Test.csproj | 4 +- JD.API/JD.API.csproj | 4 +- 12 files changed, 472 insertions(+), 11 deletions(-) create mode 100644 BBWY.Server.API/Controllers/OrderEstimateCostSyncController.cs create mode 100644 BBWY.Server.Business/Sync/OrderEstimateCostSyncBusiness.cs create mode 100644 BBWY.Server.Model/Db/Order/SkuRecentCost.cs create mode 100644 BBWY.Server.Model/Dto/Request/Sync/SkuRecentCostRequest.cs diff --git a/BBWY.Server.API/BBWY.Server.API.csproj b/BBWY.Server.API/BBWY.Server.API.csproj index 65f647df..1a20a366 100644 --- a/BBWY.Server.API/BBWY.Server.API.csproj +++ b/BBWY.Server.API/BBWY.Server.API.csproj @@ -6,8 +6,8 @@ - - + + diff --git a/BBWY.Server.API/Controllers/OrderEstimateCostSyncController.cs b/BBWY.Server.API/Controllers/OrderEstimateCostSyncController.cs new file mode 100644 index 00000000..b5ae7c71 --- /dev/null +++ b/BBWY.Server.API/Controllers/OrderEstimateCostSyncController.cs @@ -0,0 +1,37 @@ +using BBWY.Server.Business; +using BBWY.Server.Model.Dto; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; + +namespace BBWY.Server.API.Controllers +{ + + public class OrderEstimateCostSyncController : BaseApiController + { + private OrderEstimateCostSyncBusiness orderEstimateCostSyncBusiness; + + public OrderEstimateCostSyncController(IHttpContextAccessor httpContextAccessor, OrderEstimateCostSyncBusiness orderEstimateCostSyncBusiness) : base(httpContextAccessor) + { + this.orderEstimateCostSyncBusiness = orderEstimateCostSyncBusiness; + } + + /// + /// 同步所有店铺的SKU最近成本 + /// + [HttpPost] + public void SyncAllShopOrderSkuRecentCost() + { + orderEstimateCostSyncBusiness.SyncAllShopOrderSkuRecentCost(); + } + + /// + /// 同步指定条件的SKU最近成本 + /// + /// + [HttpPost] + public void SyncOrderSkuRecentCost([FromBody] SkuRecentCostRequest request) + { + orderEstimateCostSyncBusiness.SyncOrderSkuRecentCost(request); + } + } +} diff --git a/BBWY.Server.Business/BBWY.Server.Business.csproj b/BBWY.Server.Business/BBWY.Server.Business.csproj index 2fbbac4b..d872e01e 100644 --- a/BBWY.Server.Business/BBWY.Server.Business.csproj +++ b/BBWY.Server.Business/BBWY.Server.Business.csproj @@ -6,8 +6,8 @@ - - + + diff --git a/BBWY.Server.Business/Sync/OrderEstimateCostSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderEstimateCostSyncBusiness.cs new file mode 100644 index 00000000..28b12c52 --- /dev/null +++ b/BBWY.Server.Business/Sync/OrderEstimateCostSyncBusiness.cs @@ -0,0 +1,300 @@ +using BBWY.Common.Extensions; +using BBWY.Common.Models; +using BBWY.Server.Business.Extensions; +using BBWY.Server.Model; +using BBWY.Server.Model.Db; +using BBWY.Server.Model.Dto; +using FreeSql; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; +using Yitter.IdGenerator; + +namespace BBWY.Server.Business +{ + public class OrderEstimateCostSyncBusiness : BaseBusiness, IDenpendency + { + private TaskSchedulerManager taskSchedulerManager; + private VenderBusiness venderBusiness; + private List invalidOrderStateList; + public OrderEstimateCostSyncBusiness(IFreeSql fsql, + NLogManager nLogManager, + IIdGenerator idGenerator, + TaskSchedulerManager taskSchedulerManager, + VenderBusiness venderBusiness) : base(fsql, nLogManager, idGenerator) + { + this.taskSchedulerManager = taskSchedulerManager; + this.venderBusiness = venderBusiness; + invalidOrderStateList = new List() { + Enums.OrderState.待付款, + Enums.OrderState.已取消, + Enums.OrderState.暂停 + }; + } + + #region 同步SKU最近成本 + + public void SyncAllShopOrderSkuRecentCost() + { + var date = DateTime.Now.Date.AddDays(-1); + SyncOrderSkuRecentCost(new SkuRecentCostRequest() + { + ShopId = null, + StartDate = date, + EndDate = date + }); + } + + /// + /// 同步昨天SKU的采购成本 + /// + /// + public void SyncOrderSkuRecentCost(SkuRecentCostRequest request) + { + var shopList = venderBusiness.GetShopList(request.ShopId, Model.Enums.Platform.京东); + request.EndDate = request.EndDate.Date.AddDays(1).AddSeconds(-1); + foreach (var shop in shopList) + { + var _shopId = long.Parse(shop.ShopId); + Task.Factory.StartNew(() => SyncOrderSkuRecentCost(shop, request.StartDate, request.EndDate), CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.SyncSkuYesterdayCostTaskScheduler); + } + } + + private void SyncOrderSkuRecentCost(ShopResponse shop, DateTime startDate, DateTime endDate) + { + try + { + var shopId = long.Parse(shop.ShopId); + var yesterdaycostDetailist = fsql.Select() + .InnerJoin((ocd, o) => ocd.OrderId == o.Id) + .Where((ocd, o) => o.ShopId == shopId && + o.StartTime >= startDate && + o.StartTime <= endDate && + !invalidOrderStateList.Contains(o.OrderState) && + o.IsGift == false && + o.StorageType != Enums.StorageType.SD && + ocd.IsEnabled == true && + ocd.IsEstimateCost == false) + .GroupBy((ocd, o) => ocd.SkuId) + .WithTempQuery(g => new { MaxId = g.Sum(g.Value.Item1.Id), SkuId = g.Key }) + .From() + .InnerJoin((ocd1, ocd2) => ocd1.MaxId == ocd2.Id) + .ToList((ocd1, ocd2) => ocd2); + if (yesterdaycostDetailist.Count() == 0) + return; + + var skuIdList = yesterdaycostDetailist.Select(ocd => ocd.SkuId).Distinct().ToList(); + var dbSkuRecentCostList = fsql.Select(skuIdList).ToList(); + + List insertSkuRecetCostList = new List(); + List> updateSkuRecentCostList = new List>(); + foreach (var yesocd in yesterdaycostDetailist) + { + var q = yesocd.DeductionQuantity; + if (q <= 0) + q = 1; + var singleConsumableAmount = yesocd.ConsumableAmount / q; + var singleDeliveryFreight = yesocd.DeliveryExpressFreight / q; + var singleFirstFreight = yesocd.FirstFreight / q; + var singleFreight = yesocd.PurchaseFreight / q; + var singleInStorageAmount = yesocd.InStorageAmount / q; + var singleOutStorageAmount = yesocd.OutStorageAmount / q; + var singleSkuAmount = yesocd.SkuAmount / q; + var singleStorageAmount = yesocd.StorageAmount / q; + + var skuRecentCost = dbSkuRecentCostList.FirstOrDefault(x => x.SkuId == yesocd.SkuId); + if (skuRecentCost != null) + { + skuRecentCost.SingleConsumableAmount = singleConsumableAmount; + skuRecentCost.SingleDeliveryFreight = singleDeliveryFreight; + skuRecentCost.SingleFirstFreight = singleFirstFreight; + skuRecentCost.SingleFreight = singleFreight; + skuRecentCost.SingleInStorageAmount = singleInStorageAmount; + skuRecentCost.SingleOutStorageAmount = singleOutStorageAmount; + skuRecentCost.SingleSkuAmount = singleSkuAmount; + skuRecentCost.SingleStorageAmount = singleStorageAmount; + skuRecentCost.UpdateTime = DateTime.Now; + var update = fsql.Update(yesocd.SkuId).SetSource(skuRecentCost); + updateSkuRecentCostList.Add(update); + } + else + { + skuRecentCost = new SkuRecentCost() + { + SkuId = yesocd.SkuId, + CreateTime = DateTime.Now, + UpdateTime = DateTime.Now, + ProductId = yesocd.ProductId, + RecentOrderId = yesocd.OrderId, + ShopId = shopId, + SingleConsumableAmount = singleConsumableAmount, + SingleDeliveryFreight = singleDeliveryFreight, + SingleFirstFreight = singleFirstFreight, + SingleFreight = singleFreight, + SingleInStorageAmount = singleInStorageAmount, + SingleOutStorageAmount = singleOutStorageAmount, + SingleSkuAmount = singleSkuAmount, + SingleStorageAmount = singleStorageAmount + }; + insertSkuRecetCostList.Add(skuRecentCost); + } + } + + fsql.Transaction(() => + { + if (insertSkuRecetCostList.Count() > 0) + fsql.Insert(insertSkuRecetCostList).ExecuteAffrows(); + if (updateSkuRecentCostList.Count() > 0) + { + foreach (var update in updateSkuRecentCostList) + update.ExecuteAffrows(); + } + }); + } + catch (Exception ex) + { + nLogManager.GetLogger($"SKU最近成本-{shop.ShopName}").Error(ex); + } + } + + #endregion + + #region 预估成本 + public void EstimateCostForAllShopNoCostOrder() + { + EstimateCostForNoCostOrder(new SkuRecentCostRequest() + { + ShopId = null, + StartDate = DateTime.Now.AddHours(-3), + EndDate = DateTime.Now + }); + } + + public void EstimateCostForNoCostOrder(SkuRecentCostRequest request) + { + var shopList = venderBusiness.GetShopList(request.ShopId, Model.Enums.Platform.京东); + //request.EndDate = request.EndDate.Date.AddDays(1).AddSeconds(-1); + foreach (var shop in shopList) + { + Task.Factory.StartNew(() => EstimateCostForNoCostOrder(shop, request.StartDate, request.EndDate), CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.SyncSkuYesterdayCostTaskScheduler); + } + } + + private void EstimateCostForNoCostOrder(ShopResponse shop, DateTime startTime, DateTime endTime) + { + try + { + var shopId = long.Parse(shop.ShopId); + var orderList = fsql.Select().Where(o => o.ShopId == shopId && + o.ModifyTime >= startTime && + o.ModifyTime <= endTime && + !invalidOrderStateList.Contains(o.OrderState) && + o.IsGift == false && + o.StorageType == null && + !fsql.Select().Where(oc => oc.OrderId == o.Id).Any()) + .ToList(); + if (orderList.Count() == 0) + return; + var orderIdList = orderList.Select(o => o.Id).ToList(); + + + /* + decimal skuShouldPay, + decimal pingTaiChengDanYouHuiQuan, + decimal superRedEnvelope, + decimal xianPinLeiDongQuan, + decimal skuVenderFee, + decimal jingdou, + decimal dongquan, + decimal balance, + */ + + /* + SkuAmount + + PurchaseFreight + + FirstFreight + + InStorageAmount + + OutStorageAmount + + StorageAmount + + ConsumableAmount + */ + var orderSkuAndRecentList = fsql.Select() + .LeftJoin((osku, src) => osku.SkuId == src.SkuId) + .Where((osku, src) => orderIdList.Contains(osku.SkuId) && osku.Price > 0) + .ToList((osku, src) => new + { + osku.Id, + osku.OrderId, + osku.SkuId, + osku.ProductId, + osku.ShouldPay, + osku.PingTaiChengDanYouHuiQuan, + osku.SuperRedEnvelope, + osku.XianPinLeiDongQuan, + osku.VenderFee, + osku.JingDou, + osku.DongQuan, + osku.Balance, + osku.ItemTotal, + src.SingleConsumableAmount, + src.SingleSkuAmount, + src.SingleDeliveryFreight, + src.SingleFirstFreight, + src.SingleFreight, + src.SingleInStorageAmount, + src.SingleOutStorageAmount, + src.SingleStorageAmount + }); + foreach (var order in orderList) + { + var currentOrderSkuList = orderSkuAndRecentList.Where(osku => osku.OrderId == order.Id).ToList(); + if (currentOrderSkuList.Any(osku => osku.ShouldPay == null || + osku.ShouldPay == 0 || + osku.SingleSkuAmount == null || + osku.SingleSkuAmount == 0)) + continue; //预估成本和毛利,必须订单下的每一笔sku都具备最近成本 + + foreach (var osku in currentOrderSkuList) + { + var ocd = new OrderCostDetail() + { + Id = idGenerator.NewLong(), + ConsumableAmount = (osku.SingleConsumableAmount * osku.ItemTotal) ?? 0M, + DeductionQuantity = osku.ItemTotal ?? 1, + CreateTime = DateTime.Now, + DeliveryExpressFreight = (osku.SingleDeliveryFreight * osku.ItemTotal) ?? 0M, + FirstFreight = (osku.SingleFirstFreight * osku.ItemTotal) ?? 0M, + InStorageAmount = (osku.SingleInStorageAmount * osku.ItemTotal) ?? 0M, + OutStorageAmount = (osku.SingleOutStorageAmount * osku.ItemTotal) ?? 0M, + OrderId = order.Id, + ProductId = osku.ProductId, + PurchaseFreight = (osku.SingleFreight * osku.ItemTotal) ?? 0M, + PurchaseOrderPKId = 0, + SkuAmount = (osku.SingleSkuAmount * osku.ItemTotal) ?? 0M, + SkuId = osku.SkuId, + StorageAmount = (osku.SingleStorageAmount * osku.ItemTotal) ?? 0M, + IsEnabled = true, + IsEstimateCost = true + }; + ocd.CalculationSkuGrossProfit(osku.ShouldPay ?? 0M, + osku.PingTaiChengDanYouHuiQuan ?? 0M, + osku.SuperRedEnvelope ?? 0M, + osku.XianPinLeiDongQuan ?? 0M, + osku.VenderFee ?? 0M, + osku.JingDou ?? 0M, + osku.DongQuan ?? 0M, + osku.Balance ?? 0M, + shop.PlatformCommissionRatio ?? 0.05M); + } + } + } + catch (Exception ex) + { + nLogManager.GetLogger($"预估成本-{shop.ShopName}").Error(ex); + } + } + #endregion + } +} \ No newline at end of file diff --git a/BBWY.Server.Business/TaskSchedulerManager.cs b/BBWY.Server.Business/TaskSchedulerManager.cs index 572f021a..4e2df060 100644 --- a/BBWY.Server.Business/TaskSchedulerManager.cs +++ b/BBWY.Server.Business/TaskSchedulerManager.cs @@ -34,6 +34,8 @@ namespace BBWY.Server.Business public LimitedConcurrencyLevelTaskScheduler JDPromotionAutoStartTaskScheduler { get; private set; } + public LimitedConcurrencyLevelTaskScheduler SyncSkuYesterdayCostTaskScheduler { get; private set; } + public TaskSchedulerManager() { RepairOrderTaskScheduler = new LimitedConcurrencyLevelTaskScheduler(5); @@ -55,6 +57,8 @@ namespace BBWY.Server.Business JDPromotionAutoStartTaskScheduler = new LimitedConcurrencyLevelTaskScheduler(10); SyncPauseOrderTaskScheduler = new LimitedConcurrencyLevelTaskScheduler(10); + + SyncSkuYesterdayCostTaskScheduler = new LimitedConcurrencyLevelTaskScheduler(10); } } } diff --git a/BBWY.Server.Model/BBWY.Server.Model.csproj b/BBWY.Server.Model/BBWY.Server.Model.csproj index 9bee62e6..754c33d1 100644 --- a/BBWY.Server.Model/BBWY.Server.Model.csproj +++ b/BBWY.Server.Model/BBWY.Server.Model.csproj @@ -7,7 +7,7 @@ - + diff --git a/BBWY.Server.Model/Db/Order/OrderCost.cs b/BBWY.Server.Model/Db/Order/OrderCost.cs index c02bc436..46a0df8c 100644 --- a/BBWY.Server.Model/Db/Order/OrderCost.cs +++ b/BBWY.Server.Model/Db/Order/OrderCost.cs @@ -84,6 +84,12 @@ namespace BBWY.Server.Model.Db /// [Column(DbType = "decimal(20,2)")] public decimal AfterTotalCost { get; set; } = 0.0M; + + /// + /// 是否为预估成本 + /// + [Column(DbType = "bit")] + public bool IsEstimateCost { get; set; } } } diff --git a/BBWY.Server.Model/Db/Order/OrderCostDetail.cs b/BBWY.Server.Model/Db/Order/OrderCostDetail.cs index 19f8b9a8..9f9fd331 100644 --- a/BBWY.Server.Model/Db/Order/OrderCostDetail.cs +++ b/BBWY.Server.Model/Db/Order/OrderCostDetail.cs @@ -104,6 +104,7 @@ namespace BBWY.Server.Model.Db /// [Column(DbType = "decimal(20,2)")] public decimal SkuGrossProfit { get; set; } = 0.00M; + /// /// 总计 /// @@ -115,8 +116,12 @@ namespace BBWY.Server.Model.Db return SkuAmount + PurchaseFreight + FirstFreight + InStorageAmount + OutStorageAmount + StorageAmount + ConsumableAmount; } } - //[Column(DbType = "decimal(20,2)")] - //public decimal TotalCost { get; set; } = 0.00M; + + /// + /// 是否为预估成本 + /// + [Column(DbType = "bit")] + public bool IsEstimateCost { get; set; } } } diff --git a/BBWY.Server.Model/Db/Order/SkuRecentCost.cs b/BBWY.Server.Model/Db/Order/SkuRecentCost.cs new file mode 100644 index 00000000..3950d1ec --- /dev/null +++ b/BBWY.Server.Model/Db/Order/SkuRecentCost.cs @@ -0,0 +1,94 @@ +using FreeSql.DataAnnotations; +using System; + +namespace BBWY.Server.Model.Db +{ + + [Table(Name = "skurecentcost", DisableSyncStructure = true)] + public partial class SkuRecentCost + { + + [Column(StringLength = 50, IsPrimary = true, IsNullable = false)] + public string SkuId { get; set; } + + [Column(DbType = "datetime")] + public DateTime? CreateTime { get; set; } + + [Column(StringLength = 50)] + public string ProductId { get; set; } + + /// + /// 最近一笔订单来源 + /// + [Column(StringLength = 50)] + public string RecentOrderId { get; set; } + + [Column(DbType = "bigint")] + public long? ShopId { get; set; } + + /// + /// 耗材费(单件) + /// + [Column(DbType = "decimal(20,2)")] + public decimal? SingleConsumableAmount { get; set; } = 0.00M; + + /// + /// 发货运费(单件) + /// + [Column(DbType = "decimal(20,2)")] + public decimal? SingleDeliveryFreight { get; set; } = 0.00M; + + /// + /// 头程运费(单件) + /// + [Column(DbType = "decimal(20,2)")] + public decimal? SingleFirstFreight { get; set; } + + /// + /// 采购运费(单件) + /// + [Column(DbType = "decimal(20,2)")] + public decimal? SingleFreight { get; set; } = 0.00M; + + /// + /// 入仓操作费(单件) + /// + [Column(DbType = "decimal(20,2)")] + public decimal? SingleInStorageAmount { get; set; } = 0.00M; + + /// + /// 操作费(单件) + /// + [Column(DbType = "decimal(20,2)")] + public decimal? SingleOperationAmount { get; set; } = 0.00M; + + /// + /// 出仓操作费(单件) + /// + [Column(DbType = "decimal(20,2)")] + public decimal? SingleOutStorageAmount { get; set; } = 0.00M; + + /// + /// 退货入仓操作费(单件) + /// + [Column(DbType = "decimal(20,2)")] + public decimal? SingleRefundInStorageAmount { get; set; } = 0.00M; + + /// + /// SKU成本(单件) + /// + [Column(DbType = "decimal(20,2)")] + public decimal? SingleSkuAmount { get; set; } + + /// + /// 仓储费(单件) + /// + [Column(DbType = "decimal(20,2)")] + public decimal? SingleStorageAmount { get; set; } = 0.00M; + + [Column(DbType = "datetime")] + public DateTime? UpdateTime { get; set; } + + } + +} diff --git a/BBWY.Server.Model/Dto/Request/Sync/SkuRecentCostRequest.cs b/BBWY.Server.Model/Dto/Request/Sync/SkuRecentCostRequest.cs new file mode 100644 index 00000000..4c16bdb9 --- /dev/null +++ b/BBWY.Server.Model/Dto/Request/Sync/SkuRecentCostRequest.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace BBWY.Server.Model.Dto +{ + public class SkuRecentCostRequest + { + public long? ShopId { get; set; } + + public DateTime StartDate { get; set; } + + public DateTime EndDate { get; set; } + } +} diff --git a/BBWY.Test/BBWY.Test.csproj b/BBWY.Test/BBWY.Test.csproj index bd90d253..7ede10c4 100644 --- a/BBWY.Test/BBWY.Test.csproj +++ b/BBWY.Test/BBWY.Test.csproj @@ -18,8 +18,8 @@ - - + + diff --git a/JD.API/JD.API.csproj b/JD.API/JD.API.csproj index a8271105..6f51e6c7 100644 --- a/JD.API/JD.API.csproj +++ b/JD.API/JD.API.csproj @@ -6,8 +6,8 @@ - - + + From d22e634a908697469662f737a2fc9cd39628fd0a Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Mon, 11 Dec 2023 10:45:44 +0800 Subject: [PATCH 24/57] =?UTF-8?q?=E9=A2=84=E4=BC=B0=E6=88=90=E6=9C=AC?= =?UTF-8?q?=EF=BC=8C=E8=A6=86=E7=9B=96=E6=88=90=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../OrderEstimateCostSyncController.cs | 19 +++++++++ BBWY.Server.Business/Order/OrderBusiness.cs | 24 +++++++++-- .../PurchaseOrder/PurchaseOrderBusiness.cs | 6 ++- .../Sync/OrderEstimateCostSyncBusiness.cs | 40 +++++++++---------- .../Sync/OrderSyncBusiness.cs | 6 ++- BBWY.Server.Model/Db/Order/OrderCost.cs | 2 +- BBWY.Server.Model/Db/Order/OrderCostDetail.cs | 4 +- 7 files changed, 70 insertions(+), 31 deletions(-) diff --git a/BBWY.Server.API/Controllers/OrderEstimateCostSyncController.cs b/BBWY.Server.API/Controllers/OrderEstimateCostSyncController.cs index b5ae7c71..1ffe7b34 100644 --- a/BBWY.Server.API/Controllers/OrderEstimateCostSyncController.cs +++ b/BBWY.Server.API/Controllers/OrderEstimateCostSyncController.cs @@ -33,5 +33,24 @@ namespace BBWY.Server.API.Controllers { orderEstimateCostSyncBusiness.SyncOrderSkuRecentCost(request); } + + /// + /// 为所有店铺没有成本的订单预估成本和毛利 + /// + [HttpPost] + public void EstimateCostForAllShopNoCostOrder() + { + orderEstimateCostSyncBusiness.EstimateCostForAllShopNoCostOrder(); + } + + /// + /// 按指定条件预估成本和毛利 + /// + /// + [HttpPost] + public void EstimateCostForNoCostOrder([FromBody] SkuRecentCostRequest request) + { + orderEstimateCostSyncBusiness.EstimateCostForNoCostOrder(request); + } } } diff --git a/BBWY.Server.Business/Order/OrderBusiness.cs b/BBWY.Server.Business/Order/OrderBusiness.cs index 3a55f086..f2e81181 100644 --- a/BBWY.Server.Business/Order/OrderBusiness.cs +++ b/BBWY.Server.Business/Order/OrderBusiness.cs @@ -509,7 +509,9 @@ namespace BBWY.Server.Business var dbAfterSaleOrderList = fsql.Select().Where(aso => aso.OrderId == autoCalculationCostRequest.OrderId).ToList(); var orderCost = fsql.Select(autoCalculationCostRequest.OrderId).ToOne(); - var orderCostDetails = fsql.Select().Where(ocd => ocd.OrderId == autoCalculationCostRequest.OrderId && ocd.IsEnabled == true).ToList(); + var orderCostDetails = fsql.Select().Where(ocd => ocd.OrderId == autoCalculationCostRequest.OrderId && + ocd.IsEnabled == true && + ocd.IsEstimateCost == false).ToList(); IUpdate orderUpdate = null; IUpdate updateOrderCost = null; @@ -630,7 +632,8 @@ namespace BBWY.Server.Business Profit = 0, PurchaseAmount = orderCostPurchaseAmount, DeliveryExpressFreight = orderDeliveryExpressFreight, - CreateTime = DateTime.Now + CreateTime = DateTime.Now, + IsEstimateCost = false }; orderCost.CalculationOrderProfitAndCost(dbOrder, dbAfterSaleOrderList); insertOrderCost = fsql.Insert(orderCost); @@ -638,6 +641,7 @@ namespace BBWY.Server.Business } else { + orderCost.IsEstimateCost = false; orderCost.PurchaseAmount += orderCostPurchaseAmount; orderCost.DeliveryExpressFreight += orderDeliveryExpressFreight; orderCost.CalculationOrderProfitAndCost(dbOrder, dbAfterSaleOrderList); @@ -654,6 +658,12 @@ namespace BBWY.Server.Business foreach (var update in updatePurchaseOrderList) update.ExecuteAffrows(); } + fsql.Update() + .Set(ocd => ocd.IsEnabled, false) + .Where(ocd => ocd.OrderId == autoCalculationCostRequest.OrderId && + ocd.IsEnabled == true && + ocd.IsEstimateCost == true) + .ExecuteAffrows(); if (insertOrderCostDetailList.Count > 0) fsql.Insert(insertOrderCostDetailList).ExecuteAffrows(); }); @@ -708,7 +718,7 @@ namespace BBWY.Server.Business orderCostDetail.CreateTime = DateTime.Now; orderCostDetail.OrderId = manualCalculationCostRequest.OrderId; orderCostDetail.PurchaseOrderPKId = 0; - + orderCostDetail.IsEstimateCost = false; var osku = orderSkuList.FirstOrDefault(o => o.SkuId == orderCostDetail.SkuId); if (osku != null) { @@ -745,7 +755,8 @@ namespace BBWY.Server.Business PurchaseAmount = totalPurchaseCost, DeliveryExpressFreight = totalDeliveryExpressFreight, CreateTime = DateTime.Now, - IsManualEdited = true + IsManualEdited = true, + IsEstimateCost = false }; //orderCost.PlatformCommissionAmount = dbOrder.OrderSellerPrice * orderCost.PlatformCommissionRatio; //orderCost.Profit = dbOrder.OrderSellerPrice + @@ -767,6 +778,7 @@ namespace BBWY.Server.Business // orderCost.PlatformCommissionAmount; orderCost.CalculationOrderProfitAndCost(dbOrder, dbAfterSaleOrderList); orderCost.IsManualEdited = true; + orderCost.IsEstimateCost = false; updateOrderCost = fsql.Update().SetSource(orderCost); } @@ -855,6 +867,7 @@ namespace BBWY.Server.Business } else { + orderCost.IsEstimateCost = false; orderCost.SDCommissionAmount = sdCalculationCostRequest.SDCommissionAmount; orderCost.SDOrderAmount = sdCalculationCostRequest.SDOrderAmount; orderCost.DeliveryExpressFreight = sdCalculationCostRequest.DeliveryExpressFreight; @@ -866,6 +879,7 @@ namespace BBWY.Server.Business fsql.Transaction(() => { + fsql.Update().Set(ocd => ocd.IsEnabled, false).Where(ocd => ocd.OrderId == sdCalculationCostRequest.OrderId).ExecuteAffrows(); orderUpdate?.ExecuteAffrows(); updateOrderCost?.ExecuteAffrows(); insertOrderCost?.ExecuteAffrows(); @@ -1014,6 +1028,8 @@ namespace BBWY.Server.Business orderCost.PurchaseAmount - orderCost.DeliveryExpressFreight - orderCost.PlatformCommissionAmount; + orderCost.IsEstimateCost = false; + orderCost.IsManualEdited = true; updateOrderCost = fsql.Update().SetSource(orderCost).IgnoreColumns(oc => new { oc.CreateTime, diff --git a/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs index 344da0f2..4f6f7592 100644 --- a/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs +++ b/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs @@ -286,6 +286,7 @@ namespace BBWY.Server.Business SkuAmount = currentOrderSkuProductAmount, SkuId = orderSku.SkuId, StorageAmount = 0, + IsEstimateCost = false //UnitCost = purchaseOrder.UnitCost, //TotalCost = currentOrderSkuProductAmount + currentOrderSkuFreightAmount//purchaseOrder.UnitCost * orderSku.ItemTotal.Value }; @@ -317,7 +318,8 @@ namespace BBWY.Server.Business PreferentialAmount = dbOrder.PreferentialAmount, SDCommissionAmount = 0, SDOrderAmount = 0, - PurchaseAmount = purchaseOrderSimpleInfo.TotalAmount + PurchaseAmount = purchaseOrderSimpleInfo.TotalAmount, + IsEstimateCost = false }; //orderCost.PlatformCommissionAmount = dbOrder.OrderSellerPrice * orderCost.PlatformCommissionRatio; //orderCost.Profit = dbOrder.OrderSellerPrice + @@ -675,7 +677,7 @@ namespace BBWY.Server.Business #region 查询成本明细 currentProgress = "查询成本明细"; - var orderCostDetailList = fsql.Select().Where(ocd => ocd.OrderId == orderDropshipping.OrderId).ToList(); + var orderCostDetailList = fsql.Select().Where(ocd => ocd.OrderId == orderDropshipping.OrderId && ocd.IsEnabled == true).ToList(); if (orderCostDetailList == null || orderCostDetailList.Count() == 0) throw new BusinessException("订单成本明细不存在"); #endregion diff --git a/BBWY.Server.Business/Sync/OrderEstimateCostSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderEstimateCostSyncBusiness.cs index 28b12c52..74371585 100644 --- a/BBWY.Server.Business/Sync/OrderEstimateCostSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/OrderEstimateCostSyncBusiness.cs @@ -199,27 +199,9 @@ namespace BBWY.Server.Business return; var orderIdList = orderList.Select(o => o.Id).ToList(); + List insertOrderCostDetailList = new List(); + List insertOrderCostList = new List(); - /* - decimal skuShouldPay, - decimal pingTaiChengDanYouHuiQuan, - decimal superRedEnvelope, - decimal xianPinLeiDongQuan, - decimal skuVenderFee, - decimal jingdou, - decimal dongquan, - decimal balance, - */ - - /* - SkuAmount + - PurchaseFreight + - FirstFreight + - InStorageAmount + - OutStorageAmount + - StorageAmount + - ConsumableAmount - */ var orderSkuAndRecentList = fsql.Select() .LeftJoin((osku, src) => osku.SkuId == src.SkuId) .Where((osku, src) => orderIdList.Contains(osku.SkuId) && osku.Price > 0) @@ -256,6 +238,7 @@ namespace BBWY.Server.Business osku.SingleSkuAmount == 0)) continue; //预估成本和毛利,必须订单下的每一笔sku都具备最近成本 + List currentOrderInsertOcdList = new List(); foreach (var osku in currentOrderSkuList) { var ocd = new OrderCostDetail() @@ -287,7 +270,24 @@ namespace BBWY.Server.Business osku.DongQuan ?? 0M, osku.Balance ?? 0M, shop.PlatformCommissionRatio ?? 0.05M); + currentOrderInsertOcdList.Add(ocd); } + + var orderCost = new OrderCost() + { + OrderId = order.Id, + CreateTime = DateTime.Now, + AfterTotalCost = 0M, + DeliveryExpressFreight = currentOrderInsertOcdList.Sum(ocd => ocd.DeliveryExpressFreight), + IsEstimateCost = true, + IsManualEdited = false, + PlatformCommissionRatio = shop.PlatformCommissionRatio ?? 0.05M, + PurchaseAmount = currentOrderInsertOcdList.Sum(ocd => ocd.TotalCost), + PreferentialAmount = order.PreferentialAmount + }; + orderCost.CalculationOrderProfitAndCost(order, null); + insertOrderCostDetailList.AddRange(currentOrderInsertOcdList); + insertOrderCostList.Add(orderCost); } } catch (Exception ex) diff --git a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs index 75379381..6edcd567 100644 --- a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs @@ -887,7 +887,8 @@ namespace BBWY.Server.Business PurchaseFreight = purchaseOrder.SingleFreight * deductionQuantity, SkuAmount = purchaseOrder.SingleSkuAmount * deductionQuantity, StorageAmount = purchaseOrder.SingleStorageAmount * deductionQuantity, - IsEnabled = true + IsEnabled = true, + IsEstimateCost = false }; //orderCostDetail.SkuGrossProfit = itemPrice * deductionQuantity - avgPreferential - @@ -922,7 +923,8 @@ namespace BBWY.Server.Business Profit = 0, PurchaseAmount = orderCostPurchaseAmount, DeliveryExpressFreight = orderDeliveryExpressFreight, - CreateTime = DateTime.Now + CreateTime = DateTime.Now, + IsEstimateCost = false }; if (dbOrder.OrderTotalPrice != 0) orderCost.CalculationOrderProfitAndCost(dbOrder, null); diff --git a/BBWY.Server.Model/Db/Order/OrderCost.cs b/BBWY.Server.Model/Db/Order/OrderCost.cs index 46a0df8c..addd12ae 100644 --- a/BBWY.Server.Model/Db/Order/OrderCost.cs +++ b/BBWY.Server.Model/Db/Order/OrderCost.cs @@ -89,7 +89,7 @@ namespace BBWY.Server.Model.Db /// 是否为预估成本 /// [Column(DbType = "bit")] - public bool IsEstimateCost { get; set; } + public bool IsEstimateCost { get; set; } = false; } } diff --git a/BBWY.Server.Model/Db/Order/OrderCostDetail.cs b/BBWY.Server.Model/Db/Order/OrderCostDetail.cs index 9f9fd331..84f89adb 100644 --- a/BBWY.Server.Model/Db/Order/OrderCostDetail.cs +++ b/BBWY.Server.Model/Db/Order/OrderCostDetail.cs @@ -106,7 +106,7 @@ namespace BBWY.Server.Model.Db public decimal SkuGrossProfit { get; set; } = 0.00M; /// - /// 总计 + /// 总计(不含发货运费) /// [Column(IsIgnore = true)] public decimal TotalCost @@ -121,7 +121,7 @@ namespace BBWY.Server.Model.Db /// 是否为预估成本 /// [Column(DbType = "bit")] - public bool IsEstimateCost { get; set; } + public bool IsEstimateCost { get; set; } = false; } } From aba9daf1bfe79cc646a560d79f9e5c8a183d6a5c Mon Sep 17 00:00:00 2001 From: sanji Date: Mon, 11 Dec 2023 15:06:47 +0800 Subject: [PATCH 25/57] =?UTF-8?q?=E9=A2=84=E4=BC=B0=E6=88=90=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BBWY.Client/GlobalContext.cs | 2 +- .../APIModel/Response/Order/OrderCostDetailResponse.cs | 5 +++++ .../Models/APIModel/Response/Order/OrderCostResponse.cs | 5 +++++ BBWY.Client/Models/Order/OrderCost.cs | 5 +++++ BBWY.Client/Views/Order/OrderListControl.xaml | 5 +++-- BBWY.Server.Business/Order/OrderBusiness.cs | 1 + BBWY.Server.Business/Sync/OrderEstimateCostSyncBusiness.cs | 2 ++ BBWY.Server.Model/Db/Order/Order.cs | 6 ++++++ BBWY.Server.Model/MappingProfiles.cs | 1 + 9 files changed, 29 insertions(+), 3 deletions(-) diff --git a/BBWY.Client/GlobalContext.cs b/BBWY.Client/GlobalContext.cs index 90bc01bb..4e0fc9b3 100644 --- a/BBWY.Client/GlobalContext.cs +++ b/BBWY.Client/GlobalContext.cs @@ -13,7 +13,7 @@ namespace BBWY.Client { ShopServiceGroupList = new List(); ShopServiceGroupLowerList = new List(); - ClientVersion = "10219"; + ClientVersion = "10220"; } diff --git a/BBWY.Client/Models/APIModel/Response/Order/OrderCostDetailResponse.cs b/BBWY.Client/Models/APIModel/Response/Order/OrderCostDetailResponse.cs index 90db238b..3084f87a 100644 --- a/BBWY.Client/Models/APIModel/Response/Order/OrderCostDetailResponse.cs +++ b/BBWY.Client/Models/APIModel/Response/Order/OrderCostDetailResponse.cs @@ -84,5 +84,10 @@ namespace BBWY.Client.Models /// 总计 包含销售运费 /// public decimal TotalCost2 { get; set; } = 0.00M; + + /// + /// 是否为预估成本 + /// + public bool IsEstimateCost { get; set; } = false; } } diff --git a/BBWY.Client/Models/APIModel/Response/Order/OrderCostResponse.cs b/BBWY.Client/Models/APIModel/Response/Order/OrderCostResponse.cs index ef969c54..a01f346c 100644 --- a/BBWY.Client/Models/APIModel/Response/Order/OrderCostResponse.cs +++ b/BBWY.Client/Models/APIModel/Response/Order/OrderCostResponse.cs @@ -53,6 +53,11 @@ namespace BBWY.Client.Models /// public bool IsManualEdited { get; set; } + /// + /// 是否为预估成本 + /// + public bool IsEstimateCost { get; set; } = false; + /// /// 刷单佣金 /// diff --git a/BBWY.Client/Models/Order/OrderCost.cs b/BBWY.Client/Models/Order/OrderCost.cs index eaf904f7..5626e2f9 100644 --- a/BBWY.Client/Models/Order/OrderCost.cs +++ b/BBWY.Client/Models/Order/OrderCost.cs @@ -53,6 +53,11 @@ /// public bool IsManualEdited { get; set; } + /// + /// 是否为预估成本 + /// + public bool IsEstimateCost { get; set; } = false; + /// /// 退款金额 /// diff --git a/BBWY.Client/Views/Order/OrderListControl.xaml b/BBWY.Client/Views/Order/OrderListControl.xaml index 7d2ca3d5..c66cefa7 100644 --- a/BBWY.Client/Views/Order/OrderListControl.xaml +++ b/BBWY.Client/Views/Order/OrderListControl.xaml @@ -178,7 +178,7 @@ Margin=" 5,0,0,0"/> - @@ -188,7 +188,7 @@ - + --> @@ -806,6 +806,7 @@ + () .InnerJoin((ocd1, ocd2) => ocd1.MaxId == ocd2.Id) .ToList((ocd1, ocd2) => ocd2); + Console.WriteLine($"SKU最近成本同步-{shop.ShopName},有销量的订单sku一共{yesterdaycostDetailist.Count()}个"); if (yesterdaycostDetailist.Count() == 0) return; @@ -195,6 +196,7 @@ namespace BBWY.Server.Business o.StorageType == null && !fsql.Select().Where(oc => oc.OrderId == o.Id).Any()) .ToList(); + Console.WriteLine($"预估成本-{shop.ShopName},符合条件且没有成本的订单一共{orderList.Count()}个"); if (orderList.Count() == 0) return; var orderIdList = orderList.Select(o => o.Id).ToList(); diff --git a/BBWY.Server.Model/Db/Order/Order.cs b/BBWY.Server.Model/Db/Order/Order.cs index 0fc9fbd0..ae2beaaf 100644 --- a/BBWY.Server.Model/Db/Order/Order.cs +++ b/BBWY.Server.Model/Db/Order/Order.cs @@ -246,6 +246,12 @@ namespace BBWY.Server.Model.Db [Column(IsIgnore = true)] public bool IsManualEdited { get; set; } = false; + /// + /// 是否预估成本 + /// + [Column(IsIgnore = true)] + public bool IsEstimateCost { get; set; } = false; + /// /// 退款金额 /// diff --git a/BBWY.Server.Model/MappingProfiles.cs b/BBWY.Server.Model/MappingProfiles.cs index e7db91b6..1a320ad0 100644 --- a/BBWY.Server.Model/MappingProfiles.cs +++ b/BBWY.Server.Model/MappingProfiles.cs @@ -52,6 +52,7 @@ namespace BBWY.Server.Model .ForPath(t => t.OrderCost.PlatformCommissionRatio, opt => opt.MapFrom(f => f.PlatformCommissionRatio ?? 0)) .ForPath(t => t.OrderCost.PreferentialAmount, opt => opt.MapFrom(f => f.PreferentialAmount)) .ForPath(t => t.OrderCost.IsManualEdited, opt => opt.MapFrom(f => f.IsManualEdited)) + .ForPath(t => t.OrderCost.IsEstimateCost, opt => opt.MapFrom(f => f.IsEstimateCost)) .ForPath(t => t.OrderCost.SDCommissionAmount, opt => opt.MapFrom(f => f.SDCommissionAmount)) .ForPath(t => t.OrderCost.SDOrderAmount, opt => opt.MapFrom(f => f.SDOrderAmount)) .ForPath(t => t.OrderCost.RefundAmount, opt => opt.MapFrom(f => f.RefundAmount)) From 24d6ae567a0b5266b6ea41fd72589d7c70436a41 Mon Sep 17 00:00:00 2001 From: sanji Date: Mon, 11 Dec 2023 16:47:43 +0800 Subject: [PATCH 26/57] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=85=B3=E8=81=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BBWY.Server.Business/Order/OrderBusiness.cs | 26 ++++++++++----------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/BBWY.Server.Business/Order/OrderBusiness.cs b/BBWY.Server.Business/Order/OrderBusiness.cs index a7232797..db1c0b62 100644 --- a/BBWY.Server.Business/Order/OrderBusiness.cs +++ b/BBWY.Server.Business/Order/OrderBusiness.cs @@ -1021,14 +1021,15 @@ namespace BBWY.Server.Business if (orderCost != null) { orderCost.PlatformCommissionRatio = relationPurchaseOrderRequestV2.PlatformCommissionRatio; - orderCost.PlatformCommissionAmount = dbOrder.OrderSellerPrice * relationPurchaseOrderRequestV2.PlatformCommissionRatio; + //orderCost.PlatformCommissionAmount = dbOrder.OrderSellerPrice * relationPurchaseOrderRequestV2.PlatformCommissionRatio; orderCost.DeliveryExpressFreight = totalDeliveryFreight; orderCost.PurchaseAmount = totalPurchaseAmount; - orderCost.Profit = dbOrder.OrderSellerPrice + - dbOrder.FreightPrice - - orderCost.PurchaseAmount - - orderCost.DeliveryExpressFreight - - orderCost.PlatformCommissionAmount; + orderCost.CalculationOrderProfitAndCost(dbOrder, null); + //orderCost.Profit = dbOrder.OrderSellerPrice + + // dbOrder.FreightPrice - + // orderCost.PurchaseAmount - + // orderCost.DeliveryExpressFreight - + // orderCost.PlatformCommissionAmount; orderCost.IsEstimateCost = false; orderCost.IsManualEdited = true; updateOrderCost = fsql.Update().SetSource(orderCost).IgnoreColumns(oc => new @@ -1053,16 +1054,15 @@ namespace BBWY.Server.Business SDCommissionAmount = 0, SDOrderAmount = 0, PurchaseAmount = totalPurchaseAmount, - PlatformCommissionAmount = dbOrder.OrderSellerPrice * relationPurchaseOrderRequestV2.PlatformCommissionRatio, PreferentialAmount = preferentialAmount, IsManualEdited = true }; - - orderCost.Profit = dbOrder.OrderSellerPrice + - dbOrder.FreightPrice - - orderCost.PurchaseAmount - - orderCost.DeliveryExpressFreight - - orderCost.PlatformCommissionAmount; + orderCost.CalculationOrderProfitAndCost(dbOrder, null); + //orderCost.Profit = dbOrder.OrderSellerPrice + + // dbOrder.FreightPrice - + // orderCost.PurchaseAmount - + // orderCost.DeliveryExpressFreight - + // orderCost.PlatformCommissionAmount; insertOrderCost = fsql.Insert(orderCost); } #endregion From c7dfa2fc7d443fff70e0ed04869f59d73a4bb68c Mon Sep 17 00:00:00 2001 From: sanji Date: Mon, 11 Dec 2023 17:15:47 +0800 Subject: [PATCH 27/57] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BB=A3=E5=8F=91?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BBWY.Server.Business/TestBusiness.cs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/BBWY.Server.Business/TestBusiness.cs b/BBWY.Server.Business/TestBusiness.cs index 848d4938..f3fe4fa4 100644 --- a/BBWY.Server.Business/TestBusiness.cs +++ b/BBWY.Server.Business/TestBusiness.cs @@ -274,12 +274,11 @@ namespace BBWY.Server.Business public void RepairOrderProfit() { - var startTime = DateTime.Parse("2023-10-16"); - var orderList = fsql.Select().Where(o => o.FreightPrice > 0 && + var startTime = DateTime.Parse("2023-11-01"); + var orderList = fsql.Select().Where(o => o.PingTaiChengDanYouHuiQuan > 0 && o.IsGift == false && o.OrderState != Enums.OrderState.已取消 && - o.StorageType != null && - o.StorageType != Enums.StorageType.SD && + o.StorageType == Enums.StorageType.代发 && o.StartTime >= startTime) .ToList(); From 0456918df36964657e52a2b0b42c265dc973eea4 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Mon, 11 Dec 2023 23:25:07 +0800 Subject: [PATCH 28/57] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=A2=84=E4=BC=B0bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Sync/OrderEstimateCostSyncBusiness.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/BBWY.Server.Business/Sync/OrderEstimateCostSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderEstimateCostSyncBusiness.cs index 101937d0..60bbfe88 100644 --- a/BBWY.Server.Business/Sync/OrderEstimateCostSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/OrderEstimateCostSyncBusiness.cs @@ -206,7 +206,7 @@ namespace BBWY.Server.Business var orderSkuAndRecentList = fsql.Select() .LeftJoin((osku, src) => osku.SkuId == src.SkuId) - .Where((osku, src) => orderIdList.Contains(osku.SkuId) && osku.Price > 0) + .Where((osku, src) => orderIdList.Contains(osku.OrderId) && osku.Price > 0) .ToList((osku, src) => new { osku.Id, @@ -291,6 +291,14 @@ namespace BBWY.Server.Business insertOrderCostDetailList.AddRange(currentOrderInsertOcdList); insertOrderCostList.Add(orderCost); } + + fsql.Transaction(() => + { + if (insertOrderCostDetailList.Count() > 0) + fsql.Insert(insertOrderCostDetailList).ExecuteAffrows(); + if (insertOrderCostList.Count() > 0) + fsql.Insert(insertOrderCostList).ExecuteAffrows(); + }); } catch (Exception ex) { From 0a15fff4102a94fc77a63d72d3da3116b054fb7b Mon Sep 17 00:00:00 2001 From: sanji Date: Tue, 12 Dec 2023 13:15:19 +0800 Subject: [PATCH 29/57] 10221 --- BBWY.Client/GlobalContext.cs | 2 +- QuanTan.SDK/Model/Response/Product/QuanTanProductResponse.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/BBWY.Client/GlobalContext.cs b/BBWY.Client/GlobalContext.cs index 4e0fc9b3..aa9ede9e 100644 --- a/BBWY.Client/GlobalContext.cs +++ b/BBWY.Client/GlobalContext.cs @@ -13,7 +13,7 @@ namespace BBWY.Client { ShopServiceGroupList = new List(); ShopServiceGroupLowerList = new List(); - ClientVersion = "10220"; + ClientVersion = "10221"; } diff --git a/QuanTan.SDK/Model/Response/Product/QuanTanProductResponse.cs b/QuanTan.SDK/Model/Response/Product/QuanTanProductResponse.cs index f809cf47..5e6cdb4f 100644 --- a/QuanTan.SDK/Model/Response/Product/QuanTanProductResponse.cs +++ b/QuanTan.SDK/Model/Response/Product/QuanTanProductResponse.cs @@ -39,7 +39,7 @@ namespace QuanTan.SDK.Model public string Logo { get; set; } public decimal Price { get; set; } //public decimal RetailPrice { get; set; } - public int Stock { get; set; } + public long Stock { get; set; } //public decimal Volume { get; set; } //public string weight { get; set; } public string BarCode { get; set; } From d268a17a58eb893ecefe8e034af8f191a5fb922b Mon Sep 17 00:00:00 2001 From: sanji Date: Tue, 12 Dec 2023 17:23:30 +0800 Subject: [PATCH 30/57] =?UTF-8?q?=E6=9C=80=E8=BF=91=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Sync/OrderEstimateCostSyncBusiness.cs | 118 +++++++++++++++--- 1 file changed, 99 insertions(+), 19 deletions(-) diff --git a/BBWY.Server.Business/Sync/OrderEstimateCostSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderEstimateCostSyncBusiness.cs index 60bbfe88..79c3370e 100644 --- a/BBWY.Server.Business/Sync/OrderEstimateCostSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/OrderEstimateCostSyncBusiness.cs @@ -67,6 +67,8 @@ namespace BBWY.Server.Business try { var shopId = long.Parse(shop.ShopId); + + var yesterdaycostDetailist = fsql.Select() .InnerJoin((ocd, o) => ocd.OrderId == o.Id) .Where((ocd, o) => o.ShopId == shopId && @@ -78,7 +80,7 @@ namespace BBWY.Server.Business ocd.IsEnabled == true && ocd.IsEstimateCost == false) .GroupBy((ocd, o) => ocd.SkuId) - .WithTempQuery(g => new { MaxId = g.Sum(g.Value.Item1.Id), SkuId = g.Key }) + .WithTempQuery(g => new { MaxId = g.Max(g.Value.Item1.Id), SkuId = g.Key }) .From() .InnerJoin((ocd1, ocd2) => ocd1.MaxId == ocd2.Id) .ToList((ocd1, ocd2) => ocd2); @@ -108,17 +110,28 @@ namespace BBWY.Server.Business var skuRecentCost = dbSkuRecentCostList.FirstOrDefault(x => x.SkuId == yesocd.SkuId); if (skuRecentCost != null) { - skuRecentCost.SingleConsumableAmount = singleConsumableAmount; - skuRecentCost.SingleDeliveryFreight = singleDeliveryFreight; - skuRecentCost.SingleFirstFreight = singleFirstFreight; - skuRecentCost.SingleFreight = singleFreight; - skuRecentCost.SingleInStorageAmount = singleInStorageAmount; - skuRecentCost.SingleOutStorageAmount = singleOutStorageAmount; - skuRecentCost.SingleSkuAmount = singleSkuAmount; - skuRecentCost.SingleStorageAmount = singleStorageAmount; - skuRecentCost.UpdateTime = DateTime.Now; - var update = fsql.Update(yesocd.SkuId).SetSource(skuRecentCost); - updateSkuRecentCostList.Add(update); + if (skuRecentCost.SingleConsumableAmount != singleConsumableAmount || + skuRecentCost.SingleDeliveryFreight != singleDeliveryFreight || + skuRecentCost.SingleFirstFreight != singleFirstFreight || + skuRecentCost.SingleFreight != singleFreight || + skuRecentCost.SingleInStorageAmount != singleInStorageAmount || + skuRecentCost.SingleOutStorageAmount != singleOutStorageAmount || + skuRecentCost.SingleSkuAmount != singleSkuAmount || + skuRecentCost.SingleStorageAmount != singleStorageAmount) + { + skuRecentCost.UpdateTime = DateTime.Now; + var update = fsql.Update(yesocd.SkuId) + .SetIf(skuRecentCost.SingleConsumableAmount != singleConsumableAmount, s => s.SingleConsumableAmount, singleConsumableAmount) + .SetIf(skuRecentCost.SingleDeliveryFreight != singleDeliveryFreight, s => s.SingleDeliveryFreight, singleDeliveryFreight) + .SetIf(skuRecentCost.SingleFirstFreight != singleFirstFreight, s => s.SingleFirstFreight, singleFirstFreight) + .SetIf(skuRecentCost.SingleFreight != singleFreight, s => s.SingleFreight, singleFreight) + .SetIf(skuRecentCost.SingleInStorageAmount != singleInStorageAmount, s => s.SingleInStorageAmount, singleInStorageAmount) + .SetIf(skuRecentCost.SingleOutStorageAmount != singleOutStorageAmount, s => s.SingleOutStorageAmount, singleOutStorageAmount) + .SetIf(skuRecentCost.SingleSkuAmount != singleSkuAmount, s => s.SingleSkuAmount, singleSkuAmount) + .SetIf(skuRecentCost.SingleStorageAmount != singleStorageAmount, s => s.SingleStorageAmount, singleStorageAmount) + .Set(s => s.UpdateTime, DateTime.Now); + updateSkuRecentCostList.Add(update); + } } else { @@ -143,19 +156,86 @@ namespace BBWY.Server.Business } } - fsql.Transaction(() => + if (insertSkuRecetCostList.Count() > 0) { - if (insertSkuRecetCostList.Count() > 0) - fsql.Insert(insertSkuRecetCostList).ExecuteAffrows(); - if (updateSkuRecentCostList.Count() > 0) + var insertList = new List(); + var index = 0; + foreach (var insert in insertSkuRecetCostList) { - foreach (var update in updateSkuRecentCostList) - update.ExecuteAffrows(); + insertList.Add(insert); + if (insertList.Count() == 50) + { + index++; + Console.WriteLine($"SKU最近成本同步-{shop.ShopName},执行插入{index}"); + fsql.Transaction(() => + { + fsql.Insert(insertList).ExecuteAffrows(); + }); + insertList.Clear(); + } } - }); + + if (insertList.Count() > 0) + { + index++; + Console.WriteLine($"SKU最近成本同步-{shop.ShopName},执行最后插入{index}"); + fsql.Transaction(() => + { + fsql.Insert(insertList).ExecuteAffrows(); + }); + insertList.Clear(); + } + insertSkuRecetCostList.Clear(); + } + + if (updateSkuRecentCostList.Count() > 0) + { + List> updateList = new List>(); + var index = 0; + foreach (var update in updateSkuRecentCostList) + { + updateList.Add(update); + if (updateList.Count == 20) + { + index++; + Console.WriteLine($"SKU最近成本同步-{shop.ShopName},执行更新{index}"); + fsql.Transaction(() => + { + foreach (var _update in updateList) + _update.ExecuteAffrows(); + }); + updateList.Clear(); + } + } + + if (updateList.Count > 0) + { + index++; + Console.WriteLine($"SKU最近成本同步-{shop.ShopName},执行最后更新{index}"); + fsql.Transaction(() => + { + foreach (var _update in updateList) + _update.ExecuteAffrows(); + }); + updateList.Clear(); + } + updateSkuRecentCostList.Clear(); + } + + //fsql.Transaction(() => + //{ + // if (insertSkuRecetCostList.Count() > 0) + // fsql.Insert(insertSkuRecetCostList).ExecuteAffrows(); + // if (updateSkuRecentCostList.Count() > 0) + // { + // foreach (var update in updateSkuRecentCostList) + // update.ExecuteAffrows(); + // } + //}); } catch (Exception ex) { + Console.WriteLine($"{shop.ShopName},{ex.Message}"); nLogManager.GetLogger($"SKU最近成本-{shop.ShopName}").Error(ex); } } From 259f3b2b7176414dfccede254609fdc2db95ba7f Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Tue, 12 Dec 2023 20:32:11 +0800 Subject: [PATCH 31/57] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=A2=84=E4=BC=B0?= =?UTF-8?q?=E6=88=90=E6=9C=AC=E7=9A=84=E8=AE=A2=E5=8D=95=E5=9C=A8=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E8=AE=A1=E7=AE=97=E6=88=90=E6=9C=AC=E6=97=B6=E7=9A=84?= =?UTF-8?q?=E9=87=8D=E5=A4=8D=E8=AE=A1=E7=AE=97=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BBWY.Server.Business/Order/OrderBusiness.cs | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/BBWY.Server.Business/Order/OrderBusiness.cs b/BBWY.Server.Business/Order/OrderBusiness.cs index db1c0b62..69618a12 100644 --- a/BBWY.Server.Business/Order/OrderBusiness.cs +++ b/BBWY.Server.Business/Order/OrderBusiness.cs @@ -596,17 +596,6 @@ namespace BBWY.Server.Business SkuAmount = purchaseOrder.SingleSkuAmount * deductionQuantity, StorageAmount = purchaseOrder.SingleStorageAmount * deductionQuantity }; - //orderCostDetail.SkuGrossProfit = orderSku.Price.Value * deductionQuantity - avgPreferential - (orderCostDetail.TotalCost + orderCostDetail.DeliveryExpressFreight) - orderSku.Price.Value * deductionQuantity * autoCalculationCostRequest.PlatformCommissionRatio; - - - //var shouldPay = orderSku.ShouldPay ?? 0M; - //var pingTaiCoupon = orderSku.PingTaiChengDanYouHuiQuan ?? 0M; - //var venderFee = orderSku.VenderFee ?? 0M; - - //var koudian = (shouldPay - venderFee) * deductionQuantity * autoCalculationCostRequest.PlatformCommissionRatio; - //orderCostDetail.SkuGrossProfit = (shouldPay + pingTaiCoupon) * deductionQuantity - - // orderCostDetail.TotalCost - orderCostDetail.DeliveryExpressFreight - - // koudian; orderCostDetail.CalculationSkuGrossProfit(orderSku.ShouldPay ?? 0M, orderSku.PingTaiChengDanYouHuiQuan ?? 0M, @@ -642,7 +631,12 @@ namespace BBWY.Server.Business } else { - orderCost.IsEstimateCost = false; + if (orderCost.IsEstimateCost == true) + { + orderCost.IsEstimateCost = false; + orderCost.PurchaseAmount = 0M; + orderCost.DeliveryExpressFreight = 0M; + } orderCost.PurchaseAmount += orderCostPurchaseAmount; orderCost.DeliveryExpressFreight += orderDeliveryExpressFreight; orderCost.CalculationOrderProfitAndCost(dbOrder, dbAfterSaleOrderList); From d73275b477e091ed943003c9ad10f78b93896cef Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Tue, 12 Dec 2023 22:00:47 +0800 Subject: [PATCH 32/57] 1 --- BBWY.Server.Business/TestBusiness.cs | 55 ++++++++++++++++++++++++---- 1 file changed, 48 insertions(+), 7 deletions(-) diff --git a/BBWY.Server.Business/TestBusiness.cs b/BBWY.Server.Business/TestBusiness.cs index f3fe4fa4..257ecb48 100644 --- a/BBWY.Server.Business/TestBusiness.cs +++ b/BBWY.Server.Business/TestBusiness.cs @@ -274,17 +274,20 @@ namespace BBWY.Server.Business public void RepairOrderProfit() { - var startTime = DateTime.Parse("2023-11-01"); - var orderList = fsql.Select().Where(o => o.PingTaiChengDanYouHuiQuan > 0 && - o.IsGift == false && + var startTime = DateTime.Parse("2023-12-12"); + var orderList = fsql.Select().Where(o => o.IsGift == false && o.OrderState != Enums.OrderState.已取消 && - o.StorageType == Enums.StorageType.代发 && + o.StorageType == Enums.StorageType.本地自发 && o.StartTime >= startTime) .ToList(); - + var shopList = venderBusiness.GetShopList(platform: Enums.Platform.京东); var orderIdList = orderList.Select(o => o.Id).ToList(); var orderCostList = fsql.Select(orderIdList).ToList(); + var orderSkuList = fsql.Select().Where(osku => orderIdList.Contains(osku.OrderId) && osku.Price > 0).ToList(); + var orderCostDetailList = fsql.Select().Where(ocd => orderIdList.Contains(ocd.OrderId) && ocd.IsEnabled == true && ocd.IsEstimateCost == false).ToList(); + List> updateList = new List>(); + List> updateDetailList = new List>(); int index = 0; foreach (var orderCost in orderCostList) { @@ -293,9 +296,41 @@ namespace BBWY.Server.Business var order = orderList.FirstOrDefault(o => o.Id == orderCost.OrderId); if (order == null) continue; + + var shop = shopList.FirstOrDefault(s => s.ShopId == order.ShopId.ToString()); + + var currentOCDList = orderCostDetailList.Where(ocd => ocd.OrderId == orderCost.OrderId).ToList(); + var currentOrderSkuList = orderSkuList.Where(osku => osku.OrderId == orderCost.OrderId).ToList(); + foreach (var ocd in currentOCDList) + { + var osku = currentOrderSkuList.FirstOrDefault(x => x.SkuId == ocd.SkuId); + if (osku == null) + continue; + ocd.CalculationSkuGrossProfit(osku.ShouldPay ?? 0M, + osku.PingTaiChengDanYouHuiQuan ?? 0M, + osku.SuperRedEnvelope ?? 0M, + osku.XianPinLeiDongQuan ?? 0M, + osku.VenderFee ?? 0M, + osku.JingDou ?? 0M, + osku.DongQuan ?? 0M, + osku.Balance ?? 0M, + shop.PlatformCommissionRatio ?? 0.05M); + var update = fsql.Update().SetSource(ocd); + updateDetailList.Add(update); + } + + orderCost.PurchaseAmount = currentOCDList.Sum(ocd => ocd.TotalCost); + orderCost.DeliveryExpressFreight = currentOCDList.Sum(ocd => ocd.DeliveryExpressFreight); + orderCost.CalculationOrderProfitAndCost(order, null); - updateList.Add(fsql.Update(orderCost.OrderId).Set(oc => oc.Profit, orderCost.Profit) - .Set(oc => oc.PlatformCommissionAmount, orderCost.PlatformCommissionAmount)); + updateList.Add(fsql.Update(orderCost.OrderId) + .Set(oc => oc.PurchaseAmount, orderCost.PurchaseAmount) + .Set(oc => oc.DeliveryExpressFreight, orderCost.DeliveryExpressFreight) + .Set(oc => oc.Profit, orderCost.Profit) + .Set(oc => oc.PlatformCommissionAmount, orderCost.PlatformCommissionAmount)); + + + if (updateList.Count() > 10) { Console.WriteLine($"{DateTime.Now} 执行数据库更新"); @@ -303,8 +338,11 @@ namespace BBWY.Server.Business { foreach (var update in updateList) update.ExecuteAffrows(); + foreach (var update in updateDetailList) + update.ExecuteAffrows(); }); updateList.Clear(); + updateDetailList.Clear(); } } @@ -315,8 +353,11 @@ namespace BBWY.Server.Business { foreach (var update in updateList) update.ExecuteAffrows(); + foreach (var update in updateDetailList) + update.ExecuteAffrows(); }); updateList.Clear(); + updateDetailList.Clear(); } } From 4d8b3086c40c9153b9b1bf73c9003926cdfb01fb Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Wed, 13 Dec 2023 01:41:52 +0800 Subject: [PATCH 33/57] 1 --- BBWY.Server.Business/Order/OrderBusiness.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BBWY.Server.Business/Order/OrderBusiness.cs b/BBWY.Server.Business/Order/OrderBusiness.cs index 69618a12..9aee4593 100644 --- a/BBWY.Server.Business/Order/OrderBusiness.cs +++ b/BBWY.Server.Business/Order/OrderBusiness.cs @@ -54,7 +54,7 @@ namespace BBWY.Server.Business venderBusinessLazy = new Lazy(() => serviceProvider.GetService()); } - private ISelect GetOrderListQueryConditions(SearchOrderRequest searchOrderRequest) + private ISelect GetOrderListQueryConditions(SearchOrderRequest searchOrderRequest) { var select = fsql.Select().LeftJoin((o, ocs, oct, sh) => o.Id == ocs.OrderId) .LeftJoin((o, ocs, oct, sh) => o.Id == oct.OrderId) From 13c06380e30e882ba3128817da66d062ea2b8b28 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Thu, 14 Dec 2023 03:02:27 +0800 Subject: [PATCH 34/57] =?UTF-8?q?=E5=85=A8=E9=87=8F=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=E6=8E=A8=E5=B9=BF=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...arizeReportFormAdGroupLevelSyncBusiness.cs | 38 ++- ...PopularizeReportFormAdLevelSyncBusiness.cs | 47 +++- ...rizeReportFormCampaignLevelSyncBusiness.cs | 33 ++- ...opularizeReportFormSkuLevelSyncBusiness.cs | 28 ++- .../Db/JD/JDPopularizeAdGroup.cs | 187 ++++++++++++-- BBWY.Server.Model/Db/JD/JDPopularizeAdSku.cs | 232 ++++++++++++++++-- .../Db/JD/JDPopularizeCampaign.cs | 206 +++++++++++++++- 7 files changed, 709 insertions(+), 62 deletions(-) diff --git a/BBWY.Server.Business/Sync/JD/JDPopularizeReportFormAdGroupLevelSyncBusiness.cs b/BBWY.Server.Business/Sync/JD/JDPopularizeReportFormAdGroupLevelSyncBusiness.cs index a592b94d..7e1bc996 100644 --- a/BBWY.Server.Business/Sync/JD/JDPopularizeReportFormAdGroupLevelSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/JD/JDPopularizeReportFormAdGroupLevelSyncBusiness.cs @@ -132,6 +132,7 @@ namespace BBWY.Server.Business.Sync var insertList = new List(); foreach (var j in jArray) { + var r0 = j["retrievalType0"]; insertList.Add(new JDPopularizeAdGroup() { Id = idGenerator.NewLong(), @@ -142,11 +143,38 @@ namespace BBWY.Server.Business.Sync AdGroupId = j.Value("adGroupId"), AdGroupName = j.Value("adGroupName"), Date = DateTime.ParseExact(j.Value("date"), "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture), - Cost = j["retrievalType0"].Value("cost"), - Clicks = j["retrievalType0"].Value("clicks") ?? 0, - Impressions = j["retrievalType0"].Value("impressions") ?? 0, - TotalCartCnt = j["retrievalType0"].Value("totalCartCnt") ?? 0, - TotalOrderCnt = j["retrievalType0"].Value("totalOrderCnt") ?? 0 + Cost = r0.Value("cost"), + Clicks = r0.Value("clicks") ?? 0, + Impressions = r0.Value("impressions") ?? 0, + TotalCartCnt = r0.Value("totalCartCnt") ?? 0, + TotalOrderCnt = r0.Value("totalOrderCnt") ?? 0, + TotalOrderCVS = r0.Value("totalOrderCVS") ?? 0M, + CouponCnt = r0.Value("couponCnt") ?? 0, + CPA = r0.Value("CPA") ?? 0.00M, + CPC = r0.Value("CPC") ?? 0.00M, + CPM = r0.Value("CPM") ?? 0.00M, + CTR = r0.Value("CTR") ?? 0.00M, + DepthPassengerCnt = r0.Value("depthPassengerCnt") ?? 0, + DirectCartCnt = r0.Value("directCartCnt") ?? 0, + DirectOrderCnt = r0.Value("directOrderCnt") ?? 0, + DirectOrderSum = r0.Value("directOrderSum") ?? 0M, + GoodsAttentionCnt = r0.Value("goodsAttentionCnt") ?? 0, + IndirectCartCnt = r0.Value("indirectCartCnt") ?? 0, + IndirectOrderCnt = r0.Value("indirectOrderCnt") ?? 0, + IndirectOrderSum = r0.Value("indirectOrderSum") ?? 0, + NewCustomersCnt = r0.Value("newCustomersCnt") ?? 0, + OrderDate = DateTime.ParseExact(r0.Value("orderDate"), "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture), + Pin = r0.Value("pin"), + PreorderCnt = r0.Value("preorderCnt") ?? 0, + ShopAttentionCnt = r0.Value("shopAttentionCnt") ?? 0, + TotalCartCost = r0.Value("totalCartCost") ?? 0M, + TotalOrderROI = r0.Value("totalOrderROI") ?? 0M, + TotalOrderSum = r0.Value("totalOrderSum") ?? 0M, + TotalPresaleOrderCnt = r0.Value("totalPresaleOrderCnt") ?? 0, + TotalPresaleOrderSum = r0.Value("totalPresaleOrderSum") ?? 0M, + VisitorCnt = r0.Value("visitorCnt") ?? 0, + VisitPageCnt = r0.Value("visitPageCnt") ?? 0, + VisitTimeAverage = r0.Value("visitTimeAverage") ?? 0M }); } if (insertList.Count > 0) diff --git a/BBWY.Server.Business/Sync/JD/JDPopularizeReportFormAdLevelSyncBusiness.cs b/BBWY.Server.Business/Sync/JD/JDPopularizeReportFormAdLevelSyncBusiness.cs index 00e3594b..03cc414f 100644 --- a/BBWY.Server.Business/Sync/JD/JDPopularizeReportFormAdLevelSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/JD/JDPopularizeReportFormAdLevelSyncBusiness.cs @@ -159,7 +159,7 @@ namespace BBWY.Server.Business.Sync nLogManager.GetLogger($"创意维度-{shopName}").Info($"创意名称识别失败 adId {adId} adName {adName} 提取的[sku]与创意Id相同"); continue; } - + var r0 = j["retrievalType0"]; insertList.Add(new JDPopularizeAdSku() { Id = idGenerator.NewLong(), @@ -170,15 +170,44 @@ namespace BBWY.Server.Business.Sync AdGroupId = j.Value("adGroupId"), AdId = long.Parse(adId), AdName = adName, - Date = DateTime.ParseExact(j.Value("date"), "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture), - Cost = j["retrievalType0"].Value("cost"), - Clicks = j["retrievalType0"].Value("clicks") ?? 0, - Impressions = j["retrievalType0"].Value("impressions") ?? 0, - TotalCartCnt = j["retrievalType0"].Value("totalCartCnt") ?? 0, - TotalOrderCnt = j["retrievalType0"].Value("totalOrderCnt") ?? 0, + Date = DateTime.ParseExact(r0.Value("date"), "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture), + Cost = r0.Value("cost"), + Clicks = r0.Value("clicks") ?? 0, + Impressions = r0.Value("impressions") ?? 0, + TotalCartCnt = r0.Value("totalCartCnt") ?? 0, + TotalOrderCnt = r0.Value("totalOrderCnt") ?? 0, Sku = sku, - VisitorCnt = j["retrievalType0"].Value("visitorCnt") ?? 0, - TotalOrderSum = j["retrievalType0"].Value("totalOrderSum") + VisitorCnt = r0.Value("visitorCnt") ?? 0, + TotalOrderSum = r0.Value("totalOrderSum"), + TotalOrderCVS = r0.Value("totalOrderCVS") ?? 0M, + CouponCnt = r0.Value("couponCnt") ?? 0, + CPA = r0.Value("CPA") ?? 0.00M, + CPC = r0.Value("CPC") ?? 0.00M, + CPM = r0.Value("CPM") ?? 0.00M, + CTR = r0.Value("CTR") ?? 0.00M, + DepthPassengerCnt = r0.Value("depthPassengerCnt") ?? 0, + DirectCartCnt = r0.Value("directCartCnt") ?? 0, + DirectOrderCnt = r0.Value("directOrderCnt") ?? 0, + DirectOrderSum = r0.Value("directOrderSum") ?? 0M, + GoodsAttentionCnt = r0.Value("goodsAttentionCnt") ?? 0, + IndirectCartCnt = r0.Value("indirectCartCnt") ?? 0, + IndirectOrderCnt = r0.Value("indirectOrderCnt") ?? 0, + IndirectOrderSum = r0.Value("indirectOrderSum") ?? 0, + NewCustomersCnt = r0.Value("newCustomersCnt") ?? 0, + OrderDate = DateTime.ParseExact(r0.Value("orderDate"), "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture), + Pin = r0.Value("pin"), + PreorderCnt = r0.Value("preorderCnt") ?? 0, + ShopAttentionCnt = r0.Value("shopAttentionCnt") ?? 0, + TotalCartCost = r0.Value("totalCartCost") ?? 0M, + TotalOrderROI = r0.Value("totalOrderROI") ?? 0M, + TotalPresaleOrderCnt = r0.Value("totalPresaleOrderCnt") ?? 0, + TotalPresaleOrderSum = r0.Value("totalPresaleOrderSum") ?? 0M, + VisitPageCnt = r0.Value("visitPageCnt") ?? 0, + VisitTimeAverage = r0.Value("visitTimeAverage") ?? 0M, + AdCreativeType = r0.Value("adCreativeType"), + AdCustomTitle = r0.Value("adCustomTitle"), + MaterialId = r0.Value("MaterialId") ?? 0, + MaterialSize = r0.Value("materialSize"), }); //Console.WriteLine(insertList.Count()); } diff --git a/BBWY.Server.Business/Sync/JD/JDPopularizeReportFormCampaignLevelSyncBusiness.cs b/BBWY.Server.Business/Sync/JD/JDPopularizeReportFormCampaignLevelSyncBusiness.cs index 63eec634..ef9049e9 100644 --- a/BBWY.Server.Business/Sync/JD/JDPopularizeReportFormCampaignLevelSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/JD/JDPopularizeReportFormCampaignLevelSyncBusiness.cs @@ -154,7 +154,38 @@ namespace BBWY.Server.Business.Sync Clicks = j.Value("clicks") ?? 0, Impressions = j.Value("impressions") ?? 0, TotalCartCnt = j.Value("totalCartCnt") ?? 0, - TotalOrderCnt = j.Value("totalOrderCnt") ?? 0 + TotalOrderCnt = j.Value("totalOrderCnt") ?? 0, + CampaignPutType = j.Value("campaignPutType"), + CampaignType = j.Value("campaignType"), + CampaignTypeExpand = j.Value("campaignTypeExpand"), + CouponCnt = j.Value("couponCnt") ?? 0, + CPA = j.Value("CPA") ?? 0.00M, + CPC = j.Value("CPC") ?? 0.00M, + CPM = j.Value("CPM") ?? 0.00M, + CTR = j.Value("CTR") ?? 0.00M, + DepthPassengerCnt = j.Value("depthPassengerCnt") ?? 0, + DirectCartCnt = j.Value("directCartCnt") ?? 0, + DirectOrderCnt = j.Value("directOrderCnt") ?? 0, + DirectOrderSum = j.Value("directOrderSum") ?? 0M, + GoodsAttentionCnt = j.Value("goodsAttentionCnt") ?? 0, + IndirectCartCnt = j.Value("indirectCartCnt") ?? 0, + IndirectOrderCnt = j.Value("indirectOrderCnt") ?? 0, + IndirectOrderSum = j.Value("indirectOrderSum") ?? 0, + NewCustomersCnt = j.Value("newCustomersCnt") ?? 0, + OrderDate = DateTime.ParseExact(j.Value("orderDate"), "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture), + Pin = j.Value("pin"), + PreorderCnt = j.Value("preorderCnt") ?? 0, + PutType = j.Value("putType"), + ShopAttentionCnt = j.Value("shopAttentionCnt") ?? 0, + TotalCartCost = j.Value("totalCartCost") ?? 0M, + TotalOrderCVS = j.Value("totalOrderCVS") ?? 0M, + TotalOrderROI = j.Value("totalOrderROI") ?? 0M, + TotalOrderSum = j.Value("totalOrderSum") ?? 0M, + TotalPresaleOrderCnt = j.Value("totalPresaleOrderCnt") ?? 0, + TotalPresaleOrderSum = j.Value("totalPresaleOrderSum") ?? 0M, + VisitorCnt = j.Value("visitorCnt") ?? 0, + VisitPageCnt = j.Value("visitPageCnt") ?? 0, + VisitTimeAverage = j.Value("visitTimeAverage") ?? 0M }); } if (insertList.Count > 0) diff --git a/BBWY.Server.Business/Sync/JD/JDPopularizeReportFormSkuLevelSyncBusiness.cs b/BBWY.Server.Business/Sync/JD/JDPopularizeReportFormSkuLevelSyncBusiness.cs index 4c7a957d..5f49a135 100644 --- a/BBWY.Server.Business/Sync/JD/JDPopularizeReportFormSkuLevelSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/JD/JDPopularizeReportFormSkuLevelSyncBusiness.cs @@ -149,7 +149,33 @@ namespace BBWY.Server.Business.Sync TotalCartCnt = j.Value("totalCartCnt") ?? 0, TotalOrderCnt = j.Value("totalOrderCnt") ?? 0, TotalOrderSum = j.Value("totalOrderSum"), - VisitorCnt = 0 + VisitorCnt = 0, + CTR = j.Value("CTR") ?? 0.00M, + DepthPassengerCnt = j.Value("depthPassengerCnt") ?? 0, + CPM = j.Value("CPM") ?? 0.00M, + SkuBrandId = j.Value("skuBrandId"), + PreorderCnt = j.Value("preorderCnt") ?? 0, + IndirectOrderCnt = j.Value("indirectOrderCnt") ?? 0, + DirectOrderCnt = j.Value("directOrderCnt") ?? 0, + IndirectCartCnt = j.Value("indirectCartCnt") ?? 0, + VisitPageCnt = j.Value("visitPageCnt") ?? 0, + VisitTimeAverage = j.Value("visitTimeAverage") ?? 0M, + TotalPresaleOrderSum = j.Value("totalPresaleOrderSum") ?? 0M, + TotalCartCost = j.Value("totalCartCost") ?? 0M, + DirectCartCnt = j.Value("directCartCnt") ?? 0, + SkuCid3 = j.Value("skuCid3"), + CouponCnt = j.Value("couponCnt") ?? 0, + SkuBrandName = j.Value("skuBrandName"), + NewCustomersCnt = j.Value("newCustomersCnt") ?? 0, + TotalOrderROI = j.Value("totalOrderROI") ?? 0M, + IndirectOrderSum = j.Value("indirectOrderSum") ?? 0, + DirectOrderSum = j.Value("directOrderSum") ?? 0M, + GoodsAttentionCnt = j.Value("goodsAttentionCnt") ?? 0, + TotalOrderCVS = j.Value("totalOrderCVS") ?? 0M, + CPC = j.Value("CPC") ?? 0.00M, + TotalPresaleOrderCnt = j.Value("totalPresaleOrderCnt") ?? 0, + ShopAttentionCnt = j.Value("shopAttentionCnt") ?? 0, + OrderDate = DateTime.ParseExact(j.Value("orderDate"), "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture) }).ToList(); fsql.Insert(insertList).ExecuteAffrows(); } diff --git a/BBWY.Server.Model/Db/JD/JDPopularizeAdGroup.cs b/BBWY.Server.Model/Db/JD/JDPopularizeAdGroup.cs index b7aa57f2..a8718bf6 100644 --- a/BBWY.Server.Model/Db/JD/JDPopularizeAdGroup.cs +++ b/BBWY.Server.Model/Db/JD/JDPopularizeAdGroup.cs @@ -1,4 +1,4 @@ -using FreeSql.DataAnnotations; +using FreeSql.DataAnnotations; using System; namespace BBWY.Server.Model.Db @@ -11,56 +11,149 @@ namespace BBWY.Server.Model.Db public partial class JDPopularizeAdGroup { - [Column(IsPrimary = true)] + [Column(DbType = "bigint", IsPrimary = true)] public long Id { get; set; } /// /// 单元Id /// - + [Column(DbType = "bigint")] public long? AdGroupId { get; set; } + /// + /// 单元名称 + /// [Column(StringLength = 100)] public string AdGroupName { get; set; } /// /// 业务线(快车:2 京速推:134217728) /// - + [Column(DbType = "int")] public int? BusinessType { get; set; } /// /// 计划Id /// - + [Column(DbType = "bigint")] public long? CampaignId { get; set; } /// /// 点击数 /// - [Column(Name = "clicks")] - public int? Clicks { get; set; } + [Column(Name = "clicks", DbType = "int")] + public int? Clicks { get; set; } = 0; /// /// 总花费 /// [Column(DbType = "decimal(18,2)")] - public decimal? Cost { get; set; } + public decimal? Cost { get; set; } = 0.00M; + + /// + /// 领券数 + /// + [Column(Name = "couponCnt", DbType = "int")] + public int? CouponCnt { get; set; } = 0; + + /// + /// CPA + /// + [Column(DbType = "decimal(18,2)")] + public decimal? CPA { get; set; } = 0.00M; + + /// + /// 平均点击成本 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? CPC { get; set; } = 0.00M; + + /// + /// 千次展现成本 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? CPM { get; set; } = 0.00M; [Column(DbType = "datetime")] public DateTime? CreateTime { get; set; } + /// + /// 点击率 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? CTR { get; set; } = 0.00M; + /// /// 计费日期 /// [Column(DbType = "datetime")] public DateTime? Date { get; set; } + /// + /// 深度进店数 + /// + [Column(Name = "depthPassengerCnt", DbType = "int")] + public int? DepthPassengerCnt { get; set; } = 0; + + /// + /// 直接购物车数 + /// + [Column(Name = "directCartCnt", DbType = "int")] + public int? DirectCartCnt { get; set; } = 0; + + /// + /// 直接订单行 + /// + [Column(Name = "directOrderCnt", DbType = "int")] + public int? DirectOrderCnt { get; set; } = 0; + + /// + /// 直接订单金额 + /// + [Column(Name = "directOrderSum", DbType = "decimal(18,2)")] + public decimal? DirectOrderSum { get; set; } = 0.00M; + + /// + /// 商品关注数 + /// + [Column(Name = "goodsAttentionCnt", DbType = "int")] + public int? GoodsAttentionCnt { get; set; } = 0; + /// /// 展现次数 /// - [Column(Name = "impressions")] - public int? Impressions { get; set; } + [Column(Name = "impressions", DbType = "int")] + public int? Impressions { get; set; } = 0; + + /// + /// 间接购物车数 + /// + [Column(Name = "indirectCartCnt", DbType = "int")] + public int? IndirectCartCnt { get; set; } = 0; + + /// + /// 间接订单行 + /// + [Column(Name = "indirectOrderCnt", DbType = "int")] + public int? IndirectOrderCnt { get; set; } = 0; + + /// + /// 间接订单金额 + /// + [Column(Name = "indirectOrderSum", DbType = "decimal(18,2)")] + public decimal? IndirectOrderSum { get; set; } = 0.00M; + + /// + /// 下单新客数 + /// + [Column(Name = "newCustomersCnt", DbType = "int")] + public int? NewCustomersCnt { get; set; } = 0; + + /// + /// 下单日期 + /// + [Column(Name = "orderDate", DbType = "datetime")] + public DateTime? OrderDate { get; set; } /// /// 账号归属 @@ -68,20 +161,86 @@ namespace BBWY.Server.Model.Db [Column(Name = "pin")] public string Pin { get; set; } + /// + /// 预约数 + /// + [Column(Name = "preorderCnt", DbType = "int")] + public int? PreorderCnt { get; set; } = 0; + + /// + /// 店铺关注数 + /// + [Column(Name = "shopAttentionCnt", DbType = "int")] + public int? ShopAttentionCnt { get; set; } = 0; + [Column(DbType = "bigint")] public long? ShopId { get; set; } /// /// 总加购人数 /// - [Column(Name = "totalCartCnt")] - public int? TotalCartCnt { get; set; } + [Column(Name = "totalCartCnt", DbType = "int")] + public int? TotalCartCnt { get; set; } = 0; + + /// + /// 总加购成本 + /// + [Column(Name = "totalCartCost", DbType = "decimal(18,2)")] + public decimal? TotalCartCost { get; set; } = 0.00M; /// /// 总订单数 /// - [Column(Name = "totalOrderCnt")] - public int? TotalOrderCnt { get; set; } + [Column(Name = "totalOrderCnt", DbType = "int")] + public int? TotalOrderCnt { get; set; } = 0; + + /// + /// 点击转化率 + /// + [Column(Name = "totalOrderCVS", DbType = "decimal(18,2)")] + public decimal? TotalOrderCVS { get; set; } = 0.00M; + + /// + /// ROI + /// + [Column(Name = "totalOrderROI", DbType = "decimal(18,2)")] + public decimal? TotalOrderROI { get; set; } = 0.00M; + + /// + /// 总订单金额 + /// + [Column(Name = "totalOrderSum", DbType = "decimal(18,2)")] + public decimal? TotalOrderSum { get; set; } = 0.00M; + + /// + /// 预售订单行 + /// + [Column(Name = "totalPresaleOrderCnt", DbType = "int")] + public int? TotalPresaleOrderCnt { get; set; } = 0; + + /// + /// 预售订单金额 + /// + [Column(Name = "totalPresaleOrderSum", DbType = "decimal(18,2)")] + public decimal? TotalPresaleOrderSum { get; set; } = 0.00M; + + /// + /// 访客数 + /// + [Column(Name = "visitorCnt", DbType = "int")] + public int? VisitorCnt { get; set; } = 0; + + /// + /// 访问页面数 + /// + [Column(Name = "visitPageCnt", DbType = "int")] + public int? VisitPageCnt { get; set; } = 0; + + /// + /// 访问时长 + /// + [Column(Name = "visitTimeAverage", DbType = "decimal(18,2)")] + public decimal? VisitTimeAverage { get; set; } = 0.00M; } diff --git a/BBWY.Server.Model/Db/JD/JDPopularizeAdSku.cs b/BBWY.Server.Model/Db/JD/JDPopularizeAdSku.cs index 6303915b..69baf11e 100644 --- a/BBWY.Server.Model/Db/JD/JDPopularizeAdSku.cs +++ b/BBWY.Server.Model/Db/JD/JDPopularizeAdSku.cs @@ -1,4 +1,4 @@ -using FreeSql.DataAnnotations; +using FreeSql.DataAnnotations; using System; namespace BBWY.Server.Model.Db @@ -11,62 +11,179 @@ namespace BBWY.Server.Model.Db public partial class JDPopularizeAdSku { - [Column(IsPrimary = true)] + [Column(DbType = "bigint", IsPrimary = true)] public long Id { get; set; } /// - /// 单元Id + /// 文档无解释 + /// + [Column(Name = "adCreativeType", StringLength = 50)] + public string AdCreativeType { get; set; } = "0"; + + /// + /// adCustomTitle无文档解释 /// + [Column(Name = "adCustomTitle")] + public string AdCustomTitle { get; set; } + /// + /// 单元Id + /// + [Column(DbType = "bigint")] public long? AdGroupId { get; set; } /// /// 创意Id /// - + [Column(DbType = "bigint")] public long? AdId { get; set; } + /// + /// 创意名称 + /// [Column(StringLength = 100)] public string AdName { get; set; } /// /// 业务线(快车:2 京速推:134217728) /// - + [Column(DbType = "int")] public int? BusinessType { get; set; } /// /// 计划Id /// - + [Column(DbType = "bigint")] public long? CampaignId { get; set; } /// /// 点击数 /// - [Column(Name = "clicks")] - public int? Clicks { get; set; } + [Column(Name = "clicks", DbType = "int")] + public int? Clicks { get; set; } = 0; /// /// 总花费 /// [Column(DbType = "decimal(18,2)")] - public decimal? Cost { get; set; } + public decimal? Cost { get; set; } = 0.00M; + + /// + /// 领券数 + /// + [Column(Name = "couponCnt", DbType = "int")] + public int? CouponCnt { get; set; } = 0; + + /// + /// CPA + /// + [Column(DbType = "decimal(18,2)")] + public decimal? CPA { get; set; } = 0.00M; + + /// + /// 平均点击成本 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? CPC { get; set; } = 0.00M; + + /// + /// 千次展现成本 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? CPM { get; set; } = 0.00M; [Column(DbType = "datetime")] public DateTime? CreateTime { get; set; } + /// + /// 点击率 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? CTR { get; set; } = 0.00M; + /// /// 计费日期 /// [Column(DbType = "datetime")] public DateTime? Date { get; set; } + /// + /// 深度进店数 + /// + [Column(Name = "depthPassengerCnt", DbType = "int")] + public int? DepthPassengerCnt { get; set; } = 0; + + /// + /// 直接购物车数 + /// + [Column(Name = "directCartCnt", DbType = "int")] + public int? DirectCartCnt { get; set; } = 0; + + /// + /// 直接订单行 + /// + [Column(Name = "directOrderCnt", DbType = "int")] + public int? DirectOrderCnt { get; set; } = 0; + + /// + /// 直接订单金额 + /// + [Column(Name = "directOrderSum", DbType = "decimal(18,2)")] + public decimal? DirectOrderSum { get; set; } = 0.00M; + + /// + /// 商品关注数 + /// + [Column(Name = "goodsAttentionCnt", DbType = "int")] + public int? GoodsAttentionCnt { get; set; } = 0; + /// /// 展现次数 /// - [Column(Name = "impressions")] - public int? Impressions { get; set; } + [Column(Name = "impressions", DbType = "int")] + public int? Impressions { get; set; } = 0; + + /// + /// 间接购物车数 + /// + [Column(Name = "indirectCartCnt", DbType = "int")] + public int? IndirectCartCnt { get; set; } = 0; + + /// + /// 间接订单行 + /// + [Column(Name = "indirectOrderCnt", DbType = "int")] + public int? IndirectOrderCnt { get; set; } = 0; + + /// + /// 间接订单金额 + /// + [Column(Name = "indirectOrderSum", DbType = "decimal(18,2)")] + public decimal? IndirectOrderSum { get; set; } = 0.00M; + + /// + /// materialId无文档解释 + /// + [Column(Name = "materialId", DbType = "bigint")] + public long? MaterialId { get; set; } = 0; + + /// + /// materialSize文档无解释 + /// + [Column(Name = "materialSize", StringLength = 100)] + public string MaterialSize { get; set; } + + /// + /// 下单新客数 + /// + [Column(Name = "newCustomersCnt", DbType = "int")] + public int? NewCustomersCnt { get; set; } = 0; + + /// + /// 下单日期 + /// + [Column(Name = "orderDate", DbType = "datetime")] + public DateTime? OrderDate { get; set; } /// /// 账号归属 @@ -74,38 +191,111 @@ namespace BBWY.Server.Model.Db [Column(Name = "pin")] public string Pin { get; set; } + /// + /// 预约数 + /// + [Column(Name = "preorderCnt", DbType = "int")] + public int? PreorderCnt { get; set; } = 0; + + [Column(StringLength = 50)] + public string ProductId { get; set; } + + /// + /// 店铺关注数 + /// + [Column(Name = "shopAttentionCnt", DbType = "int")] + public int? ShopAttentionCnt { get; set; } = 0; + [Column(DbType = "bigint")] public long? ShopId { get; set; } [Column(StringLength = 50)] public string Sku { get; set; } - [Column(StringLength = 50)] - public string ProductId { get; set; } + /// + /// 品牌ID + /// + [Column(Name = "skuBrandId", StringLength = 50)] + public string SkuBrandId { get; set; } + + /// + /// sku品牌名称 + /// + [Column(Name = "skuBrandName", StringLength = 50)] + public string SkuBrandName { get; set; } + + /// + /// SKU三级类目Id + /// + [Column(Name = "skuCid3", StringLength = 50)] + public string SkuCid3 { get; set; } /// /// 总加购人数 /// - [Column(Name = "totalCartCnt")] - public int? TotalCartCnt { get; set; } + [Column(Name = "totalCartCnt", DbType = "int")] + public int? TotalCartCnt { get; set; } = 0; + + /// + /// 总加购成本 + /// + [Column(Name = "totalCartCost", DbType = "decimal(18,2)")] + public decimal? TotalCartCost { get; set; } = 0.00M; /// /// 总订单数 /// - [Column(Name = "totalOrderCnt")] - public int? TotalOrderCnt { get; set; } + [Column(Name = "totalOrderCnt", DbType = "int")] + public int? TotalOrderCnt { get; set; } = 0; + + /// + /// 点击转化率 + /// + [Column(Name = "totalOrderCVS", DbType = "decimal(18,2)")] + public decimal? TotalOrderCVS { get; set; } = 0.00M; + + /// + /// ROI + /// + [Column(Name = "totalOrderROI", DbType = "decimal(18,2)")] + public decimal? TotalOrderROI { get; set; } = 0.00M; /// /// 总订单金额 /// - [Column(Name = "totalOrderSum")] - public decimal TotalOrderSum { get; set; } + [Column(Name = "totalOrderSum", DbType = "decimal(11,2)")] + public decimal? TotalOrderSum { get; set; } = 0.00M; + + /// + /// 预售订单行 + /// + [Column(Name = "totalPresaleOrderCnt", DbType = "int")] + public int? TotalPresaleOrderCnt { get; set; } = 0; + + /// + /// 预售订单金额 + /// + [Column(Name = "totalPresaleOrderSum", DbType = "decimal(18,2)")] + public decimal? TotalPresaleOrderSum { get; set; } = 0.00M; /// /// 访客数 /// - [Column(Name = "visitorCnt")] - public int VisitorCnt { get; set; } + [Column(Name = "visitorCnt", DbType = "int")] + public int? VisitorCnt { get; set; } = 0; + + /// + /// 访问页面数 + /// + [Column(Name = "visitPageCnt", DbType = "int")] + public int? VisitPageCnt { get; set; } = 0; + + /// + /// 访问时长 + /// + [Column(Name = "visitTimeAverage", DbType = "decimal(18,2)")] + public decimal? VisitTimeAverage { get; set; } = 0.00M; + } } diff --git a/BBWY.Server.Model/Db/JD/JDPopularizeCampaign.cs b/BBWY.Server.Model/Db/JD/JDPopularizeCampaign.cs index 946dd97e..bf6e19bb 100644 --- a/BBWY.Server.Model/Db/JD/JDPopularizeCampaign.cs +++ b/BBWY.Server.Model/Db/JD/JDPopularizeCampaign.cs @@ -1,4 +1,4 @@ -using FreeSql.DataAnnotations; +using FreeSql.DataAnnotations; using System; namespace BBWY.Server.Model.Db @@ -11,28 +11,50 @@ namespace BBWY.Server.Model.Db public partial class JDPopularizeCampaign { - [Column(IsPrimary = true)] + [Column(DbType = "bigint", IsPrimary = true)] public long Id { get; set; } /// /// 业务线(快车:2 京速推:134217728) /// - + [Column(DbType = "int")] public int? BusinessType { get; set; } /// /// 计划Id /// + [Column(DbType = "bigint")] public long? CampaignId { get; set; } + /// + /// 计划名称 + /// [Column(StringLength = 100)] public string CampaignName { get; set; } + /// + /// 文档无解释 + /// + [Column(Name = "campaignPutType", DbType = "int")] + public int? CampaignPutType { get; set; } + + /// + /// 计划类型 + /// + [Column(Name = "campaignType", DbType = "int")] + public int? CampaignType { get; set; } = 0; + + /// + /// 计划类型 + /// + [Column(Name = "campaignTypeExpand", DbType = "int")] + public int? CampaignTypeExpand { get; set; } = 0; + /// /// 点击数 /// - [Column(Name = "clicks")] - public int? Clicks { get; set; } + [Column(Name = "clicks", DbType = "int")] + public int? Clicks { get; set; } = 0; /// /// 总花费 @@ -40,20 +62,110 @@ namespace BBWY.Server.Model.Db [Column(DbType = "decimal(18,2)")] public decimal? Cost { get; set; } + /// + /// 领券数 + /// + [Column(Name = "couponCnt", DbType = "int")] + public int? CouponCnt { get; set; } = 0; + + /// + /// CPA + /// + [Column(DbType = "decimal(18,2)")] + public decimal? CPA { get; set; } = 0.00M; + + /// + /// 平均点击成本 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? CPC { get; set; } = 0.00M; + + /// + /// 千次展现成本 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? CPM { get; set; } = 0.00M; + [Column(DbType = "datetime")] public DateTime? CreateTime { get; set; } + /// + /// 点击率 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? CTR { get; set; } = 0.00M; + /// /// 计费日期 /// [Column(DbType = "datetime")] public DateTime? Date { get; set; } + /// + /// 深度进店数 + /// + [Column(Name = "depthPassengerCnt", DbType = "int")] + public int? DepthPassengerCnt { get; set; } = 0; + + /// + /// 直接购物车数 + /// + [Column(Name = "directCartCnt", DbType = "int")] + public int? DirectCartCnt { get; set; } = 0; + + /// + /// 直接订单行 + /// + [Column(Name = "directOrderCnt", DbType = "int")] + public int? DirectOrderCnt { get; set; } = 0; + + /// + /// 直接订单金额 + /// + [Column(Name = "directOrderSum", DbType = "decimal(18,2)")] + public decimal? DirectOrderSum { get; set; } = 0.00M; + + /// + /// 商品关注数 + /// + [Column(Name = "goodsAttentionCnt", DbType = "int")] + public int? GoodsAttentionCnt { get; set; } = 0; + /// /// 展现次数 /// - [Column(Name = "impressions")] - public int? Impressions { get; set; } + [Column(Name = "impressions", DbType = "int")] + public int? Impressions { get; set; } = 0; + + /// + /// 间接购物车数 + /// + [Column(Name = "indirectCartCnt", DbType = "int")] + public int? IndirectCartCnt { get; set; } = 0; + + /// + /// 间接订单行 + /// + [Column(Name = "indirectOrderCnt", DbType = "int")] + public int? IndirectOrderCnt { get; set; } = 0; + + /// + /// 间接订单金额 + /// + [Column(Name = "indirectOrderSum", DbType = "decimal(18,2)")] + public decimal? IndirectOrderSum { get; set; } = 0.00M; + + /// + /// 下单新客数 + /// + [Column(Name = "newCustomersCnt", DbType = "int")] + public int? NewCustomersCnt { get; set; } = 0; + + /// + /// 下单日期 + /// + [Column(Name = "orderDate", DbType = "datetime")] + public DateTime? OrderDate { get; set; } /// /// 账号归属 @@ -61,20 +173,92 @@ namespace BBWY.Server.Model.Db [Column(Name = "pin")] public string Pin { get; set; } + /// + /// 预约数 + /// + [Column(Name = "preorderCnt", DbType = "int")] + public int? PreorderCnt { get; set; } = 0; + + /// + /// 文档无解释 + /// + [Column(Name = "putType", StringLength = 100)] + public string PutType { get; set; } + + /// + /// 店铺关注数 + /// + [Column(Name = "shopAttentionCnt", DbType = "int")] + public int? ShopAttentionCnt { get; set; } = 0; + [Column(DbType = "bigint")] public long? ShopId { get; set; } /// /// 总加购人数 /// - [Column(Name = "totalCartCnt")] - public int? TotalCartCnt { get; set; } + [Column(Name = "totalCartCnt", DbType = "int")] + public int? TotalCartCnt { get; set; } = 0; + + /// + /// 总加购成本 + /// + [Column(Name = "totalCartCost", DbType = "decimal(18,2)")] + public decimal? TotalCartCost { get; set; } = 0.00M; /// /// 总订单数 /// - [Column(Name = "totalOrderCnt")] - public int? TotalOrderCnt { get; set; } + [Column(Name = "totalOrderCnt", DbType = "int")] + public int? TotalOrderCnt { get; set; } = 0; + + /// + /// 点击转化率 + /// + [Column(Name = "totalOrderCVS", DbType = "decimal(18,2)")] + public decimal? TotalOrderCVS { get; set; } = 0.00M; + + /// + /// ROI + /// + [Column(Name = "totalOrderROI", DbType = "decimal(18,2)")] + public decimal? TotalOrderROI { get; set; } = 0.00M; + + /// + /// 总订单金额 + /// + [Column(Name = "totalOrderSum", DbType = "decimal(18,2)")] + public decimal? TotalOrderSum { get; set; } = 0.00M; + + /// + /// 预售订单行 + /// + [Column(Name = "totalPresaleOrderCnt", DbType = "int")] + public int? TotalPresaleOrderCnt { get; set; } = 0; + + /// + /// 预售订单金额 + /// + [Column(Name = "totalPresaleOrderSum", DbType = "decimal(18,2)")] + public decimal? TotalPresaleOrderSum { get; set; } = 0.00M; + + /// + /// 访客数 + /// + [Column(Name = "visitorCnt", DbType = "int")] + public int? VisitorCnt { get; set; } = 0; + + /// + /// 访问页面数 + /// + [Column(Name = "visitPageCnt", DbType = "int")] + public int? VisitPageCnt { get; set; } = 0; + + /// + /// 访问时长 + /// + [Column(Name = "visitTimeAverage", DbType = "decimal(18,2)")] + public decimal? VisitTimeAverage { get; set; } = 0.00M; } From c32e4ad6b58004347af7f0c685153876a9231414 Mon Sep 17 00:00:00 2001 From: "506583276@qq.com" <506583276@qq.com> Date: Thu, 14 Dec 2023 17:44:00 +0800 Subject: [PATCH 35/57] 10222 --- BBWY.Client/GlobalContext.cs | 2 +- BBWY.Client/Views/PackTask/PrintWindow.xaml | 4 +- .../Views/PackTask/PrintWindow.xaml.cs | 92 +++++++++++++------ .../PrintPackDetailWindow.xaml.cs | 7 -- 4 files changed, 65 insertions(+), 40 deletions(-) diff --git a/BBWY.Client/GlobalContext.cs b/BBWY.Client/GlobalContext.cs index aa9ede9e..5831bf75 100644 --- a/BBWY.Client/GlobalContext.cs +++ b/BBWY.Client/GlobalContext.cs @@ -13,7 +13,7 @@ namespace BBWY.Client { ShopServiceGroupList = new List(); ShopServiceGroupLowerList = new List(); - ClientVersion = "10221"; + ClientVersion = "10222"; } diff --git a/BBWY.Client/Views/PackTask/PrintWindow.xaml b/BBWY.Client/Views/PackTask/PrintWindow.xaml index cd2c9821..860acbbe 100644 --- a/BBWY.Client/Views/PackTask/PrintWindow.xaml +++ b/BBWY.Client/Views/PackTask/PrintWindow.xaml @@ -45,13 +45,13 @@ - + - + diff --git a/BBWY.Client/Views/PackTask/PrintWindow.xaml.cs b/BBWY.Client/Views/PackTask/PrintWindow.xaml.cs index 0eb7a853..ce4d0ab1 100644 --- a/BBWY.Client/Views/PackTask/PrintWindow.xaml.cs +++ b/BBWY.Client/Views/PackTask/PrintWindow.xaml.cs @@ -9,6 +9,8 @@ using System.Threading.Tasks; using System.Windows; using System.Collections.ObjectModel; using BBWY.Client.Extensions; +using System.Reflection; +using System.IO; namespace BBWY.Client.Views.PackTask { @@ -20,21 +22,17 @@ namespace BBWY.Client.Views.PackTask public PrintWindow() { InitializeComponent(); - this.Loaded += PrintWindow_Loaded; - - - } + InitPrintList(); + this.DataContext = this; - private void PrintWindow_Loaded(object sender, RoutedEventArgs e) - { - LoadPrints(); } - /// /// 获取打印机名称 /// - private void LoadPrints() + public void InitPrintList() { + + PrintList = new ObservableCollection(); var printingNames = PrinterSettings.InstalledPrinters;//获取本机的打印机数据 int index = -1; int selectIndex = 0; @@ -49,12 +47,30 @@ namespace BBWY.Client.Views.PackTask { selectIndex = index; } - cbPrints.Items.Add(name); + PrintList.Add(name); + } + try + { + var applicationPath = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); + string printNames = System.IO.Path.Combine(applicationPath, "handPrintBarCerName.init"); + if (File.Exists(printNames)) + { + PrintName = File.ReadAllText(printNames); + } + else + { + if (PrintList.Count > 0) + { + PrintName = PrintList[0].ToString(); + } + } } - if (cbPrints.Items.Count > selectIndex) + catch (Exception) { - cbPrints.SelectedIndex = selectIndex; + + } + } @@ -81,43 +97,59 @@ namespace BBWY.Client.Views.PackTask cer.Visibility = Visibility.Collapsed; bar.Visibility = Visibility.Visible; } - this.DataContext = this; + } - public CertificateModel[] CertificateModel { get; set; } + private CertificateModel[] certificateModel; + public CertificateModel[] CertificateModel { get => certificateModel; set { Set(ref certificateModel, value); } } - public BarCodeModel BarCodeModel { get; set; } + private BarCodeModel barCodeModel; + public BarCodeModel BarCodeModel { get=> barCodeModel; set {Set(ref barCodeModel,value); } } - private void BButton_Click(object sender, RoutedEventArgs e) - { - int printCount = 0; - try - { - printCount = Convert.ToInt32(tbCount.Text); - } - catch - { - new TipsWindow("请输入打印份数", 1).ShowDialog(); - return; - } - string printName = cbPrints.Text;//选择的要打印的打印机名称 + /// + /// 打印机列表 + /// + public ObservableCollection PrintList { get; set; } + public string PrintName { get; set; } + public int PrintCount { get => printCount; set { Set(ref printCount, value); } } + private int printCount = 1; + + private void BButton_Click(object sender, RoutedEventArgs e) + { Task.Factory.StartNew(() => { if (BarCodeModel != null) { - PrintData(printCount, printName,BarCodeModel); + PrintData(PrintCount, PrintName,BarCodeModel); //MyPrintHelper.PrintBarcode(ref args, BarCodeModel, font); } if (CertificateModel != null&& CertificateModel.Count()>0) { foreach (var cer in CertificateModel) { - PrintData(printCount, printName,null,cer); + PrintData(PrintCount, PrintName,null,cer); System.Threading.Thread.Sleep(100); } } + + var applicationPath = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); + string printNames = System.IO.Path.Combine(applicationPath, "handPrintBarCerName.init"); + try + { + if (File.Exists(printNames)) + { + File.Delete(printNames); + } + } + catch + { + + + } + + File.WriteAllText(printNames, PrintName); }); } diff --git a/BBWY.Client/Views/PackagingTask/PrintPackDetailWindow.xaml.cs b/BBWY.Client/Views/PackagingTask/PrintPackDetailWindow.xaml.cs index 54b0767c..c543d504 100644 --- a/BBWY.Client/Views/PackagingTask/PrintPackDetailWindow.xaml.cs +++ b/BBWY.Client/Views/PackagingTask/PrintPackDetailWindow.xaml.cs @@ -93,13 +93,6 @@ namespace BBWY.Client.Views.PackagingTask } private void BButton_Click(object sender, System.Windows.RoutedEventArgs e) { - - - - - - - if (PrintName.IsNullOrEmpty()) { MessageBox.Show("请选择打印设备"); From 8d4c72a2bc32831d10520d20ed70b64eef462a77 Mon Sep 17 00:00:00 2001 From: sanji Date: Fri, 15 Dec 2023 14:20:23 +0800 Subject: [PATCH 36/57] =?UTF-8?q?=E5=AE=A2=E6=88=B7=E7=AB=AF=E6=8F=90?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BBWY.Client/GlobalContext.cs | 2 +- .../Purchase/1688PreviewPurchaseViewModel.cs | 13 +++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/BBWY.Client/GlobalContext.cs b/BBWY.Client/GlobalContext.cs index aa9ede9e..5831bf75 100644 --- a/BBWY.Client/GlobalContext.cs +++ b/BBWY.Client/GlobalContext.cs @@ -13,7 +13,7 @@ namespace BBWY.Client { ShopServiceGroupList = new List(); ShopServiceGroupLowerList = new List(); - ClientVersion = "10221"; + ClientVersion = "10222"; } diff --git a/BBWY.Client/ViewModels/Purchase/1688PreviewPurchaseViewModel.cs b/BBWY.Client/ViewModels/Purchase/1688PreviewPurchaseViewModel.cs index f9022b7d..878d5aea 100644 --- a/BBWY.Client/ViewModels/Purchase/1688PreviewPurchaseViewModel.cs +++ b/BBWY.Client/ViewModels/Purchase/1688PreviewPurchaseViewModel.cs @@ -76,6 +76,7 @@ namespace BBWY.Client.ViewModels /// 扩展数据,暂用于拳探 /// private string extensions; + private bool isSkuMatchError; public _1688PreviewPurchaseViewModel(OneBoundAPIService oneBoundAPIService, PurchaseService purchaseService, @@ -117,7 +118,7 @@ namespace BBWY.Client.ViewModels protected override void Load() { IsLoading = true; - + isSkuMatchError = false; Task.Factory.StartNew(() => purchaseService.GetPurchaseSchemeList(order.ItemList.Select(osku => osku.Id).ToList(), purchaser.Id, globalContext.User.Shop.ShopId)) .ContinueWith(r => { @@ -150,7 +151,10 @@ namespace BBWY.Client.ViewModels else { IsLoading = false; - App.Current.Dispatcher.Invoke(() => MessageBox.Show("采购方案商品加载失败,请重新打开预览窗口", "提示")); + if (isSkuMatchError) + App.Current.Dispatcher.Invoke(() => MessageBox.Show("采购方案与当前商品页的数据匹配失败,请删除旧采购方案后重新绑定采购方案", "提示")); + else + App.Current.Dispatcher.Invoke(() => MessageBox.Show("采购方案商品加载失败,请重新打开预览窗口", "提示")); } }); } @@ -195,6 +199,11 @@ namespace BBWY.Client.ViewModels } } }); + + if (purchaseSchemeProduct.SelectedSkuIdList.Any(s => !data.Value.purchaseSchemeProductSkus.Any(s1 => s1.PurchaseSkuId == s))) + { + isSkuMatchError = true; + } } ewh.Set(); From 8a49543deb7725241d173b345ee3d45c3b0be25b Mon Sep 17 00:00:00 2001 From: sanji Date: Fri, 15 Dec 2023 14:33:33 +0800 Subject: [PATCH 37/57] 10223 --- BBWY.Client/GlobalContext.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BBWY.Client/GlobalContext.cs b/BBWY.Client/GlobalContext.cs index 5831bf75..11a4832b 100644 --- a/BBWY.Client/GlobalContext.cs +++ b/BBWY.Client/GlobalContext.cs @@ -13,7 +13,7 @@ namespace BBWY.Client { ShopServiceGroupList = new List(); ShopServiceGroupLowerList = new List(); - ClientVersion = "10222"; + ClientVersion = "10223"; } From 941af2559250a5af1f6e7751c167062642daf2a5 Mon Sep 17 00:00:00 2001 From: sanji Date: Fri, 15 Dec 2023 17:26:17 +0800 Subject: [PATCH 38/57] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BB=A3=E5=8F=91?= =?UTF-8?q?=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BBWY.Server.API/Controllers/TestController.cs | 6 +++++ BBWY.Server.Business/TestBusiness.cs | 25 ++++++++++++++++++- 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/BBWY.Server.API/Controllers/TestController.cs b/BBWY.Server.API/Controllers/TestController.cs index edbdf8b6..4f830b5d 100644 --- a/BBWY.Server.API/Controllers/TestController.cs +++ b/BBWY.Server.API/Controllers/TestController.cs @@ -42,5 +42,11 @@ namespace BBWY.Server.API.Controllers { testBusiness.RepairOrderProfit(); } + + [HttpPost] + public void RepairDFOrder() + { + testBusiness.RepairDFOrder(); + } } } diff --git a/BBWY.Server.Business/TestBusiness.cs b/BBWY.Server.Business/TestBusiness.cs index 257ecb48..744f188d 100644 --- a/BBWY.Server.Business/TestBusiness.cs +++ b/BBWY.Server.Business/TestBusiness.cs @@ -15,6 +15,7 @@ using BBWY.Server.Business.Extensions; using Newtonsoft.Json; using System.Net.Http; using System.Threading.Tasks; +using Org.BouncyCastle.Crypto.Signers; namespace BBWY.Server.Business { @@ -25,6 +26,7 @@ namespace BBWY.Server.Business private IFreeSql fsql; private OrderSyncBusiness orderSyncBusiness; private TaskSchedulerManager taskSchedulerManager; + private PurchaseOrderBusiness purchaseOrderBusiness; public TestBusiness(RestApiService restApiService, IOptions options, FreeSqlMultiDBManager freeSqlMultiDBManager, @@ -32,13 +34,15 @@ namespace BBWY.Server.Business YunDingBusiness yunDingBusiness, IFreeSql fsql, OrderSyncBusiness orderSyncBusiness, - TaskSchedulerManager taskSchedulerManager) : base(restApiService, options, yunDingBusiness) + TaskSchedulerManager taskSchedulerManager, + PurchaseOrderBusiness purchaseOrderBusiness) : base(restApiService, options, yunDingBusiness) { this.freeSqlMultiDBManager = freeSqlMultiDBManager; this.venderBusiness = venderBusiness; this.fsql = fsql; this.orderSyncBusiness = orderSyncBusiness; this.taskSchedulerManager = taskSchedulerManager; + this.purchaseOrderBusiness = purchaseOrderBusiness; } public void SyncVenderId() @@ -385,6 +389,25 @@ namespace BBWY.Server.Business if (!response.Success) throw new BusinessException(response.Msg); } + + public void RepairDFOrder() + { + var st = DateTime.Parse("2023-11-01"); + var et = DateTime.Parse("2023-11-30 23:59:59"); + var list = fsql.Select() + .InnerJoin((o, ods, ocd) => o.Id == ods.OrderId) + .InnerJoin((o, ods, ocd) => o.Id == ocd.OrderId) + .Where((o, ods, ocd) => o.ShopId == 11817258 && o.OrderState != Enums.OrderState.已取消 && o.StartTime >= st && o.StartTime <= et && o.StorageType == Enums.StorageType.代发 && ocd.IsEnabled == true && ocd.SkuAmount == 0) + .ToList((o, ods, ocd) => ods.PurchaseOrderId).Distinct().ToList(); + + for (var i = 0; i < list.Count; i++) + { + Console.WriteLine($"{i + 1}/{list.Count()},{list[i]}"); + var param = new { type = "ORDER_BUYER_VIEW_ORDER_PRICE_MODIFY", data = new { orderId = list[i] } }; + purchaseOrderBusiness.CallbackFrom1688(JsonConvert.SerializeObject(param)); + Thread.Sleep(1000); + } + } } public class JPCount From ffe849a59b91e0787a5c6f62d8f0b7d6cb438c37 Mon Sep 17 00:00:00 2001 From: sanji Date: Sat, 16 Dec 2023 15:02:31 +0800 Subject: [PATCH 39/57] 1 --- BBWY.Server.Business/TestBusiness.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BBWY.Server.Business/TestBusiness.cs b/BBWY.Server.Business/TestBusiness.cs index 744f188d..b63ba0fb 100644 --- a/BBWY.Server.Business/TestBusiness.cs +++ b/BBWY.Server.Business/TestBusiness.cs @@ -397,7 +397,7 @@ namespace BBWY.Server.Business var list = fsql.Select() .InnerJoin((o, ods, ocd) => o.Id == ods.OrderId) .InnerJoin((o, ods, ocd) => o.Id == ocd.OrderId) - .Where((o, ods, ocd) => o.ShopId == 11817258 && o.OrderState != Enums.OrderState.已取消 && o.StartTime >= st && o.StartTime <= et && o.StorageType == Enums.StorageType.代发 && ocd.IsEnabled == true && ocd.SkuAmount == 0) + .Where((o, ods, ocd) => o.ShopId == 12897067 && o.OrderState != Enums.OrderState.已取消 && o.StartTime >= st && o.StartTime <= et && o.StorageType == Enums.StorageType.代发 && ocd.IsEnabled == true && ocd.SkuAmount == 0) .ToList((o, ods, ocd) => ods.PurchaseOrderId).Distinct().ToList(); for (var i = 0; i < list.Count; i++) From 77cc4205527d61a7a065de62938f806f93c0bbb2 Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Sun, 17 Dec 2023 17:00:46 +0800 Subject: [PATCH 40/57] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=A2=84=E4=BC=B0?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Sync/OrderEstimateCostSyncBusiness.cs | 3 +- .../Sync/OrderSyncBusiness.cs | 36 ++++++++++--------- 2 files changed, 22 insertions(+), 17 deletions(-) diff --git a/BBWY.Server.Business/Sync/OrderEstimateCostSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderEstimateCostSyncBusiness.cs index 79c3370e..b5121092 100644 --- a/BBWY.Server.Business/Sync/OrderEstimateCostSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/OrderEstimateCostSyncBusiness.cs @@ -267,13 +267,14 @@ namespace BBWY.Server.Business { try { + var jcycStorageTypeList = new List() { Enums.StorageType.京仓, Enums.StorageType.云仓 }; var shopId = long.Parse(shop.ShopId); var orderList = fsql.Select().Where(o => o.ShopId == shopId && o.ModifyTime >= startTime && o.ModifyTime <= endTime && !invalidOrderStateList.Contains(o.OrderState) && o.IsGift == false && - o.StorageType == null && + (o.StorageType == null || jcycStorageTypeList.Contains(o.StorageType)) && !fsql.Select().Where(oc => oc.OrderId == o.Id).Any()) .ToList(); Console.WriteLine($"预估成本-{shop.ShopName},符合条件且没有成本的订单一共{orderList.Count()}个"); diff --git a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs index 6edcd567..bd5aab0b 100644 --- a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs @@ -915,23 +915,27 @@ namespace BBWY.Server.Business #endregion #region 计算成本 - orderCost = new OrderCost() + //当具备订单明细成本的时候,才为其创建订单成本 + if (insertOrderCostDetailList.Any(iocd => iocd.OrderId == orderId)) { - OrderId = orderId, - PlatformCommissionRatio = platformCommissionRatio, - PreferentialAmount = (dbOrderTotal?.TotalPingTaiChengDanYouHuiQuan) ?? dbOrder.PreferentialAmount, - Profit = 0, - PurchaseAmount = orderCostPurchaseAmount, - DeliveryExpressFreight = orderDeliveryExpressFreight, - CreateTime = DateTime.Now, - IsEstimateCost = false - }; - if (dbOrder.OrderTotalPrice != 0) - orderCost.CalculationOrderProfitAndCost(dbOrder, null); - else - orderCost.CalculationOrderProfitAndCost(actualAmount, null); - - insertOrderCostList.Add(orderCost); + orderCost = new OrderCost() + { + OrderId = orderId, + PlatformCommissionRatio = platformCommissionRatio, + PreferentialAmount = (dbOrderTotal?.TotalPingTaiChengDanYouHuiQuan) ?? dbOrder.PreferentialAmount, + Profit = 0, + PurchaseAmount = orderCostPurchaseAmount, + DeliveryExpressFreight = orderDeliveryExpressFreight, + CreateTime = DateTime.Now, + IsEstimateCost = false + }; + if (dbOrder.OrderTotalPrice != 0) + orderCost.CalculationOrderProfitAndCost(dbOrder, null); + else + orderCost.CalculationOrderProfitAndCost(actualAmount, null); + + insertOrderCostList.Add(orderCost); + } #endregion } } From 6970c012b58cfdeb5f387867f603ba345479d4c7 Mon Sep 17 00:00:00 2001 From: sanji Date: Mon, 18 Dec 2023 12:01:08 +0800 Subject: [PATCH 41/57] =?UTF-8?q?=E5=8F=91=E5=B8=83=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E4=BF=9D=E5=AD=98=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EvaluationAssistant/EvaluationAssistantBusiness.cs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/BBWY.Server.Business/EvaluationAssistant/EvaluationAssistantBusiness.cs b/BBWY.Server.Business/EvaluationAssistant/EvaluationAssistantBusiness.cs index 6e9250b3..9c5aca76 100644 --- a/BBWY.Server.Business/EvaluationAssistant/EvaluationAssistantBusiness.cs +++ b/BBWY.Server.Business/EvaluationAssistant/EvaluationAssistantBusiness.cs @@ -148,6 +148,13 @@ namespace BBWY.Server.Business #region 评价助手任务 public void AddOrEditPromotionTask(AddOrEditPromotionTaskRequest request) { + var shop = venderBusiness.GetShopList(request.ShopId).FirstOrDefault(); + if (shop == null) + throw new BusinessException("缺少店铺Id"); + var loggerName = $"评价助手-{shop.ShopName}"; + nLogManager.GetLogger(loggerName).Info($"发布任务-{JsonConvert.SerializeObject(request)}"); + + if (string.IsNullOrEmpty(request.MainProductSpu)) throw new BusinessException("缺少主商品SPU"); From 774a5854d63a19747647b1a15a60ea1f3e265665 Mon Sep 17 00:00:00 2001 From: sanji Date: Mon, 18 Dec 2023 13:44:25 +0800 Subject: [PATCH 42/57] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dskutitle=E8=AF=86?= =?UTF-8?q?=E5=88=AB=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PlatformSDK/JDBusiness.cs | 49 ++++++++++++++----- 1 file changed, 36 insertions(+), 13 deletions(-) diff --git a/BBWY.Server.Business/PlatformSDK/JDBusiness.cs b/BBWY.Server.Business/PlatformSDK/JDBusiness.cs index 351acc47..e179ae9d 100644 --- a/BBWY.Server.Business/PlatformSDK/JDBusiness.cs +++ b/BBWY.Server.Business/PlatformSDK/JDBusiness.cs @@ -125,26 +125,49 @@ namespace BBWY.Server.Business private string GetSkuTitle(JToken s) { - var title = s["saleAttrs"] != null ? string.Join("-", s["saleAttrs"].Select(a => a["attrValueAlias"][0].ToString())) : string.Empty; - if (!string.IsNullOrEmpty(title) && title.Contains("id") && title.Contains("value")) + if (s["saleAttrs"] == null) + throw new BusinessException($"{s["skuId"]}没有名字"); + StringBuilder titleBuilder = new StringBuilder(); + List attrValueAliasList = new List(); + + attrValueAliasList.AddRange(s["saleAttrs"].Select(a => a["attrValueAlias"][0].ToString())); + /* + [{\"unit\":\"\",\"valueId\":\"1120738\",\"id\":8488,\"value\":\"手动\"},{\"unit\":\"个\",\"id\":8489,\"value\":\"30\"},{\"unit\":\"\",\"id\":8490,\"value\":\"大号M416火焰红\"}]-8弹壳+40软弹+复位标靶AWM软弹枪 + */ + + foreach (var attrValueAlias in attrValueAliasList) { - if (title.Contains("]-[")) + if (attrValueAlias.Contains("{") && attrValueAlias.Contains("}")) { - title = title.Replace("]-[", "]^["); - var titleArray = title.Split(new char[] { '^' }, StringSplitOptions.RemoveEmptyEntries); - StringBuilder sb = new StringBuilder(); - foreach (var titleStr in titleArray) - { - sb.Append(string.Join("", JArray.Parse(titleStr).Select(j => $"{j.Value("value")}{j.Value("unit")}"))); - } - title = sb.ToString(); + titleBuilder.Append(string.Join(string.Empty, JArray.Parse(attrValueAlias).Select(j => $"{j.Value("value")}{j.Value("unit")}"))); } else { - title = string.Join("", JArray.Parse(title).Select(j => $"{j.Value("value")}{j.Value("unit")}")); + titleBuilder.Append(attrValueAlias); } } - return title; + return titleBuilder.ToString(); + + //var title = s["saleAttrs"] != null ? string.Join("-", s["saleAttrs"].Select(a => a["attrValueAlias"][0].ToString())) : string.Empty; + //if (!string.IsNullOrEmpty(title) && title.Contains("id") && title.Contains("value")) + //{ + // if (title.Contains("]-[")) + // { + // title = title.Replace("]-[", "]^["); + // var titleArray = title.Split(new char[] { '^' }, StringSplitOptions.RemoveEmptyEntries); + // StringBuilder sb = new StringBuilder(); + // foreach (var titleStr in titleArray) + // { + // sb.Append(string.Join("", JArray.Parse(titleStr).Select(j => $"{j.Value("value")}{j.Value("unit")}"))); + // } + // title = sb.ToString(); + // } + // else + // { + // title = string.Join("", JArray.Parse(title).Select(j => $"{j.Value("value")}{j.Value("unit")}")); + // } + //} + //return title; } public override IList GetProductSkuList(SearchProductSkuRequest searchProductSkuRequest) From 93351fdf06f3d8e016834ced41fb4c96b0b82bc8 Mon Sep 17 00:00:00 2001 From: sanji Date: Mon, 18 Dec 2023 16:39:37 +0800 Subject: [PATCH 43/57] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=BA=BA=E5=B7=A5?= =?UTF-8?q?=E8=B4=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Db/PurchaseOrder/PurchaseOrder.cs | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/BBWY.Server.Model/Db/PurchaseOrder/PurchaseOrder.cs b/BBWY.Server.Model/Db/PurchaseOrder/PurchaseOrder.cs index af005148..8738cd09 100644 --- a/BBWY.Server.Model/Db/PurchaseOrder/PurchaseOrder.cs +++ b/BBWY.Server.Model/Db/PurchaseOrder/PurchaseOrder.cs @@ -136,17 +136,23 @@ namespace BBWY.Server.Model.Db [Column(DbType = "decimal(20,2)")] public decimal SingleConsumableAmount { get; set; } = 0.00M; + ///// + ///// 单件仓储费 + ///// + //[Column(DbType = "decimal(20,2)")] + //public decimal SingleStorageAmount { get; set; } = 0.00M; + /// - /// 单件仓储费 + /// 单件销售运费(不参与均价计算) /// [Column(DbType = "decimal(20,2)")] - public decimal SingleStorageAmount { get; set; } = 0.00M; + public decimal SingleDeliveryFreight { get; set; } = 0.00M; /// - /// 单件销售运费(不参与均价计算) + /// 包装人工单价 /// [Column(DbType = "decimal(20,2)")] - public decimal SingleDeliveryFreight { get; set; } = 0.00M; + public decimal SinglePackagingLaborAmount { get; set; } = 0.00M; /// @@ -157,7 +163,7 @@ namespace BBWY.Server.Model.Db { get { - return SingleSkuAmount + SingleFreight + SingleFirstFreight + SingleInStorageAmount + SingleOutStorageAmount + SingleConsumableAmount + SingleStorageAmount; + return SingleSkuAmount + SingleFreight + SingleFirstFreight + SingleInStorageAmount + SingleOutStorageAmount + SingleConsumableAmount + SinglePackagingLaborAmount; } } } From 62b053ef9c38e25987ec0a014cbf968a85436f25 Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Tue, 19 Dec 2023 00:02:21 +0800 Subject: [PATCH 44/57] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=BA=E5=B7=A5?= =?UTF-8?q?=E8=B4=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AfterSaleOrder/AfterSaleOrderBusiness.cs | 2 +- .../BillCorrection/BillCorrectionBusiness.cs | 6 +++-- BBWY.Server.Business/Order/OrderBusiness.cs | 20 +++++++++----- .../PurchaseOrder/PurchaseOrderBusiness.cs | 12 +++++---- .../ServiceOrder/ServiceOrderBusiness.cs | 2 +- .../Sync/OrderEstimateCostSyncBusiness.cs | 18 ++++++++----- .../Sync/OrderSyncBusiness.cs | 12 +++++---- BBWY.Server.Model/Db/Order/OrderCostDetail.cs | 18 ++++++++----- BBWY.Server.Model/Db/Order/SkuRecentCost.cs | 26 ++++++++++++------- .../Db/PurchaseOrder/PurchaseOrder.cs | 25 ++---------------- .../PurchaseOrder/AddPurchaseOrderRequest.cs | 19 +++++++++----- .../PurchaseOrder/EditPurchaseOrderRequest.cs | 19 +++++++++----- .../BillCorrectionOrderResponse.cs | 2 ++ .../Dto/Response/Order/ExportOrderResponse.cs | 10 +++---- 14 files changed, 106 insertions(+), 85 deletions(-) diff --git a/BBWY.Server.Business/AfterSaleOrder/AfterSaleOrderBusiness.cs b/BBWY.Server.Business/AfterSaleOrder/AfterSaleOrderBusiness.cs index 55518038..5660e79a 100644 --- a/BBWY.Server.Business/AfterSaleOrder/AfterSaleOrderBusiness.cs +++ b/BBWY.Server.Business/AfterSaleOrder/AfterSaleOrderBusiness.cs @@ -170,7 +170,7 @@ namespace BBWY.Server.Business dbAfterSaleOrder.FirstFreight = dbOrderCostDetail.FirstFreight; dbAfterSaleOrder.ReissueProductAmount = dbOrderCostDetail.SkuAmount; dbAfterSaleOrder.ReissueFreight = dbOrderCostDetail.PurchaseFreight; - dbAfterSaleOrder.StorageAmount = dbOrderCostDetail.StorageAmount; + //dbAfterSaleOrder.StorageAmount = dbOrderCostDetail.StorageAmount; dbAfterSaleOrder.InStorageAmount = dbOrderCostDetail.InStorageAmount; dbAfterSaleOrder.OutStorageAmount = dbOrderCostDetail.OutStorageAmount; } diff --git a/BBWY.Server.Business/BillCorrection/BillCorrectionBusiness.cs b/BBWY.Server.Business/BillCorrection/BillCorrectionBusiness.cs index c7808e19..8d1b8d4a 100644 --- a/BBWY.Server.Business/BillCorrection/BillCorrectionBusiness.cs +++ b/BBWY.Server.Business/BillCorrection/BillCorrectionBusiness.cs @@ -68,7 +68,8 @@ namespace BBWY.Server.Business InStorageAmount = g.Sum(g.Value.Item1.InStorageAmount), OutStorageAmount = g.Sum(g.Value.Item1.OutStorageAmount), ConsumableAmount = g.Sum(g.Value.Item1.ConsumableAmount), - StorageAmount = g.Sum(g.Value.Item1.StorageAmount) + PackagingLaborAmount = g.Sum(g.Value.Item1.PackagingLaborAmount), + //StorageAmount = g.Sum(g.Value.Item1.StorageAmount) }); @@ -99,7 +100,8 @@ namespace BBWY.Server.Business order.InStorageAmount = orderCostDetail?.InStorageAmount ?? 0M; order.OutStorageAmount = orderCostDetail?.OutStorageAmount ?? 0M; order.ConsumableAmount = orderCostDetail?.ConsumableAmount ?? 0M; - order.StorageAmount = orderCostDetail?.StorageAmount ?? 0M; + order.PackagingLaborAmount = orderCostDetail?.PackagingLaborAmount ?? 0M; + //order.StorageAmount = orderCostDetail?.StorageAmount ?? 0M; order.AfterTotalCost = afterOrder?.AfterTotalCost ?? 0M; if (order.StorageType == Model.Enums.StorageType.SD) diff --git a/BBWY.Server.Business/Order/OrderBusiness.cs b/BBWY.Server.Business/Order/OrderBusiness.cs index 9aee4593..5e33c722 100644 --- a/BBWY.Server.Business/Order/OrderBusiness.cs +++ b/BBWY.Server.Business/Order/OrderBusiness.cs @@ -54,7 +54,7 @@ namespace BBWY.Server.Business venderBusinessLazy = new Lazy(() => serviceProvider.GetService()); } - private ISelect GetOrderListQueryConditions(SearchOrderRequest searchOrderRequest) + private ISelect GetOrderListQueryConditions(SearchOrderRequest searchOrderRequest) { var select = fsql.Select().LeftJoin((o, ocs, oct, sh) => o.Id == ocs.OrderId) .LeftJoin((o, ocs, oct, sh) => o.Id == oct.OrderId) @@ -341,7 +341,8 @@ namespace BBWY.Server.Business OrderId = g.Key, SkuAmount = g.Sum(g.Value.SkuAmount), FirstFreight = g.Sum(g.Value.FirstFreight), - StorageAmount = g.Sum(g.Value.StorageAmount), + //StorageAmount = g.Sum(g.Value.StorageAmount), + PackagingLaborAmount = g.Sum(g.Value.PackagingLaborAmount), PurchaseFreight = g.Sum(g.Value.PurchaseFreight), ConsumableAmount = g.Sum(g.Value.ConsumableAmount), InStorageAmount = g.Sum(g.Value.InStorageAmount), @@ -360,7 +361,8 @@ namespace BBWY.Server.Business OrderId = g.Key, SkuAmount = g.Sum(g.Value.Item1.SkuAmount), FirstFreight = g.Sum(g.Value.Item1.FirstFreight), - StorageAmount = g.Sum(g.Value.Item1.StorageAmount), + //StorageAmount = g.Sum(g.Value.Item1.StorageAmount), + PackagingLaborAmount = g.Sum(g.Value.Item1.PackagingLaborAmount), PurchaseFreight = g.Sum(g.Value.Item1.PurchaseFreight), ConsumableAmount = g.Sum(g.Value.Item1.ConsumableAmount), InStorageAmount = g.Sum(g.Value.Item1.InStorageAmount), @@ -377,7 +379,8 @@ namespace BBWY.Server.Business order.FirstFreight = statistics?.FirstFreight ?? 0M; order.PurchaseSkuAmount = statistics?.SkuAmount ?? 0M; order.PurchaseFreight = statistics?.PurchaseFreight ?? 0M; - order.StorageAmount = statistics?.StorageAmount ?? 0M; + //order.StorageAmount = statistics?.StorageAmount ?? 0M; + order.PackagingLaborAmount = statistics?.PackagingLaborAmount ?? 0M; order.SkuIds = string.Join("|", orderSkuList.Where(osku => osku.OrderId == order.OrderId).Select(osku => osku.SkuId)); order.ProfitRatio = order.TotalCost == 0 ? 0 : Math.Round(order.Profit / order.TotalCost * 100, 2); order.ConsumableAmount = statistics?.ConsumableAmount ?? 0M; @@ -594,7 +597,8 @@ namespace BBWY.Server.Business //OperationAmount = purchaseOrder.SingleOperationAmount * deductionQuantity, PurchaseFreight = purchaseOrder.SingleFreight * deductionQuantity, SkuAmount = purchaseOrder.SingleSkuAmount * deductionQuantity, - StorageAmount = purchaseOrder.SingleStorageAmount * deductionQuantity + //StorageAmount = purchaseOrder.SingleStorageAmount * deductionQuantity + PackagingLaborAmount = purchaseOrder.SinglePackagingLaborAmount * deductionQuantity }; orderCostDetail.CalculationSkuGrossProfit(orderSku.ShouldPay ?? 0M, @@ -957,7 +961,8 @@ namespace BBWY.Server.Business //SingleOperationAmount = 0, SingleInStorageAmount = 0, SingleOutStorageAmount = 0, - SingleStorageAmount = 0, + SinglePackagingLaborAmount = 0M, + //SingleStorageAmount = 0, SingleSkuAmount = relationOrderSku.SingleSkuAmount, SingleDeliveryFreight = 0 }; @@ -981,7 +986,8 @@ namespace BBWY.Server.Business PurchaseFreight = odsRequest.PurchaseFreight / odsRequest.RelationPurchaseOrderSkuList.Count(), SkuAmount = relationOrderSku.SingleSkuAmount * relationOrderSku.Quantity, SkuId = relationOrderSku.SkuId, - StorageAmount = 0, + PackagingLaborAmount = 0, + //StorageAmount = 0, //TotalCost = relationOrderSku.SingleSkuAmount * relationOrderSku.Quantity + odsRequest.PurchaseFreight / odsRequest.RelationPurchaseOrderSkuList.Count(), //UnitCost = purchaseOrder.UnitCost, PurchaseOrderPKId = purchaseOrder.Id diff --git a/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs index 4f6f7592..5ac3f230 100644 --- a/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs +++ b/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs @@ -94,9 +94,10 @@ namespace BBWY.Server.Business .Set(po => po.SingleFirstFreight, editPurchaseOrderRequest.SingleFirstFreight) .Set(po => po.SingleInStorageAmount, editPurchaseOrderRequest.SingleInStorageAmount) .Set(po => po.SingleOutStorageAmount, editPurchaseOrderRequest.SingleOutStorageAmount) - .Set(po => po.SingleRefundInStorageAmount, editPurchaseOrderRequest.SingleRefundInStorageAmount) + //.Set(po => po.SingleRefundInStorageAmount, editPurchaseOrderRequest.SingleRefundInStorageAmount) .Set(po => po.SingleConsumableAmount, editPurchaseOrderRequest.SingleConsumableAmount) - .Set(po => po.SingleStorageAmount, editPurchaseOrderRequest.SingleStorageAmount) + //.Set(po => po.SingleStorageAmount, editPurchaseOrderRequest.SingleStorageAmount) + .Set(po => po.SinglePackagingLaborAmount, editPurchaseOrderRequest.SinglePackagingLaborAmount) .Set(po => po.SingleDeliveryFreight, editPurchaseOrderRequest.SingleDeliveryFreight) .ExecuteAffrows(); } @@ -244,7 +245,8 @@ namespace BBWY.Server.Business SingleConsumableAmount = 0, SingleDeliveryFreight = 0, SingleFirstFreight = 0, - SingleStorageAmount = 0, + SinglePackagingLaborAmount = 0, + //SingleStorageAmount = 0, //SingleOperationAmount = 0, SingleOutStorageAmount = 0, SingleInStorageAmount = 0, @@ -285,8 +287,8 @@ namespace BBWY.Server.Business PurchaseOrderPKId = purchaseOrder.Id, SkuAmount = currentOrderSkuProductAmount, SkuId = orderSku.SkuId, - StorageAmount = 0, - IsEstimateCost = false + //StorageAmount = 0, + IsEstimateCost = false, //UnitCost = purchaseOrder.UnitCost, //TotalCost = currentOrderSkuProductAmount + currentOrderSkuFreightAmount//purchaseOrder.UnitCost * orderSku.ItemTotal.Value }; diff --git a/BBWY.Server.Business/ServiceOrder/ServiceOrderBusiness.cs b/BBWY.Server.Business/ServiceOrder/ServiceOrderBusiness.cs index 44fd5375..a917172d 100644 --- a/BBWY.Server.Business/ServiceOrder/ServiceOrderBusiness.cs +++ b/BBWY.Server.Business/ServiceOrder/ServiceOrderBusiness.cs @@ -148,7 +148,7 @@ namespace BBWY.Server.Business dbso.FirstFreight = dbOrderCostDetail.FirstFreight; dbso.ReissueProductAmount = dbOrderCostDetail.SkuAmount; dbso.ReissueFreight = dbOrderCostDetail.PurchaseFreight; - dbso.StorageAmount = dbOrderCostDetail.StorageAmount; + //dbso.StorageAmount = dbOrderCostDetail.StorageAmount; dbso.InStorageAmount = dbOrderCostDetail.InStorageAmount; dbso.OutStorageAmount = dbOrderCostDetail.OutStorageAmount; } diff --git a/BBWY.Server.Business/Sync/OrderEstimateCostSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderEstimateCostSyncBusiness.cs index b5121092..acd8133d 100644 --- a/BBWY.Server.Business/Sync/OrderEstimateCostSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/OrderEstimateCostSyncBusiness.cs @@ -105,7 +105,8 @@ namespace BBWY.Server.Business var singleInStorageAmount = yesocd.InStorageAmount / q; var singleOutStorageAmount = yesocd.OutStorageAmount / q; var singleSkuAmount = yesocd.SkuAmount / q; - var singleStorageAmount = yesocd.StorageAmount / q; + //var singleStorageAmount = yesocd.StorageAmount / q; + var singlePackagingLaborAmount = yesocd.PackagingLaborAmount / q; var skuRecentCost = dbSkuRecentCostList.FirstOrDefault(x => x.SkuId == yesocd.SkuId); if (skuRecentCost != null) @@ -117,7 +118,8 @@ namespace BBWY.Server.Business skuRecentCost.SingleInStorageAmount != singleInStorageAmount || skuRecentCost.SingleOutStorageAmount != singleOutStorageAmount || skuRecentCost.SingleSkuAmount != singleSkuAmount || - skuRecentCost.SingleStorageAmount != singleStorageAmount) + skuRecentCost.SinglePackagingLaborAmount != singlePackagingLaborAmount) + //skuRecentCost.SingleStorageAmount != singleStorageAmount) { skuRecentCost.UpdateTime = DateTime.Now; var update = fsql.Update(yesocd.SkuId) @@ -128,7 +130,8 @@ namespace BBWY.Server.Business .SetIf(skuRecentCost.SingleInStorageAmount != singleInStorageAmount, s => s.SingleInStorageAmount, singleInStorageAmount) .SetIf(skuRecentCost.SingleOutStorageAmount != singleOutStorageAmount, s => s.SingleOutStorageAmount, singleOutStorageAmount) .SetIf(skuRecentCost.SingleSkuAmount != singleSkuAmount, s => s.SingleSkuAmount, singleSkuAmount) - .SetIf(skuRecentCost.SingleStorageAmount != singleStorageAmount, s => s.SingleStorageAmount, singleStorageAmount) + //.SetIf(skuRecentCost.SingleStorageAmount != singleStorageAmount, s => s.SingleStorageAmount, singleStorageAmount) + .SetIf(skuRecentCost.SinglePackagingLaborAmount != singlePackagingLaborAmount, s => s.SinglePackagingLaborAmount, singlePackagingLaborAmount) .Set(s => s.UpdateTime, DateTime.Now); updateSkuRecentCostList.Add(update); } @@ -150,7 +153,8 @@ namespace BBWY.Server.Business SingleInStorageAmount = singleInStorageAmount, SingleOutStorageAmount = singleOutStorageAmount, SingleSkuAmount = singleSkuAmount, - SingleStorageAmount = singleStorageAmount + SinglePackagingLaborAmount = singlePackagingLaborAmount + //SingleStorageAmount = singleStorageAmount }; insertSkuRecetCostList.Add(skuRecentCost); } @@ -310,7 +314,8 @@ namespace BBWY.Server.Business src.SingleFreight, src.SingleInStorageAmount, src.SingleOutStorageAmount, - src.SingleStorageAmount + src.SinglePackagingLaborAmount + //src.SingleStorageAmount }); foreach (var order in orderList) { @@ -340,7 +345,8 @@ namespace BBWY.Server.Business PurchaseOrderPKId = 0, SkuAmount = (osku.SingleSkuAmount * osku.ItemTotal) ?? 0M, SkuId = osku.SkuId, - StorageAmount = (osku.SingleStorageAmount * osku.ItemTotal) ?? 0M, + //StorageAmount = (osku.SingleStorageAmount * osku.ItemTotal) ?? 0M, + PackagingLaborAmount = (osku.SinglePackagingLaborAmount * osku.ItemTotal) ?? 0M, IsEnabled = true, IsEstimateCost = true }; diff --git a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs index bd5aab0b..5445605e 100644 --- a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs @@ -106,7 +106,7 @@ namespace BBWY.Server.Business var relayAPIHost = GetPlatformRelayAPIHost(shop.PlatformId); var orderListApiResult = restApiService.SendRequest(relayAPIHost, "api/PlatformSDK/GetOrderList", new SearchPlatformOrderRequest() { - StartDate = startTime ?? DateTime.Now.AddHours(shop.ShopName.Contains("腾奇") ? -0.5 : -3), + StartDate = startTime ?? DateTime.Now.AddHours(-3), EndDate = endTime ?? DateTime.Now, AppKey = shop.AppKey, AppSecret = shop.AppSecret, @@ -142,9 +142,9 @@ namespace BBWY.Server.Business { //if (fsql.Select().Where(ost => ost.ShopId == syncOrderByDateRequest.ShopId && ost.State == Enums.OrderSyncState.Running).Any()) // throw new BusinessException("存在未结束的同步任务,请稍后同步"); - //syncOrderByDateRequest.EndTime = syncOrderByDateRequest.EndTime.Date.AddDays(1).AddSeconds(-1); - //if ((syncOrderByDateRequest.EndTime - syncOrderByDateRequest.StartTime).Days > 7) - // throw new BusinessException("同步任务时差最长7天"); + syncOrderByDateRequest.EndTime = syncOrderByDateRequest.EndTime.Date.AddDays(1).AddSeconds(-1); + if ((syncOrderByDateRequest.EndTime - syncOrderByDateRequest.StartTime).Days > 7) + throw new BusinessException("同步任务时差最长7天"); var orderSyncTask = new OrderSyncTask() { @@ -886,7 +886,8 @@ namespace BBWY.Server.Business OutStorageAmount = purchaseOrder.SingleOutStorageAmount * deductionQuantity, PurchaseFreight = purchaseOrder.SingleFreight * deductionQuantity, SkuAmount = purchaseOrder.SingleSkuAmount * deductionQuantity, - StorageAmount = purchaseOrder.SingleStorageAmount * deductionQuantity, + //StorageAmount = purchaseOrder.SingleStorageAmount * deductionQuantity, + PackagingLaborAmount = purchaseOrder.SinglePackagingLaborAmount * deductionQuantity, IsEnabled = true, IsEstimateCost = false }; @@ -1109,6 +1110,7 @@ namespace BBWY.Server.Business public void SyncAllShopOrder() { var shopList = venderBusiness.GetShopList(platform: Enums.Platform.京东); + //var a = shopList.FirstOrDefault(s => s.ShopName == "创艺家居日用专营店"); foreach (var shop in shopList) { Task.Factory.StartNew(() => SyncOrder(shop, string.Empty, isAuto: true), CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.SyncOrderTaskScheduler); diff --git a/BBWY.Server.Model/Db/Order/OrderCostDetail.cs b/BBWY.Server.Model/Db/Order/OrderCostDetail.cs index 84f89adb..e2f4c552 100644 --- a/BBWY.Server.Model/Db/Order/OrderCostDetail.cs +++ b/BBWY.Server.Model/Db/Order/OrderCostDetail.cs @@ -90,11 +90,11 @@ namespace BBWY.Server.Model.Db [Column(DbType = "decimal(20,2)")] public decimal ConsumableAmount { get; set; } = 0.00M; - /// - /// 仓储费 - /// - [Column(DbType = "decimal(20,2)")] - public decimal StorageAmount { get; set; } = 0.00M; + ///// + ///// 仓储费 + ///// + //[Column(DbType = "decimal(20,2)")] + //public decimal StorageAmount { get; set; } = 0.00M; [Column(DbType = "bit")] public bool IsEnabled { get; set; } = true; @@ -105,6 +105,12 @@ namespace BBWY.Server.Model.Db [Column(DbType = "decimal(20,2)")] public decimal SkuGrossProfit { get; set; } = 0.00M; + /// + /// 包装人工费 + /// + [Column(DbType = "decimal(20,2)")] + public decimal PackagingLaborAmount { get; set; } = 0.00M; + /// /// 总计(不含发货运费) /// @@ -113,7 +119,7 @@ namespace BBWY.Server.Model.Db { get { - return SkuAmount + PurchaseFreight + FirstFreight + InStorageAmount + OutStorageAmount + StorageAmount + ConsumableAmount; + return SkuAmount + PurchaseFreight + FirstFreight + InStorageAmount + OutStorageAmount + PackagingLaborAmount + ConsumableAmount; } } diff --git a/BBWY.Server.Model/Db/Order/SkuRecentCost.cs b/BBWY.Server.Model/Db/Order/SkuRecentCost.cs index 3950d1ec..eb3cea6b 100644 --- a/BBWY.Server.Model/Db/Order/SkuRecentCost.cs +++ b/BBWY.Server.Model/Db/Order/SkuRecentCost.cs @@ -68,11 +68,11 @@ namespace BBWY.Server.Model.Db [Column(DbType = "decimal(20,2)")] public decimal? SingleOutStorageAmount { get; set; } = 0.00M; - /// - /// 退货入仓操作费(单件) - /// - [Column(DbType = "decimal(20,2)")] - public decimal? SingleRefundInStorageAmount { get; set; } = 0.00M; + ///// + ///// 退货入仓操作费(单件) + ///// + //[Column(DbType = "decimal(20,2)")] + //public decimal? SingleRefundInStorageAmount { get; set; } = 0.00M; /// /// SKU成本(单件) @@ -80,15 +80,21 @@ namespace BBWY.Server.Model.Db [Column(DbType = "decimal(20,2)")] public decimal? SingleSkuAmount { get; set; } - /// - /// 仓储费(单件) - /// - [Column(DbType = "decimal(20,2)")] - public decimal? SingleStorageAmount { get; set; } = 0.00M; + ///// + ///// 仓储费(单件) + ///// + //[Column(DbType = "decimal(20,2)")] + //public decimal? SingleStorageAmount { get; set; } = 0.00M; [Column(DbType = "datetime")] public DateTime? UpdateTime { get; set; } + /// + /// 包装人工单价 + /// + [Column(DbType = "decimal(20,2)")] + public decimal SinglePackagingLaborAmount { get; set; } = 0.00M; + } } diff --git a/BBWY.Server.Model/Db/PurchaseOrder/PurchaseOrder.cs b/BBWY.Server.Model/Db/PurchaseOrder/PurchaseOrder.cs index 8738cd09..f7ddaaf5 100644 --- a/BBWY.Server.Model/Db/PurchaseOrder/PurchaseOrder.cs +++ b/BBWY.Server.Model/Db/PurchaseOrder/PurchaseOrder.cs @@ -17,29 +17,13 @@ namespace BBWY.Server.Model.Db [Column(DbType = "datetime")] public DateTime? CreateTime { get; set; } - /// - /// 头程运费 - /// - //[Column(DbType = "decimal(20,2)")] - //public decimal FirstFreight { get; set; } = 0.00M; - - /// - /// 采购运费 - /// - //[Column(DbType = "decimal(20,2)")] - //public decimal Freight { get; set; } = 0.00M; - + /// /// 产品Id /// [Column(StringLength = 50)] public string ProductId { get; set; } - /// - /// 采购金额 - /// - //[Column(DbType = "decimal(20,2)")] - //public decimal PurchaseAmount { get; set; } = 0.00M; /// /// 采购方式 @@ -106,11 +90,6 @@ namespace BBWY.Server.Model.Db [Column(DbType = "decimal(20,2)")] public decimal SingleFirstFreight { get; set; } = 0.00M; - /// - /// 单件操作费 - /// - //[Column(DbType = "decimal(20,2)")] - //public decimal SingleOperationAmount { get; set; } = 0.00M; /// /// 单件入仓操作费 @@ -143,7 +122,7 @@ namespace BBWY.Server.Model.Db //public decimal SingleStorageAmount { get; set; } = 0.00M; /// - /// 单件销售运费(不参与均价计算) + /// 单件销售(尾程)运费(不参与均价计算) /// [Column(DbType = "decimal(20,2)")] public decimal SingleDeliveryFreight { get; set; } = 0.00M; diff --git a/BBWY.Server.Model/Dto/Request/PurchaseOrder/AddPurchaseOrderRequest.cs b/BBWY.Server.Model/Dto/Request/PurchaseOrder/AddPurchaseOrderRequest.cs index e1721e81..0f635a21 100644 --- a/BBWY.Server.Model/Dto/Request/PurchaseOrder/AddPurchaseOrderRequest.cs +++ b/BBWY.Server.Model/Dto/Request/PurchaseOrder/AddPurchaseOrderRequest.cs @@ -60,13 +60,13 @@ /// public decimal SingleConsumableAmount { get; set; } = 0.00M; - /// - /// 单件仓储费 - /// - public decimal SingleStorageAmount { get; set; } + ///// + ///// 单件仓储费 + ///// + //public decimal SingleStorageAmount { get; set; } /// - /// 单件销售运费(不参与均价计算) + /// 单件尾程销售运费(不参与均价计算) /// public decimal SingleDeliveryFreight { get; set; } @@ -82,8 +82,13 @@ public decimal SingleOutStorageAmount { get; set; } = 0.00M; /// - /// 退货入仓操作费 + /// 单间包装人工费 /// - public decimal SingleRefundInStorageAmount { get; set; } = 0.00M; + public decimal SinglePackagingLaborAmount { get; set; } = 0.00M; + + ///// + ///// 退货入仓操作费 + ///// + //public decimal SingleRefundInStorageAmount { get; set; } = 0.00M; } } diff --git a/BBWY.Server.Model/Dto/Request/PurchaseOrder/EditPurchaseOrderRequest.cs b/BBWY.Server.Model/Dto/Request/PurchaseOrder/EditPurchaseOrderRequest.cs index 1c021027..a12e0ca5 100644 --- a/BBWY.Server.Model/Dto/Request/PurchaseOrder/EditPurchaseOrderRequest.cs +++ b/BBWY.Server.Model/Dto/Request/PurchaseOrder/EditPurchaseOrderRequest.cs @@ -34,13 +34,13 @@ /// public decimal SingleConsumableAmount { get; set; } = 0.00M; - /// - /// 单件仓储费 - /// - public decimal SingleStorageAmount { get; set; } = 0.00M; + ///// + ///// 单件仓储费 + ///// + //public decimal SingleStorageAmount { get; set; } = 0.00M; /// - /// 单件销售运费(不参与均价计算) + /// 单件尾程销售运费(不参与均价计算) /// public decimal SingleDeliveryFreight { get; set; } = 0.00M; @@ -56,8 +56,13 @@ public decimal SingleOutStorageAmount { get; set; } = 0.00M; /// - /// 退货入仓费 + /// 单间包装人工费 /// - public decimal SingleRefundInStorageAmount { get; set; } = 0.00M; + public decimal SinglePackagingLaborAmount { get; set; } = 0.00M; + + ///// + ///// 退货入仓费 + ///// + //public decimal SingleRefundInStorageAmount { get; set; } = 0.00M; } } \ No newline at end of file diff --git a/BBWY.Server.Model/Dto/Response/BillCorrection/BillCorrectionOrderResponse.cs b/BBWY.Server.Model/Dto/Response/BillCorrection/BillCorrectionOrderResponse.cs index 2cdae37c..b0bf323b 100644 --- a/BBWY.Server.Model/Dto/Response/BillCorrection/BillCorrectionOrderResponse.cs +++ b/BBWY.Server.Model/Dto/Response/BillCorrection/BillCorrectionOrderResponse.cs @@ -61,6 +61,8 @@ namespace BBWY.Server.Model.Dto /// public decimal ConsumableAmount { get; set; } = 0.00M; + public decimal PackagingLaborAmount { get; set; } = 0.00M; + /// /// 仓储费 /// diff --git a/BBWY.Server.Model/Dto/Response/Order/ExportOrderResponse.cs b/BBWY.Server.Model/Dto/Response/Order/ExportOrderResponse.cs index 2ace70b3..d92d8ee4 100644 --- a/BBWY.Server.Model/Dto/Response/Order/ExportOrderResponse.cs +++ b/BBWY.Server.Model/Dto/Response/Order/ExportOrderResponse.cs @@ -32,11 +32,6 @@ namespace BBWY.Server.Model.Dto /// public decimal FirstFreight { get; set; } - /// - /// 仓储费 - /// - public decimal StorageAmount { get; set; } - /// /// 发货快递费 /// @@ -94,6 +89,11 @@ namespace BBWY.Server.Model.Dto /// public decimal ConsumableAmount { get; set; } + /// + /// 人工打包费 + /// + public decimal PackagingLaborAmount { get; set; } + /// /// 入仓操作费 /// From 15a39883436ba6f1e60184385296d48ae8fbc833 Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Tue, 19 Dec 2023 00:39:35 +0800 Subject: [PATCH 45/57] =?UTF-8?q?=E6=89=8B=E5=8A=A8=E8=AE=A1=E7=AE=97?= =?UTF-8?q?=E6=88=90=E6=9C=AC=E5=A2=9E=E5=8A=A0=E5=8C=85=E8=A3=85=E4=BA=BA?= =?UTF-8?q?=E5=B7=A5=E8=B4=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Request/Order/ManualCalculationCostRequest.cs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/BBWY.Server.Model/Dto/Request/Order/ManualCalculationCostRequest.cs b/BBWY.Server.Model/Dto/Request/Order/ManualCalculationCostRequest.cs index 7db49a37..8b65b12e 100644 --- a/BBWY.Server.Model/Dto/Request/Order/ManualCalculationCostRequest.cs +++ b/BBWY.Server.Model/Dto/Request/Order/ManualCalculationCostRequest.cs @@ -63,12 +63,18 @@ namespace BBWY.Server.Model.Dto /// public decimal ConsumableAmount { get; set; } = 0.00M; + ///// + ///// 仓储费 + ///// + //public decimal StorageAmount { get; set; } = 0.00M; + /// - /// 仓储费 + /// 打包费 /// - public decimal StorageAmount { get; set; } = 0.00M; + public decimal PackagingLaborAmount { get; set; } = 0.00M; + - public decimal TotalCost { get; set; } = 0M; + public decimal TotalCost { get; set; } = 0M; public decimal UnitCost { get; set; } = 0M; } From abbbec1e7433cc9ad95fc4b7b0abfa77cf7cbde4 Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Tue, 19 Dec 2023 02:34:03 +0800 Subject: [PATCH 46/57] 10224 --- BBWY.Client/APIServices/OrderService.cs | 3 +- BBWY.Client/GlobalContext.cs | 2 +- .../BillCorrectionOrderResponse.cs | 9 +- .../Response/Order/ExportOrderResponse.cs | 13 ++- .../Response/Order/OrderCostDetailResponse.cs | 9 +- .../PurchaseOrder/PurchaseOrderResponse.cs | 9 +- .../BillCorrection/BillCorrectionOrder.cs | 9 +- .../Models/Order/ManualEditCostOrderSku.cs | 59 +++++++--- .../Models/PurchaseOrder/PurchaseOrder.cs | 39 ++++--- .../ViewModels/Order/OrderListViewModel.cs | 8 +- .../BillCorrection/BillCorrectionView.xaml | 10 +- .../Views/Order/ManualCalculationCost.xaml | 10 +- BBWY.Client/Views/Order/OrderListControl.xaml | 8 +- BBWY.Client/Views/Ware/WareStock.xaml | 104 ++++++++++-------- .../Sync/OrderSyncBusiness.cs | 4 +- 15 files changed, 188 insertions(+), 108 deletions(-) diff --git a/BBWY.Client/APIServices/OrderService.cs b/BBWY.Client/APIServices/OrderService.cs index 1021ba78..8baa7196 100644 --- a/BBWY.Client/APIServices/OrderService.cs +++ b/BBWY.Client/APIServices/OrderService.cs @@ -126,7 +126,8 @@ namespace BBWY.Client.APIServices osku.PurchaseFreight, osku.ProductId, osku.SkuAmount, - osku.StorageAmount, + //osku.StorageAmount, + osku.PackagingLaborAmount, osku.TotalCost, osku.UnitCost }), diff --git a/BBWY.Client/GlobalContext.cs b/BBWY.Client/GlobalContext.cs index 11a4832b..f06b0ec5 100644 --- a/BBWY.Client/GlobalContext.cs +++ b/BBWY.Client/GlobalContext.cs @@ -13,7 +13,7 @@ namespace BBWY.Client { ShopServiceGroupList = new List(); ShopServiceGroupLowerList = new List(); - ClientVersion = "10223"; + ClientVersion = "10224"; } diff --git a/BBWY.Client/Models/APIModel/Response/BillCorrection/BillCorrectionOrderResponse.cs b/BBWY.Client/Models/APIModel/Response/BillCorrection/BillCorrectionOrderResponse.cs index 42cea562..16bf3ce8 100644 --- a/BBWY.Client/Models/APIModel/Response/BillCorrection/BillCorrectionOrderResponse.cs +++ b/BBWY.Client/Models/APIModel/Response/BillCorrection/BillCorrectionOrderResponse.cs @@ -61,10 +61,15 @@ namespace BBWY.Client.Models /// public decimal ConsumableAmount { get; set; } = 0.00M; + ///// + ///// 仓储费 + ///// + //public decimal StorageAmount { get; set; } = 0.00M; + /// - /// 仓储费 + /// 包装人工费 /// - public decimal StorageAmount { get; set; } = 0.00M; + public decimal PackagingLaborAmount { get; set; } = 0.00M; /// /// 售后费用 diff --git a/BBWY.Client/Models/APIModel/Response/Order/ExportOrderResponse.cs b/BBWY.Client/Models/APIModel/Response/Order/ExportOrderResponse.cs index d8fe471d..f660405d 100644 --- a/BBWY.Client/Models/APIModel/Response/Order/ExportOrderResponse.cs +++ b/BBWY.Client/Models/APIModel/Response/Order/ExportOrderResponse.cs @@ -37,10 +37,15 @@ namespace BBWY.Client.Models /// public decimal FirstFreight { get; set; } + ///// + ///// 仓储费 + ///// + //public decimal StorageAmount { get; set; } + /// - /// 仓储费 + /// 包装人工费 /// - public decimal StorageAmount { get; set; } + public decimal PackagingLaborAmount { get; set; } /// /// 发货快递费 @@ -111,8 +116,8 @@ namespace BBWY.Client.Models public override string ToString() { - //日期,店铺订单号,SKU编码,订单状态,仓储类型,代发下单单号,售价,商品成本,采购运费,头程费用,仓储服务费,快递费,耗材费,入仓操作费,出仓操作费,刷单/空单号费,平台扣点,补差金额,应付金额,实收金额,利润,利润率,收件人联系方式,商家备注,售后类型,售后与特殊情况备注 - return $"{OrderStartTime:yyyy-MM-dd HH:mm:ss},{OrderId},{SkuIds},{OrderState},{StorageType},{PurchaseOrderIds},{OrderTotalPrice},{PurchaseSkuAmount},{PurchaseFreight},{FirstFreight},{StorageAmount},{DeliveryExpressFreight},{ConsumableAmount},{InStorageAmount},{OutStorageAmount},{SDOrderAmount},{PlatformCommissionAmount},{FreightPrice},{OrderPayment},{ActualAmount},{Profit},{ProfitRatio},{ConsigneeStr},{VenderRemark}"; + //日期,店铺订单号,SKU编码,订单状态,仓储类型,代发下单单号,售价,商品成本,采购运费,头程费用,包装人工费,快递费,耗材费,入仓操作费,出仓操作费,刷单/空单号费,平台扣点,补差金额,应付金额,实收金额,利润,利润率,收件人联系方式,商家备注,售后类型,售后与特殊情况备注 + return $"{OrderStartTime:yyyy-MM-dd HH:mm:ss},{OrderId},{SkuIds},{OrderState},{StorageType},{PurchaseOrderIds},{OrderTotalPrice},{PurchaseSkuAmount},{PurchaseFreight},{FirstFreight},{PackagingLaborAmount},{DeliveryExpressFreight},{ConsumableAmount},{InStorageAmount},{OutStorageAmount},{SDOrderAmount},{PlatformCommissionAmount},{FreightPrice},{OrderPayment},{ActualAmount},{Profit},{ProfitRatio},{ConsigneeStr},{VenderRemark}"; } } } diff --git a/BBWY.Client/Models/APIModel/Response/Order/OrderCostDetailResponse.cs b/BBWY.Client/Models/APIModel/Response/Order/OrderCostDetailResponse.cs index 3084f87a..23cf929a 100644 --- a/BBWY.Client/Models/APIModel/Response/Order/OrderCostDetailResponse.cs +++ b/BBWY.Client/Models/APIModel/Response/Order/OrderCostDetailResponse.cs @@ -70,10 +70,15 @@ namespace BBWY.Client.Models /// public decimal ConsumableAmount { get; set; } = 0.00M; + ///// + ///// 仓储费 + ///// + //public decimal StorageAmount { get; set; } = 0.00M; + /// - /// 仓储费 + /// 包装人工费 /// - public decimal StorageAmount { get; set; } = 0.00M; + public decimal PackagingLaborAmount { get; set; } = 0.00M; /// /// 总计(不含销售运费 历史遗留) diff --git a/BBWY.Client/Models/APIModel/Response/PurchaseOrder/PurchaseOrderResponse.cs b/BBWY.Client/Models/APIModel/Response/PurchaseOrder/PurchaseOrderResponse.cs index 6464e3f5..79400e9f 100644 --- a/BBWY.Client/Models/APIModel/Response/PurchaseOrder/PurchaseOrderResponse.cs +++ b/BBWY.Client/Models/APIModel/Response/PurchaseOrder/PurchaseOrderResponse.cs @@ -55,10 +55,15 @@ namespace BBWY.Client.Models /// public decimal SingleConsumableAmount { get; set; } = 0.00M; + ///// + ///// 单件仓储费 + ///// + //public decimal SingleStorageAmount { get; set; } = 0.00M; + /// - /// 单件仓储费 + /// 包装人工费 /// - public decimal SingleStorageAmount { get; set; } = 0.00M; + public decimal SinglePackagingLaborAmount { get; set; } = 0.00M; /// /// 单件Sku成本 diff --git a/BBWY.Client/Models/BillCorrection/BillCorrectionOrder.cs b/BBWY.Client/Models/BillCorrection/BillCorrectionOrder.cs index 9b69e50d..8e25abec 100644 --- a/BBWY.Client/Models/BillCorrection/BillCorrectionOrder.cs +++ b/BBWY.Client/Models/BillCorrection/BillCorrectionOrder.cs @@ -65,10 +65,15 @@ namespace BBWY.Client.Models /// public decimal ConsumableAmount { get; set; } = 0.00M; + ///// + ///// 仓储费 + ///// + //public decimal StorageAmount { get; set; } = 0.00M; + /// - /// 仓储费 + /// 包装人工费 /// - public decimal StorageAmount { get; set; } = 0.00M; + public decimal PackagingLaborAmount { get; set; }=0.00M; /// /// 售后费用 diff --git a/BBWY.Client/Models/Order/ManualEditCostOrderSku.cs b/BBWY.Client/Models/Order/ManualEditCostOrderSku.cs index c46023fc..8d93bb51 100644 --- a/BBWY.Client/Models/Order/ManualEditCostOrderSku.cs +++ b/BBWY.Client/Models/Order/ManualEditCostOrderSku.cs @@ -46,11 +46,14 @@ namespace BBWY.Client.Models private decimal consumableAmount; private string consumableAmountStr; - /// - /// 仓储费 - /// - private decimal storageAmount; - private string storageAmountStr; + ///// + ///// 仓储费 + ///// + //private decimal storageAmount; + //private string storageAmountStr; + + private decimal packagingLaborAmount; + private string packagingLaborAmountStr; /// /// 总计(不含发货运费) @@ -100,7 +103,7 @@ namespace BBWY.Client.Models public decimal PurchaseFreight { get => purchaseFreight; set { if (Set(ref purchaseFreight, value)) { CalculationCost(); } } } public decimal FirstFreight { get => firstFreight; set { if (Set(ref firstFreight, value)) { CalculationCost(); } } } public decimal ConsumableAmount { get => consumableAmount; set { if (Set(ref consumableAmount, value)) { CalculationCost(); } } } - public decimal StorageAmount { get => storageAmount; set { if (Set(ref storageAmount, value)) { CalculationCost(); } } } + //public decimal StorageAmount { get => storageAmount; set { if (Set(ref storageAmount, value)) { CalculationCost(); } } } public decimal TotalCost { get => totalCost; set @@ -114,7 +117,7 @@ namespace BBWY.Client.Models private void CalculationCost() { - TotalCost = SkuAmount + PurchaseFreight + FirstFreight + InStorageAmount + OutStorageAmount + ConsumableAmount + StorageAmount; + TotalCost = SkuAmount + PurchaseFreight + FirstFreight + InStorageAmount + OutStorageAmount + ConsumableAmount + PackagingLaborAmount; UnitCost = ItemTotal == 0 ? 0 : TotalCost / ItemTotal; } @@ -164,17 +167,17 @@ namespace BBWY.Client.Models } } } - public string StorageAmountStr - { - get => storageAmountStr; set - { - if (Set(ref storageAmountStr, value)) - { - if (decimal.TryParse(storageAmountStr, out decimal d)) - StorageAmount = d; - } - } - } + //public string StorageAmountStr + //{ + // get => storageAmountStr; set + // { + // if (Set(ref storageAmountStr, value)) + // { + // if (decimal.TryParse(storageAmountStr, out decimal d)) + // StorageAmount = d; + // } + // } + //} public string DeliveryExpressFreightStr { @@ -225,5 +228,25 @@ namespace BBWY.Client.Models OutStorageAmount = d; } } + + public decimal PackagingLaborAmount + { + get => packagingLaborAmount; + set + { + if (Set(ref packagingLaborAmount, value)) + CalculationCost(); + } + } + public string PackagingLaborAmountStr + { + get => packagingLaborAmountStr; + set + { + if (Set(ref packagingLaborAmountStr, value)) + if (decimal.TryParse(packagingLaborAmountStr, out decimal d)) + packagingLaborAmount = d; + } + } } } diff --git a/BBWY.Client/Models/PurchaseOrder/PurchaseOrder.cs b/BBWY.Client/Models/PurchaseOrder/PurchaseOrder.cs index 9c104a07..ffe017b4 100644 --- a/BBWY.Client/Models/PurchaseOrder/PurchaseOrder.cs +++ b/BBWY.Client/Models/PurchaseOrder/PurchaseOrder.cs @@ -119,18 +119,18 @@ namespace BBWY.Client.Models } } - /// - /// 单件仓储费 - /// - public decimal SingleStorageAmount - { - get => singleStorageAmount; - set - { - if (Set(ref singleStorageAmount, value)) - RefreshUnitCost(); - } - } + ///// + ///// 单件仓储费 + ///// + //public decimal SingleStorageAmount + //{ + // get => singleStorageAmount; + // set + // { + // if (Set(ref singleStorageAmount, value)) + // RefreshUnitCost(); + // } + //} public decimal SingleInStorageAmount { @@ -153,9 +153,19 @@ namespace BBWY.Client.Models public decimal SingleRefundInStorageAmount { get => singleRefundInStorageAmount; set { Set(ref singleRefundInStorageAmount, value); } } + public decimal SinglePackagingLaborAmount + { + get => singlePackagingLaborAmount; + set + { + if (Set(ref singlePackagingLaborAmount, value)) + RefreshUnitCost(); + } + } + public void RefreshUnitCost() { - UnitCost = SingleSkuAmount + SingleFreight + SingleFirstFreight + SingleInStorageAmount + SingleOutStorageAmount + SingleConsumableAmount + SingleStorageAmount; + UnitCost = SingleSkuAmount + SingleFreight + SingleFirstFreight + SingleInStorageAmount + SingleOutStorageAmount + SingleConsumableAmount + SinglePackagingLaborAmount; } private bool isEdit; @@ -168,7 +178,8 @@ namespace BBWY.Client.Models private decimal singleDeliveryFreight; //private decimal singleOperationAmount; private decimal singleConsumableAmount; - private decimal singleStorageAmount; + //private decimal singleStorageAmount; + private decimal singlePackagingLaborAmount; private decimal singleInStorageAmount; private decimal singleOutStorageAmount; private decimal singleRefundInStorageAmount; diff --git a/BBWY.Client/ViewModels/Order/OrderListViewModel.cs b/BBWY.Client/ViewModels/Order/OrderListViewModel.cs index dcf743a0..b62f6348 100644 --- a/BBWY.Client/ViewModels/Order/OrderListViewModel.cs +++ b/BBWY.Client/ViewModels/Order/OrderListViewModel.cs @@ -811,7 +811,8 @@ namespace BBWY.Client.ViewModels manualEditCostOrderSku.OutStorageAmount = orderCostDetailList.Sum(ocd => ocd.OutStorageAmount); manualEditCostOrderSku.PurchaseFreight = orderCostDetailList.Sum(ocd => ocd.PurchaseFreight); manualEditCostOrderSku.SkuAmount = orderCostDetailList.Sum(ocd => ocd.SkuAmount); - manualEditCostOrderSku.StorageAmount = orderCostDetailList.Sum(ocd => ocd.StorageAmount); + //manualEditCostOrderSku.StorageAmount = orderCostDetailList.Sum(ocd => ocd.StorageAmount); + manualEditCostOrderSku.PackagingLaborAmount = orderCostDetailList.Sum(ocd => ocd.PackagingLaborAmount); manualEditCostOrderSku.TotalCost = orderCostDetailList.Sum(ocd => ocd.TotalCost); manualEditCostOrderSku.UnitCost = orderCostDetailList.FirstOrDefault().UnitCost; } @@ -823,7 +824,8 @@ namespace BBWY.Client.ViewModels manualEditCostOrderSku.OutStorageAmountStr = manualEditCostOrderSku.OutStorageAmount.ToString(); manualEditCostOrderSku.PurchaseFreightStr = manualEditCostOrderSku.PurchaseFreight.ToString(); manualEditCostOrderSku.SkuAmountStr = manualEditCostOrderSku.SkuAmount.ToString(); - manualEditCostOrderSku.StorageAmountStr = manualEditCostOrderSku.StorageAmount.ToString(); + //manualEditCostOrderSku.StorageAmountStr = manualEditCostOrderSku.StorageAmount.ToString(); + manualEditCostOrderSku.PackagingLaborAmountStr = manualEditCostOrderSku.PackagingLaborAmount.ToString(); } var manualCalculationCost = new ManualCalculationCost(orderId, isSetStorageType, storageType, orderSkuList); @@ -990,7 +992,7 @@ namespace BBWY.Client.ViewModels try { var list = r.Data.Select(x => x.ToString()).ToList(); - list.Insert(0, "日期,店铺订单号,SKU编码,订单状态,仓储类型,代发下单单号,售价,商品成本,采购运费,头程费用,仓储服务费,快递费,耗材费,入仓操作费,出仓操作费,刷单/空单号费,平台扣点,补差金额,应付金额,实收金额,利润,利润率,收件人联系方式,商家备注,售后类型,售后与特殊情况备注"); + list.Insert(0, "日期,店铺订单号,SKU编码,订单状态,仓储类型,代发下单单号,售价,商品成本,采购运费,头程费用,包装人工费,快递费,耗材费,入仓操作费,出仓操作费,刷单/空单号费,平台扣点,补差金额,应付金额,实收金额,利润,利润率,收件人联系方式,商家备注,售后类型,售后与特殊情况备注"); System.IO.File.WriteAllLines(ssaveFileName, list, Encoding.UTF8); App.Current.Dispatcher.Invoke(() => MessageBox.Show("导出完成", "导出")); } diff --git a/BBWY.Client/Views/BillCorrection/BillCorrectionView.xaml b/BBWY.Client/Views/BillCorrection/BillCorrectionView.xaml index e26f51e6..95e0635c 100644 --- a/BBWY.Client/Views/BillCorrection/BillCorrectionView.xaml +++ b/BBWY.Client/Views/BillCorrection/BillCorrectionView.xaml @@ -219,15 +219,15 @@ ElementStyle="{StaticResource verticalCenterTextBlock}"/> - - - - - diff --git a/BBWY.Client/Views/Order/ManualCalculationCost.xaml b/BBWY.Client/Views/Order/ManualCalculationCost.xaml index 4fe1a555..cd8d0a50 100644 --- a/BBWY.Client/Views/Order/ManualCalculationCost.xaml +++ b/BBWY.Client/Views/Order/ManualCalculationCost.xaml @@ -98,15 +98,15 @@ - - + - @@ -114,7 +114,7 @@ - @@ -130,7 +130,7 @@ - diff --git a/BBWY.Client/Views/Order/OrderListControl.xaml b/BBWY.Client/Views/Order/OrderListControl.xaml index c66cefa7..60967cce 100644 --- a/BBWY.Client/Views/Order/OrderListControl.xaml +++ b/BBWY.Client/Views/Order/OrderListControl.xaml @@ -476,7 +476,7 @@ - + @@ -485,7 +485,7 @@ - + @@ -538,8 +538,8 @@ Visibility="{Binding InStorageAmount,ConverterParameter=0|0.0|0.00:Collapsed:Visible,Converter={StaticResource objConverter}}"/> - + diff --git a/BBWY.Client/Views/Ware/WareStock.xaml b/BBWY.Client/Views/Ware/WareStock.xaml index c37b3d0f..cb4ad575 100644 --- a/BBWY.Client/Views/Ware/WareStock.xaml +++ b/BBWY.Client/Views/Ware/WareStock.xaml @@ -29,12 +29,11 @@ - - - + @@ -42,10 +41,11 @@ + - + @@ -58,17 +58,17 @@ - - - - + + + + - - - - + + + + - + @@ -92,13 +92,11 @@ - - - @@ -110,11 +108,11 @@ - + - + @@ -133,17 +131,17 @@ - - - - + + + + - - - - + + + + - + @@ -207,13 +205,13 @@ - + - + @@ -227,26 +225,46 @@ - - - - + + + + + + + + + + + + + + + + + + + + - - - - + + - - - - - + + + + + + + + + + @@ -264,8 +282,6 @@ - - diff --git a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs index 5445605e..b415c6e5 100644 --- a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs @@ -99,7 +99,9 @@ namespace BBWY.Server.Business { try { - //logger.Info($"订单同步 {shop.ShopName} isAuto {isAuto}"); + if (shop.ShopName == "创艺家居日用专营店") + nLogManager.Default().Info($"订单同步 {shop.ShopName} isAuto {isAuto}"); + if (!syncOrderMethodDic.ContainsKey(shop.PlatformId)) throw new Exception("不支持的平台"); var shopId = long.Parse(shop.ShopId); From 79933ba04d59d7857d762a46ad39741e78278285 Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Thu, 21 Dec 2023 01:06:44 +0800 Subject: [PATCH 47/57] =?UTF-8?q?=E5=BA=93=E5=AD=98=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BBWY.Client/GlobalContext.cs | 2 +- BBWY.Client/Views/Ware/WareStock.xaml | 232 +++++++++++++++++++------- 2 files changed, 172 insertions(+), 62 deletions(-) diff --git a/BBWY.Client/GlobalContext.cs b/BBWY.Client/GlobalContext.cs index f06b0ec5..5f6652fa 100644 --- a/BBWY.Client/GlobalContext.cs +++ b/BBWY.Client/GlobalContext.cs @@ -13,7 +13,7 @@ namespace BBWY.Client { ShopServiceGroupList = new List(); ShopServiceGroupLowerList = new List(); - ClientVersion = "10224"; + ClientVersion = "10225"; } diff --git a/BBWY.Client/Views/Ware/WareStock.xaml b/BBWY.Client/Views/Ware/WareStock.xaml index cb4ad575..a200de87 100644 --- a/BBWY.Client/Views/Ware/WareStock.xaml +++ b/BBWY.Client/Views/Ware/WareStock.xaml @@ -41,7 +41,7 @@ - + @@ -54,21 +54,21 @@ - - - - + + + + + - - - - - - - + + + + + + - + @@ -92,6 +92,7 @@ + @@ -108,7 +109,7 @@ - + @@ -127,21 +128,23 @@ - - - - + + + + + - - + + + + + + + + - - - - - - + @@ -211,7 +214,7 @@ - + @@ -219,52 +222,158 @@ - - - - - - - - + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - + + + - - + + @@ -282,6 +391,7 @@ + From 26e9c031fa405e43bc1f4e84417e4d1cbc5d3ce3 Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Thu, 21 Dec 2023 01:16:16 +0800 Subject: [PATCH 48/57] 10226 --- BBWY.Client/GlobalContext.cs | 2 +- BBWY.Client/Views/Ware/WareStock.xaml | 30 +++++++++++++++++++-------- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/BBWY.Client/GlobalContext.cs b/BBWY.Client/GlobalContext.cs index 5f6652fa..a327c10d 100644 --- a/BBWY.Client/GlobalContext.cs +++ b/BBWY.Client/GlobalContext.cs @@ -13,7 +13,7 @@ namespace BBWY.Client { ShopServiceGroupList = new List(); ShopServiceGroupLowerList = new List(); - ClientVersion = "10225"; + ClientVersion = "10226"; } diff --git a/BBWY.Client/Views/Ware/WareStock.xaml b/BBWY.Client/Views/Ware/WareStock.xaml index a200de87..214d5bff 100644 --- a/BBWY.Client/Views/Ware/WareStock.xaml +++ b/BBWY.Client/Views/Ware/WareStock.xaml @@ -43,7 +43,7 @@ - + @@ -111,7 +111,7 @@ - + @@ -212,7 +212,7 @@ - + @@ -244,7 +244,7 @@ - + @@ -363,11 +363,23 @@ - - - - - + + + + + + + + + + + + + + + From 66fc7f5a3d638cf10d6fadbde595c9d5f7534ee3 Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Thu, 21 Dec 2023 04:13:23 +0800 Subject: [PATCH 49/57] =?UTF-8?q?=E7=99=BD=E6=90=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BBWY.Server.API/Controllers/TestController.cs | 6 + BBWY.Server.Business/TestBusiness.cs | 154 ++++++- BBWY.Server.Business/Vender/VenderBusiness.cs | 4 +- BBWY.Server.Model/Db/JDXX/Newskus.cs | 426 ++++++++++++++++++ BBWY.Test/Program.cs | 86 ++-- 5 files changed, 628 insertions(+), 48 deletions(-) create mode 100644 BBWY.Server.Model/Db/JDXX/Newskus.cs diff --git a/BBWY.Server.API/Controllers/TestController.cs b/BBWY.Server.API/Controllers/TestController.cs index 4f830b5d..c05c2808 100644 --- a/BBWY.Server.API/Controllers/TestController.cs +++ b/BBWY.Server.API/Controllers/TestController.cs @@ -48,5 +48,11 @@ namespace BBWY.Server.API.Controllers { testBusiness.RepairDFOrder(); } + + [HttpPost] + public void Test_20231221() + { + testBusiness.Test_20231221(); + } } } diff --git a/BBWY.Server.Business/TestBusiness.cs b/BBWY.Server.Business/TestBusiness.cs index b63ba0fb..ac9fa485 100644 --- a/BBWY.Server.Business/TestBusiness.cs +++ b/BBWY.Server.Business/TestBusiness.cs @@ -1,21 +1,21 @@ using BBWY.Common.Http; using BBWY.Common.Models; +using BBWY.Server.Business.Extensions; using BBWY.Server.Model; using BBWY.Server.Model.Db; using BBWY.Server.Model.Db.Mds; using BBWY.Server.Model.Dto; using FreeSql; using Microsoft.Extensions.Options; +using Newtonsoft.Json; using System; using System.Collections.Generic; using System.IO; using System.Linq; -using System.Threading; -using BBWY.Server.Business.Extensions; -using Newtonsoft.Json; using System.Net.Http; +using System.Reflection; +using System.Threading; using System.Threading.Tasks; -using Org.BouncyCastle.Crypto.Signers; namespace BBWY.Server.Business { @@ -408,6 +408,152 @@ namespace BBWY.Server.Business Thread.Sleep(1000); } } + + public void Test_20231221() + { + var invalidOrderStateList = new List() { Enums.OrderState.已取消, Enums.OrderState.待付款 }; + var shopList = venderBusiness.GetShopList(10224131, Enums.Platform.京东); + var objList = new List<(string id, string shopName, DateTime sjtime, decimal? lastOrderAmount, decimal fto20SearchUv, decimal fto50SearchUv, decimal fto100SearchUv, decimal fto200SearchUv, decimal fto30SearchUv, decimal fto500SearchUv)>(); + var result = new List() { "店铺名,SPU,上架时间,最后一单成交价,推荐访客首次到达20时的搜索访客,推荐访客首次到达50时的搜索访客,推荐访客首次到达100时的搜索访客,推荐访客首次到达200时的搜索访客,推荐访客首次到达300时的搜索访客,推荐访客首次到达50时的搜索访客" }; + foreach (var shop in shopList) + { + Console.WriteLine(shop.ShopName); + var shopId = long.Parse(shop.ShopId); + var productList = fsql.Select().Where(p => p.ShopId == shopId).ToList(); + var productIdList = productList.Select(p => p.Id).ToList(); + + var skuList = fsql.Select() + .InnerJoin((osku, o) => osku.OrderId == o.Id) + .Where((osku, o) => o.ShopId == shopId && + !invalidOrderStateList.Contains(o.OrderState) && + o.IsGift == false && + o.StorageType != Enums.StorageType.SD && + osku.Price > 0) + .GroupBy((osku, o) => osku.ProductId) + .WithTempQuery(g => new { MaxId = g.Max(g.Value.Item1.Id), ProductId = g.Key }) + .From() + .InnerJoin((osku, osku1) => osku1.Id == osku.MaxId) + .ToList((osku, osku1) => new { osku1.ProductId, osku1.OrderId }); + var orderIdList = skuList.Select(s => s.OrderId).Distinct().ToList(); + var orderList = fsql.Select(orderIdList).ToList(o => new Order() { Id = o.Id, ShopId = o.ShopId, OrderTotalPrice = o.OrderTotalPrice }); + + + #region 20 + var _20list = freeSqlMultiDBManager.JDXXfsql.Select() + .Where(s => productIdList.Contains(s.Spu)) + .GroupBy(s => new { s.Spu, s.CreateTime }) + .Having(g => g.Sum(g.Value.StarUv) >= 50) + .OrderBy(g => g.Value.CreateTime) + .ToList(g => new + { + spu = g.Key, + g.Value.CreateTime, + sumSearchUv = g.Sum(g.Value.SearchUv), + sumStarUv = g.Sum(g.Value.StarUv) + }); + + #endregion + + #region 50 + var _50list = freeSqlMultiDBManager.JDXXfsql.Select() + .Where(s => productIdList.Contains(s.Spu)) + .GroupBy(s => new { s.Spu, s.CreateTime }) + .Having(g => g.Sum(g.Value.StarUv) >= 50) + .OrderBy(g => g.Value.CreateTime) + .ToList(g => new + { + spu = g.Key, + g.Value.CreateTime, + sumSearchUv = g.Sum(g.Value.SearchUv), + sumStarUv = g.Sum(g.Value.StarUv) + }); + + #endregion + + #region 100 + var _100list = freeSqlMultiDBManager.JDXXfsql.Select() + .Where(s => productIdList.Contains(s.Spu)) + .GroupBy(s => new { s.Spu, s.CreateTime }) + .Having(g => g.Sum(g.Value.StarUv) >= 100) + .OrderBy(g => g.Value.CreateTime) + .ToList(g => new + { + spu = g.Key, + g.Value.CreateTime, + sumSearchUv = g.Sum(g.Value.SearchUv), + sumStarUv = g.Sum(g.Value.StarUv) + }); + + #endregion + + #region 200 + var _200list = freeSqlMultiDBManager.JDXXfsql.Select() + .Where(s => productIdList.Contains(s.Spu)) + .GroupBy(s => new { s.Spu, s.CreateTime }) + .Having(g => g.Sum(g.Value.StarUv) >= 200) + .OrderBy(g => g.Value.CreateTime) + .ToList(g => new + { + spu = g.Key, + g.Value.CreateTime, + sumSearchUv = g.Sum(g.Value.SearchUv), + sumStarUv = g.Sum(g.Value.StarUv) + }); + + #endregion + + #region 300 + var _300list = freeSqlMultiDBManager.JDXXfsql.Select() + .Where(s => productIdList.Contains(s.Spu)) + .GroupBy(s => new { s.Spu, s.CreateTime }) + .Having(g => g.Sum(g.Value.StarUv) >= 300) + .OrderBy(g => g.Value.CreateTime) + .ToList(g => new + { + spu = g.Key, + g.Value.CreateTime, + sumSearchUv = g.Sum(g.Value.SearchUv), + sumStarUv = g.Sum(g.Value.StarUv) + }); + + #endregion + + #region 500 + var _500list = freeSqlMultiDBManager.JDXXfsql.Select() + .Where(s => productIdList.Contains(s.Spu)) + .GroupBy(s => new { s.Spu, s.CreateTime }) + .Having(g => g.Sum(g.Value.StarUv) >= 500) + .OrderBy(g => g.Value.CreateTime) + .ToList(g => new + { + spu = g.Key, + g.Value.CreateTime, + sumSearchUv = g.Sum(g.Value.SearchUv), + sumStarUv = g.Sum(g.Value.StarUv) + }); + + #endregion + + foreach (var product in productList) + { + var orderTotalPrice = orderList.FirstOrDefault(o => o.Id == (skuList.FirstOrDefault(s => s.ProductId == product.Id)?.OrderId))?.OrderTotalPrice ?? 0M; + var shopName = shop.ShopName; + var sjtime = product.CreateTime; + var fto20SearchUv = _20list.FirstOrDefault(s => s.spu.Spu == product.Id)?.sumSearchUv ?? 0M; + var fto50SearchUv = _50list.FirstOrDefault(s => s.spu.Spu == product.Id)?.sumSearchUv ?? 0M; + var fto100SearchUv = _100list.FirstOrDefault(s => s.spu.Spu == product.Id)?.sumSearchUv ?? 0M; + var fto200SearchUv = _200list.FirstOrDefault(s => s.spu.Spu == product.Id)?.sumSearchUv ?? 0M; + var fto300SearchUv = _300list.FirstOrDefault(s => s.spu.Spu == product.Id)?.sumSearchUv ?? 0M; + var fto500SearchUv = _500list.FirstOrDefault(s => s.spu.Spu == product.Id)?.sumSearchUv ?? 0M; + result.Add($"{shopName},{product.Id},{sjtime},{orderTotalPrice},{fto20SearchUv},{fto50SearchUv},{fto100SearchUv},{fto200SearchUv},{fto300SearchUv},{fto500SearchUv}"); + } + } + + System.IO.File.WriteAllLines(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "result.csv"), result, System.Text.Encoding.UTF8); + Console.WriteLine("结束"); + } + + } public class JPCount diff --git a/BBWY.Server.Business/Vender/VenderBusiness.cs b/BBWY.Server.Business/Vender/VenderBusiness.cs index 5ad45bd3..9eb61897 100644 --- a/BBWY.Server.Business/Vender/VenderBusiness.cs +++ b/BBWY.Server.Business/Vender/VenderBusiness.cs @@ -293,14 +293,14 @@ namespace BBWY.Server.Business return departmentList; } - public IList GetShopList(long? shopId = null, Enums.Platform? platform = null, bool filterTurnoverDays = false, bool filterSiNan = false) + public IList GetShopList(long? shopId = null, Enums.Platform? platform = null, bool filterTurnoverDays = false, bool filterSiNan = false, bool? isEnabled = true) { return freeSqlMultiDBManager.MDSfsql.Select().Where(s => !string.IsNullOrEmpty(s.ShopId)) .WhereIf(shopId != null, s => s.ShopId == shopId.ToString()) .WhereIf(platform != null, s => s.PlatformId == (int)platform) .WhereIf(filterTurnoverDays, s => s.SkuSafeTurnoverDays != 0) .WhereIf(filterSiNan, s => !string.IsNullOrEmpty(s.SiNanDingDingWebHook)) - .Where(s => s.IsEnabled == true) + .WhereIf(isEnabled != null, s => s.IsEnabled == isEnabled) .ToList(); } diff --git a/BBWY.Server.Model/Db/JDXX/Newskus.cs b/BBWY.Server.Model/Db/JDXX/Newskus.cs new file mode 100644 index 00000000..3cf75553 --- /dev/null +++ b/BBWY.Server.Model/Db/JDXX/Newskus.cs @@ -0,0 +1,426 @@ +using FreeSql.DataAnnotations; +using System; + +namespace JDXX.Model.Db +{ + [Table(Name = "newskus", DisableSyncStructure = true)] + public partial class Newskus + { + + /// + /// Id + /// + [Column(StringLength = 50, IsPrimary = true, IsNullable = false)] + public string Id { get; set; } + + /// + /// 加购物车数量 + /// + [Column(DbType = "int")] + public int? AddCardCount { get; set; } + + /// + /// 加购人数 + /// + [Column(DbType = "int")] + public int? AddCardMember { get; set; } + + /// + /// 加购率 + /// + [Column(DbType = "decimal(11,2)")] + public decimal? AddCardRate { get; set; } + + /// + /// 点击次数 + /// + [Column(DbType = "int")] + public int? ClickCount { get; set; } + + /// + /// 点击率 + /// + [Column(DbType = "decimal(11,2)")] + public decimal? ClickRate { get; set; } + + /// + /// 栏目订单 + /// + [Column(DbType = "int")] + public int? ColumnOrder { get; set; } + + /// + /// 转化率 + /// + [Column(DbType = "decimal(11,2)")] + public decimal? ConversionRate { get; set; } + + /// + /// 收费流量 + /// + [Column(DbType = "int")] + public int? CostUv { get; set; } + + /// + /// 创建时间 + /// + [Column(DbType = "datetime")] + public DateTime CreateTime { get; set; } + + /// + /// 盈亏小节 + /// + [Column(DbType = "decimal(19,4)")] + public decimal? EarningsPrice { get; set; } + + /// + /// 曝光量 + /// + [Column(DbType = "int")] + public int? Exposure { get; set; } + + /// + /// 快车点击率 + /// + [Column(DbType = "decimal(11,2)")] + public decimal? ExposureClickRate { get; set; } + + /// + /// 快车点击 + /// + [Column(DbType = "int")] + public int? ExpressClick { get; set; } + + /// + /// 快车花费 + /// + [Column(DbType = "decimal(19,4)")] + public decimal? ExpressCost { get; set; } + + /// + /// 快车展现 + /// + + public decimal? ExpressExposure { get; set; } + + /// + /// 快车订单 + /// + [Column(DbType = "int")] + public int? ExpressOrder { get; set; } + + /// + /// 快车成交额 + /// + [Column(DbType = "decimal(19,4)")] + public decimal? ExpressPayPrice { get; set; } + + /// + /// 快车人均点击 + /// + [Column(DbType = "decimal(11,4)")] + public decimal? ExpressPeopleClick { get; set; } + + /// + /// 快车访客 + /// + [Column(DbType = "int")] + public int? ExpressUv { get; set; } + + /// + /// 免费订单 + /// + [Column(DbType = "int")] + public int? FreeOrder { get; set; } + + /// + /// 免费成交额 + /// + [Column(DbType = "decimal(19,4)")] + public decimal? FreePayPrice { get; set; } + + /// + /// 免费流量 + /// + [Column(DbType = "int")] + public int? FreeUv { get; set; } + + /// + /// 首页访客 + /// + [Column(DbType = "int")] + public int? IndexUv { get; set; } + + /// + /// 是否收藏 + /// + [Column(DbType = "tinyint")] + public sbyte? IsStar { get; set; } + + /// + /// 新品交易榜单 + /// + [Column(DbType = "int")] + public int? NewSaleTopIndex { get; set; } + + /// + /// 新品人气榜单 + /// + [Column(DbType = "int")] + public int? NewUvTopIndex { get; set; } + + /// + /// 一级类目 + /// + [Column(StringLength = 50)] + public string OneCatId { get; set; } + + /// + /// 其他订单 + /// + [Column(DbType = "int")] + public int? OtherOrder { get; set; } + + /// + /// 其他成交额 + /// + [Column(DbType = "decimal(19,4)")] + public decimal? OtherPrice { get; set; } + + /// + /// 其他访客 + /// + [Column(DbType = "int")] + public int? OtherUv { get; set; } + + /// + /// 流量路径 + /// + [Column(StringLength = -2)] + public string PathList { get; set; } + + /// + /// 下单商品件数 + /// + [Column(DbType = "int")] + public int? PayItemCount { get; set; } + + /// + /// 下单客户数 + /// + [Column(DbType = "int")] + public int? PayMember { get; set; } + + /// + /// 下单数 + /// + [Column(DbType = "int")] + public int? PayOrder { get; set; } + + /// + /// 下单金额 + /// + [Column(DbType = "decimal(19,4)")] + public decimal? PayPrice { get; set; } + + /// + /// 下单转化率 + /// + [Column(DbType = "decimal(11,2)")] + public decimal? PayRate { get; set; } + + /// + /// 毛利 + /// + [Column(DbType = "decimal(19,4)")] + public decimal? Profits { get; set; } + + /// + /// 流量 + /// + [Column(DbType = "int")] + public int? Pv { get; set; } + + /// + /// 真实转化率 + /// + [Column(DbType = "decimal(11,2)")] + public decimal? RealConversionRate { get; set; } + + /// + /// 真实成交额 + /// + [Column(DbType = "decimal(19,4)")] + public decimal? RealPrice { get; set; } + + /// + /// 成交客户数 + /// + [Column(DbType = "int")] + public int? SaleMember { get; set; } + + /// + /// 成交金额 + /// + [Column(DbType = "decimal(19,4)")] + public decimal? SalePrice { get; set; } + + /// + /// 成交转化率 + /// + [Column(DbType = "decimal(11,2)")] + public decimal? SaleRate { get; set; } + + /// + /// 成交件数 + /// + [Column(DbType = "int")] + public int? Sales { get; set; } + + /// + /// 交易榜单排名 + /// + [Column(DbType = "int")] + public int? SaleTopIndex { get; set; } + + /// + /// 风向标 + /// + [Column(DbType = "decimal(11,2)")] + public decimal? ScoreRank { get; set; } + + /// + /// 刷单花费 + /// + [Column(DbType = "decimal(19,4)")] + public decimal? SdCost { get; set; } + + /// + /// 刷单单量 + /// + [Column(DbType = "int")] + public int? SdOrder { get; set; } + + /// + /// 刷单成交额 + /// + [Column(DbType = "decimal(19,4)")] + public decimal? SdPrice { get; set; } + + /// + /// 搜索访客 + /// + [Column(DbType = "int")] + public int? SearchUv { get; set; } + + /// + /// 二级类目 + /// + [Column(StringLength = 50)] + public string SecondCatId { get; set; } + + /// + /// 自主订单 + /// + [Column(DbType = "int")] + public int? SelfOrder { get; set; } + + /// + /// 店铺ID + /// + [Column(StringLength = 50)] + public string ShopId { get; set; } + + /// + /// 海投点击 + /// + [Column(DbType = "int")] + public int? ShotgunClick { get; set; } + + /// + /// 海投点击率 + /// + [Column(DbType = "decimal(11,2)")] + public decimal? ShotgunClickRate { get; set; } + + /// + /// 海投花费 + /// + [Column(DbType = "decimal(19,4)")] + public decimal? ShotgunCost { get; set; } + + /// + /// 海投展现 + /// + [Column(DbType = "decimal(11,2)")] + public decimal? ShotgunExposure { get; set; } + + /// + /// 海投订单 + /// + [Column(DbType = "int")] + public int? ShotgunOrder { get; set; } + + /// + /// 海投成交额 + /// + [Column(DbType = "decimal(19,4)")] + public decimal? ShotgunPayPrice { get; set; } + + /// + /// 海投人均点击 + /// + [Column(DbType = "decimal(11,4)")] + public decimal? ShotgunPeopleClick { get; set; } + + /// + /// 海投访客 + /// + [Column(DbType = "int")] + public int? ShotgunUv { get; set; } + + /// + /// sku + /// + [Column(StringLength = 50)] + public string Sku { get; set; } + + /// + /// Spu + /// + [Column(StringLength = 50)] + public string Spu { get; set; } + + /// + /// 推荐访客 + /// + [Column(DbType = "int")] + public int? StarUv { get; set; } + + /// + /// 三级类目 + /// + [Column(StringLength = 50)] + public string ThirdCatId { get; set; } + + /// + /// 总花费 + /// + [Column(DbType = "decimal(19,4)")] + public decimal? TotalCost { get; set; } + + /// + /// 访客 + /// + [Column(DbType = "int")] + public int? Uv { get; set; } + + /// + /// 人气榜单排名 + /// + [Column(DbType = "int")] + public int? UvTopIndex { get; set; } + + } + +} diff --git a/BBWY.Test/Program.cs b/BBWY.Test/Program.cs index af0464aa..eec7bc71 100644 --- a/BBWY.Test/Program.cs +++ b/BBWY.Test/Program.cs @@ -68,49 +68,51 @@ namespace BBWY.Test //var token = "50a4c0f5c55848b5a8a715709e8d6fe0jntb"; //卿卿玩具专营店 var fsql = new FreeSql.FreeSqlBuilder().UseConnectionString(FreeSql.DataType.MySql, "data source=rm-bp1508okrh23710yfao.mysql.rds.aliyuncs.com;port=3306;user id=qyroot;password=kaicn1132+-;initial catalog=bbwy_test;charset=utf8;sslmode=none;").Build(); - var sercvice = new ServiceCollection(); - sercvice.AddHttpClient(); - var servicePriovder = sercvice.BuildServiceProvider(); - var restApiService = new Common.Http.RestApiService(servicePriovder.GetRequiredService()); + //var sercvice = new ServiceCollection(); + //sercvice.AddHttpClient(); + //var servicePriovder = sercvice.BuildServiceProvider(); + //var restApiService = new Common.Http.RestApiService(servicePriovder.GetRequiredService()); + + //var files = System.IO.Directory.GetFiles(@"C:\Users\pengcong001\Desktop\bbwylog"); + //var startTime = DateTime.Parse("2023-10-16"); + //var endTime = DateTime.Parse("2023-11-22"); + //foreach (var file in files) + //{ + // var fileName = file.Substring(file.LastIndexOf("\\") + 1); + // Console.WriteLine(file); + + // var lines = System.IO.File.ReadAllLines(file); + // var priceModifyMsgList = lines.Where(l => !string.IsNullOrEmpty(l) && l.Contains("ORDER_BUYER_VIEW_ORDER_PRICE_MODIFY")).ToList(); + // var orderIndex = 0; + // foreach (var priceModifyMsg in priceModifyMsgList) + // { + // orderIndex++; + // var poId = JObject.Parse(priceModifyMsg)["data"]["orderId"].ToString(); + // var orderDropshipping = fsql.Select().Where(o => o.PurchaseOrderId == poId).ToOne(); + // if (orderDropshipping == null) + // continue; + // var orderId = orderDropshipping.OrderId; + // var shopId = orderDropshipping.ShopId; + + // var result = restApiService.SendRequest("http://bbwytest.qiyue666.com/", "api/test/RepairSkuDetailAndSkuGriooProfit", new + // { + // StartTime = startTime, + // EndTime = endTime, + // ShopId = shopId, + // OrderId = orderId, + // OrderIdList = new List() + // }, null, HttpMethod.Post); + // Console.WriteLine($"{DateTime.Now} {fileName} {orderIndex}/{priceModifyMsgList.Count()} HttpResult{result.StatusCode}"); + // Thread.Sleep(2000); + // } + // try + // { + // System.IO.File.Delete(file); + // } + // catch { } + //} + - var files = System.IO.Directory.GetFiles(@"C:\Users\pengcong001\Desktop\bbwylog"); - var startTime = DateTime.Parse("2023-10-16"); - var endTime = DateTime.Parse("2023-11-22"); - foreach (var file in files) - { - var fileName = file.Substring(file.LastIndexOf("\\") + 1); - Console.WriteLine(file); - - var lines = System.IO.File.ReadAllLines(file); - var priceModifyMsgList = lines.Where(l => !string.IsNullOrEmpty(l) && l.Contains("ORDER_BUYER_VIEW_ORDER_PRICE_MODIFY")).ToList(); - var orderIndex = 0; - foreach (var priceModifyMsg in priceModifyMsgList) - { - orderIndex++; - var poId = JObject.Parse(priceModifyMsg)["data"]["orderId"].ToString(); - var orderDropshipping = fsql.Select().Where(o => o.PurchaseOrderId == poId).ToOne(); - if (orderDropshipping == null) - continue; - var orderId = orderDropshipping.OrderId; - var shopId = orderDropshipping.ShopId; - - var result = restApiService.SendRequest("http://bbwytest.qiyue666.com/", "api/test/RepairSkuDetailAndSkuGriooProfit", new - { - StartTime = startTime, - EndTime = endTime, - ShopId = shopId, - OrderId = orderId, - OrderIdList = new List() - }, null, HttpMethod.Post); - Console.WriteLine($"{DateTime.Now} {fileName} {orderIndex}/{priceModifyMsgList.Count()} HttpResult{result.StatusCode}"); - Thread.Sleep(2000); - } - try - { - System.IO.File.Delete(file); - } - catch { } - } From 5aae82da7b5473a28ddb0a29145897ee540ce8a7 Mon Sep 17 00:00:00 2001 From: sanji Date: Thu, 21 Dec 2023 15:24:19 +0800 Subject: [PATCH 50/57] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E5=8D=95=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BBWY.Client/Models/Order/Order.cs | 16 ++++++++++++---- BBWY.Server.Business/Order/OrderBusiness.cs | 11 +++++++---- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/BBWY.Client/Models/Order/Order.cs b/BBWY.Client/Models/Order/Order.cs index a53f660f..bbb3ccfc 100644 --- a/BBWY.Client/Models/Order/Order.cs +++ b/BBWY.Client/Models/Order/Order.cs @@ -237,11 +237,19 @@ namespace BBWY.Client.Models { get { + //var beforeTotalCost = OrderCost?.BeforeTotalCost ?? 0M; + //return OrderState != OrderState.已取消 && StorageType != Models.StorageType.SD && + // ((StorageType != null && beforeTotalCost == 0M) || + // (beforeTotalCost > OrderSellerPrice + FreightPrice + PingTaiChengDanYouHuiQuan) || + // (StorageType == null && OrderState != OrderState.等待采购 && OrderState != OrderState.待付款)); + var beforeTotalCost = OrderCost?.BeforeTotalCost ?? 0M; - return OrderState != OrderState.已取消 && StorageType != Models.StorageType.SD && - ((StorageType != null && beforeTotalCost == 0M) || - (beforeTotalCost > OrderSellerPrice + FreightPrice + PingTaiChengDanYouHuiQuan) || - (StorageType == null && OrderState != OrderState.等待采购 && OrderState != OrderState.待付款)); + var profit = OrderCost?.Profit ?? 0M; + return (OrderState != OrderState.已取消 && + StorageType != Models.StorageType.SD && + StorageType != null && + (beforeTotalCost == 0M || profit < 0M)) || + (StorageType == null && OrderState != OrderState.等待采购 && OrderState != OrderState.待付款); } } diff --git a/BBWY.Server.Business/Order/OrderBusiness.cs b/BBWY.Server.Business/Order/OrderBusiness.cs index 5e33c722..53ad3e95 100644 --- a/BBWY.Server.Business/Order/OrderBusiness.cs +++ b/BBWY.Server.Business/Order/OrderBusiness.cs @@ -78,10 +78,13 @@ namespace BBWY.Server.Business .WhereIf(searchOrderRequest.StartDate != null, (o, ocs, oct, sh) => o.StartTime >= searchOrderRequest.StartDate) .WhereIf(searchOrderRequest.EndDate != null, (o, ocs, oct, sh) => o.StartTime <= searchOrderRequest.EndDate) .WhereIf(searchOrderRequest.IncludeExceptionOrder, - (o, ocs, oct, sh) => o.OrderState != Enums.OrderState.已取消 && - ((o.StorageType != Enums.StorageType.SD && o.StorageType != null && oct.PurchaseAmount == 0M) || - (o.StorageType != Enums.StorageType.SD && oct.PurchaseAmount + oct.DeliveryExpressFreight > o.OrderSellerPrice + o.FreightPrice + o.PingTaiChengDanYouHuiQuan) || - (o.StorageType == null && o.OrderState != Enums.OrderState.等待采购))) + (o, ocs, oct, sh) => (o.OrderState != Enums.OrderState.已取消 && + o.StorageType != Enums.StorageType.SD && + o.StorageType != null && + (oct.PurchaseAmount == 0M || oct.Profit < 0)) || + (o.StorageType == null && + o.OrderState != Enums.OrderState.等待采购 && + o.OrderState != Enums.OrderState.待付款)) .WhereIf(searchOrderRequest.OnlyDF, (o, ocs, oct, sh) => o.StorageType == Enums.StorageType.代发) .WhereIf(searchOrderRequest.ExcludeCanceled, (o, ocs, oct, sh) => o.OrderState != Enums.OrderState.已取消) .WhereIf(searchOrderRequest.ExcludeSD && !searchOrderRequest.OnlyDF, (o, ocs, oct, sh) => o.StorageType == null || o.StorageType != Enums.StorageType.SD) From 769ddfeca52a1c5844adbad4cf672dfb07ded4a1 Mon Sep 17 00:00:00 2001 From: sanji Date: Thu, 21 Dec 2023 15:24:33 +0800 Subject: [PATCH 51/57] 10227 --- BBWY.Client/GlobalContext.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BBWY.Client/GlobalContext.cs b/BBWY.Client/GlobalContext.cs index a327c10d..6b28e420 100644 --- a/BBWY.Client/GlobalContext.cs +++ b/BBWY.Client/GlobalContext.cs @@ -13,7 +13,7 @@ namespace BBWY.Client { ShopServiceGroupList = new List(); ShopServiceGroupLowerList = new List(); - ClientVersion = "10226"; + ClientVersion = "10227"; } From 4d6af13af52301d2c1e1b11e66bc12352812a27c Mon Sep 17 00:00:00 2001 From: sanji Date: Thu, 21 Dec 2023 15:49:25 +0800 Subject: [PATCH 52/57] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E6=95=B0=E9=87=8F=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Statistics/StatisticsBusiness.cs | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/BBWY.Server.Business/Statistics/StatisticsBusiness.cs b/BBWY.Server.Business/Statistics/StatisticsBusiness.cs index 79677e74..719ecead 100644 --- a/BBWY.Server.Business/Statistics/StatisticsBusiness.cs +++ b/BBWY.Server.Business/Statistics/StatisticsBusiness.cs @@ -372,12 +372,16 @@ namespace BBWY.Server.Business o.OrderState == Enums.OrderState.等待采购 && o.StartTime >= dt).Count(); response.ExceptionCount = fsql.Select().LeftJoin((o, oc) => o.Id == oc.OrderId) - .Where((o, oc) => o.ShopId == shopId && o.StartTime >= dt && + .Where((o, oc) => o.ShopId == shopId && + o.StartTime >= dt && o.IsGift == false && - o.OrderState != Enums.OrderState.已取消 && - ((o.StorageType != Enums.StorageType.SD && o.StorageType != null && oc.PurchaseAmount == 0M) || - (o.StorageType != Enums.StorageType.SD && oc.PurchaseAmount + oc.DeliveryExpressFreight > o.OrderSellerPrice + o.FreightPrice + o.PingTaiChengDanYouHuiQuan) || - (o.StorageType == null && o.OrderState != Enums.OrderState.等待采购))).Count(); + ((o.OrderState != Enums.OrderState.已取消 && + o.StorageType != Enums.StorageType.SD && + o.StorageType != null && + (oc.PurchaseAmount == 0M || oc.Profit < 0)) || + (o.StorageType == null && + o.OrderState != Enums.OrderState.等待采购 && + o.OrderState != Enums.OrderState.待付款))).Count(); response.WaitOutStoreCount = fsql.Select().Where(o => o.ShopId == shopId && o.OrderState == Enums.OrderState.待出库 && o.StartTime >= dt && o.IsGift == false).Count(); From cebb211a547fcd84778f8b7747cb3ca5c1d601af Mon Sep 17 00:00:00 2001 From: sanji Date: Thu, 21 Dec 2023 16:01:33 +0800 Subject: [PATCH 53/57] ` --- BBWY.Client/Models/Order/Order.cs | 7 +++++-- BBWY.Server.Business/Order/OrderBusiness.cs | 13 ++++++++++--- .../Statistics/StatisticsBusiness.cs | 15 ++++++++++++--- 3 files changed, 27 insertions(+), 8 deletions(-) diff --git a/BBWY.Client/Models/Order/Order.cs b/BBWY.Client/Models/Order/Order.cs index bbb3ccfc..d8063ca8 100644 --- a/BBWY.Client/Models/Order/Order.cs +++ b/BBWY.Client/Models/Order/Order.cs @@ -245,11 +245,14 @@ namespace BBWY.Client.Models var beforeTotalCost = OrderCost?.BeforeTotalCost ?? 0M; var profit = OrderCost?.Profit ?? 0M; - return (OrderState != OrderState.已取消 && + return (OrderState != OrderState.已取消 && StorageType != Models.StorageType.SD && StorageType != null && (beforeTotalCost == 0M || profit < 0M)) || - (StorageType == null && OrderState != OrderState.等待采购 && OrderState != OrderState.待付款); + (StorageType == null && + OrderState != OrderState.等待采购 && + OrderState != OrderState.待付款 && + OrderState != OrderState.已取消); } } diff --git a/BBWY.Server.Business/Order/OrderBusiness.cs b/BBWY.Server.Business/Order/OrderBusiness.cs index 53ad3e95..709230e1 100644 --- a/BBWY.Server.Business/Order/OrderBusiness.cs +++ b/BBWY.Server.Business/Order/OrderBusiness.cs @@ -39,6 +39,8 @@ namespace BBWY.Server.Business private IMemoryCache memoryCache; private static TimeSpan sdGroupExpirationTimeSpan = TimeSpan.FromMinutes(20); + private List filterExceptionStateList; + public OrderBusiness(RestApiService restApiService, IFreeSql fsql, IIdGenerator idGenerator, @@ -52,6 +54,12 @@ namespace BBWY.Server.Business freeSqlMultiDBManagerLazy = new Lazy(() => serviceProvider.GetService()); productBusinessLazy = new Lazy(() => serviceProvider.GetService()); venderBusinessLazy = new Lazy(() => serviceProvider.GetService()); + + filterExceptionStateList = new List() { + Enums.OrderState.等待采购, + Enums.OrderState.待付款, + Enums.OrderState.已取消 + }; } private ISelect GetOrderListQueryConditions(SearchOrderRequest searchOrderRequest) @@ -82,9 +90,8 @@ namespace BBWY.Server.Business o.StorageType != Enums.StorageType.SD && o.StorageType != null && (oct.PurchaseAmount == 0M || oct.Profit < 0)) || - (o.StorageType == null && - o.OrderState != Enums.OrderState.等待采购 && - o.OrderState != Enums.OrderState.待付款)) + (o.StorageType == null && + !filterExceptionStateList.Contains(o.OrderState))) .WhereIf(searchOrderRequest.OnlyDF, (o, ocs, oct, sh) => o.StorageType == Enums.StorageType.代发) .WhereIf(searchOrderRequest.ExcludeCanceled, (o, ocs, oct, sh) => o.OrderState != Enums.OrderState.已取消) .WhereIf(searchOrderRequest.ExcludeSD && !searchOrderRequest.OnlyDF, (o, ocs, oct, sh) => o.StorageType == null || o.StorageType != Enums.StorageType.SD) diff --git a/BBWY.Server.Business/Statistics/StatisticsBusiness.cs b/BBWY.Server.Business/Statistics/StatisticsBusiness.cs index 719ecead..66ac0bf4 100644 --- a/BBWY.Server.Business/Statistics/StatisticsBusiness.cs +++ b/BBWY.Server.Business/Statistics/StatisticsBusiness.cs @@ -9,6 +9,7 @@ using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; +using System.Net.Http.Headers; using Yitter.IdGenerator; namespace BBWY.Server.Business @@ -19,11 +20,18 @@ namespace BBWY.Server.Business private FreeSqlMultiDBManager freeSqlMultiDBManager; private RestApiService restApiService; + private List filterExceptionStateList; + public StatisticsBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, FreeSqlMultiDBManager freeSqlMultiDBManager, RestApiService restApiService) : base(fsql, nLogManager, idGenerator) { invalidOrderStateList = new List() { Enums.OrderState.待付款, Enums.OrderState.已取消 }; this.freeSqlMultiDBManager = freeSqlMultiDBManager; this.restApiService = restApiService; + filterExceptionStateList = new List() { + Enums.OrderState.等待采购, + Enums.OrderState.待付款, + Enums.OrderState.已取消 + }; } public OrderAchievementResponse GetOrderAchievementStatistics(OrderAchievementRequest request) @@ -364,6 +372,8 @@ namespace BBWY.Server.Business { //startDate = startDate.Date; //endDate = endDate.Date.AddDays(1).AddSeconds(-1); + + var dt = DateTime.Parse("2022-05-01"); var afterDt = DateTime.Parse("2022-10-01"); var response = new OrderCountStatisticsResponse(); @@ -372,7 +382,7 @@ namespace BBWY.Server.Business o.OrderState == Enums.OrderState.等待采购 && o.StartTime >= dt).Count(); response.ExceptionCount = fsql.Select().LeftJoin((o, oc) => o.Id == oc.OrderId) - .Where((o, oc) => o.ShopId == shopId && + .Where((o, oc) => o.ShopId == shopId && o.StartTime >= dt && o.IsGift == false && ((o.OrderState != Enums.OrderState.已取消 && @@ -380,8 +390,7 @@ namespace BBWY.Server.Business o.StorageType != null && (oc.PurchaseAmount == 0M || oc.Profit < 0)) || (o.StorageType == null && - o.OrderState != Enums.OrderState.等待采购 && - o.OrderState != Enums.OrderState.待付款))).Count(); + !filterExceptionStateList.Contains(o.OrderState)))).Count(); response.WaitOutStoreCount = fsql.Select().Where(o => o.ShopId == shopId && o.OrderState == Enums.OrderState.待出库 && o.StartTime >= dt && o.IsGift == false).Count(); From ac880595d89c02eb2a50bb8f199cdd472d7d5d65 Mon Sep 17 00:00:00 2001 From: sanji Date: Thu, 21 Dec 2023 16:05:08 +0800 Subject: [PATCH 54/57] 10228 --- BBWY.Client/GlobalContext.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BBWY.Client/GlobalContext.cs b/BBWY.Client/GlobalContext.cs index 6b28e420..158baadb 100644 --- a/BBWY.Client/GlobalContext.cs +++ b/BBWY.Client/GlobalContext.cs @@ -13,7 +13,7 @@ namespace BBWY.Client { ShopServiceGroupList = new List(); ShopServiceGroupLowerList = new List(); - ClientVersion = "10227"; + ClientVersion = "10228"; } From 4f5aaef6beea8819d9233e085fad87d016ce33d2 Mon Sep 17 00:00:00 2001 From: "506583276@qq.com" <506583276@qq.com> Date: Wed, 27 Dec 2023 16:34:03 +0800 Subject: [PATCH 55/57] 10229 --- BBWY.Client/GlobalContext.cs | 2 +- BBWY.Client/Models/PackTask/ShopTotal.cs | 7 ++++++- .../ViewModels/PackTask/PackTaskTotalViewModel.cs | 2 +- .../TotalPackTask/ShopPackTaskTotalViewModel.cs | 2 +- .../PackagingTask/ShopWaitPackingTaskControl.xaml | 12 ++++++------ .../Views/PackagingTask/WaitPackingTaskControl.xaml | 10 +++++----- 6 files changed, 20 insertions(+), 15 deletions(-) diff --git a/BBWY.Client/GlobalContext.cs b/BBWY.Client/GlobalContext.cs index 5831bf75..a0a6e27f 100644 --- a/BBWY.Client/GlobalContext.cs +++ b/BBWY.Client/GlobalContext.cs @@ -13,7 +13,7 @@ namespace BBWY.Client { ShopServiceGroupList = new List(); ShopServiceGroupLowerList = new List(); - ClientVersion = "10222"; + ClientVersion = "10229"; } diff --git a/BBWY.Client/Models/PackTask/ShopTotal.cs b/BBWY.Client/Models/PackTask/ShopTotal.cs index 30114d12..645931be 100644 --- a/BBWY.Client/Models/PackTask/ShopTotal.cs +++ b/BBWY.Client/Models/PackTask/ShopTotal.cs @@ -2,6 +2,7 @@ using BBWY.Client.ViewModels; using System; using System.Collections.Generic; +using System.Linq; using System.Text; namespace BBWY.Client.Models.PackTask @@ -106,8 +107,12 @@ namespace BBWY.Client.Models.PackTask // string title = "任务ID,日期,是否结清,所属部门,所属店铺,包装数量,收货数量,耗材总价,工序类型,工序套餐,工序单价,打包原价,打包折扣系数,打包折扣价,总收费"; public override string ToString() { + string ConsumableStr = string.Empty; + if (ConsumableList != null && ConsumableList.Count > 0) + ConsumableStr = string.Join(",", ConsumableList.Select(x => $"{x.ItemName} {x.ItemPrice}*{x.ItemCount}")); + return $"{TaskId},{CreateTime?.ToString("MM-dd")},{IsSettle},{DepartmentName},{ShopName}" + - $",{SkuCount},{ArrivalQuantity},{ConsumableFees},{ProcessTypeName},{ProcessComboName},{ProcessComboPrice},{PackFees},{DiscountFactor},{PackDisCountFees},{AllFees}"; + $",{SkuCount},{ArrivalQuantity},\"{ConsumableStr}\" ,{ConsumableFees},{ProcessTypeName},{ProcessComboName},{ProcessComboPrice},{PackFees},{DiscountFactor},{PackDisCountFees},{AllFees}"; } } diff --git a/BBWY.Client/ViewModels/PackTask/PackTaskTotalViewModel.cs b/BBWY.Client/ViewModels/PackTask/PackTaskTotalViewModel.cs index a4a53ef8..01298dae 100644 --- a/BBWY.Client/ViewModels/PackTask/PackTaskTotalViewModel.cs +++ b/BBWY.Client/ViewModels/PackTask/PackTaskTotalViewModel.cs @@ -148,7 +148,7 @@ namespace BBWY.Client.ViewModels.PackTask if (res.Success) { //string title = "任务ID,日期,是否结清,部门,店铺,对接人,sku名称,sku数量,增值服务,打包服务,耗材服务,原价,促销折扣,结算价格,对接备注"; - string title = "任务ID,日期,是否结清,所属部门,所属店铺,包装数量,收货数量,耗材总价,工序类型,工序套餐,工序单价,包装原价,包装折扣系数,包装折扣价,总收费"; + string title = "任务ID,日期,是否结清,所属部门,所属店铺,包装数量,收货数量,耗材明细,耗材总价,工序类型,工序套餐,工序单价,包装原价,包装折扣系数,包装折扣价,总收费"; var excelList = res.Data.ShopTotals.Select(x => x.ToString()).ToList(); excelList.Insert(0, title); System.IO.File.WriteAllLines(fileName, excelList, Encoding.UTF8); diff --git a/BBWY.Client/ViewModels/TotalPackTask/ShopPackTaskTotalViewModel.cs b/BBWY.Client/ViewModels/TotalPackTask/ShopPackTaskTotalViewModel.cs index 4dbac35f..7b359151 100644 --- a/BBWY.Client/ViewModels/TotalPackTask/ShopPackTaskTotalViewModel.cs +++ b/BBWY.Client/ViewModels/TotalPackTask/ShopPackTaskTotalViewModel.cs @@ -134,7 +134,7 @@ namespace BBWY.Client.ViewModels.TotalPackTask if (res.Success) { //string title = "任务ID,日期,是否结清,部门,店铺,对接人,sku名称,sku数量,增值服务,打包服务,耗材服务,原价,促销折扣,结算价格,对接备注"; - string title = "任务ID,日期,是否结清,所属部门,所属店铺,包装数量,收货数量,耗材总价,工序类型,工序套餐,工序单价,包装原价,包装折扣系数,包装折扣价,总收费"; + string title = "任务ID,日期,是否结清,所属部门,所属店铺,包装数量,收货数量,耗材明细,耗材总价,工序类型,工序套餐,工序单价,包装原价,包装折扣系数,包装折扣价,总收费"; var excelList = res.Data.ShopTotals.Select(x => x.ToString()).ToList(); excelList.Insert(0, title); System.IO.File.WriteAllLines(fileName, excelList, Encoding.UTF8); diff --git a/BBWY.Client/Views/PackagingTask/ShopWaitPackingTaskControl.xaml b/BBWY.Client/Views/PackagingTask/ShopWaitPackingTaskControl.xaml index 608c8bda..0f71b660 100644 --- a/BBWY.Client/Views/PackagingTask/ShopWaitPackingTaskControl.xaml +++ b/BBWY.Client/Views/PackagingTask/ShopWaitPackingTaskControl.xaml @@ -267,7 +267,7 @@ - @@ -275,13 +275,13 @@ - + - + --> @@ -455,15 +455,15 @@ Foreground="{StaticResource Text.Color}"> - + - + diff --git a/BBWY.Client/Views/PackagingTask/WaitPackingTaskControl.xaml b/BBWY.Client/Views/PackagingTask/WaitPackingTaskControl.xaml index 26c920fa..4f1e87e5 100644 --- a/BBWY.Client/Views/PackagingTask/WaitPackingTaskControl.xaml +++ b/BBWY.Client/Views/PackagingTask/WaitPackingTaskControl.xaml @@ -273,7 +273,7 @@ - @@ -281,7 +281,7 @@ - + @@ -557,15 +557,15 @@ Foreground="{StaticResource Text.Color}"> - + - + From 43fc07f578f94d1d0b70542c9e271c25e7d11a4f Mon Sep 17 00:00:00 2001 From: sanji Date: Thu, 28 Dec 2023 20:09:51 +0800 Subject: [PATCH 56/57] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E9=AA=8C=E8=AF=81=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Sync/OrderSyncBusiness.cs | 35 +++++++++++-------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs index b415c6e5..510ef7aa 100644 --- a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs @@ -148,15 +148,15 @@ namespace BBWY.Server.Business if ((syncOrderByDateRequest.EndTime - syncOrderByDateRequest.StartTime).Days > 7) throw new BusinessException("同步任务时差最长7天"); - var orderSyncTask = new OrderSyncTask() - { - Id = idGenerator.NewLong(), - ShopId = syncOrderByDateRequest.ShopId, - State = Enums.OrderSyncState.Running, - SyncStartTime = syncOrderByDateRequest.StartTime, - SyncEndTime = syncOrderByDateRequest.EndTime - }; - fsql.Insert(orderSyncTask).ExecuteAffrows(); + //var orderSyncTask = new OrderSyncTask() + //{ + // Id = idGenerator.NewLong(), + // ShopId = syncOrderByDateRequest.ShopId, + // State = Enums.OrderSyncState.Running, + // SyncStartTime = syncOrderByDateRequest.StartTime, + // SyncEndTime = syncOrderByDateRequest.EndTime + //}; + //fsql.Insert(orderSyncTask).ExecuteAffrows(); Task.Factory.StartNew(() => { var currentStartTime = syncOrderByDateRequest.StartTime; @@ -188,11 +188,11 @@ namespace BBWY.Server.Business } } } - try - { - fsql.Update(orderSyncTask.Id).Set(ost => ost.State, Enums.OrderSyncState.End).ExecuteAffrows(); - } - catch (Exception ex) { } + //try + //{ + // fsql.Update(orderSyncTask.Id).Set(ost => ost.State, Enums.OrderSyncState.End).ExecuteAffrows(); + //} + //catch (Exception ex) { } }, System.Threading.CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.SyncOrderTaskScheduler); } @@ -308,7 +308,12 @@ namespace BBWY.Server.Business if (orderCouponDetailResponse.Success) { var jtoken = orderCouponDetailResponse.Data["jingdong_pop_order_queryCouponDetai_responce"]["couponDetailExternal"]["couponDetailVo"]; - if (jtoken.Value("totalShouldPay") > 0M) + if (jtoken.Value("totalShouldPay") > 0M || + jtoken.Value("totalSuperRedEnvelope") > 0M || + jtoken.Value("totalDongQuan") > 0M || + jtoken.Value("totalJingDou") > 0M || + jtoken.Value("totalXianPinLeiDongQuan") > 0M || + jtoken.Value("totalPingTaiChengDanYouHuiQuan") > 0M ) { #region 订单合计信息 var orderTotal = new OrderTotalInfo() From 90f47a2def29121b1fd2d6aac8fc201871c6af47 Mon Sep 17 00:00:00 2001 From: sanji Date: Thu, 28 Dec 2023 20:57:47 +0800 Subject: [PATCH 57/57] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BBWY.Server.Business/Sync/OrderSyncBusiness.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs index 510ef7aa..249480e1 100644 --- a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs @@ -637,7 +637,13 @@ namespace BBWY.Server.Business if (dbOsku != null) { var oskuCF = orderSkuCFDetailList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == dbOsku.SkuId); - var isDetailChanged = (dbOsku.ShouldPay == 0 || dbOsku.ShouldPay == null) && oskuCF != null && oskuCF.ShouldPay != 0; + var isDetailChanged = oskuCF != null && (dbOsku.ShouldPay != oskuCF.ShouldPay || + dbOsku.Balance != oskuCF.Balance|| + dbOsku.PingTaiChengDanYouHuiQuan != oskuCF.PingTaiChengDanYouHuiQuan|| + dbOsku.SuperRedEnvelope != oskuCF.SuperRedEnvelope || + dbOsku.XianPinLeiDongQuan != oskuCF.XianPinLeiDongQuan || + dbOsku.JingDou != oskuCF.JingDou || + dbOsku.DongQuan != oskuCF.DongQuan); if (dbOsku.ProductId != wareId || isDetailChanged) { var skuActualAmount = oskuCF?.ShouldPay ?? 0M +