updateUserItem static method
更新本地数据库-只更新某些数据
Implementation
static Future<UserEntity?> updateUserItem(
String? userId, UserProvider userProvider,
{bool? localData,
String? gender,
String? age,
String? country,
List? likes,
String? name,
String? sign,
String? headImage,
int? rechargeCount}) async {
var userDbProvider = UserInfoDbProvider();
var userEntity = await userDbProvider.getUserInfo(userId);
if (userEntity != null) {
var change = false;
if (localData != null) {
if (userEntity.localData == null || userEntity.localData != localData) {
userEntity.localData = localData;
change = true;
}
}
if (gender != null && userEntity.gender != gender) {
userEntity.gender = gender;
change = true;
}
if (age != null && userEntity.age != age) {
userEntity.age = age;
change = true;
}
if (country != null && userEntity.country != country) {
userEntity.country = country;
change = true;
}
if (likes != null) {
if (userEntity.likes == null ||
userEntity.likes!.length != likes.length) {
userEntity.likes = likes;
change = true;
} else {
for (int i = 0; i < likes.length; i++) {
if (likes[i] != userEntity.likes![i]) {
userEntity.likes = likes;
change = true;
break;
}
}
}
}
if (name != null && userEntity.name != name) {
userEntity.name = name;
change = true;
}
if (headImage != null && userEntity.headImage != headImage) {
userEntity.headImage = headImage;
change = true;
}
if (rechargeCount != null && userEntity.rechargeCount != rechargeCount) {
userEntity.rechargeCount = rechargeCount;
change = true;
}
if (change) {
userDbProvider.insert(
userEntity.id,
jsonEncode(
userEntity.toJson(),
),
);
userProvider.setUserEntity(userEntity);
}
}
return userEntity;
}