示例#1
0
 public AdminController(
     CydcContext db,
     UserManager userManager)
 {
     _db          = db;
     _userManager = userManager;
 }
示例#2
0
        public async Task <PagedResult <FoodOrderDto> > DoQuery(CydcContext db)
        {
            IQueryable <FoodOrder> rawQuery = db.FoodOrder;

            if (!String.IsNullOrEmpty(UserName))
            {
                rawQuery = rawQuery.Where(x => x.OrderUser.UserName.Contains(UserName));
            }
            if (StartTime != null)
            {
                rawQuery = rawQuery.Where(x => x.OrderTime >= StartTime.Value);
            }
            if (EndTime != null)
            {
                rawQuery = rawQuery.Where(x => x.OrderTime < EndTime.Value);
            }
            if (IsPayed != null)
            {
                rawQuery = rawQuery.Where(x => (x.FoodOrderPayment != null) == IsPayed.Value);
            }
            if (LocationId != null)
            {
                rawQuery = rawQuery.Where(x => x.LocationId == LocationId.Value);
            }
            if (TasteId != null)
            {
                rawQuery = rawQuery.Where(x => x.TasteId == TasteId.Value);
            }

            var query = FoodOrderDto.FromFoodOrder(rawQuery).ToSorted(this);

            return(await query.ToPagedResultAsync(this));
        }
示例#3
0
        public async Task <PagedResult <MenuDto> > DoQuery(CydcContext db)
        {
            IQueryable <MenuDto> query = db.FoodMenu
                                         .Select(x => new MenuDto
            {
                Id         = x.Id,
                CreateTime = x.CreateTime,
                Details    = x.Details,
                Title      = x.Title,
                Enabled    = x.Enabled,
                Price      = x.Price,
                OrderCount = x.FoodOrder.Count,
            }).ToSorted(this);

            if (!String.IsNullOrEmpty(Details))
            {
                query = query.Where(x => x.Details.Contains(Details));
            }
            if (Price != null)
            {
                query = query.Where(x => x.Price == Price.Value);
            }
            if (StartTime != null)
            {
                query = query.Where(x => x.CreateTime >= StartTime.Value);
            }
            if (EndTime != null)
            {
                query = query.Where(x => x.CreateTime < EndTime.Value);
            }

            return(await query.ToPagedResultAsync(this));
        }
示例#4
0
        public Task <PagedResult <AdminUserDto> > DoQuery(CydcContext db)
        {
            IQueryable <AdminUserDto> query = db.Users
                                              .Select(x => new AdminUserDto
            {
                Id         = x.Id,
                Name       = x.UserName,
                Email      = x.Email,
                Phone      = x.PhoneNumber,
                Balance    = x.AccountDetails.Sum(a => a.Amount),
                OrderCount = x.FoodOrder.Count,
            }).ToSorted(this);

            if (!string.IsNullOrWhiteSpace(Name))
            {
                query = query.Where(x => x.Name.Contains(Name));
            }
            if (!string.IsNullOrWhiteSpace(Email))
            {
                query = query.Where(x => x.Email.Contains(Email));
            }
            if (!string.IsNullOrWhiteSpace(Phone))
            {
                query = query.Where(x => x.Phone.Contains(Phone));
            }
            query = ByOperator(query, Operator);

            return(query.ToPagedResultAsync(this));
        }
示例#5
0
        public async Task <FoodOrder> Create(CydcContext db, int userId, FoodOrderClientInfo clientInfo)
        {
            var menu = await db.FoodMenu.FindAsync(MenuId);

            var dateNow   = DateTime.Now;
            var foodOrder = new FoodOrder
            {
                OrderUserId         = userId,
                OrderTime           = dateNow,
                LocationId          = AddressId,
                FoodMenuId          = MenuId,
                TasteId             = TasteId,
                Comment             = Comment,
                FoodOrderClientInfo = clientInfo,
            };

            foodOrder.AccountDetails.Add(new AccountDetails
            {
                UserId     = userId,
                CreateTime = dateNow,
                Amount     = -menu.Price
            });
            db.Add(foodOrder);
            await db.SaveChangesAsync();

            decimal amount = await db.AccountDetails.Where(x => x.UserId == userId).SumAsync(x => x.Amount);

            if (amount >= 0)
            {
                await AutoPay(db, foodOrder);
            }
            return(foodOrder);
        }
示例#6
0
 public FoodOrderController(
     CydcContext db,
     IHttpContextAccessor httpContextAccessor,
     IHubContext <NewOrderHub, NewOrderHubClient> newOrderHubContext)
 {
     _db = db;
     _httpContextAccessor = httpContextAccessor;
     _newOrderHubContext  = newOrderHubContext;
 }
示例#7
0
 public SmsController(
     IOptions <TencentSmsConfig> smsOptions,
     IOptions <TencentSmsTemplateConfig> smsTemplateOptions,
     CydcContext db)
 {
     _smsConfig         = smsOptions.Value;
     _smsTemplateConfig = smsTemplateOptions.Value;
     _db = db;
 }
示例#8
0
        private async Task <int> AutoPay(CydcContext db, FoodOrder order)
        {
            order = await db.FoodOrder
                    .Include(x => x.FoodOrderPayment)
                    .SingleAsync(x => x.Id == order.Id);

            order.FoodOrderPayment = new FoodOrderPayment
            {
                PayedTime = DateTime.Now
            };
            return(await db.SaveChangesAsync());
        }
示例#9
0
 public ReportController(
     CydcContext db)
 {
     _db = db;
 }
示例#10
0
 public DataManageController(CydcContext db)
 {
     _db = db;
 }
示例#11
0
 public AdminMenuController(CydcContext db)
 {
     _db = db;
 }
示例#12
0
 public InfoController(CydcContext db)
 {
     _db = db;
 }