This commit is contained in:
2025-07-08 20:10:02 +08:00
parent 2c7dc97d5f
commit a9193e1f3f
10 changed files with 151 additions and 61 deletions

View File

@@ -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");
/// <summary>
/// 请求开放平台服务
/// </summary>
@@ -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
/// <exception cref="BaseException"></exception>
public List<TradesItem> 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;
}

View File

@@ -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()
/// <summary>
/// 调度运行抓吉客云销售订单
/// </summary>
/// <param name="now"></param>
public void TaskGetJackYunOrder(string now)
{
DateTime runTime = DateTime.Parse(now);
var list = _jackYunService.testTradeFullInfoGet(runTime);
SetOrder(list);
}
#endregion
#region SetOrder()
/// <summary>
/// 把吉客云订单存进本地数据库
/// </summary>
/// <param name="trades"></param>
[TransactionCallHandler]
public void SetOrder(List<TradesItem> 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<JackOrders> jackOrdersList = new List<JackOrders>();
List<JackOrdersItem> ordersItemList = new List<JackOrdersItem>();
trades.ForEach(t =>
{
JackOrders jackOrders = new JackOrders();
jackOrders = AutoMapperHelper.AutoMappToSingle<JackOrders, TradesItem>(t);
jackOrders.Id = Guid.NewGuid();
jackOrders.Status = 0;
jackOrders.UpdateTime = DateTime.Now;
jackOrders.CreateTime = DateTime.Now;
if (t.goodsDetail != null)
{
var items = AutoMapperHelper.AutoMappToList<JackOrdersItem, GoodsDetailItem>(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<JackOrders, TradesItem>(t);
jackOrders.Id = Guid.NewGuid();
var items = AutoMapperHelper.AutoMappToList<JackOrdersItem, GoodsDetailItem>(t.goodsDetail);
items.ForEach(k =>k.JackOrdersId = jackOrders.Id);
//还要去重才能保存
_jackOrdersRepository.Add(jackOrders);
_jackOrdersItemRepository.Add(items);
});
_jackOrdersRepository.Add(jackOrdersList);
_jackOrdersItemRepository.Add(ordersItemList);
}
}
#endregion
}
}