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