using MyCode.Project.Domain.Model; 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; using System.Text; using System.Threading.Tasks; namespace MyCode.Project.Services.Implementation { public class JackYunTaskService : ServiceBase , IJackYunTaskService { private IJackYunService _jackYunService; private IJackOrdersRepository _jackOrdersRepository; private IJackOrdersItemRepository _jackOrdersItemRepository; public JackYunTaskService(IJackOrdersRepository jackOrdersRepository , IJackOrdersItemRepository jackOrdersItemRepository ,IJackYunService jackYunService) { _jackOrdersRepository = jackOrdersRepository; _jackOrdersItemRepository = jackOrdersItemRepository; _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) { _jackOrdersRepository.Add(jackOrdersList); _jackOrdersItemRepository.Add(ordersItemList); } } #endregion } }