Files
pj_supermarket_cloud/lib/common/services/database/database.dart
T
dzc c6f9ffb998 feat:购买失败修改
fix:购买副屏展示用户余额
2026-10-26 17:46:54 +08:00

97 lines
3.0 KiB
Dart
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import 'dart:async';
import 'package:floor/floor.dart';
import 'package:pj_supermarket_cloud/common/index.dart';
import 'package:pj_supermarket_cloud/common/services/database/database_migration.dart';
import 'type_converter/face_timestamp_converter.dart';
import 'package:sqflite/sqflite.dart' as sqflite;
part 'database.g.dart';
const entities = <Type>[
BroadcastEntity,
OrderEntity,
OrderHoldBillEntity,
CanteenSpuEntity,
SupermarketSkuEntity,
SupermarketSpuEntity,
SupermarketCodeEntity,
ShopCardEntity,
ClassifyEntity,
PrintHistoryEntity,
UserEntity,
FaceEntity,
SettingEntity,
ScheduledTaskEntity,
ScheduledTaskLogEntity,
FileUploadRecordEntity,
OrderEvidenceUploadTaskEntity,
];
const typeConverters = <Type>[
DateTimeConverter,
DateTimeEmptyConverter,
OrderStatusConverter,
OrderTypeConverter,
OrderPayTypeConverter,
SysTypeConverter,
PrintStatusConverter,
ProductHourTypeConverter,
SupermarketNatureConverter,
DiscountsTypeConverter,
ListDiscountsConverter,
ListIntConverter,
BoolConverter,
];
// 版本必须与原生 DatabaseHelper.DATABASE_VERSION 同步修改
// (android/.../facediscern/database/DatabaseHelper.java)。
// 11-13 区间曾被原生历史版本以 13 提前盖章 user_version 占用,Flutter 侧从 10 直接跳到 14。
// 16:合并重复人员缓存并约束 userId 唯一,同时修复历史版本号与实际结构不一致的库。
@Database(version: 16, entities: entities)
@TypeConverters(typeConverters)
abstract class AppDatabase extends FloorDatabase {
BroadcastDao get getBroadcastDao;
OrderDao get getOrderDao;
OrderHoldBillDao get getOrderHoldBillDao;
CanteenSpuDao get getCanteenSpuDao;
SupermarketSkuDao get getSupermarketSkuDao;
SupermarketSpuDao get getSupermarketSpuDao;
SupermarketCodeDao get getSupermarketCodeDao;
ShopCardDao get getShopCardDao;
ClassifyDao get getClassifyDao;
PrintHistoryDao get getPrintHistoryDao;
UserDao get getUserDao;
FaceDao get getFaceDao;
SettingDao get getSettingDao;
ScheduledTaskDao get getScheduledTaskDao;
ScheduledTaskLogDao get getScheduledTaskLogDao;
FileUploadRecordDao get getFileUploadRecordDao;
OrderEvidenceUploadTaskDao get getOrderEvidenceUploadTaskDao;
static Future<AppDatabase> getDataBase() async {
final dbPath = await AppFileTool.getDatabasePath();
final name = "$dbPath/${Constants.databaseName}";
final dataBase = await $FloorAppDatabase
.databaseBuilder(name)
.addCallback(
Callback(
onCreate: (database, version) async {
logger.i('数据库已创建,版本: $version');
},
onOpen: (database) async {
await DatabaseMigration.repairSchema(database);
logger.i('数据库已打开');
},
onUpgrade: (database, startVersion, endVersion) {
logger.i('数据库已升级,版本: $startVersion -> $endVersion');
},
),
)
.addMigrations(DatabaseMigration.getDatabaseMigrations())
.build();
return dataBase;
}
}