7 changed files with 132 additions and 4 deletions
@ -0,0 +1,62 @@ |
|||||
|
using BBWY.Common.Http; |
||||
|
using BBWY.Common.Models; |
||||
|
using BBWY.Server.Model; |
||||
|
using BBWY.Server.Model.Db; |
||||
|
using BBWY.Server.Model.Dto; |
||||
|
using Microsoft.Extensions.Options; |
||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using Yitter.IdGenerator; |
||||
|
|
||||
|
namespace BBWY.Server.Business |
||||
|
{ |
||||
|
public class StoreHouseWarningBusiness : BaseSyncBusiness, IDenpendency |
||||
|
{ |
||||
|
private IList<Enums.StorageType> validStorageTypeList; |
||||
|
|
||||
|
public StoreHouseWarningBusiness(RestApiService restApiService, IOptions<GlobalConfig> options, NLogManager nLogManager, IFreeSql fsql, IIdGenerator idGenerator, TaskSchedulerManager taskSchedulerManager, VenderBusiness venderBusiness, YunDingBusiness yunDingBusiness) : base(restApiService, options, nLogManager, fsql, idGenerator, taskSchedulerManager, venderBusiness, yunDingBusiness) |
||||
|
{ |
||||
|
validStorageTypeList = new List<Enums.StorageType>() { |
||||
|
Enums.StorageType.云仓, |
||||
|
Enums.StorageType.京仓, |
||||
|
Enums.StorageType.本地自发 |
||||
|
}; |
||||
|
} |
||||
|
|
||||
|
public void StartCheckStockNum() |
||||
|
{ |
||||
|
var shopList = venderBusiness.GetShopList(filterTurnoverDays: true); |
||||
|
foreach (var shop in shopList) |
||||
|
{ |
||||
|
CheckStockNum(shop); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
private void CheckStockNum(ShopResponse shop) |
||||
|
{ |
||||
|
long shopId = long.Parse(shop.ShopId); |
||||
|
var yesterDayDate = DateTime.Now.Date.AddDays(-1); |
||||
|
var ysterDayTime = DateTime.Now.Date.AddSeconds(-1); |
||||
|
var yesterDaySkuIds = fsql.Select<SkuDailySalesDetail, OrderSku, Order>() |
||||
|
.InnerJoin((s, osku, o) => s.Sku == osku.SkuId) |
||||
|
.InnerJoin((s, osku, o) => osku.OrderId == o.Id) |
||||
|
.Where((s, osku, o) => s.ShopId == shopId && |
||||
|
s.Date == yesterDayDate && |
||||
|
s.IsGift == false && |
||||
|
s.ItemTotal > s.CancelItemTotal && |
||||
|
o.StartTime >= yesterDayDate && |
||||
|
o.StartTime <= ysterDayTime && |
||||
|
validStorageTypeList.Contains(o.StorageType.Value)) |
||||
|
.Distinct() |
||||
|
.ToList((s, osku, o) => s.Sku); |
||||
|
|
||||
|
var queryStartDate = DateTime.Now.Date.AddDays(-9); |
||||
|
var skuSaleDailyList = fsql.Select<SkuDailySalesDetail>() |
||||
|
.Where(s => s.Date >= queryStartDate && s.Date <= yesterDayDate) |
||||
|
.Where(s => yesterDaySkuIds.Contains(s.Sku)) |
||||
|
.ToList(); |
||||
|
|
||||
|
|
||||
|
} |
||||
|
} |
||||
|
} |
Loading…
Reference in new issue