Browse Source

用户名,头像统一使用后端数据

weicu
lxm 2 years ago
parent
commit
d91399ceae
  1. 4
      lib/data/models/user_Info.dart
  2. 39
      lib/data/models/user_model.dart
  3. 7
      lib/modules/profile/controllers/profile_controller.dart
  4. 9
      lib/modules/profile/views/profile_view.dart
  5. 8
      lib/modules/settings/controllers/settings_controller.dart
  6. 882
      lib/modules/settings/views/settings_view.dart

4
lib/data/models/user_Info.dart

@ -24,6 +24,7 @@ class User {
String phone; String phone;
String phonemac; String phonemac;
String password; String password;
int membershipLevel=0;//添加会员等级字段,0表示普通用户
// final Int64 lastbettime; // final Int64 lastbettime;
// final Int64 createtime; // final Int64 createtime;
// final String wxopenid; // final String wxopenid;
@ -42,6 +43,7 @@ class User {
required this.phone, required this.phone,
required this.phonemac, required this.phonemac,
required this.password, required this.password,
this.membershipLevel = 0, // 添加默认值
// required this.lastbettime, // required this.lastbettime,
// required this.createtime, // required this.createtime,
// required this.wxopenid, // required this.wxopenid,
@ -66,6 +68,7 @@ class User {
phone: (userData?['phone'] as String?) ?? '', phone: (userData?['phone'] as String?) ?? '',
phonemac: (userData?['phonemac'] as String?) ?? '', phonemac: (userData?['phonemac'] as String?) ?? '',
password: (userData?['password'] as String?) ?? '', password: (userData?['password'] as String?) ?? '',
membershipLevel: (userData?['membershipLevel'] as int?) ?? 0, // 提供默认值
// lastbettime: _parseTimestamp(userData['lastbettime']), // lastbettime: _parseTimestamp(userData['lastbettime']),
// createtime: _parseTimestamp(userData['createtime']), // createtime: _parseTimestamp(userData['createtime']),
// wxopenid: (userData?['wxopenid'] as String?) ?? '', // wxopenid: (userData?['wxopenid'] as String?) ?? '',
@ -87,6 +90,7 @@ class User {
'phone': phone, 'phone': phone,
'phonemac': phonemac, 'phonemac': phonemac,
'password': password, 'password': password,
'membershipLevel': membershipLevel,
// 'lastbettime': lastbettime, // 'lastbettime': lastbettime,
// 'createtime': createtime, // 'createtime': createtime,
// 'wxopenid': wxopenid, // 'wxopenid': wxopenid,

39
lib/data/models/user_model.dart

@ -1,39 +0,0 @@
class UserModel {
String name; // 用户名
String avatar; // 头像
String id;
//final String deviceName;
String membershipLevel; // 会员等级
UserModel({
required this.name,
required this.avatar,
required this.id,
//required this.deviceName,
required this.membershipLevel,
});
Map<String, dynamic> toJson() => {
'name': name,
'avatar': avatar,
'id': id,
//'deviceName': deviceName,
'membershipLevel': membershipLevel,
};
factory UserModel.fromJson(Map<String, dynamic> json) => UserModel(
name: json['name'] ?? '未设置昵称',
avatar: json['avatar'] ?? '',
id: json['id'] ?? '',
//deviceName: json['deviceName'] ?? '',
membershipLevel: json['membershipLevel'] ?? '普通会员',
);
factory UserModel.defaultUser() => UserModel(
name: '未设置昵称',
avatar: '',
id: 'DeepSound_${DateTime.now().millisecondsSinceEpoch.toString()}',
//deviceName: '',
membershipLevel: '普通会员',
);
}

7
lib/modules/profile/controllers/profile_controller.dart

@ -4,7 +4,7 @@ import 'package:flutter/material.dart';
import 'package:http/http.dart'; import 'package:http/http.dart';
import 'package:image_picker/image_picker.dart'; import 'package:image_picker/image_picker.dart';
import 'package:logger/logger.dart'; import 'package:logger/logger.dart';
import '../../../data/models/user_model.dart'; import '../../../data/models/user_Info.dart';
import '../../settings/controllers/settings_controller.dart'; import '../../settings/controllers/settings_controller.dart';
import 'dart:io'; import 'dart:io';
import 'dart:convert'; import 'dart:convert';
@ -22,7 +22,8 @@ class ProfileController extends GetxController {
static const String userKey = 'user_info'; static const String userKey = 'user_info';
final _storage = GetStorage(); final _storage = GetStorage();
final ImagePicker _picker = ImagePicker(); final ImagePicker _picker = ImagePicker();
final Rx<UserModel> userInfo = UserModel.defaultUser().obs; final Rx<User> userInfo = User.instance.obs;
//final RxString localAvatar = ''.obs;
// 使用响应式变量 // 使用响应式变量
final currentLanguage = 'zh'.obs; final currentLanguage = 'zh'.obs;
@ -154,7 +155,7 @@ class ProfileController extends GetxController {
void loadUserInfo() { void loadUserInfo() {
final userJson = _storage.read(userKey); final userJson = _storage.read(userKey);
if (userJson != null) { if (userJson != null) {
userInfo.value = UserModel.fromJson(userJson); userInfo.value = User.instance;
} }
} }

9
lib/modules/profile/views/profile_view.dart

@ -169,11 +169,10 @@ class EditProfileView extends GetView<ProfileController> {
children: [ children: [
Obx(() => CircleAvatar( Obx(() => CircleAvatar(
radius: 50.r, radius: 50.r,
backgroundImage: backgroundImage: controller
controller.userInfo.value.avatar.isNotEmpty .userInfo.value.avatar.isNotEmpty
? FileImage( ? NetworkImage(controller.userInfo.value.avatar)
File(controller.userInfo.value.avatar)) : null,
: null,
child: controller.userInfo.value.avatar.isEmpty child: controller.userInfo.value.avatar.isEmpty
? Icon(Icons.person, size: 50.r) ? Icon(Icons.person, size: 50.r)
: null, : null,

8
lib/modules/settings/controllers/settings_controller.dart

@ -1,3 +1,4 @@
import 'package:firebase_auth/firebase_auth.dart' as firebase;
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:image_picker/image_picker.dart'; import 'package:image_picker/image_picker.dart';
@ -5,7 +6,8 @@ import 'package:get_storage/get_storage.dart';
import '../../../core/themes/theme_service.dart'; import '../../../core/themes/theme_service.dart';
import '../../../data/services/speech_factory.dart'; import '../../../data/services/speech_factory.dart';
import '../models/language_model.dart'; import '../models/language_model.dart';
import '../../../data/models/user_model.dart'; //import '../../../data/models/user_model.dart';
import '../../../data/models/user_Info.dart';
class SettingsController extends GetxController { class SettingsController extends GetxController {
// 语言设置 // 语言设置
@ -61,7 +63,7 @@ class SettingsController extends GetxController {
static const String userKey='user_info'; static const String userKey='user_info';
//final _storage=GetStorage(); //final _storage=GetStorage();
final ImagePicker _picker=ImagePicker(); final ImagePicker _picker=ImagePicker();
final Rx<UserModel> userInfo=UserModel.defaultUser().obs; final Rx<User> userInfo=User.instance.obs;//使用单例实例
@override @override
void onInit() { void onInit() {
@ -86,7 +88,7 @@ class SettingsController extends GetxController {
void loadUserInfo() { void loadUserInfo() {
final userJson = _storage.read(userKey); final userJson = _storage.read(userKey);
if (userJson != null) { if (userJson != null) {
userInfo.value = UserModel.fromJson(userJson); userInfo.value = User.instance;
} }
} }

882
lib/modules/settings/views/settings_view.dart

File diff suppressed because it is too large
Loading…
Cancel
Save