更新登录
This commit is contained in:
@@ -2,8 +2,8 @@ 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/mh_controller/user_data.dart';
|
||||
import 'package:vbvs_app/controller/mh_controller/muser_info_controller.dart';
|
||||
import 'package:vbvs_app/controller/user_info_controller.dart';
|
||||
import 'package:vbvs_app/model/user_data.dart';
|
||||
|
||||
part 'address_controller.g.dart';
|
||||
|
||||
@@ -80,8 +80,8 @@ class AddressController extends GetControllerEx<AddressModel> {
|
||||
|
||||
addAddress(AddressModel model) async {
|
||||
try {
|
||||
final MUserInfoController userInfoController =
|
||||
Get.find<MUserInfoController>();
|
||||
final UserInfoController userInfoController =
|
||||
Get.find<UserInfoController>();
|
||||
UserModel user = userInfoController.model.user!;
|
||||
|
||||
// 设置省市区街道名称
|
||||
|
||||
@@ -1,17 +1,6 @@
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:ef/ef.dart';
|
||||
import 'package:flutter/src/widgets/framework.dart';
|
||||
import 'package:flutterflow_ui/flutterflow_ui.dart';
|
||||
import 'package:img_picker/img_picker.dart';
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
import 'package:path/path.dart' as p;
|
||||
import 'package:uuid/uuid.dart';
|
||||
import 'package:vbvs_app/common/util/MyUtils.dart';
|
||||
|
||||
import 'muser_info_controller.dart';
|
||||
|
||||
part 'apply_repair_controller.g.dart';
|
||||
|
||||
@JsonSerializable()
|
||||
|
||||
@@ -1,234 +0,0 @@
|
||||
import 'dart:convert';
|
||||
import 'package:EasyDartModule/EasyDartModule.dart';
|
||||
import 'package:ef/ef.dart';
|
||||
import 'package:fluwx/fluwx.dart';
|
||||
import 'package:get_storage/get_storage.dart';
|
||||
import 'package:img_picker/img_picker.dart';
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
import 'package:dio/dio.dart' as dio;
|
||||
import 'package:vbvs_app/common/color/ServiceConstant.dart';
|
||||
import 'package:vbvs_app/common/color/app_uri_status.dart';
|
||||
import 'package:vbvs_app/common/util/DailyLogUtils.dart';
|
||||
import 'package:vbvs_app/common/util/MyUtils.dart';
|
||||
import 'package:vbvs_app/controller/mh_controller/user_data.dart';
|
||||
import 'package:vbvs_app/model/api_response.dart';
|
||||
part 'muser_info_controller.g.dart';
|
||||
|
||||
@JsonSerializable()
|
||||
class MUserInfoModel {
|
||||
int? message = 0; //消息数量
|
||||
|
||||
UserModel? user; //用户信息
|
||||
String? token; //token值
|
||||
String? runSystem; //运行系统
|
||||
String? phoneVersion; //手机版本
|
||||
String? deviceId; //手机唯一
|
||||
String? deviceModel; //设备可见型号(如 "iPhone","iPad")
|
||||
String? appVersion; //app版本信息
|
||||
|
||||
@JsonKey(ignore: true)
|
||||
Session? superbase_session;
|
||||
@JsonKey(ignore: true)
|
||||
User? superbase_user;
|
||||
|
||||
String? img_bucket = 'user';
|
||||
int? login = 0; //是否登录0:未登录 1:已登录
|
||||
|
||||
MUserInfoModel();
|
||||
static MUserInfoModel fromJson(Map<String, dynamic> json) =>
|
||||
_$MUserInfoModelFromJson(json);
|
||||
Map<String, dynamic> toJson() => _$MUserInfoModelToJson(this);
|
||||
}
|
||||
|
||||
class MUserInfoController extends GetControllerEx<MUserInfoModel> {
|
||||
// 初始化实例
|
||||
final Fluwx fluwx = Fluwx();
|
||||
|
||||
MUserInfoController() {
|
||||
attr = GetModel(MUserInfoModel()).obs;
|
||||
}
|
||||
|
||||
List device_bind_status = [];
|
||||
int device_bind_flag = 0; //0。未初始化 1.已初始化
|
||||
|
||||
Future<ApiResponse> uploadImg() async {
|
||||
EasyDartModule.logger.info("请求上传图片");
|
||||
DailyLogUtils.writeLog("请求上传图片");
|
||||
final ImagePicker picker = ImagePicker();
|
||||
final XFile? image = await picker.pickImage(source: ImageSource.gallery);
|
||||
try {
|
||||
ApiResponse apiResponse = ApiResponse(code: -1, msg: "我的.头像上传失败".tr);
|
||||
if (image != null) {
|
||||
int fileSize = await image.length(); // 获取图片大小,单位为字节
|
||||
if (fileSize > 1048576 * 5) {
|
||||
apiResponse.msg = "我的.头像限制".tr;
|
||||
return apiResponse;
|
||||
}
|
||||
String serviceAddress = ServiceConstant.service_address;
|
||||
String serviceName = ServiceConstant.server_service;
|
||||
String serviceApi = ServiceConstant.upload_file;
|
||||
String queryUrl = "${serviceAddress}${serviceName}${serviceApi}";
|
||||
String? language = "";
|
||||
if (languageController.selectLanguage != null) {
|
||||
language = languageController.selectLanguage.value!.language_code;
|
||||
}
|
||||
if (language != null && language.isNotEmpty) {
|
||||
if (queryUrl.contains("?")) {
|
||||
queryUrl += "&lang=$language";
|
||||
} else {
|
||||
queryUrl += "?lang=$language";
|
||||
}
|
||||
}
|
||||
var formData = dio.FormData.fromMap({
|
||||
"type": 1,
|
||||
"file": await dio.MultipartFile.fromFile(
|
||||
image.path, // 确保 image 是 File 类型
|
||||
filename: image.path.split('/').last,
|
||||
),
|
||||
});
|
||||
var response = await EasyDartModule.dio.post(queryUrl, data: formData);
|
||||
if (response != null) {
|
||||
var responseData = response.data is String
|
||||
? jsonDecode(response.data)
|
||||
: response.data;
|
||||
ApiResponse res =
|
||||
ApiResponse.fromJson(responseData, (object) => object);
|
||||
MyUtils.formatResponse(apiResponse, "我的.上传成功".tr, "我的.头像上传失败".tr);
|
||||
model.user!.tmpHead = res.data['path'];
|
||||
updateAll();
|
||||
return res;
|
||||
} else {
|
||||
return ApiResponse(code: -1, msg: "服务器.失败".tr);
|
||||
}
|
||||
} else {
|
||||
apiResponse.msg = "我的.未选择图片".tr;
|
||||
return apiResponse;
|
||||
}
|
||||
} catch (e) {
|
||||
EasyDartModule.logger.error("上传图片失败->$e");
|
||||
DailyLogUtils.writeError("上传图片失败->$e");
|
||||
return ApiResponse(code: -1, msg: "服务器.失败".tr);
|
||||
}
|
||||
}
|
||||
|
||||
//更新用户信息
|
||||
Future<ApiResponse> updateData() async {
|
||||
EasyDartModule.logger.info("更新用户资料");
|
||||
DailyLogUtils.writeLog("更新用户资料");
|
||||
try {
|
||||
ApiResponse apiResponse = ApiResponse(code: -1, msg: "我的.保存失败".tr);
|
||||
UserModel user = model.user!;
|
||||
if (user.tmpNickName == null || user.tmpNickName!.isEmpty) {
|
||||
apiResponse.msg = "我的.昵称为空".tr;
|
||||
return apiResponse;
|
||||
}
|
||||
String serviceAddress = ServiceConstant.service_address;
|
||||
String serviceName = ServiceConstant.server_service;
|
||||
String serviceApi = ServiceConstant.user_info;
|
||||
String queryUrl = "${serviceAddress}${serviceName}${serviceApi}";
|
||||
String? language = "";
|
||||
if (languageController.selectLanguage != null) {
|
||||
language = languageController.selectLanguage.value!.language_code;
|
||||
}
|
||||
if (language != null && language.isNotEmpty) {
|
||||
if (queryUrl.contains("?")) {
|
||||
queryUrl += "&lang=$language";
|
||||
} else {
|
||||
queryUrl += "?lang=$language";
|
||||
}
|
||||
}
|
||||
final data = {
|
||||
"nickName": user.tmpNickName,
|
||||
if (user.tmpHead != null && user.tmpHead!.isNotEmpty)
|
||||
"avatar": user.tmpHead,
|
||||
};
|
||||
|
||||
var response =
|
||||
await EasyDartModule.dio.put(queryUrl, data: jsonEncode(data));
|
||||
if (apiResponse != null) {
|
||||
var responseData =
|
||||
response.data is String ? jsonDecode(response.data) : response.data;
|
||||
ApiResponse res =
|
||||
ApiResponse.fromJson(responseData, (object) => object);
|
||||
MyUtils.formatResponse(res, "我的.保存成功".tr, "我的.保存失败".tr);
|
||||
return res;
|
||||
} else {
|
||||
return ApiResponse(code: -1, msg: "服务器.失败".tr);
|
||||
}
|
||||
} catch (e) {
|
||||
EasyDartModule.logger.info("更新用户资料失败->$e");
|
||||
DailyLogUtils.writeLog("更新用户资料失败->$e");
|
||||
return ApiResponse(code: -1, msg: "服务器.失败".tr);
|
||||
}
|
||||
}
|
||||
|
||||
//查询用户信息
|
||||
Future<ApiResponse> getUserInfo() async {
|
||||
EasyDartModule.logger.info("查询用户资料");
|
||||
DailyLogUtils.writeLog("查询用户资料");
|
||||
try {
|
||||
ApiResponse apiResponse = ApiResponse(code: -1, msg: "我的.查询失败".tr);
|
||||
String serviceAddress = ServiceConstant.service_address;
|
||||
String serviceName = ServiceConstant.server_service;
|
||||
String serviceApi = ServiceConstant.user_info;
|
||||
String queryUrl = "${serviceAddress}${serviceName}${serviceApi}";
|
||||
String? language = "";
|
||||
if (languageController.selectLanguage != null) {
|
||||
language = languageController.selectLanguage.value!.language_code;
|
||||
}
|
||||
if (language != null && language.isNotEmpty) {
|
||||
if (queryUrl.contains("?")) {
|
||||
queryUrl += "&lang=$language";
|
||||
} else {
|
||||
queryUrl += "?lang=$language";
|
||||
}
|
||||
}
|
||||
var response = await EasyDartModule.dio.get(queryUrl);
|
||||
if (response != null) {
|
||||
var responseData =
|
||||
response.data is String ? jsonDecode(response.data) : response.data;
|
||||
ApiResponse res =
|
||||
ApiResponse.fromJson(responseData, (object) => object);
|
||||
MyUtils.formatResponse(apiResponse, "我的.保存成功".tr, "我的.保存失败".tr);
|
||||
if (res.code == HttpStatusCodes.ok) {
|
||||
MUserInfoController userInfoController = Get.find();
|
||||
userInfoController.model.user = UserModel.fromJson(res.data);
|
||||
final box = GetStorage();
|
||||
box.write('user', userInfoController.model.user!.toJson()); // 存储用户信息
|
||||
userInfoController.updateAll();
|
||||
}
|
||||
return apiResponse;
|
||||
} else {
|
||||
return ApiResponse(code: -1, msg: "服务器.失败".tr);
|
||||
}
|
||||
} catch (e) {
|
||||
EasyDartModule.logger.info("更新用户资料失败->$e");
|
||||
DailyLogUtils.writeLog("更新用户资料失败->$e");
|
||||
return ApiResponse(code: -1, msg: "服务器.失败".tr);
|
||||
}
|
||||
}
|
||||
|
||||
// ApiResponse logOut() {
|
||||
// ApiResponse apiResponse = ApiResponse(code: 1, msg: "设置页.退出成功".tr);
|
||||
// EasyDartModule.logger.info("退出登录");
|
||||
// DailyLogUtils.writeLog("退出登录");
|
||||
// model.login = 0;
|
||||
// EasyDartModule.dio.token = null;
|
||||
// final box = GetStorage();
|
||||
// box.remove("user");
|
||||
// box.remove("token");
|
||||
// BodyDeviceController bodyDeviceController = Get.find();
|
||||
// bodyDeviceController.bindDeviceNum.value = 0;
|
||||
// HomeController homeController = Get.find();
|
||||
// homeController.sleepNum.value = 0;
|
||||
// LoginController loginController = Get.find();
|
||||
// loginController.model.register_agree = null;
|
||||
// bodyDeviceController.sleepReportData.value = {};
|
||||
// MessageController messageController = Get.find();
|
||||
// messageController.model.body_message_read = 0;
|
||||
// messageController.model.system_message_read = 0;
|
||||
// CountdownController countdownController = Get.find();
|
||||
// countdownController.countdown.value = 0;
|
||||
// return apiResponse;
|
||||
// }
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'muser_info_controller.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
MUserInfoModel _$MUserInfoModelFromJson(Map<String, dynamic> json) =>
|
||||
MUserInfoModel()
|
||||
..message = (json['message'] as num?)?.toInt()
|
||||
..user = json['user'] == null
|
||||
? null
|
||||
: UserModel.fromJson(json['user'] as Map<String, dynamic>)
|
||||
..token = json['token'] as String?
|
||||
..runSystem = json['runSystem'] as String?
|
||||
..phoneVersion = json['phoneVersion'] as String?
|
||||
..deviceId = json['deviceId'] as String?
|
||||
..deviceModel = json['deviceModel'] as String?
|
||||
..appVersion = json['appVersion'] as String?
|
||||
..img_bucket = json['img_bucket'] as String?
|
||||
..login = (json['login'] as num?)?.toInt();
|
||||
|
||||
Map<String, dynamic> _$MUserInfoModelToJson(MUserInfoModel instance) =>
|
||||
<String, dynamic>{
|
||||
'message': instance.message,
|
||||
'user': instance.user,
|
||||
'token': instance.token,
|
||||
'runSystem': instance.runSystem,
|
||||
'phoneVersion': instance.phoneVersion,
|
||||
'deviceId': instance.deviceId,
|
||||
'deviceModel': instance.deviceModel,
|
||||
'appVersion': instance.appVersion,
|
||||
'img_bucket': instance.img_bucket,
|
||||
'login': instance.login,
|
||||
};
|
||||
@@ -1,6 +1,7 @@
|
||||
import 'package:ef/ef.dart';
|
||||
import 'package:flutter/src/widgets/framework.dart';
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
import 'package:vbvs_app/component/tool/TopSlideNotification.dart';
|
||||
|
||||
part 'register_controller.g.dart';
|
||||
|
||||
@@ -28,79 +29,77 @@ class RegisterController extends GetControllerEx<RegisterModel> {
|
||||
attr = GetModel(RegisterModel()).obs;
|
||||
}
|
||||
|
||||
// Future<String> registerUser(BuildContext context) async {
|
||||
// String message = "";
|
||||
// final MyDialogController myDialogController =
|
||||
// Get.find<MyDialogController>();
|
||||
// if (model.register_phone == null || model.register_phone!.isEmpty) {
|
||||
// message = "请输入手机号";
|
||||
// showToast(message);
|
||||
// return message;
|
||||
// }
|
||||
// if (!MyUtils.isValidPhoneNumber(model.register_phone!)) {
|
||||
// message = '请输入正确的手机号';
|
||||
// showToast(message);
|
||||
// return message;
|
||||
// }
|
||||
// if (model.register_pd == null || model.register_pd!.isEmpty) {
|
||||
// message = "请输入密码";
|
||||
// showToast(message);
|
||||
// return message;
|
||||
// }
|
||||
// String passwordMsg = "1.密码长度必须至少8位\n2.密码需要字母加数字\n3.特殊字符和大写字母至少包含一个";
|
||||
// bool hasUppercase = model.register_pd!.contains(RegExp(r'[A-Z]'));
|
||||
// bool hasDigit = model.register_pd!.contains(RegExp(r'[0-9]'));
|
||||
// bool hasSpecialCharacters =
|
||||
// model.register_pd!.contains(RegExp(r'[!@#$%^&*(),.?":{}|<>]'));
|
||||
// bool hasLetter = model.register_pd!.contains(RegExp(r'[a-zA-Z]'));
|
||||
Future<String> registerUser(BuildContext context) async {
|
||||
String message = "";
|
||||
// if (model.register_phone == null || model.register_phone!.isEmpty) {
|
||||
// message = "请输入手机号".tr;
|
||||
// TopSlideNotification.show(context,message);
|
||||
// return message;
|
||||
// }
|
||||
// if (!MyUtils.isValidPhoneNumber(model.register_phone!)) {
|
||||
// message = '请输入正确的手机号';
|
||||
// showToast(message);
|
||||
// return message;
|
||||
// }
|
||||
// if (model.register_pd == null || model.register_pd!.isEmpty) {
|
||||
// message = "请输入密码";
|
||||
// showToast(message);
|
||||
// return message;
|
||||
// }
|
||||
// String passwordMsg = "1.密码长度必须至少8位\n2.密码需要字母加数字\n3.特殊字符和大写字母至少包含一个";
|
||||
// bool hasUppercase = model.register_pd!.contains(RegExp(r'[A-Z]'));
|
||||
// bool hasDigit = model.register_pd!.contains(RegExp(r'[0-9]'));
|
||||
// bool hasSpecialCharacters =
|
||||
// model.register_pd!.contains(RegExp(r'[!@#$%^&*(),.?":{}|<>]'));
|
||||
// bool hasLetter = model.register_pd!.contains(RegExp(r'[a-zA-Z]'));
|
||||
|
||||
// if (model.register_pd!.length < 8) {
|
||||
// message = passwordMsg;
|
||||
// showToast(message);
|
||||
// return message;
|
||||
// }
|
||||
// if (model.register_pd!.length < 8) {
|
||||
// message = passwordMsg;
|
||||
// showToast(message);
|
||||
// return message;
|
||||
// }
|
||||
|
||||
// if (!hasLetter || !hasDigit) {
|
||||
// message = passwordMsg;
|
||||
// showToast(message);
|
||||
// return message;
|
||||
// }
|
||||
// if (!hasLetter || !hasDigit) {
|
||||
// message = passwordMsg;
|
||||
// showToast(message);
|
||||
// return message;
|
||||
// }
|
||||
|
||||
// if (!(hasSpecialCharacters || hasUppercase)) {
|
||||
// message = passwordMsg;
|
||||
// showToast(message);
|
||||
// return message;
|
||||
// }
|
||||
// if (model.register_confirm_pd == null ||
|
||||
// model.register_confirm_pd!.isEmpty) {
|
||||
// message = "请输入确认密码";
|
||||
// showToast(message);
|
||||
// return message;
|
||||
// }
|
||||
// if (model.register_pd != model.register_confirm_pd) {
|
||||
// message = "两次密码不一致";
|
||||
// showToast(message);
|
||||
// return message;
|
||||
// }
|
||||
// if (model.register_code == null || model.register_code!.isEmpty) {
|
||||
// message = "请输入验证码";
|
||||
// showToast(message);
|
||||
// return message;
|
||||
// }
|
||||
// if (model.register_agree == null || model.register_agree != true) {
|
||||
// message = "需要同意协议";
|
||||
// showToast(message);
|
||||
// return message;
|
||||
// }
|
||||
// message = await repository.createUser(
|
||||
// model.register_pd!, model.register_phone!, model.register_code!);
|
||||
// if (message.isNotEmpty) {
|
||||
// showToast(message);
|
||||
// return message;
|
||||
// }
|
||||
// if (!(hasSpecialCharacters || hasUppercase)) {
|
||||
// message = passwordMsg;
|
||||
// showToast(message);
|
||||
// return message;
|
||||
// }
|
||||
// if (model.register_confirm_pd == null ||
|
||||
// model.register_confirm_pd!.isEmpty) {
|
||||
// message = "请输入确认密码";
|
||||
// showToast(message);
|
||||
// return message;
|
||||
// }
|
||||
// if (model.register_pd != model.register_confirm_pd) {
|
||||
// message = "两次密码不一致";
|
||||
// showToast(message);
|
||||
// return message;
|
||||
// }
|
||||
// if (model.register_code == null || model.register_code!.isEmpty) {
|
||||
// message = "请输入验证码";
|
||||
// showToast(message);
|
||||
// return message;
|
||||
// }
|
||||
// if (model.register_agree == null || model.register_agree != true) {
|
||||
// message = "需要同意协议";
|
||||
// showToast(message);
|
||||
// return message;
|
||||
// }
|
||||
// message = await repository.createUser(
|
||||
// model.register_pd!, model.register_phone!, model.register_code!);
|
||||
// if (message.isNotEmpty) {
|
||||
// showToast(message);
|
||||
// return message;
|
||||
// }
|
||||
|
||||
// return "";
|
||||
// }
|
||||
return "";
|
||||
}
|
||||
|
||||
// Future<String> getCode(BuildContext context) async {
|
||||
// String message = "";
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
part 'user_data.g.dart';
|
||||
|
||||
@JsonSerializable()
|
||||
class UserModel {
|
||||
String? uid;
|
||||
String? userName;
|
||||
String? nickName;
|
||||
String? tel;
|
||||
String? avatar;
|
||||
String? exp1;
|
||||
String? exp2;
|
||||
String? head;
|
||||
String? tmpHead;
|
||||
String? tmpNickName;
|
||||
|
||||
UserModel();
|
||||
static UserModel fromJson(Map<String, dynamic> json) =>
|
||||
_$UserModelFromJson(json);
|
||||
Map<String, dynamic> toJson() => _$UserModelToJson(this);
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'user_data.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
UserModel _$UserModelFromJson(Map<String, dynamic> json) => UserModel()
|
||||
..uid = json['uid'] as String?
|
||||
..userName = json['userName'] as String?
|
||||
..nickName = json['nickName'] as String?
|
||||
..tel = json['tel'] as String?
|
||||
..avatar = json['avatar'] as String?
|
||||
..exp1 = json['exp1'] as String?
|
||||
..exp2 = json['exp2'] as String?
|
||||
..head = json['head'] as String?
|
||||
..tmpHead = json['tmpHead'] as String?
|
||||
..tmpNickName = json['tmpNickName'] as String?;
|
||||
|
||||
Map<String, dynamic> _$UserModelToJson(UserModel instance) => <String, dynamic>{
|
||||
'uid': instance.uid,
|
||||
'userName': instance.userName,
|
||||
'nickName': instance.nickName,
|
||||
'tel': instance.tel,
|
||||
'avatar': instance.avatar,
|
||||
'exp1': instance.exp1,
|
||||
'exp2': instance.exp2,
|
||||
'head': instance.head,
|
||||
'tmpHead': instance.tmpHead,
|
||||
'tmpNickName': instance.tmpNickName,
|
||||
};
|
||||
Reference in New Issue
Block a user