From a9193e1f3f50814c978c10dadd4ab76548ba37d7 Mon Sep 17 00:00:00 2001 From: yuyubo <1870149533@qq.com> Date: Tue, 8 Jul 2025 20:10:02 +0800 Subject: [PATCH] 11 --- .../MyCode.Project.Domain/Model/JackOrders.cs | 40 +++++++++++-- .../Model/JackOrdersItem.cs | 8 --- .../JackYun/JackyunOpenHttpUtils.cs | 6 +- .../JackYun/TradeFullinfogetResp.cs | 29 ++++++++-- ...mListService.cs => IJackYunTaskService.cs} | 8 +-- .../Implementation/JackYunService.cs | 17 +++--- .../Implementation/JackYunTaskService.cs | 58 ++++++++++++++----- .../MyCode.Project.Services.csproj | 1 + .../Controllers/TestController.cs | 41 ++++++++----- Reportapi/MyCode.Project.WebApi/Web.config | 4 +- 10 files changed, 151 insertions(+), 61 deletions(-) rename Reportapi/MyCode.Project.Services/IServices/{IItemListService.cs => IJackYunTaskService.cs} (51%) diff --git a/Reportapi/MyCode.Project.Domain/Model/JackOrders.cs b/Reportapi/MyCode.Project.Domain/Model/JackOrders.cs index 10a189b..911da42 100644 --- a/Reportapi/MyCode.Project.Domain/Model/JackOrders.cs +++ b/Reportapi/MyCode.Project.Domain/Model/JackOrders.cs @@ -26,7 +26,7 @@ namespace MyCode.Project.Domain.Model /// /// Desc:销售单id(吉客云内码) /// Default: - /// Nullable:False + /// Nullable:True /// [SugarColumn(ColumnName="tradeId")] public string TradeId {get;set;} @@ -50,7 +50,7 @@ namespace MyCode.Project.Domain.Model /// /// Desc:店铺编码 /// Default: - /// Nullable:False + /// Nullable:True /// [SugarColumn(ColumnName="shopCode")] public string ShopCode {get;set;} @@ -58,7 +58,7 @@ namespace MyCode.Project.Domain.Model /// /// Desc:发货单单号 /// Default: - /// Nullable:False + /// Nullable:True /// [SugarColumn(ColumnName="orderNo")] public string OrderNo {get;set;} @@ -66,7 +66,7 @@ namespace MyCode.Project.Domain.Model /// /// Desc:订单编号 /// Default: - /// Nullable:False + /// Nullable:True /// [SugarColumn(ColumnName="tradeNo")] public string TradeNo {get;set;} @@ -191,5 +191,37 @@ namespace MyCode.Project.Domain.Model [SugarColumn(ColumnName="updateTime")] public DateTime? UpdateTime {get;set;} + /// + /// Desc:0=未处理 1=已合并 2=已推送 + /// Default:0 + /// Nullable:True + /// + [SugarColumn(ColumnName="status")] + public int? Status {get;set;} + + /// + /// Desc:支付时间 + /// Default: + /// Nullable:True + /// + [SugarColumn(ColumnName="payTime")] + public DateTime? PayTime {get;set;} + + /// + /// Desc:发货时间 + /// Default: + /// Nullable:True + /// + [SugarColumn(ColumnName="consignTime")] + public DateTime? ConsignTime {get;set;} + + /// + /// Desc:销售单状态(1010:待审核;1020:审核中;1030:预售;1050:待复核;2000:备货等待;2010:备货等待等补货;2020:服务等待;2030:备货等待等生产;2040:采购等待;3010:虚拟发货;4110:待发货待递交;4111:待发货递交中;4112:待发货已递交;4113:待发货-递交失败;4121:待发货-取消中;4122:待发货已取消;4123:待发货取消失败;4130:待发货部分发货;4040:代销发货待递交;4041:代销发货已递交;5010:已取消;5020:已取消被合并;5030:已取消被拆分;6000:发货在途;9090:已完成) + /// Default: + /// Nullable:True + /// + [SugarColumn(ColumnName="tradeStatus")] + public int? TradeStatus {get;set;} + } } diff --git a/Reportapi/MyCode.Project.Domain/Model/JackOrdersItem.cs b/Reportapi/MyCode.Project.Domain/Model/JackOrdersItem.cs index 1f19068..5b9cde2 100644 --- a/Reportapi/MyCode.Project.Domain/Model/JackOrdersItem.cs +++ b/Reportapi/MyCode.Project.Domain/Model/JackOrdersItem.cs @@ -167,14 +167,6 @@ namespace MyCode.Project.Domain.Model [SugarColumn(ColumnName="tradeId")] public string TradeId {get;set;} - /// - /// Desc: - /// Default: - /// Nullable:True - /// - [SugarColumn(ColumnName="skuImgUrl")] - public string SkuImgUrl {get;set;} - /// /// Desc: /// Default:DateTime.Now diff --git a/Reportapi/MyCode.Project.Infrastructure/JackYun/JackyunOpenHttpUtils.cs b/Reportapi/MyCode.Project.Infrastructure/JackYun/JackyunOpenHttpUtils.cs index 3031269..14b34cb 100644 --- a/Reportapi/MyCode.Project.Infrastructure/JackYun/JackyunOpenHttpUtils.cs +++ b/Reportapi/MyCode.Project.Infrastructure/JackYun/JackyunOpenHttpUtils.cs @@ -26,18 +26,18 @@ namespace MyCode.Project.Infrastructure.JackYun /// /// 在吉客云开放平台上申请的Appekey /// - private const string APPKEY = "71030238"; + private const string APPKEY = "21578653"; /// /// 在吉客云开放平台上申请的AppeSecret /// - private const string APPSECRET = "0fbe36cc4308405cacadf516338be4c8"; + private const string APPSECRET = "d6ea919cb75a44879fcdbea211066b9c"; /// /// /// - private const string Token = "c5cd87bb574483e8dd6acbf72f577fe0"; + private const string Token = ""; /// /// 吉客云开放平台网关 /// diff --git a/Reportapi/MyCode.Project.Infrastructure/JackYun/TradeFullinfogetResp.cs b/Reportapi/MyCode.Project.Infrastructure/JackYun/TradeFullinfogetResp.cs index fda953d..6b58fe1 100644 --- a/Reportapi/MyCode.Project.Infrastructure/JackYun/TradeFullinfogetResp.cs +++ b/Reportapi/MyCode.Project.Infrastructure/JackYun/TradeFullinfogetResp.cs @@ -1,4 +1,5 @@ -using System; +using SqlSugar; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -94,6 +95,10 @@ namespace MyCode.Project.Infrastructure.JackYun public class TradesItem { + /// + /// 销售单状态 6000:发货在途;9090:已完成 + /// + public int tradeStatus { get; set; } /// /// /// @@ -158,10 +163,7 @@ namespace MyCode.Project.Infrastructure.JackYun /// /// public string warehouseId { get; set; } - /// - /// - /// - public int id { get; set; } + /// /// /// @@ -179,9 +181,24 @@ namespace MyCode.Project.Infrastructure.JackYun /// public List goodsDetail { get; set; } /// - /// + /// 系统编码 /// public string tradeId { get; set; } + + /// + /// Desc:支付时间 + /// Default: + /// Nullable:True + /// + public DateTime? payTime { get; set; } + + /// + /// Desc:发货时间 + /// Default: + /// Nullable:True + /// + + public DateTime? consignTime { get; set; } } public class TradeFullinfogetData diff --git a/Reportapi/MyCode.Project.Services/IServices/IItemListService.cs b/Reportapi/MyCode.Project.Services/IServices/IJackYunTaskService.cs similarity index 51% rename from Reportapi/MyCode.Project.Services/IServices/IItemListService.cs rename to Reportapi/MyCode.Project.Services/IServices/IJackYunTaskService.cs index e80719c..3bd538e 100644 --- a/Reportapi/MyCode.Project.Services/IServices/IItemListService.cs +++ b/Reportapi/MyCode.Project.Services/IServices/IJackYunTaskService.cs @@ -3,12 +3,12 @@ using System.Collections.Generic; namespace MyCode.Project.Services { - public interface IJackYunService + public interface IJackYunTaskService { /// - /// 订单查询 + /// 调度运行抓吉客云销售订单 /// - - string testTradeFullInfoGet(); + /// + void TaskGetJackYunOrder(string now); } } diff --git a/Reportapi/MyCode.Project.Services/Implementation/JackYunService.cs b/Reportapi/MyCode.Project.Services/Implementation/JackYunService.cs index b132b60..1c1b43b 100644 --- a/Reportapi/MyCode.Project.Services/Implementation/JackYunService.cs +++ b/Reportapi/MyCode.Project.Services/Implementation/JackYunService.cs @@ -5,11 +5,13 @@ using MyCode.Project.Infrastructure.Exceptions; using MyCode.Project.Infrastructure.JackYun; using System; using System.Collections.Generic; +using System.Threading; namespace MyCode.Project.Services.Implementation { public class JackYunService : ServiceBase , IJackYunService { + DateTime startTime = DateTime.Parse("2025-06-01"); /// /// 请求开放平台服务 /// @@ -94,8 +96,7 @@ namespace MyCode.Project.Services.Implementation } } } - if (trades.Count > 0) - SetOrder(trades); + return ll; } @@ -110,11 +111,13 @@ namespace MyCode.Project.Services.Implementation /// public List testTradeFullInfoGet(DateTime now ) { + if (now < startTime) + now = startTime; int total = 1; OrderTradeFullInfoGetRequestBizData requestBizData = new OrderTradeFullInfoGetRequestBizData(); //string value = "2025-06-15 00:00:00";// DateTime.Now.Date.AddDays(-5).ToString("yyyy-MM-dd HH:mm:ss") ; //string value1 = "2025-06-20 00:00:00";//DateTime.Now.Date.ToString("yyyy-MM-dd HH:mm:ss"); - string value = now.Date.AddDays(-5).ToString("yyyy-MM-dd"); + string value = now.Date.AddDays(-1).ToString("yyyy-MM-dd"); string value1 = now.Date.ToString("yyyy-MM-dd"); requestBizData.StartModified = "";// DateTime.ParseExact(value, "yyyy-MM-dd HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None); @@ -123,8 +126,8 @@ namespace MyCode.Project.Services.Implementation requestBizData.HasTotal = total; requestBizData.PageSize = 200; requestBizData.PageIndex = 0; - requestBizData.Fields = "goodsDetail.barcode,tradeNo,orderNo,shopName,companyName,warehouseName,logisticName,mainPostid,goodsDetail.goodsNo,flagNames,columnExt,sourceAfterNo,goodsDetail.outerId,pickUpCode,expense.expenseFee,expense.expenseItemName,billDate,goodsPlatDiscountFee,goodsDetail.shareOrderDiscountFee,goodsDetail.shareOrderPlatDiscountFee,customizeGoodsColumn9,goodsDetail.goodsId,goodsDetail.sellCount,goodsDetail.needProcessCount,goodsDetail.baseUnitSellCount,goodsDetail.assessmentCost,goodsDetail.compassSourceContentTypem,sourceTradeNo,shopId,warehouseId,scrollId"; - requestBizData.StartCreated = "";// DateTime.ParseExact(value, "yyyy -MM-dd HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None); + requestBizData.Fields = "tradeStatus,consignTime,payTime,goodsDetail.barcode,tradeNo,orderNo,shopName,companyName,warehouseName,logisticName,mainPostid,goodsDetail.goodsNo,flagNames,columnExt,sourceAfterNo,goodsDetail.outerId,pickUpCode,expense.expenseFee,expense.expenseItemName,billDate,goodsPlatDiscountFee,goodsDetail.shareOrderDiscountFee,goodsDetail.shareOrderPlatDiscountFee,customizeGoodsColumn9,goodsDetail.goodsId,goodsDetail.sellCount,goodsDetail.needProcessCount,goodsDetail.baseUnitSellCount,goodsDetail.assessmentCost,goodsDetail.compassSourceContentTypem,sourceTradeNo,shopId,warehouseId,scrollId"; + requestBizData.StartCreated ="";// DateTime.ParseExact(value, "yyyy -MM-dd HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None); requestBizData.EndCreated = "";// DateTime.ParseExact(value1, "yyyy -MM-dd HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None); requestBizData.StartAuditTime = "";// DateTime.ParseExact(value, "yyyy-MM-dd HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None); requestBizData.EndAuditTime = "";// DateTime.ParseExact(value1, "yyyy -MM-dd HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None); @@ -151,6 +154,7 @@ namespace MyCode.Project.Services.Implementation trades.AddRange(list1.data.trades); requestBizData.PageIndex = pageIndex; pageIndex++; + Thread.Sleep(100); response = Call(EnumAttribute.GetAttribute(ApiEnum.TRADEFULLINFOGET).Value, "1.0", requestBizData); if (response.code == "200") { @@ -164,8 +168,7 @@ namespace MyCode.Project.Services.Implementation string msg = response.msg; throw new BaseException(msg); } - if (trades.Count > 0) - SetOrder(trades); + return trades; } diff --git a/Reportapi/MyCode.Project.Services/Implementation/JackYunTaskService.cs b/Reportapi/MyCode.Project.Services/Implementation/JackYunTaskService.cs index 26fe0c7..a5cbcaa 100644 --- a/Reportapi/MyCode.Project.Services/Implementation/JackYunTaskService.cs +++ b/Reportapi/MyCode.Project.Services/Implementation/JackYunTaskService.cs @@ -3,6 +3,7 @@ using MyCode.Project.Domain.Repositories; using MyCode.Project.Infrastructure.Common; using MyCode.Project.Infrastructure.JackYun; using MyCode.Project.Repositories; +using MyCode.Project.Repositories.Common; using System; using System.Collections.Generic; using System.Linq; @@ -11,7 +12,7 @@ using System.Threading.Tasks; namespace MyCode.Project.Services.Implementation { - public class JackYunTaskService : ServiceBase //, IJackYunTaskService + public class JackYunTaskService : ServiceBase , IJackYunTaskService { private IJackYunService _jackYunService; private IJackOrdersRepository _jackOrdersRepository; @@ -26,29 +27,60 @@ namespace MyCode.Project.Services.Implementation _jackYunService = jackYunService; } + #region TaskGetJackYunOrder(调度运行抓吉客云销售订单) + /// + /// 调度运行抓吉客云销售订单 + /// + /// public void TaskGetJackYunOrder(string now) { DateTime runTime = DateTime.Parse(now); var list = _jackYunService.testTradeFullInfoGet(runTime); SetOrder(list); } + #endregion - + #region SetOrder(把吉客云订单存进本地数据库) + /// + /// 把吉客云订单存进本地数据库 + /// + /// + [TransactionCallHandler] public void SetOrder(List trades) { + var ids = trades.Select(t => t.tradeId).Distinct().ToList(); + ids = _jackOrdersRepository.Queryable().Where(t => ids.Contains(t.TradeId)).Select(t => t.TradeId).Distinct().ToList(); + if (ids.Count > 0) + trades = trades.Where(t => !ids.Contains(t.tradeId)).ToList(); + List jackOrdersList = new List(); + List ordersItemList = new List(); trades.ForEach(t => + { + JackOrders jackOrders = new JackOrders(); + jackOrders = AutoMapperHelper.AutoMappToSingle(t); + jackOrders.Id = Guid.NewGuid(); + jackOrders.Status = 0; + jackOrders.UpdateTime = DateTime.Now; + jackOrders.CreateTime = DateTime.Now; + if (t.goodsDetail != null) + { + var items = AutoMapperHelper.AutoMappToList(t.goodsDetail); + items.ForEach(k => + { + k.JackOrdersId = jackOrders.Id; + }); + jackOrdersList.Add(jackOrders); + ordersItemList.AddRange(items); + } + + }); + + if (jackOrdersList.Count > 0) { - JackOrders jackOrders = new JackOrders(); - jackOrders = AutoMapperHelper.AutoMappToSingle(t); - jackOrders.Id = Guid.NewGuid(); - var items = AutoMapperHelper.AutoMappToList(t.goodsDetail); - items.ForEach(k =>k.JackOrdersId = jackOrders.Id); - - //还要去重才能保存 - _jackOrdersRepository.Add(jackOrders); - _jackOrdersItemRepository.Add(items); - - }); + _jackOrdersRepository.Add(jackOrdersList); + _jackOrdersItemRepository.Add(ordersItemList); + } } + #endregion } } diff --git a/Reportapi/MyCode.Project.Services/MyCode.Project.Services.csproj b/Reportapi/MyCode.Project.Services/MyCode.Project.Services.csproj index e16da45..b4b61b2 100644 --- a/Reportapi/MyCode.Project.Services/MyCode.Project.Services.csproj +++ b/Reportapi/MyCode.Project.Services/MyCode.Project.Services.csproj @@ -122,6 +122,7 @@ + diff --git a/Reportapi/MyCode.Project.WebApi/Controllers/TestController.cs b/Reportapi/MyCode.Project.WebApi/Controllers/TestController.cs index c0f445f..2b66f25 100644 --- a/Reportapi/MyCode.Project.WebApi/Controllers/TestController.cs +++ b/Reportapi/MyCode.Project.WebApi/Controllers/TestController.cs @@ -12,12 +12,25 @@ namespace MyCode.Project.WebApi.Controllers /// public class TestController : BaseAPIController { - private IJackYunService _jackYunService; - public TestController(IJackYunService jackYunService ) + + private IJackYunTaskService _jackYunTaskService; + public TestController(IJackYunTaskService jackYunTaskService) { - _jackYunService = jackYunService; + _jackYunTaskService = jackYunTaskService; } + #region 调度运行抓吉客云销售订单 + + /// + /// 调度运行抓吉客云销售订单 + /// + [HttpGet] + [AllowAnonymous] + public void TaskGetJackYunOrder(string now) + { + _jackYunTaskService.TaskGetJackYunOrder(now); + } + #endregion //#region 订单查询 @@ -34,18 +47,18 @@ namespace MyCode.Project.WebApi.Controllers - #region 订单查询 + //#region 订单查询 - /// - /// 订单查询2 - /// - [HttpGet] - [AllowAnonymous] - public List testTradeFullInfoGet(DateTime now) - { - return _jackYunService.testTradeFullInfoGet(now); - } - #endregion + ///// + ///// 订单查询2 + ///// + //[HttpGet] + //[AllowAnonymous] + //public List testTradeFullInfoGet(DateTime now) + //{ + // return _jackYunService.testTradeFullInfoGet(now); + //} + //#endregion //#region AESEncrypt(AES加密) ///// diff --git a/Reportapi/MyCode.Project.WebApi/Web.config b/Reportapi/MyCode.Project.WebApi/Web.config index af28f3d..2473d61 100644 --- a/Reportapi/MyCode.Project.WebApi/Web.config +++ b/Reportapi/MyCode.Project.WebApi/Web.config @@ -25,8 +25,8 @@ - - + +