/// <summary> /// 扫码取餐 /// </summary> /// <param name="request"></param> /// <returns></returns> public async Task <List <ScanToGetDisheAsyncResponseDto> > ScanToGetDisheAsync(ScanToGetDisheAsyncRequestDto request) { var sql = $@" "; using (var conn = MySqlHelper.GetConnection()) { return((await conn.QueryAsync <ScanToGetDisheAsyncResponseDto>(sql, new { })).ToList()); } }
public async Task <IActionResult> ScanToGetDisheAsync(ScanToGetDisheAsyncRequestDto request) { var orderModel = await new MealOrderBiz().GetModelAsync(request.OrderGuid); if (orderModel == null) { return(Failed(ErrorCode.DataBaseError, "查询不到订单信息,请检查!")); } if (!orderModel.OrderStatus.ToString().ToLower().Equals(MealOrderStatusEnum.Paided.ToString().ToLower()) || orderModel.Enable == false) { return(Failed(ErrorCode.DataBaseError, "订单状态不可用,请检查!")); } var userModel = await new MealOperatorBiz().GetModelAsync(UserID); if (!orderModel.HospitalGuid.Equals(userModel.HospitalGuid)) { return(Failed(ErrorCode.DataBaseError, "该订单无法在此医院就餐,请检查!")); } var orderDetailModelList = await new MealOrderDetailBiz().GetModelsByOrderGuidAsync(orderModel.OrderGuid); if (orderDetailModelList == null || !orderDetailModelList.Any()) { return(Failed(ErrorCode.DataBaseError, "订单详情信息无数据,请检查!")); } if (DateTime.Now < orderModel.MealStartTime) { return(Failed(ErrorCode.UserData, "还未到就餐时间!")); } if (orderModel.MealEndTime < DateTime.Now) { return(Failed(ErrorCode.UserData, "已过就餐时间!")); } //消费 orderModel.OrderStatus = MealOrderStatusEnum.Completed.ToString(); var IsRightConsume = await new MealOrderBiz().UpdateAsync(orderModel); if (!IsRightConsume) { return(Failed(ErrorCode.DataBaseError, "验证失败,请联系管理员!")); } ScanToGetDisheAsyncResponseDto response = new ScanToGetDisheAsyncResponseDto { OrderGuid = orderModel.OrderGuid, TotalPrice = orderModel.TotalPrice }; List <ScanToGetDisheAsyncResponseDto.MealOrderDetailInfo> detailList = new List <ScanToGetDisheAsyncResponseDto.MealOrderDetailInfo>(); foreach (var item in orderDetailModelList) { var detailModel = new ScanToGetDisheAsyncResponseDto.MealOrderDetailInfo() { DishesGuid = item.DishesGuid, DishesName = item.DishesName, Quantity = item.Quantity, UnitPrice = item.UnitPrice }; detailList.Add(detailModel); } response.DishesDetail = detailList; return(Success(response)); }