From 037633338c169603768c0554766baee45025cb04 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Thu, 29 Sep 2022 22:15:43 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E4=B8=9A=E7=BB=A9=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BBWY.JDSDK/Domain/ResponseMessage.cs | 37 ++++ ...dsIbgUniversalJosServiceSkuQueryRequest.cs | 163 ++++++++++++++++++ ...sIbgUniversalJosServiceSkuQueryResponse.cs | 16 ++ .../Statistics/StatisticsBusiness.cs | 40 ++--- .../Statistics/OrderAchievementResponse.cs | 2 +- BBWY.Test/Program.cs | 40 ++--- 6 files changed, 253 insertions(+), 45 deletions(-) create mode 100644 BBWY.JDSDK/Domain/ResponseMessage.cs create mode 100644 BBWY.JDSDK/Request/AdsIbgUniversalJosServiceSkuQueryRequest.cs create mode 100644 BBWY.JDSDK/Response/AdsIbgUniversalJosServiceSkuQueryResponse.cs diff --git a/BBWY.JDSDK/Domain/ResponseMessage.cs b/BBWY.JDSDK/Domain/ResponseMessage.cs new file mode 100644 index 00000000..55097b41 --- /dev/null +++ b/BBWY.JDSDK/Domain/ResponseMessage.cs @@ -0,0 +1,37 @@ +using System; +using System.Xml.Serialization; +using System.Collections.Generic; +using Newtonsoft.Json; +using Jd.Api.Domain; +namespace Jd.Api.Domain +{ + +[Serializable] +public class ResponseMessage:JdObject{ + [JsonProperty("msg")] +public string + + msg + { get; set; } + [JsonProperty("code")] +public string + + code + { get; set; } + [JsonProperty("success")] +public bool + + success + { get; set; } + [JsonProperty("data")] +public PageList + + data + { get; set; } + [JsonProperty("logId")] +public List + + logId + { get; set; } + } +} diff --git a/BBWY.JDSDK/Request/AdsIbgUniversalJosServiceSkuQueryRequest.cs b/BBWY.JDSDK/Request/AdsIbgUniversalJosServiceSkuQueryRequest.cs new file mode 100644 index 00000000..35aa13f5 --- /dev/null +++ b/BBWY.JDSDK/Request/AdsIbgUniversalJosServiceSkuQueryRequest.cs @@ -0,0 +1,163 @@ +using System; +using System.Collections.Generic; +using Jd.Api.Response; +using Jd.Api.Util; +namespace Jd.Api.Request +{ + public class AdsIbgUniversalJosServiceSkuQueryRequest : JdRequestBase + { + public string + businessType + {get; set;} + + public string + clickStartDay + {get; set;} + + public string + clickEndDay + {get; set;} + + public string + orderStartDay + {get; set;} + + public string + orderEndDay + {get; set;} + + public string + myself + {get; set;} + + public string + orderStatus + {get; set;} + + public string + province + {get; set;} + + public string + areaId + {get; set;} + + public string + isDaily + {get; set;} + + public string + startDay + {get; set;} + + public string + endDay + {get; set;} + + public string + orderStatusCategory + {get; set;} + + public string + clickOrOrderCaliber + {get; set;} + + public string + campaignId + {get; set;} + + public string + clickOrOrderDay + {get; set;} + + public string + page + {get; set;} + + public string + pageSize + {get; set;} + + public string + filters + {get; set;} + + public string + platform + {get; set;} + + public string + giftFlag + {get; set;} + + public string + authType + {get; set;} + + public string + accessPin + {get; set;} + + public override string ApiName + { + get{return "jingdong.ads.ibg.UniversalJosService.sku.query";} + } + protected override void PrepareParam(IDictionary parameters) + { + parameters.Add("businessType", this. businessType +); + parameters.Add("clickStartDay", this. clickStartDay +); + parameters.Add("clickEndDay", this. clickEndDay +); + parameters.Add("orderStartDay", this. orderStartDay +); + parameters.Add("orderEndDay", this. orderEndDay +); + parameters.Add("myself", this. myself +); + parameters.Add("orderStatus", this. orderStatus +); + parameters.Add("province", this. province +); + parameters.Add("areaId", this. areaId +); + parameters.Add("isDaily", this. isDaily +); + parameters.Add("startDay", this. startDay +); + parameters.Add("endDay", this. endDay +); + parameters.Add("orderStatusCategory", this. orderStatusCategory +); + parameters.Add("clickOrOrderCaliber", this. clickOrOrderCaliber +); + parameters.Add("campaignId", this. campaignId +); + parameters.Add("clickOrOrderDay", this. clickOrOrderDay +); + parameters.Add("page", this. page +); + parameters.Add("pageSize", this. pageSize +); + parameters.Add("filters", this. filters +); + parameters.Add("platform", this. platform +); + parameters.Add("giftFlag", this. giftFlag +); + parameters.Add("authType", this. authType +); + parameters.Add("accessPin", this. accessPin +); + } + } +} + + + + + + + + diff --git a/BBWY.JDSDK/Response/AdsIbgUniversalJosServiceSkuQueryResponse.cs b/BBWY.JDSDK/Response/AdsIbgUniversalJosServiceSkuQueryResponse.cs new file mode 100644 index 00000000..9a61f192 --- /dev/null +++ b/BBWY.JDSDK/Response/AdsIbgUniversalJosServiceSkuQueryResponse.cs @@ -0,0 +1,16 @@ +using System; +using System.Xml.Serialization; +using System.Collections.Generic; +using Newtonsoft.Json; + using Jd.Api.Domain; + namespace Jd.Api.Response +{ + +public class AdsIbgUniversalJosServiceSkuQueryResponse:JdResponse{ + [JsonProperty("returnType")] +public ResponseMessage + + returnType + { get; set; } + } +} diff --git a/BBWY.Server.Business/Statistics/StatisticsBusiness.cs b/BBWY.Server.Business/Statistics/StatisticsBusiness.cs index f10332bf..bb3b5049 100644 --- a/BBWY.Server.Business/Statistics/StatisticsBusiness.cs +++ b/BBWY.Server.Business/Statistics/StatisticsBusiness.cs @@ -52,24 +52,27 @@ namespace BBWY.Server.Business if (pularizeEndTime != null) { + //o.StorageType != Enums.StorageType.SD && response.PularizeEndDate = pularizeEndDate; - var profit = fsql.Select().LeftJoin((o, oc) => o.Id == oc.OrderId) - .Where((o, oc) => o.ShopId == request.ShopId && - o.OrderState != null && - !invalidOrderStateList.Contains(o.OrderState.Value) && //排除待付款和取消 - o.StorageType != Enums.StorageType.SD && - o.StartTime >= request.StartTime && - o.StartTime <= pularizeEndTime).Sum((o, oc) => oc.Profit); - //response.Profit = profit; - - //计算SD成本 - var sdCost = fsql.Select().LeftJoin((o, oc) => o.Id == oc.OrderId) - .Where((o, oc) => o.ShopId == request.ShopId && - o.OrderState != null && - !invalidOrderStateList.Contains(o.OrderState.Value) && //排除待付款和取消 - o.StorageType == Enums.StorageType.SD && - o.StartTime >= request.StartTime && - o.StartTime <= pularizeEndTime).Sum((o, oc) => oc.Profit); + var profitList = fsql.Select().LeftJoin((o, oc) => o.Id == oc.OrderId) + .Where((o, oc) => o.ShopId == request.ShopId && + o.OrderState != null && + !invalidOrderStateList.Contains(o.OrderState.Value) && //排除待付款和取消 + o.StartTime >= request.StartTime && + o.StartTime <= pularizeEndTime) + .GroupBy((o, oc) => new + { + IsSD = o.StorageType == Enums.StorageType.SD + }) + .ToList(g => new + { + g.Key.IsSD, + Value = g.Sum(g.Value.Item2.Profit) + }); + + var profit = profitList.FirstOrDefault(t => !t.IsSD).Value; + var sdCost = profitList.FirstOrDefault(t => t.IsSD).Value; + response.SDCost = Math.Abs(sdCost); response.AdvCost = shopPopularizeList.Sum(s => s.Cost) + response.SDCost; response.Profit = profit - response.AdvCost - response.TaxCost - response.EmployeeCost; @@ -82,9 +85,6 @@ namespace BBWY.Server.Business }).ToList(); } - - - //var shopId = request.ShopId.ToString(); //var mdsShop = freeSqlMultiDBManager.MDSfsql.Select().Where(s => s.ShopId == shopId).ToOne(); //if (mdsShop != null) diff --git a/BBWY.Server.Model/Dto/Response/Statistics/OrderAchievementResponse.cs b/BBWY.Server.Model/Dto/Response/Statistics/OrderAchievementResponse.cs index 328f25f0..4e7ccda9 100644 --- a/BBWY.Server.Model/Dto/Response/Statistics/OrderAchievementResponse.cs +++ b/BBWY.Server.Model/Dto/Response/Statistics/OrderAchievementResponse.cs @@ -35,7 +35,7 @@ namespace BBWY.Server.Model.Dto { get { - return PurchaseAmount + DeliveryExpressFreight + PlatformCommissionAmount; + return PurchaseAmount + DeliveryExpressFreight + PlatformCommissionAmount + AdvCost; } } diff --git a/BBWY.Test/Program.cs b/BBWY.Test/Program.cs index 8086a799..156c3494 100644 --- a/BBWY.Test/Program.cs +++ b/BBWY.Test/Program.cs @@ -26,35 +26,27 @@ namespace BBWY.Test { var appkey = "120EA9EC65AB017567D78CC1139EEEA5"; var appSecret = "866a9877f5f24b03b537483b4defe75d"; - var token = "2ace3023200c4ea9aa682bbf8bffee18jztm"; + var token = "eda9bd0d9c2b48fba96ebc415669cea7jkmg";//"2ace3023200c4ea9aa682bbf8bffee18jztm"; var startDate = DateTime.Parse("2022-08-01"); var endDate = DateTime.Parse("2022-08-31"); var jdClient = GetJdClient(appkey, appSecret); - var pageIndex = 1; - - while (true) - { - var req = new DspPlatformFinanceOpenapiQuerycostdetailsRequest(); - req.beginDate = startDate.ToString("yyyy-MM-dd"); - req.endDate = endDate.ToString("yyyy-MM-dd"); - req.pageNo = pageIndex; - req.pageSize = 100; - req.moneyType = 1; - - var response = jdClient.Execute(req, token, DateTime.Now.ToLocalTime()); - Console.WriteLine($"pageIndex:{pageIndex}\r\n{JsonConvert.SerializeObject(response)}"); - Console.WriteLine(); - - if (response.Json == null) - response.Json = JsonConvert.DeserializeObject(response.Body); - var j = (JArray)response.Json["jingdong_dsp_platform_finance_openapi_querycostdetails_responce"]["returnType"]["data"]["page"]["data"]; - if (j == null || !j.HasValues || j.Count < 100) - break; - pageIndex++; - Thread.Sleep(2000); - } + + + var req = new AdsIbgUniversalJosServiceSkuQueryRequest(); + req.businessType = "134217728"; + req.clickOrOrderCaliber = "1"; + req.clickOrOrderDay = "0"; + req.clickStartDay = "2022-09-25"; + req.clickEndDay = "2022-09-25"; + req.orderStartDay = "2022-09-25"; + req.orderEndDay = "2022-09-25"; + req.startDay = "2022-09-25"; + req.endDay = "2022-09-25"; + req.accessPin = "ecmax2017"; + var response = jdClient.Execute(req, token, DateTime.Now.ToLocalTime()); + Console.WriteLine(JsonConvert.SerializeObject(response)); Console.ReadKey(); } }