collect_store_provider.dart 9.42 KB
import 'package:flutter/material.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:provider/provider.dart';

import '../app.dart';
import '../constant/constant.dart';
import '../constant/error.dart';
import '../models/seller_version_model.dart';
import '../net/base_resp.dart';
import '../net/dio_util.dart';
import '../net/http_url.dart';
import '../utils/utils.dart';

class CollectStoreProvider with ChangeNotifier {
  List<SellerVersionSunModel> sellerVersionList = [];

  bool sellerCoupon = false; //优惠券营销
  bool sellerRecharge = false; //储值营销
  bool sellerWine = false; //存酒
  bool sellerOrderCustomer = false; //用户提前点餐
  bool sellerOrderManager = false; //经理排菜
  bool sellerFeast = false; //宴会
  bool sellerPreserve = false; //客情维护
  bool sellerMarketing = false; //客情营销
  bool sellerNormal = false; //超能或者标准
  bool sellerSimple = false; //极速版

  String sellerNormalEdate = '';

  /// 收集店铺信息
  Future<dynamic> setSellerCollect(
      BuildContext context, Map<String, String> params,
      {isShowLoading = true}) async {
    BaseResp<dynamic> baseResp = await DioUtil()
        .request<dynamic>(context, Method.get, HttpUrl.set_seller_collect,
            data: params, showLoading: isShowLoading)
        .catchError((error) {
      print(error.toString());
      if (error is MyError) {}
      return false;
    });
    if (baseResp.code == Constant.status_success) {
      // if (baseResp.data == 1) {
      // rid = baseResp.data['id'];
      return true;
      // } else {
      //   return false;
      // }
    } else {
      if (baseResp != null) {
        Utils.showToast(baseResp.msg ?? "");
      }
      return false;
    }
  }

  ///  发送意向店铺通知短信
  Future<dynamic> sendIntention(
      BuildContext context, Map<String, String> params,
      {isShowLoading = true}) async {
    BaseResp<dynamic> baseResp = await DioUtil()
        .request<dynamic>(context, Method.get, HttpUrl.send_intention,
            data: params, showLoading: isShowLoading)
        .catchError((error) {
      print(error.toString());
      if (error is MyError) {}
      return false;
    });
    if (baseResp.code == Constant.status_success) {
      // if (baseResp.data == 1) {
      // rid = baseResp.data['id'];
      return true;
      // } else {
      //   return false;
      // }
    } else {
      if (baseResp != null) {
        Utils.showToast(baseResp.msg ?? "");
      }
      return false;
    }
  }

