my_model.dart 2.87 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/integral_model.dart';
import 'package:one_key/models/sms_info.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/SmsModel.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/utils/utils.dart';
import 'package:provider/provider.dart';

class MyModel extends ChangeNotifier {
  String smsInfo = '';
  IntegralSunModel integralSunModel;

  /// 短信余量查询及套餐查询接口
  Future<SmsInfoData> getSmsInfo(BuildContext context) async {
    UserModel userModel = Provider.of<UserModel>(context, listen: false);
    Map<String, String> params = {"seller_id": userModel.user.sellerid};
    try {
      BaseResp<Map<String, dynamic>> baseResp = await DioUtil()
          .request<Map<String, dynamic>>(context, Method.get, HttpUrl.sms_info,
              data: params, showLoading: false)
          .catchError((error) {
        print(error.toString());
      });
      SmsInfoData data;
      if (baseResp?.code == Constant.status_success) {
        SmsInfo smsInfo = SmsInfo.fromJson(baseResp.responseData);
        if (smsInfo.ret == 200) {
          data = smsInfo.data;
        } else {
          Utils.showToast(smsInfo.msg);
        }
      } else {
        print('查询失败');
      }
      smsInfo = data.lastNum;
      notifyListeners();
      return data;
    } catch (error) {
      if (error is MyError) {
        switch (error.type) {
          case 1:
            print('错误');
            break;
          case 2:
            print('超时');
            break;
          default:
            print('错误');
            break;
        }
      }
    }
  }

  /// 获取客户经理积分列表
  Future<IntegralSunModel> getMyIntegral(BuildContext context) async {
    Map<String, String> params = {
      "uid": Provider.of<UserModel>(context, listen: false).user.openid
    };
    try {
      BaseResp<dynamic> baseResp = await DioUtil()
          .request<dynamic>(context, Method.get, HttpUrl.get_integral_list,
              data: params, showLoading: false)
          .catchError((error) {
        print(error.toString());
      });

      if (baseResp?.code == Constant.status_success) {
        integralSunModel = IntegralModel.fromJson(baseResp.responseData).data;
      } else {
        print('查询失败');
      }
      notifyListeners();
      return integralSunModel;
    } catch (error) {
      if (error is MyError) {
        switch (error.type) {
          case 1:
            print('错误');
            break;
          case 2:
            print('超时');
            break;
          default:
            print('错误');
            break;
        }
      }
    }
  }
}