Exemple #1
0
        public static ShopOrderMoneyOffRule GetMoneyOffRule(this ShopDbContext db, string shopFlag, int Amount, MoneyOffType moneyOffType)
        {
            var shop = db.Query <Shop>()
                       .Where(m => m.Flag == shopFlag)
                       .FirstOrDefault();

            return(db.GetMoneyOffRule(shop.Id, Amount, moneyOffType));
        }
Exemple #2
0
        public static ShopOrderMoneyOffCache GetMoneyOffRuleCache(this ShopDbContext db, int shopId, MoneyOffType moneyOffType)
        {
            var query = db.Query <ShopOrderMoneyOffCache>()
                        .Where(m => !m.IsDel)
                        .Where(m => m.ShopId == shopId)
                        .Where(m => m.ShopOrderMoneyOff.IsEnable);

            switch (moneyOffType)
            {
            case MoneyOffType.堂食:
                query = query.Where(m => m.ShopOrderMoneyOff.IsScanCode);
                break;

            case MoneyOffType.外卖:
                query = query.Where(m => m.ShopOrderMoneyOff.IsTakeout);
                break;

            case MoneyOffType.自助:
                query = query.Where(m => m.ShopOrderMoneyOff.IsSelfOrder);
                break;

            default:
                break;
            }
            return(query.FirstOrDefault());
        }
Exemple #3
0
        public static ShopOrderMoneyOffRule GetMoneyOffRule(this ShopDbContext db, int shopId, int Amount, MoneyOffType moneyOffType)
        {
            var moneyOffCache = db.GetMoneyOffRuleCache(shopId, moneyOffType);

            if (moneyOffCache != null)
            {
                var rules = db.Query <ShopOrderMoneyOffRule>()
                            .Where(m => m.MoneyOffId == moneyOffCache.MoneyOffId)
                            .OrderByDescending(m => m.FullAmount)
                            .ToList();
                int fullAmonut;
                foreach (var item in rules)
                {
                    fullAmonut = item.FullAmount;
                    if (Amount >= fullAmonut)
                    {
                        return(item);
                    }
                }
            }
            return(null);
        }