import 'dart:async'; import 'dart:convert' as convert; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:zhiying_base_widget/dialog/tip_dialog/tip_dialog.dart'; import 'package:zhiying_base_widget/pages/withdraw_page/models/withdraw_data_model.dart'; import 'package:zhiying_base_widget/pages/withdraw_page/models/withdraw_model.dart'; import 'package:zhiying_comm/util/base_bloc.dart'; import 'package:zhiying_comm/zhiying_comm.dart'; class WithdrawBloc extends BlocBase { WithdrawModel _model; StreamController _dataController = StreamController(); Stream get outData => _dataController.stream; WithdrawDataModel withdrawDataModel; Map aliPayModel; String skipIdentifier; @override void dispose() { _dataController.close(); _dataController = null; } void loadData(String skipIdentifier) async { this.skipIdentifier = skipIdentifier; NetUtil.request('/api/v1/mod/${skipIdentifier.toString()}', method: NetMethod.GET, onCache: (data) { _loadData(data); }, onSuccess: (data) { _loadData(data); }); } ///加载数据 void loadWithdrawData() { NetUtil.request("/api/v1/user/cash_out", onSuccess: (data) { withdrawDataModel = WithdrawDataModel.fromJson(data); _dataController.add(_model); }); } void _loadData(dynamic data) { try { Map json = Map.from(data); if (json == null || json.length == 0) { return; } List mods = json['mod_list']; if (mods.first != null) { json = Map.from(mods.first); String d = json['data']; if (json.containsKey('data')) { String d = json['data']; Map da = Map.from(convert.jsonDecode(d)); _model = WithdrawModel.fromJson(da); _dataController.add(_model); } } } catch (err) { Logger.error(err); } } ///提交提现申请 void submitApply(BuildContext context, String money) async { num amount = num.tryParse(money); if (amount != null && amount > 0) { var result = await showDialog( context: context, child: TipDialog( btnText: "确定", content: "确定要提现?", )); if (result == null || !result) { return; } NetUtil.request("/api/v1/user/cash_out", method: NetMethod.POST, params: {'amount': amount.toString()}, onSuccess: (data) { showDialog( context: context, child: TipDialog( content: "提现申请已成功提交,请耐心等候审核通过", )); loadData(skipIdentifier); loadWithdrawData(); }, onError: (data) { showDialog( context: context, child: TipDialog( content: "提现申请提交失败!,请稍后再试", )); }); } else { showDialog( context: context, child: TipDialog( content: "请输入正确的金额!", )); } } ///支付宝是否绑定请求 getAlipayStatus(){ NetUtil.request("/api/v1/settings/account/security",onSuccess: (data){ aliPayModel=data; _dataController.add(_model); }); } }