create_store_model.dart 4.42 KB
import 'dart:async';
import 'dart:convert';

import 'package:flutter/material.dart';
import 'package:one_key/constant/constant.dart';
import 'package:one_key/constant/error.dart';
import 'package:one_key/models/get_seller_info_model.dart';
import 'package:one_key/models/store_info.dart';
import 'package:one_key/models/user_create_store.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/utils/utils.dart';

/**
 * 新建店铺
 */
class CreateStoreModel extends ChangeNotifier {
  StoreInfo? storeInfo; //新建店铺基本信息
  late UserCreateStore userCreateStore;

  ///添加商家信息
  Future<dynamic> addStoreInfo(
      BuildContext context, Map<String, String?> params,
      {isShowLoading = true}) async {
    try {
      BaseResp<dynamic> baseResp = await DioUtil().request<dynamic>(
          context, Method.post, HttpUrl.add_seller_info,
          data: params, showLoading: isShowLoading);
      if (baseResp.code == Constant.status_success) {
        //  getStoreInfo(context, {});
        if (baseResp.data != null) {
          storeInfo!.sellerid = baseResp.data['sellerid'];
          return true;
        } else {
          // Utils.showToast(baseResp.msg ?? "修改失败");
          return false;
        }
      } else {
        if (baseResp.msg == '非法请求:手机号已存在') {
          Utils.showToast('接单电话已存在,请重新填写接单电话');
        } else {
          Utils.showToast(baseResp.msg ?? "");
        }

        return false;
      }
    } catch (error) {
      print(error.toString());
      if (error is MyError) {}
      return false;
    }
  }

  Future<dynamic> getStoreInfo(
      BuildContext context, Map<String, String?> params,
      {isShowLoading = true}) async {
    try {
      BaseResp<dynamic> baseResp = await DioUtil().request<dynamic>(
          context, Method.post, HttpUrl.get_seller_user_info,
          data: params, showLoading: isShowLoading);
      if (baseResp.code == Constant.status_success) {
        if (baseResp.data != null) {
          List<dynamic> temp = baseResp.data;
          if (temp.length > 0) {
            Map<String, dynamic> data = {};
            data = temp[0];
            print(data.keys);
            print(data);
            // print(data[0]);
            userCreateStore = UserCreateStore();
            userCreateStore.id = data['uid'].toString();
            userCreateStore.account = data['account'].toString();
            userCreateStore.nick_name = data['nick_name'].toString();
            userCreateStore.role_id = data['role_id'].toString();
            userCreateStore.seller_code = data['seller_code'].toString();
            userCreateStore.sellerid = data['sellerid'].toString();
            userCreateStore.role_name = data['role_name'].toString();
            userCreateStore.user_token = data['user_token'].toString();
            return true;
          }

          // coupons = baseResp.data['aid'].split('');
          return false;
        } else {
          // Utils.showToast(baseResp.msg ?? "修改失败");
          return false;
        }
      } else {
        // if (baseResp != null) {
        // Utils.showToast(baseResp.msg ?? "");
        // }
        return false;
      }
    } catch (error) {
      print(error.toString());
      if (error is MyError) {}
      return false;
    }
  }

  ///根据商家ID获取商家信息
  Future<GetSellerInfoSunModel?> getSellerById(BuildContext context) async {
    Map<String, String?> params = {
      "sellerid": storeInfo!.sellerid,
    };
    try {
      BaseResp<Map<String, dynamic>?> baseResp = await DioUtil()
          .request<Map<String, dynamic>>(
              context, Method.post, HttpUrl.get_seller_info,
              data: params);
      GetSellerInfoSunModel? 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 as Map<String, dynamic>)
              .data;
          print(itemModel);
        } else {
          Utils.showToast(baseResp.msg ?? "");
        }
        return itemModel;
      }
    } catch (error) {
      print(error.toString());
    }
    return null;
  }
}