public APIResult UpdateMoneyOffCache() { using (ShopDbContext db = DbContextFactory.ShopDb) { DateTime now = DateTime.Now.Date; var moneyOffList = db.Query <ShopOrderMoneyOff>() .Where(m => !m.IsDel) .Where(m => m.EndDate >= now) .Where(m => m.StartDate <= now) .ToList(); var moneyOffCacheList = db.Set <ShopOrderMoneyOffCache>() .Where(m => !m.IsDel); var moneyOffFromCache = moneyOffCacheList.Select(m => m.ShopOrderMoneyOff).ToList(); //新增部分 List <ShopOrderMoneyOff> inCreased = moneyOffList.Except(moneyOffFromCache).ToList(); foreach (var item in inCreased) { ShopOrderMoneyOffCache model = new ShopOrderMoneyOffCache() { ShopId = item.ShopId, MoneyOffId = item.Id, IsDel = false }; db.AddTo(model); } //减少部分 var reduceIDs = moneyOffFromCache.Except(moneyOffList).Select(m => m.Id); var reduceCacheList = db.Query <ShopOrderMoneyOffCache>() .Where(m => reduceIDs.Contains(m.MoneyOffId)).ToList(); foreach (var item in reduceCacheList) { item.IsDel = true; } db.SaveChanges(); } DbContextFactory.LogDbContext.AddTaskLog(new TaskLog() { AddTime = DateTime.Now, TaskName = "UpdateMoneyOffCache", ExeResult = "ok" }); return(Success("ok")); }
public static void UpdateMoneyOffCache() { //TODO:未能获取依赖注入容器中的对象,此处为缓兵之计 var _contextOptions = new DbContextOptionsBuilder <ShopDbContext>() .UseMySql("Server=120.79.31.209;Port=3336;Uid=root;Pwd=628VqB2sgJwLgOvngXQ3;Database=hchh;") .Options; using (ShopDbContext db = new ShopDbContext(_contextOptions)) { DateTime now = DateTime.Now.Date; var moneyOffList = db.Query <ShopOrderMoneyOff>() .Where(m => !m.IsDel) .Where(m => m.EndDate >= now) .Where(m => m.StartDate <= now) .ToList(); var moneyOffCacheList = db.Set <ShopOrderMoneyOffCache>() .Where(m => !m.IsDel); var moneyOffFromCache = moneyOffCacheList.Select(m => m.ShopOrderMoneyOff).ToList(); //新增部分 List <ShopOrderMoneyOff> inCreased = moneyOffList.Except(moneyOffFromCache).ToList(); foreach (var item in inCreased) { ShopOrderMoneyOffCache model = new ShopOrderMoneyOffCache() { ShopId = item.ShopId, MoneyOffId = item.Id, IsDel = false }; db.AddTo(model); } //减少部分 var reduceIDs = moneyOffFromCache.Except(moneyOffList).Select(m => m.Id); var reduceCacheList = db.Query <ShopOrderMoneyOffCache>() .Where(m => reduceIDs.Contains(m.MoneyOffId)).ToList(); foreach (var item in reduceCacheList) { item.IsDel = true; } db.SaveChanges(); } }
public APIResult Add([FromBody] AddArgs args) { if (args.ShopId == 0) { throw new ArgumentNullException("ShopId"); } if (!args.StartDate.HasValue) { throw new ArgumentNullException("StartDate"); } if (!args.EndDate.HasValue) { throw new ArgumentNullException("EndDate"); } if (args.Items.Count == 0) { throw new Exception("请输入具体规则"); } CheckShopActor(args.ShopId, ShopActorType.超级管理员); ShopOrderMoneyOff shopOrderMoneyOff = new ShopOrderMoneyOff() { Name = args.Name, StartDate = args.StartDate.Value.Date, EndDate = args.EndDate.Value.Date, ShopId = args.ShopId, IsScanCode = args.IsScanCode, IsSelfOrder = args.IsSelfOrder, IsTakeout = args.IsTakeout, IsEnable = true, IsDel = false }; db.AddTo(shopOrderMoneyOff); db.SaveChanges(); //若在优惠期间,则开始优惠 DateTime now = DateTime.Now.Date; if (now >= shopOrderMoneyOff.StartDate.Value && now <= shopOrderMoneyOff.EndDate.Value) { ShopOrderMoneyOffCache cache = new ShopOrderMoneyOffCache() { ShopId = shopOrderMoneyOff.ShopId, MoneyOffId = shopOrderMoneyOff.Id }; db.AddTo(cache); } foreach (var item in args.Items) { ShopOrderMoneyOffRule rule = new ShopOrderMoneyOffRule() { MoneyOffId = shopOrderMoneyOff.Id, FullAmount = (int)Math.Floor(item.FullAmount * 100), Discount = (int)Math.Floor(item.Discount * 100), IsDel = false }; db.AddTo(rule); } db.SaveChanges(); return(Success()); }