/// <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); }
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 })); }