  // 获取商家的版本信息
  Future<bool> getSellerVersion(BuildContext context,
      {bool showLoading = true}) async {
    Map<String, String> params = {
      'sellerid': Provider.of<UserModel>(context, listen: false).user.sellerid
    };
    BaseResp<dynamic> baseResp = await DioUtil()
        .request<dynamic>(context, Method.get, HttpUrl.get_seller_version,
            data: params, showLoading: showLoading)
        .catchError((error) {
      print(error.toString());
      Utils.showToast('请求失败,请重试');
      return false;
    });
    if (baseResp.code == Constant.status_success) {
      sellerVersionList =
          SellerVersionModel.fromJson(baseResp.responseData).data;
      if (sellerVersionList != null && sellerVersionList.length > 0) {
        List<String> versionCodeList = [];
        sellerVersionList.forEach((element) {
          versionCodeList.add(element.vid);
        });

        if (Constant.normalApp) {
          sellerCoupon = versionCodeList.any((element) =>
              element == '1' ||
              element == '2' ||
              element == '3' ||
              element == '8' ||
              element == '15' ||
              element == '16' ||
              element == '17');

          sellerRecharge = versionCodeList.any((element) =>
              element == '1' ||
              element == '2' ||
              element == '3' ||
              element == '9');

          sellerWine = versionCodeList.any((element) =>
              element == '1' ||
              element == '2' ||
              element == '3' ||
              element == '7');

          sellerOrderCustomer = versionCodeList.any((element) =>
              element == '1' ||
              element == '2' ||
              element == '3' ||
              element == '6');
          sellerOrderManager = versionCodeList.any((element) =>
              element == '1' ||
              element == '2' ||
              element == '3' ||
              element == '5');
          sellerFeast = versionCodeList.any((element) =>
              element == '1' ||
              element == '2' ||
              element == '3' ||
              element == '12');
          sellerPreserve = versionCodeList.any((element) =>
              element == '1' ||
              element == '2' ||
              element == '3' ||
              element == '10' ||
              element == '15' ||
              element == '16' ||
              element == '17');
          sellerMarketing = versionCodeList.any((element) =>
              element == '1' ||
              element == '2' ||
              element == '3' ||
              element == '11' ||
              element == '15' ||
              element == '16' ||
              element == '17');

          sellerNormal = versionCodeList.any((element) =>
              element == '1' ||
              element == '2' ||
              element == '3' ||
              element == '4' ||
              element == '13' ||
              element == '15' ||
              element == '16' ||
              element == '17');
          sellerVersionList.forEach((element) {
            if (element.vid == '1' ||
                element.vid == '2' ||
                element.vid == '3' ||
                element.vid == '4' ||
                element.vid == '13') {
              sellerNormalEdate = element.edate;
            }
          });
          if (!sellerNormal) {
            //超能版或者标准版过期
            App.sp.setStringList("sellerEdate", ['-1']);
          } else {
            if (App.sp.containsKey("sellerEdate")) {
              App.sp.remove("sellerEdate");
            }
          }
        } else {
          sellerSimple = versionCodeList.any((element) => element == '14');

          if (sellerSimple) {
            //极速版
            if (App.sp.containsKey("sellerEdate")) {
              App.sp.remove("sellerEdate");
            }
          } else {
            sellerCoupon = versionCodeList.any((element) =>
                element == '1' ||
                element == '2' ||
                element == '3' ||
                element == '8' ||
                element == '15' ||
                element == '16' ||
                element == '17');

            sellerRecharge = versionCodeList.any((element) =>
                element == '1' ||
                element == '2' ||
                element == '3' ||
                element == '9');

            sellerWine = versionCodeList.any((element) =>
                element == '1' ||
                element == '2' ||
                element == '3' ||
                element == '7');

            sellerOrderCustomer = versionCodeList.any((element) =>
                element == '1' ||
                element == '2' ||
                element == '3' ||
                element == '6');
            sellerOrderManager = versionCodeList.any((element) =>
                element == '1' ||
                element == '2' ||
                element == '3' ||
                element == '5');
            sellerFeast = versionCodeList.any((element) =>
                element == '1' ||
                element == '2' ||
                element == '3' ||
                element == '12');
            sellerPreserve = versionCodeList.any((element) =>
                element == '1' ||
                element == '2' ||
                element == '3' ||
                element == '10' ||
                element == '15' ||
                element == '16' ||
                element == '17');
            sellerMarketing = versionCodeList.any((element) =>
                element == '1' ||
                element == '2' ||
                element == '3' ||
                element == '11' ||
                element == '15' ||
                element == '16' ||
                element == '17');

            sellerNormal = versionCodeList.any((element) =>
                element == '1' ||
                element == '2' ||
                element == '3' ||
                element == '4' ||
                element == '13' ||
                element == '15' ||
                element == '16' ||
                element == '17');
            sellerVersionList.forEach((element) {
              if (element.vid == '1' ||
                  element.vid == '2' ||
                  element.vid == '3' ||
                  element.vid == '4' ||
                  element.vid == '13') {
                sellerNormalEdate = element.edate;
              }
            });

            if (!sellerNormal) {
              //超能版或者标准版过期
              App.sp.setStringList("sellerEdate", ['-1']);
            } else {
              if (App.sp.containsKey("sellerEdate")) {
                App.sp.remove("sellerEdate");
              }
            }
          }
        }
      } else {
        //超能版或者标准版过期  && 极速版也没有
        App.sp.setStringList("sellerEdate", ['-1']);
      }

      return true;
    } else {
      Utils.showToast(baseResp.msg ?? '请求失败,请重试');
    }
    return false;
  }
}