コード例 #1
0
        /// <summary>
        /// 记录外卖信息
        /// </summary>
        /// <param name="db"></param>
        /// <param name="shop"></param>
        /// <param name="memberId"></param>
        /// <param name="takeWay"></param>
        /// <param name="pickupTime"></param>
        public void RecordTakeout(ShopDbContext db, Shop shop, int memberId, TakeWay takeWay, DateTime?pickupTime)
        {
            ShopOrderTakeout takeout = null;

            takeout = new ShopOrderTakeout()
            {
                ShopOrderId = mShopOrder.Id,
                MemberId    = memberId,
                TakeWay     = takeWay
            };
            if (takeout.TakeWay == TakeWay.送货上门)
            {
                var memberAddress = db.Query <MemberAddress>()
                                    .Where(m => !m.IsDel && m.IsUsed)
                                    .Where(m => m.MemberId == memberId)
                                    .FirstOrDefault();
                if (memberAddress == null)
                {
                    throw new Exception("请先设置配送地址");
                }
                if (!pickupTime.HasValue)
                {
                    throw new Exception("预计配送时间不能为空");
                }
                memberAddress.CheckIsInScope(db, shop);
                takeout.Address   = memberAddress.Detail;
                takeout.Phone     = memberAddress.Phone;
                takeout.Name      = memberAddress.Name;
                takeout.Sex       = memberAddress.Sex;
                takeout.Longitude = memberAddress.Longitude;
                takeout.Latitude  = memberAddress.Latitude;
            }
            else if (takeout.TakeWay == TakeWay.自提)
            {
                if (!pickupTime.HasValue)
                {
                    throw new Exception("自提时间不能为空");
                }
            }
            takeout.PickupTime = pickupTime.Value;
            db.AddTo(takeout);
        }
コード例 #2
0
        public APIResult <GetSingleModel> GetSingle([FromBody] IdArgsModel args)
        {
            var memberId = GetMemberId();
            var model    = db.Query <ShopOrder>()
                           .Where(m => !m.IsDel)
                           .Where(m => m.MemberId == memberId)
                           .Where(m => m.Id == args.Id)
                           .FirstOrDefault();

            if (model == null)
            {
                throw new Exception("指定纪录不存在");
            }

            var items = db.Query <ShopOrderItem>()
                        .Where(m => !m.IsDel)
                        .Where(m => m.ShopOrderId == model.Id)
                        .ToList();

            string title = null, orderStatus = null;

            if (model.ShopPartId.HasValue)
            {
                title = db.GetSingle <ShopPart>(model.ShopPartId.Value)?.Title;
            }
            string            takeway, address = null, name = null, phone = null, orderTitle = null, selfHelpNumber = null;
            ShopOrderTakeout  takeout = null;
            ShopOrderOtherFee otherFee = null;

            if (model.IsTakeOut)
            {
                orderTitle = "外卖单";
                takeout    = db.Query <ShopOrderTakeout>()
                             .Where(m => !m.IsDel && m.ShopOrderId == model.Id)
                             .FirstOrDefault();
                if (takeout == null)
                {
                    takeway = "外卖";
                }
                else
                {
                    takeway     = takeout.TakeWay.ToString();
                    address     = takeout.Address;
                    name        = takeout.Name;
                    phone       = takeout.Phone;
                    orderStatus = takeout.Status.ToString();
                }
            }
            else if (model.ShopOrderSelfHelpId.HasValue)
            {
                orderTitle = "自助点餐";
                var selfHelp = db.Set <ShopOrderSelfHelp>().Find(model.ShopOrderSelfHelpId.Value);
                if (selfHelp.IsTakeOut)
                {
                    takeway = "外带";
                }
                else
                {
                    takeway = "堂食";
                }
                orderStatus    = model.Status.ToString();
                selfHelpNumber = selfHelp.Number;
            }
            else
            {
                orderTitle  = "堂食点餐";
                orderStatus = model.Status.ToString();
                takeway     = "堂食点餐";
            }

            if (model.OtherFeeId.HasValue)
            {
                otherFee = db.Set <ShopOrderOtherFee>().Find(model.OtherFeeId.Value);
            }

            return(Success(new GetSingleModel
            {
                Takeway = takeway,
                Address = address,
                OrderStatus = orderStatus,
                Name = name,
                Phone = phone,
                OrderTitle = orderTitle,
                SelfHelpNumber = selfHelpNumber,
                Title = title,
                OtherFee = otherFee,
                ExpectTitle = takeout?.TakeWay == TakeWay.自提 ? "预计自提时间" : "期望配送时间",
                ExpectTime = takeout?.PickupTime.ToString("HH:mm"),
                Order = model,
                Items = items
            }));
        }