Files
biz_xfj_cloud/lib/common/utils/sync/sync_user_tool.dart
T

86 lines
2.6 KiB
Dart

import 'package:get/get.dart';
import 'package:pj_supermarket_cloud/common/index.dart';
abstract class SyncUserTool {
static const _tag = "sync商品工具";
// 获取存储用户
static Future<UserEntity?> storageUserByCarNumber(String cardNumber) async {
final app = Get.find<AppControl>();
final userDao = app.dataBase.getUserDao;
return await userDao.findByCardNumber(cardNumber);
}
// 获取存储用户
static Future<UserEntity?> storageUserByUserId(String userId) async {
final app = Get.find<AppControl>();
final userDao = app.dataBase.getUserDao;
return await userDao.findByUserId(userId);
}
/// 存储用户
static Future<void> storageUser({required ServiceUser user}) async {
try {
final app = Get.find<AppControl>();
final userDao = app.dataBase.getUserDao;
final detail = await userDao.findByUserId(user.userId!);
if (detail == null) {
final obj = _parseStorageUser(user: user, createDate: true);
await userDao.save(obj);
logger.i("|$_tag|,存储用户,新增成功|${obj.toJson()}|");
} else {
final obj = _parseStorageUser(user: user, updateDate: true);
obj.id = detail.id;
if (obj == detail) return;
await userDao.edit(obj);
logger.i("|$_tag|,存储用户,修改成功|${obj.toJson()}|");
}
} catch (e, stack) {
logger.e("|$_tag|,存储用户失败意外的错误error:|$e|stack:|$stack|");
}
}
static ServiceUser parsePayUser({
required UserEntity user,
}) {
return ServiceUser(
userId: user.userId,
username: user.nickname,
deptId: null,
userMobile: user.mobile,
userAvatar: user.avatar,
walletId: user.walletId,
walletTypeId: user.walletTypeId,
walletBalance: user.walletBalance,
walletIsFreeze: false,
walletCardNumber: user.walletCardNumber,
canteenId: user.canteenId,
);
}
static UserEntity _parseStorageUser({
required ServiceUser user,
bool createDate = false,
bool updateDate = false,
}) {
final userEntity = UserEntity(
userId: user.userId ?? "-1",
nickname: user.username ?? "未知",
mobile: user.userMobile,
avatar: user.userAvatar,
walletCardNumber: user.walletCardNumber,
walletId: user.walletId,
walletTypeId: user.walletTypeId,
walletBalance: user.walletBalance,
canteenId: user.canteenId,
);
if (createDate) {
userEntity.createTime = DateTime.now();
}
if (updateDate) {
userEntity.updateTime = DateTime.now();
}
return userEntity;
}
}