public JsonResult CalculateFee(string hospitalId, string resId, FoodRequest[] foods, string supplier, int?dataState, string sendTime)
        {
            //var openApiChannel = OpenApiChannelFactory.GetChannel();
            //var res = openApiChannel.calculateFee(hospitalId, resId, foods);
            if (dataState != OrderState.SCHEDULEDSUCCESS)
            {
                //先判断是否加载餐厅管理平台黑名单餐厅,再判断餐厅是否被拉黑
                if (WebConfigHandler.IsLoadRestaurantData == "1")
                {
                    var baseDataChannel = BaseDataClientChannelFactory.GetChannel();
                    //var resLaheiLIst = baseDataChannel.LoadRestaurantState();
                    //var lahei = resLaheiLIst.Where(p => p.ResId == resId);
                    string alertMessage = "此餐厅已下线,请您重新选择其他餐厅。";
                    var    resLaheiLIst = baseDataChannel.LoadRestaurantState();
                    var    lahei        = resLaheiLIst.Where(p => p.ResId == resId && p.Status == 0);
                    //if (lahei == null || lahei.Count() == 0)
                    //{
                    //    return Json(new { state = 0, txt = alertMessage });
                    //}
                    //else
                    //{
                    //    lahei = lahei.Where(x => x.Status == 0);
                    //}
                    if (lahei.Count() > 0)
                    {
                        return(Json(new { state = 0, txt = alertMessage }));
                    }
                }
            }

            var foodList = new List <iPathFeast.ApiEntity.Food>();

            foreach (var item in foods)
            {
                foodList.Add(new iPathFeast.ApiEntity.Food()
                {
                    foodId   = item.foodId,
                    foodName = item.foodName,
                    count    = Convert.ToInt32(item.count),
                });
            }
            var req = new CalcFeeReq()
            {
                _Channels  = supplier,
                resId      = resId,
                hospitalId = PreApproval.HospitalAddressCode,
                longitude  = WeChatOrderInfo.hospital.Latitude,
                latitude   = WeChatOrderInfo.hospital.Longitude,
                phone      = "",
                foods      = foodList,
                sendTime   = sendTime
            };
            var res = apiClient.CalcFee(req);

            if (res != null)
            {
                return(Json(new { state = 1, data = res }));
            }
            return(Json(new { state = 0, txt = "预算餐费失败!", errCode = 9014 }));
        }
        public JsonResult SaveFood(string resId, string resName, P_FoodItem[] foods, string supplier, string hospitalId, string sendTime)
        {
            //var openApiChannel = OpenApiChannelFactory.GetChannel();
            //var res = openApiChannel.calculateFee(HospitalInfo.hospital, resId, foods.Select(a=> a.ToFoodRequest()).ToArray());
            var foodList = new List <iPathFeast.ApiEntity.Food>();

            foreach (var item in foods)
            {
                var food = item.ToFoodRequest();
                foodList.Add(new iPathFeast.ApiEntity.Food()
                {
                    foodId   = food.foodId,
                    foodName = food.foodName,
                    count    = Convert.ToInt32(food.count),
                    describe = food.describe
                });
            }
            var req = new CalcFeeReq()
            {
                _Channels  = supplier,
                resId      = resId,
                hospitalId = PreApproval.HospitalAddressCode,
                longitude  = "",
                latitude   = "",
                phone      = "",
                foods      = foodList,
                sendTime   = sendTime
            };
            var res = apiClient.CalcFee(req);

            if (res != null)
            {
                var _req = new LoadMenuReq()
                {
                    _Channels  = supplier,
                    resId      = resId,
                    resName    = "",
                    hospitalId = hospitalId,
                    sendTime   = sendTime
                };
                var restaurant = apiClient.LoadMenu(_req);


                var nowfoods = new P_Food()
                {
                    resId      = resId,
                    resName    = resName,
                    resAddress = restaurant.address,
                    resTel     = restaurant.resTel,
                    resLogo    = restaurant.imagePath,
                    foods      = foods,
                    allPrice   = Convert.ToDecimal(res.allPrice),
                    foodFee    = Convert.ToDecimal(res.foodFee),
                    packageFee = Convert.ToDecimal(res.packageFee),
                    sendFee    = Convert.ToDecimal(res.sendFee)
                };

                if (nowfoods.allPrice > WeChatOrderInfo.preApproval.BudgetTotal)
                {
                    return(Json(new { state = 0, txt = "您的订单金额已超出预申请预算,请修改预申请预算或修改订单金额。", errCode = 3874 }));
                }

                //if (WeChatOrderInfo.foods != null && WeChatOrderInfo.details != null
                //    && WeChatOrderInfo.foods.resId != nowfoods.resId)
                //{
                //    WeChatOrderInfo.details.oldDeliverTime = WeChatOrderInfo.details.deliverTime;
                //    WeChatOrderInfo.details.deliverTime = null;
                //}
                WeChatOrderInfo.foods    = nowfoods;
                WeChatOrderInfo.supplier = supplier;
                return(Json(new { state = 1 }));
            }

            return(Json(new { state = 0, txt = "网络接口错误,提交失败!", errCode = 9012 }));
        }