import 'package:get/get.dart'; import 'package:pj_supermarket_cloud/common/index.dart'; abstract class SyncUserTool { static const _tag = "sync商品工具"; // 获取存储用户 static Future storageUserByCarNumber(String cardNumber) async { final app = Get.find(); final userDao = app.dataBase.getUserDao; return await userDao.findByCardNumber(cardNumber); } // 获取存储用户 static Future storageUserByUserId(String userId) async { final app = Get.find(); final userDao = app.dataBase.getUserDao; return await userDao.findByUserId(userId); } /// 存储用户 static Future storageUser({required ServiceUser user}) async { try { final app = Get.find(); 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; } }