personnel_provider.dart 9.71 KB
import 'package:flutter/material.dart';
import 'package:one_key/constant/constant.dart';
import 'package:one_key/constant/error.dart';
import 'package:one_key/models/filter_btn_model.dart';
import 'package:one_key/models/get_seller_info_model.dart';
import 'package:one_key/models/get_seller_user_by_sellerid_model.dart';
import 'package:one_key/models/personnel_manage_model.dart';
import 'package:one_key/net/base_resp.dart';
import 'package:one_key/net/dio_util.dart';

import 'package:one_key/net/http_url.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/utils/utils.dart';
import 'package:provider/provider.dart';

/**
 *  员工管理
 */
class PersonnelProvider extends ChangeNotifier {
  PersonnelManageModelData dataMap;
  String password = '';
  List<FilterBtnModel> sellerManageList = []; //经理数据 ---- 商家编辑页面
  int manageSelIndex; //当前选中

  ///商家详情编辑页面 ------  获取经理数据
  Future<List<FilterBtnModel>> getSellerUserBySellerid(BuildContext context,
      {isShowLoading = 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_user_by_sellerid,
            data: params, showLoading: false)
        .catchError((error) {
      print(error.toString());
      if (error is MyError) {}
    });
    if (baseResp.code == Constant.status_success) {
      List<GetSellerUserBySelleridSunModel> sunmodel =
          GetSellerUserBySelleridModel.fromJson(baseResp.responseData).data;
      sellerManageList = [];
      if (sunmodel != null && sunmodel.length > 0) {
        for (GetSellerUserBySelleridSunModel item in sunmodel) {
          if (item.nickName != null) {
            FilterBtnModel model = FilterBtnModel();
            model.id = item.id;
            model.title = item.nickName + '(${item.roleName})';
            sellerManageList.add(model);
          }
        }
      }
    } else {
      if (baseResp != null) {
        Utils.showToast(baseResp.msg ?? "");
      }
    }
    FilterBtnModel model = FilterBtnModel();
    model.id = '';
    model.title = '全店未分配客户资源';
    sellerManageList.insert(0, model);
    return sellerManageList;
  }

  /// 获取店员列表
  getAuthUserLists(BuildContext context, Map<String, String> params,
      {showLoading = false}) async {
    BaseResp<dynamic> baseResp = await DioUtil()
        .request<dynamic>(context, Method.get, HttpUrl.get_auth_user_lists,
            data: params, showLoading: showLoading)
        .catchError((error) {
      print(error.toString());
    });
    if (baseResp != null && baseResp.code == Constant.status_success) {
      Map data = baseResp.data;
      Map<String, dynamic> tempData = {};
      data.forEach((key, value) {
        String keyTemp = key.split('_')[0];
        String role_id = key.split('_')[1];
        tempData[keyTemp] = {'listdata': value, 'role_id': role_id};
      });
      baseResp.responseData['data'] = tempData;
      dataMap = PersonnelManageModel.fromJson(baseResp.responseData).data;
      dataMap.admin.hasWechatNum = 0;
      for (PersonnelManageSunModel item in dataMap.admin.listdata) {
        if (item.openid != null && item.openid != 'null' && item.openid != '') {
          dataMap.admin.hasWechatNum++;
        }
      }
      dataMap.cashier.hasWechatNum = 0;
      for (PersonnelManageSunModel item in dataMap.cashier.listdata) {
        if (item.openid != null && item.openid != 'null' && item.openid != '') {
          dataMap.cashier.hasWechatNum++;
        }
      }
      dataMap.manager.hasWechatNum = 0;
      for (PersonnelManageSunModel item in dataMap.manager.listdata) {
        if (item.openid != null && item.openid != 'null' && item.openid != '') {
          dataMap.manager.hasWechatNum++;
        }
      }
      dataMap.shopowner.hasWechatNum = 0;
      for (PersonnelManageSunModel item in dataMap.shopowner.listdata) {
        if (item.openid != null && item.openid != 'null' && item.openid != '') {
          dataMap.shopowner.hasWechatNum++;
        }
      }
      dataMap.waiter.hasWechatNum = 0;
      for (PersonnelManageSunModel item in dataMap.waiter.listdata) {
        if (item.openid != null && item.openid != 'null' && item.openid != '') {
          dataMap.waiter.hasWechatNum++;
        }
      }
    } else {
      Utils.showToast(baseResp.msg ?? "");
    }

    notifyListeners();
    return dataMap;
  }

  ///  添加店员
  Future<bool> addSellerClerk(BuildContext context, Map<String, String> params,
      {showLoading = false}) async {
    BaseResp<dynamic> baseResp = await DioUtil()
        .request<dynamic>(context, Method.get, HttpUrl.add_seller_clerk,
            data: params, showLoading: showLoading)
        .catchError((error) {
      print(error.toString());
    });
    if (baseResp != null && baseResp.code == Constant.status_success) {
      if (baseResp.data != '') {
        return true;
      }
    } else {
      Utils.showToast(baseResp.msg ?? "");
    }
    return false;
  }

