plan_dish_provider.dart 4.1 KB
import 'package:flutter/material.dart';
import 'package:one_key/constant/state.dart';
import 'package:one_key/models/plan_cook_list_model.dart';
import 'package:one_key/net/base_resp.dart';
import 'package:one_key/net/dio_util.dart';
import 'package:one_key/utils/utils.dart';

import '../constant/constant.dart';
import '../constant/error.dart';
import '../models/cookbook_model.dart';
import '../net/http_url.dart';

/**
 * 预排菜
 */
class PlanDishProvider extends ChangeNotifier {
  PageState pageStateHome = PageState.Loading;
  PageState pageState = PageState.Loading;
  PageState pageStateStore = PageState.Success;
  PageState pageStateMine = PageState.Success;
  PageState pageStateMy = PageState.Loading;

  List<MenuModel> menuModel; //菜品数据

  List<SunListPlan> allList = []; //排菜套餐列表--全部
  List<SunListPlan> storeList = []; //排菜套餐列表--店铺
  List<SunListPlan> mineList = []; //排菜套餐列表--我的
  // List<CookbookCategorySunModel> categorySunModel; //菜品分类数据
  // List<CookbookSpecSunModel> specSunModel; //计价单位

  // CookbookOneSunModel cookbookOneSunModel;

  ///分类下所有菜品列表(1.传orderid顾客端获取带订单信息的 否则不传

  getCookbookByClass(BuildContext context, Map<String, String> params,
      {showLoading = false}) async {
    BaseResp<dynamic> baseResp = await DioUtil()
        .request<dynamic>(context, Method.get, HttpUrl.get_cookbook_by_class,
            data: params, showLoading: showLoading)
        .catchError((error) {
      print(error.toString());
      if (error is MyError) {
        switch (error.type) {
          case 1:
            pageState = PageState.ConnectivityError;
            break;
          case 2:
            pageState = PageState.ConnectivityTimeOut;
            break;
          default:
            pageState = PageState.ConnectivityError;
            break;
        }
      }
      notifyListeners();
    });
    menuModel = [];

    if (baseResp != null && baseResp.code == Constant.status_success) {
      if (baseResp.data[0]['list'] == '') {
        pageState = PageState.Empty;
      } else {
        List menu = baseResp.data[0]['list'];
        for (int i = 0; i < menu.length; i++) {
          menuModel.add(MenuModel.fromJson(menu[i]));
        }
        print(menuModel);
        pageState = PageState.Success;
      }
    } else {
      Utils.showToast(baseResp.msg ?? "");
      pageState = PageState.ConnectivityError;
    }
    notifyListeners();
  }

  ///添加排菜/套餐

  Future<bool> setPlanCook(BuildContext context, Map<String, String> params,
      {showLoading = false}) async {
    BaseResp<dynamic> baseResp = await DioUtil()
        .request<dynamic>(context, Method.get, HttpUrl.set_plan_cook,
            data: params, showLoading: showLoading)
        .catchError((error) {
      print(error.toString());
      if (error is MyError) {}
      return false;
    });

    if (baseResp != null && baseResp.code == Constant.status_success) {
      return true;
    } else {
      Utils.showToast(baseResp.msg ?? "");
      return false;
    }
  }

  ///排菜/套餐列表

  Future<bool> getPlanCookList(BuildContext context, Map<String, String> params,
      {showLoading = false}) async {
    BaseResp<dynamic> baseResp = await DioUtil()
        .request<dynamic>(context, Method.get, HttpUrl.get_plan_cook_list,
            data: params, showLoading: showLoading)
        .catchError((error) {
      print(error.toString());
      if (error is MyError) {}
      return false;
    });

    if (baseResp != null && baseResp.code == Constant.status_success) {
      PlanCookListSunModel planCookListSunModel =
          PlanCookListModel.fromJson(baseResp.responseData).data;
      storeList.addAll(planCookListSunModel.packageList);
      mineList.addAll(planCookListSunModel.plancookList);
      allList.addAll(storeList);
      allList.addAll(mineList);
      pageStateHome = PageState.Success;
      pageStateStore = PageState.Success;
      pageStateMine = PageState.Success;
      notifyListeners();
      return true;
    } else {
      Utils.showToast(baseResp.msg ?? "");
      return false;
    }
  }
}