my_model.dart 4.42 KB
import 'dart:async';

import 'package:flutter/material.dart';
import 'package:one_key/constant/constant.dart';
import 'package:one_key/constant/error.dart';
import 'package:one_key/constant/state.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/time_machine_util.dart';
import 'package:one_key/utils/utils.dart';
import 'package:provider/provider.dart';

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

  PageState pageState = PageState.Loading;

  /// 短信余量查询及套餐查询接口
  Future<SmsInfoData?> getSmsInfo(BuildContext context,
      {bool selfDismiss = false}) 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.post, HttpUrl.sms_info,
              data: params, showLoading: false, selfDismiss: selfDismiss);
      SmsInfoData? data;
      if (baseResp.code == Constant.status_success) {
        SmsInfo sms =
            SmsInfo.fromJson(baseResp.responseData as Map<String, dynamic>);
        if (sms.ret == 200) {
          data = sms.data;
          smsInfo = data!.lastNum;
          pageState = PageState.Success;
        } else {
          pageState = PageState.Empty;
          Utils.showToast(sms.msg ?? '');
        }
      } else {
        print('查询失败');
      }

      notifyListeners();
      return data;
    } catch (error) {
      if (error is MyError) {
        switch (error.type) {
          case 1:
            print('错误');
            break;
          case 2:
            print('超时');
            break;
          default:
            print('错误');
            break;
        }
      }
      print(error.toString());
      pageState = PageState.ConnectivityError;
      notifyListeners();
    }
    return null;
  }

  /// 获取客户经理积分列表
  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.post, HttpUrl.get_integral_list,
          data: params, showLoading: false);

      if (baseResp.code == Constant.status_success) {
        integralSunModel = IntegralModel.fromJson(
                baseResp.responseData as Map<String, dynamic>)
            .data;
        print(integralSunModel);
      } 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;
        }
      }
    }
    return null;
  }

  ///  获取商家时间区间内订单数量
  getSellerReserveTotal(BuildContext context) async {
    Map<String, String> dateMap = TimeMachineUtil.getMonthDate(0);
    Map<String, String?> params = {
      "sid": Provider.of<UserModel>(context, listen: false).user!.sellerid,
      "stime":
          ((int.parse(dateMap['startDateStamp']!) / 1000).floor()).toString(),
      "etime":
          ((int.parse(dateMap['endDateStamp']!) / 1000).floor()).toString(),
    };
    print(params);
    try {
      BaseResp<dynamic> baseResp = await DioUtil().request<dynamic>(
              context, Method.post, HttpUrl.get_seller_reserve_total,
              data: params, showLoading: false);

      if (baseResp.code == Constant.status_success) {
        reserveTotal = baseResp.data;
      } else {}
      notifyListeners();
    } catch (error) {
      if (error is MyError) {
        switch (error.type) {
          case 1:
            print('错误');
            break;
          case 2:
            print('超时');
            break;
          default:
            print('错误');
            break;
        }
      }
    }
  }
}