import 'dart:convert';
import 'dart:math';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import '../Robot.dart';
import '../details.dart';
import '../pojo.dart';
class CustomerDetailsProvider extends ChangeNotifier {
List<Customer> _list = [];
List<Customer> get list => _list;
List<Task> _list2 = [];
List<Task> get list2 => _list2;
bool _isLoading = false;
bool get isLoading => _isLoading;
final String name = "name";
Future<void> getCustomerDetails(String name,String phone) async {
print("getCompanyProduct start");
_isLoading = true;
notifyListeners();
final accessToken = Robot.accessToken;
final userId = Robot.userId;
final companyId = Robot.companyId;
Condition7 condition = Condition7(
customerName:name,
customerPhone:phone,
);
FetchDataRequest9<Condition7> request = FetchDataRequest9<Condition7>(
condition: condition,
offset: 10,
fetchSize: 500,
);
var url = Uri.https(host, 'userOrderCustomer/detail/page');
final uri = url.replace(
queryParameters: {
"access_token": accessToken,
"userId": userId,
"companyId": companyId,
},
);
final a = jsonEncode(request.toJson((condition) => condition.toJson()));
final response = await http.post(
uri,
headers: {"Content-Type": "application/json; charset=UTF-8"},
body: a,
);
if (response.statusCode == 200) {
print("客户渲染详情: response:${response.body}");
final Map<String, dynamic> jsonResponse = json.decode(response.body);
_isLoading = false;
var a = ApiResponse<Data963>.fromJson(
jsonResponse,
(data) => Data963.fromJson(data),
);
_list2 = a.data!.list;
notifyListeners();
return;
} else {
throw Exception('Failed to fetch products: ${response.reasonPhrase}');
}
}
Future<void> getCustomers() async {
print("getCompanyProduct start");
_isLoading = true;
notifyListeners();
final accessToken = Robot.accessToken;
final userId = Robot.userId;
final companyId = Robot.companyId;
Condition3 condition = Condition3();
FetchDataRequest9<Condition3> request = FetchDataRequest9<Condition3>(
condition: condition,
offset: 10,
fetchSize: 500,
);
var url = Uri.https(host, 'userOrderCustomer/page');
final uri = url.replace(
queryParameters: {
"access_token": accessToken,
"userId": userId,
"companyId": companyId,
},
);
final a = jsonEncode(request.toJson((condition) => condition.toJson()));
final response = await http.post(
uri,
headers: {"Content-Type": "application/json; charset=UTF-8"},
body: a,
);
if (response.statusCode == 200) {
print("response:${response.body}");
final Map<String, dynamic> jsonResponse = json.decode(response.body);
_isLoading = false;
var a = ApiResponse<Data9>.fromJson(
jsonResponse,
(data) => Data9.fromJson(data),
);
_list = a.data!.list;
notifyListeners();
return;
} else {
throw Exception('Failed to fetch products: ${response.reasonPhrase}');
}
}
Future<bool> login() async {
print("login start");
var url = Uri.https(host, 'robot/login');
var response = await http.post(url, body: {'sn': Robot.sn});
var a = ApiResponse<LoginBean>.fromJson(
jsonDecode(response.body),
(data) => LoginBean.fromJson(data),
);
print(a.data.toString());
if (a.data?.userId == null) {
print('请扫码');
return false;
}
Robot.userId = a.data!.userId!;
Robot.companyId = a.data!.companyId!;
Robot.accessToken = a.data!.accessToken!;
print("Robot.accessToken:" + Robot.accessToken);
print("login end");
return true;
}
}
const fetchSize = 24;