import 'package:ef/ef.dart'; import 'package:flutter_city_picker/model/address.dart'; import 'package:flutterflow_ui/flutterflow_ui.dart'; import 'package:json_annotation/json_annotation.dart'; import 'package:vbvs_app/controller/user_info_controller.dart'; import 'package:vbvs_app/model/user_data.dart'; part 'address_controller.g.dart'; @JsonSerializable() class AddressModel { //版本id String? province; //省份 String? city; //市 String? county; //区 String? street; //街道 String? detail; //详细信息 String? name; //名字 String? phone; //手机号 bool? ischecked = false; //是否默认 int currentType = 0; String? all_address; @JsonKey(ignore: true) List? addressList = []; AddressModel(); static AddressModel fromJson(Map json) => _$AddressModelFromJson(json); Map toJson() => _$AddressModelToJson(this); } class AddressController extends GetControllerEx { AddressController() { attr = GetModel(AddressModel()).obs; } Future updateAddress( Map address, AddressModel model) async { if (model.addressList != null && model.addressList!.isNotEmpty) { if (model.addressList!.length > 0) { address["province"] = model.addressList![0].name; // 第一个元素为省 } if (model.addressList!.length > 1) { address["city"] = model.addressList![1].name; // 第二个元素为市 } if (model.addressList!.length > 2) { address["county"] = model.addressList![2].name; // 第三个元素为区 } if (model.addressList!.length > 3) { address["street"] = model.addressList![3].name; // 第四个元素为街道 } } address['detail'] = model.detail; address['name'] = model.name; address['phone'] = model.phone; address['isChecked'] = model.ischecked; // try { // final data = await ef.client.rpc("get_now_datetime"); // final response = await ef.client.from("app_user_address").update({ // 'province': address["province"], // 'city': address["city"], // 'county': address["county"], // 'street': address["street"], // 'detail': address["detail"], // 'name': address["name"], // 'phone': address["phone"], // 'ischecked': address['isChecked'] ? 1 : 0, // 'update_time': // DateFormat("yyyy-MM-dd HH:mm:ss").parse("$data").toString(), // }).eq("id", address['id']); // } catch (e) { // print('Error fetching repairs: $e'); // return e.toString(); // } return ''; } addAddress(AddressModel model) async { // try { // final UserInfoController userInfoController = // Get.find(); // UserModel user = userInfoController.model.user!; // // 设置省市区街道名称 // if (model.addressList != null && model.addressList!.isNotEmpty) { // if (model.addressList!.length > 0) // model.province = model.addressList![0].name; // 第一个元素为省 // if (model.addressList!.length > 1) // model.city = model.addressList![1].name; // 第二个元素为市 // if (model.addressList!.length > 2) // model.county = model.addressList![2].name; // 第三个元素为区 // if (model.addressList!.length > 3) // model.street = model.addressList![3].name; // 第四个元素为街道 // } // // 查询数据库是否已有该用户的地址 // final existingAddresses = await ef.client // .from('app_user_address') // .select() // .eq('user_id', user.uid!); // // 如果没有地址,将新增地址默认选中 // if (existingAddresses.isEmpty) { // model.ischecked = true; // } else if (model.ischecked == true) { // // 如果新地址被选中,将其他地址的 `ischecked` 字段设为 `0` // await ef.client // .from('app_user_address') // .update({'ischecked': 0}).eq('user_id', user.uid!); // } // // 添加新地址 // final response = await ef.client.from('app_user_address').insert({ // 'province': model.province, // 'city': model.city, // 'county': model.county, // 'street': model.street, // 'detail': model.detail, // 'name': model.name, // 'phone': model.phone, // 'ischecked': model.ischecked! ? 1 : 0, // 'user_id': user.uid, // }); // } catch (e) { // print(e); // } } Future> getData({int? level, int? pid}) async { // 构建查询 return []; // var query = ef.from("app_area_city").select(); // // 如果 pid 不为 null,添加 pid 的条件 // if (pid != null) { // query = query.eq("pid", pid); // } // if (level != null) { // query = query.eq("deep", level); // } // List arr = await query; // List addressNodes = arr.map((item) { // return AddressNode.fromJson({ // "name": item["ext_name"], // ext_name 对应 name // "code": item["id"], // id 对应 code // "letter": item["pinyin_prefix_upper"], // pinyin_prefix_upper 对应 letter // }); // }).toList(); // return addressNodes; } }