public async Task <IActionResult> GetBookMealListAsync(GetBookMealListAsyncRequestDto request) { if (string.IsNullOrWhiteSpace(request.HospitalGuid)) { var userModel = await new MealOperatorBiz().GetModelAsync(UserID); if (userModel == null) { return(Failed(ErrorCode.DataBaseError, "无法获取医院所在信息!")); } request.HospitalGuid = userModel.HospitalGuid; } //做分组等 var responseList = await new MealMenuBiz().GetBookMealListAsync(request); var responseGroup = responseList.GroupBy(a => a.CategoryName); List <GetBookMealListAsyncReturnResponseDto> returnResponse = new List <GetBookMealListAsyncReturnResponseDto>(); foreach (var item in responseGroup) { var firstOrDefault = item.FirstOrDefault(); string[] hoursArr = firstOrDefault.CategoryScheduleTime.Trim().Split(":"); int housrs = Convert.ToInt32(hoursArr[0]); int minute = Convert.ToInt32(hoursArr[1]); var expirationDateTime = firstOrDefault.MealDate.Value.AddDays(-firstOrDefault.CategoryAdvanceDay).AddHours(housrs).AddMinutes(minute); bool isBigger = expirationDateTime > DateTime.Now; var resp = new GetBookMealListAsyncReturnResponseDto { CategoryGuid = firstOrDefault.CategoryGuid, CategoryName = firstOrDefault.CategoryName, CategoryAdvanceDay = firstOrDefault.CategoryAdvanceDay, CategoryScheduleTime = firstOrDefault.CategoryScheduleTime, HosName = firstOrDefault.HosName, MenuDate = firstOrDefault.MealDate, IsExpirationBook = isBigger }; var respDetailList = new List <GetBookMealListAsyncReturnResponseDto.BookedDishesInfo>(); foreach (var detail in item) { var respDetail = new GetBookMealListAsyncReturnResponseDto.BookedDishesInfo { DishesGuid = detail.DishesGuid, DishesName = detail.DishesName, BookedTotal = detail.BookedTotal }; respDetailList.Add(respDetail); } resp.BookedDishesInfoList = respDetailList; returnResponse.Add(resp); } return(Success(returnResponse)); }
/// <summary> /// 根据获取已选餐 /// </summary> /// <param name=""></param> /// <returns></returns> public async Task <List <GetBookMealListAsyncResponseDto> > GetBookMealListAsync(GetBookMealListAsyncRequestDto request) { string sql = $@"SELECT dh.hos_name, a.meal_date, b.dishes_guid, b.dishes_name, a.category_guid, a.category_name, mc.category_advance_day, mc.category_schedule_time, SUM( b.quantity ) AS BookedTotal FROM t_meal_order AS a LEFT JOIN t_meal_order_detail b ON a.order_guid = b.order_guid AND a.`enable` = b.`enable` LEFT JOIN t_meal_category AS mc ON a.category_guid = mc.category_guid LEFT JOIN t_doctor_hospital AS dh ON a.hospital_guid = dh.hospital_guid WHERE a.order_status = 'Paided' AND a.meal_date =@Date AND a.hospital_guid = @HospitalGuid GROUP BY dh.hos_name, a.meal_date, b.dishes_guid, b.dishes_name, a.category_guid, a.category_name, mc.category_advance_day, mc.category_schedule_time " ; //AND mm.ENABLE = 1 using (var conn = MySqlHelper.GetConnection()) { return((await conn.QueryAsync <GetBookMealListAsyncResponseDto>(sql, new { Date = request.Date.Value.ToString("yyyy/MM/dd"), request.HospitalGuid })).ToList()); } }