store_base_info_provider.dart
3.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
import 'dart:convert';
import 'dart:io';
import 'package:dio/dio.dart';
import 'package:dio/dio.dart';
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/set_seller_info_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:one_key/widgets/loading.dart';
import 'package:provider/provider.dart';
class StoreBaseIndoProvider with ChangeNotifier {
GetSellerInfoSunModel itemModel;
String _statusKey = "status";
/// BaseResp [int code]字段 key, 默认:errorCode.
String _codeKey = "errorCode";
/// BaseResp [String msg]字段 key, 默认:errorMsg.
String _msgKey = "errorMsg";
/// BaseResp [T data]字段 key, 默认:data.
String _dataKey = "data";
///根据商家ID获取商家信息
Future<GetSellerInfoSunModel> getSellerById(BuildContext context) async {
Map<String, String> params = {
"sellerid": Provider.of<UserModel>(context, listen: false).user.sellerid,
};
BaseResp<Map<String, dynamic>> baseResp = await DioUtil()
.request<Map<String, dynamic>>(
context, Method.post, HttpUrl.get_seller_info,
data: params)
.catchError((error) {
print(error.toString());
});
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;
print(itemModel);
} else {
Utils.showToast(baseResp.msg ?? "");
}
return itemModel;
}
}
/// decode response data.
Map<String, dynamic> _decodeData(Response response) {
if (response == null ||
response.data == null ||
response.data.toString().isEmpty) {
return new Map();
}
return json.decode(response.data.toString());
}
///根据商家ID修改商家信息
Future<SetSellerInfoSunModel> setSellerInfoById(
BuildContext context, FormData params) async {
Loading.showLoading(context);
var dio = new Dio();
Response response = await dio.post(
"https://xt04.colorcun.com/?service=App.Seller.SetSellerById",
data: params);
print(response);
Map _responseData;
if (response.statusCode == HttpStatus.ok ||
response.statusCode == HttpStatus.created) {
try {
if (response.data is Map) {
_responseData = response.data;
} else {
Map<String, dynamic> _dataMap = _decodeData(response);
_responseData = _dataMap;
}
Loading.hideLoading(context);
SetSellerInfoSunModel itemModel;
if (_responseData['ret'] == Constant.status_success) {
if (_responseData['data'] != null) {
itemModel = SetSellerInfoModel.fromJson(_responseData).data;
} else {
Utils.showToast(_responseData['msg'] ?? "");
}
return itemModel;
}
} catch (e) {
Loading.hideLoading(context);
return new Future.error(new DioError(
requestOptions: response.requestOptions,
response: response,
error: "data parsing exception...",
type: DioErrorType.badResponse,
));
}
}
}
}