  ///  删除店员
  Future<bool> delSellerClerk(BuildContext context, Map<String, String> params,
      {showLoading = false}) async {
    BaseResp<dynamic> baseResp = await DioUtil()
        .request<dynamic>(context, Method.get, HttpUrl.delete_auth_user,
            data: params, showLoading: showLoading)
        .catchError((error) {
      print(error.toString());
    });
    if (baseResp != null && baseResp.code == Constant.status_success) {
      if (baseResp.data.length == 1 && baseResp.data[0] == 1) {
        return true;
      }
    } else {
      Utils.showToast(baseResp.msg ?? "");
    }
    return false;
  }

  /// 编辑店员
  Future<bool> editAuthUser(BuildContext context, Map<String, String> params,
      {showLoading = false}) async {
    BaseResp<dynamic> baseResp = await DioUtil()
        .request<dynamic>(context, Method.get, HttpUrl.edit_auth_user,
            data: params, showLoading: showLoading)
        .catchError((error) {
      print(error.toString());
    });
    if (baseResp != null && baseResp.code == Constant.status_success) {
      if (baseResp.data.length == 1 ) {
        return true;
      }
    } else {
      if (baseResp.code == 397) {
        return true;
      } else {
        Utils.showToast(baseResp.msg ?? "");
      }
    }
    return false;
  }

  /// 账号表-员工绑定手机号
  Future<bool> bindPhoneSellerUser(
      BuildContext context, Map<String, String> params,
      {showLoading = false}) async {
    BaseResp<dynamic> baseResp = await DioUtil()
        .request<dynamic>(context, Method.get, HttpUrl.bind_phone_seller_user,
            data: params, showLoading: showLoading)
        .catchError((error) {
      print(error.toString());
    });
    if (baseResp != null && baseResp.code == Constant.status_success) {
      // if (baseResp.data == 1) {
        return true;
      // }
    } else {
      Utils.showToast(baseResp.msg ?? "");
    }
    return false;
  }

  ///根据商家ID获取商家信息
  Future<GetSellerInfoSunModel> getSellerById(BuildContext context) async {
    UserModel userModel = Provider.of<UserModel>(context, listen: false);
    Map<String, String> params = {
      "sellerid": userModel.user.sellerid,
    };
    BaseResp<Map<String, dynamic>> baseResp = await DioUtil()
        .request<Map<String, dynamic>>(
            context, Method.get, HttpUrl.get_seller_info,
            data: params)
        .catchError((error) {
      print(error.toString());
    });
    GetSellerInfoSunModel itemModel;
    if (baseResp == null) return itemModel;
    if (baseResp.code == Constant.status_success) {
      if (int.parse(baseResp.status) != Constant.status_success) {
        Utils.showToast(baseResp.msg ?? "");
        return itemModel;
      }
      if (baseResp.responseData['data'] != null) {
        itemModel = GetSellerInfoModel.fromJson(baseResp.responseData).data;
      } else {
        Utils.showToast(baseResp.msg ?? "");
      }
      return itemModel;
    }
  }

  /// 设置商家接单人
  Future<bool> setUserIsCall(BuildContext context, Map<String, String> params,
      {showLoading = false}) async {
    BaseResp<dynamic> baseResp = await DioUtil()
        .request<dynamic>(context, Method.get, HttpUrl.set_user_is_call,
            data: params, showLoading: showLoading)
        .catchError((error) {
      print(error.toString());
    });
    if (baseResp != null && baseResp.code == Constant.status_success) {
      if (baseResp.data == 1) {
        return true;
      }
    } else {
      Utils.showToast(baseResp.msg ?? "");
    }
    return false;
  }

  /// 设置商家接单人
  getPassword(BuildContext context, Map<String, String> params,
      {showLoading = false}) async {
    BaseResp<dynamic> baseResp = await DioUtil()
        .request<dynamic>(context, Method.get, HttpUrl.get_password,
            data: params, showLoading: showLoading)
        .catchError((error) {
      print(error.toString());
    });
    if (baseResp != null && baseResp.code == Constant.status_success) {
      password = baseResp.data;
      notifyListeners();
    } else {
      Utils.showToast(baseResp.msg ?? "");
    }
  }

  /// 员工密码修改
  Future<bool> updatePassword(BuildContext context, Map<String, String> params,
      {showLoading = false}) async {
    BaseResp<dynamic> baseResp = await DioUtil()
        .request<dynamic>(context, Method.get, HttpUrl.update_password,
            data: params, showLoading: showLoading)
        .catchError((error) {
      print(error.toString());
    });
    if (baseResp != null && baseResp.code == Constant.status_success) {
      if (baseResp.data == 1) {
        return true;
      }
    } else {
      Utils.showToast(baseResp.msg ?? "");
    }
    return false;
  }
}