// GENERATED CODE - DO NOT MODIFY BY HAND part of 'database.dart'; // ************************************************************************** // FloorGenerator // ************************************************************************** abstract class $AppDatabaseBuilderContract { /// Adds migrations to the builder. $AppDatabaseBuilderContract addMigrations(List migrations); /// Adds a database [Callback] to the builder. $AppDatabaseBuilderContract addCallback(Callback callback); /// Creates the database and initializes it. Future build(); } // ignore: avoid_classes_with_only_static_members class $FloorAppDatabase { /// Creates a database builder for a persistent database. /// Once a database is built, you should keep a reference to it and re-use it. static $AppDatabaseBuilderContract databaseBuilder(String name) => _$AppDatabaseBuilder(name); /// Creates a database builder for an in memory database. /// Information stored in an in memory database disappears when the process is killed. /// Once a database is built, you should keep a reference to it and re-use it. static $AppDatabaseBuilderContract inMemoryDatabaseBuilder() => _$AppDatabaseBuilder(null); } class _$AppDatabaseBuilder implements $AppDatabaseBuilderContract { _$AppDatabaseBuilder(this.name); final String? name; final List _migrations = []; Callback? _callback; @override $AppDatabaseBuilderContract addMigrations(List migrations) { _migrations.addAll(migrations); return this; } @override $AppDatabaseBuilderContract addCallback(Callback callback) { _callback = callback; return this; } @override Future build() async { final path = name != null ? await sqfliteDatabaseFactory.getDatabasePath(name!) : ':memory:'; final database = _$AppDatabase(); database.database = await database.open( path, _migrations, _callback, ); return database; } } class _$AppDatabase extends AppDatabase { _$AppDatabase([StreamController? listener]) { changeListener = listener ?? StreamController.broadcast(); } BroadcastDao? _getBroadcastDaoInstance; OrderDao? _getOrderDaoInstance; OrderHoldBillDao? _getOrderHoldBillDaoInstance; CanteenSpuDao? _getCanteenSpuDaoInstance; SupermarketSkuDao? _getSupermarketSkuDaoInstance; SupermarketSpuDao? _getSupermarketSpuDaoInstance; SupermarketCodeDao? _getSupermarketCodeDaoInstance; ShopCardDao? _getShopCardDaoInstance; ClassifyDao? _getClassifyDaoInstance; PrintHistoryDao? _getPrintHistoryDaoInstance; UserDao? _getUserDaoInstance; FaceDao? _getFaceDaoInstance; SettingDao? _getSettingDaoInstance; ScheduledTaskDao? _getScheduledTaskDaoInstance; ScheduledTaskLogDao? _getScheduledTaskLogDaoInstance; FileUploadRecordDao? _getFileUploadRecordDaoInstance; OrderEvidenceUploadTaskDao? _getOrderEvidenceUploadTaskDaoInstance; Future open( String path, List migrations, [ Callback? callback, ]) async { final databaseOptions = sqflite.OpenDatabaseOptions( version: 10, onConfigure: (database) async { await database.execute('PRAGMA foreign_keys = ON'); await callback?.onConfigure?.call(database); }, onOpen: (database) async { await callback?.onOpen?.call(database); }, onUpgrade: (database, startVersion, endVersion) async { await MigrationAdapter.runMigrations( database, startVersion, endVersion, migrations); await callback?.onUpgrade?.call(database, startVersion, endVersion); }, onCreate: (database, version) async { await database.execute( 'CREATE TABLE IF NOT EXISTS `broadcast` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `content` TEXT NOT NULL, `broadcastCount` INTEGER NOT NULL, `broadcastMaxCount` INTEGER NOT NULL, `isBroadcast` INTEGER NOT NULL, `isDone` INTEGER NOT NULL, `isDoneTime` TEXT, `serviceCode` TEXT NOT NULL, `serviceOrderCode` TEXT NOT NULL, `userId` TEXT NOT NULL, `username` TEXT NOT NULL, `userMobile` TEXT NOT NULL, `productDesc` TEXT NOT NULL, `payPrice` INTEGER NOT NULL, `hourType` INTEGER, `enable` INTEGER NOT NULL, `createTime` TEXT NOT NULL)'); await database.execute( 'CREATE TABLE IF NOT EXISTS `order_record` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `uniqueCode` TEXT NOT NULL, `serviceUniqueCode` TEXT NOT NULL, `sysType` TEXT NOT NULL, `userCode` TEXT NOT NULL, `username` TEXT, `hourType` TEXT, `price` INTEGER NOT NULL, `extraPrice` INTEGER NOT NULL, `payPrice` INTEGER NOT NULL, `walletId` TEXT, `orderSourceTypeId` TEXT, `type` TEXT NOT NULL, `status` TEXT NOT NULL, `payType` TEXT NOT NULL, `productDesc` TEXT, `count` INTEGER NOT NULL, `weight` REAL NOT NULL, `payTime` TEXT, `createTime` TEXT NOT NULL)'); await database.execute( 'CREATE TABLE IF NOT EXISTS `order_hold_bill` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `sysType` TEXT NOT NULL, `carListJson` TEXT, `userJson` TEXT, `price` INTEGER NOT NULL, `extraPrice` INTEGER NOT NULL, `payPrice` INTEGER NOT NULL, `createTime` TEXT NOT NULL)'); await database.execute( 'CREATE TABLE IF NOT EXISTS `canteen_spu` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `serviceUniqueCode` TEXT NOT NULL, `classifyServiceUniqueCode` TEXT NOT NULL, `hourType` INTEGER, `saleDate` TEXT NOT NULL, `name` TEXT NOT NULL, `price` INTEGER NOT NULL, `image` TEXT, `isDefault` INTEGER NOT NULL, `status` INTEGER NOT NULL, `sort` INTEGER NOT NULL, `isPriceIncreased` INTEGER NOT NULL, `createTime` TEXT NOT NULL, `updateTime` TEXT NOT NULL)'); await database.execute( 'CREATE TABLE IF NOT EXISTS `supermarket_sku` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `serviceUniqueCode` TEXT NOT NULL, `spuId` TEXT NOT NULL, `barCode` TEXT NOT NULL, `spec` TEXT NOT NULL, `unit` TEXT NOT NULL, `packageNum` INTEGER NOT NULL, `purchasePrice` INTEGER NOT NULL, `retailPrice` INTEGER NOT NULL, `promotionPrice` INTEGER NOT NULL)'); await database.execute( 'CREATE TABLE IF NOT EXISTS `supermarket_spu` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `serviceUniqueCode` TEXT NOT NULL, `classifyServiceUniqueCode` TEXT NOT NULL, `productCode` TEXT NOT NULL, `productName` TEXT NOT NULL, `productNamePy` TEXT, `productNature` TEXT NOT NULL, `barCode` TEXT, `packageNum` INTEGER NOT NULL, `unit` TEXT NOT NULL, `spec` TEXT NOT NULL, `picUrl` TEXT, `stock` REAL, `salesCount` REAL, `purchasePrice` INTEGER NOT NULL, `retailPrice` INTEGER NOT NULL, `promotionPrice` INTEGER NOT NULL, `sort` INTEGER NOT NULL, `createTime` TEXT NOT NULL, `updateTime` TEXT NOT NULL, `delFlag` INTEGER NOT NULL)'); await database.execute( 'CREATE TABLE IF NOT EXISTS `supermarket_code` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `serviceUniqueCode` TEXT NOT NULL, `spuId` TEXT NOT NULL, `unitId` TEXT NOT NULL, `barCode` TEXT NOT NULL)'); await database.execute( 'CREATE TABLE IF NOT EXISTS `shop_card` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `orderId` INTEGER NOT NULL, `productServiceUniqueCode` TEXT NOT NULL, `productName` TEXT NOT NULL, `productPic` TEXT NOT NULL, `productPrice` INTEGER NOT NULL, `nature` TEXT NOT NULL, `productNumber` INTEGER NOT NULL, `productWidget` REAL NOT NULL, `totalPrice` INTEGER NOT NULL, `isPriceIncreased` INTEGER NOT NULL)'); await database.execute( 'CREATE TABLE IF NOT EXISTS `classify` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `serviceUniqueCode` TEXT NOT NULL, `sysType` TEXT NOT NULL, `name` TEXT NOT NULL, `categoryType` TEXT NOT NULL, `sort` INTEGER NOT NULL, `createTime` TEXT NOT NULL, `updateTime` TEXT NOT NULL, `delFlag` INTEGER NOT NULL)'); await database.execute( 'CREATE TABLE IF NOT EXISTS `print_history` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `orderId` TEXT NOT NULL, `serviceOrderId` TEXT NOT NULL, `servicePrintId` TEXT NOT NULL, `invoiceUrl` TEXT NOT NULL, `printType` TEXT NOT NULL, `printNo` INTEGER NOT NULL, `retryVersion` INTEGER NOT NULL, `attemptCount` INTEGER NOT NULL, `lastError` TEXT, `resultPending` INTEGER NOT NULL, `status` TEXT NOT NULL, `printTime` TEXT, `syncTime` TEXT, `createTime` TEXT NOT NULL)'); await database.execute( 'CREATE TABLE IF NOT EXISTS `user_record` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `userId` TEXT NOT NULL, `nickname` TEXT NOT NULL, `mobile` TEXT, `avatar` TEXT, `walletCardNumber` TEXT, `walletId` TEXT, `walletTypeId` TEXT, `walletBalance` INTEGER, `canteenId` TEXT, `discountsList` TEXT, `discountsUpdateTime` TEXT, `createTime` TEXT, `updateTime` TEXT)'); await database.execute( 'CREATE TABLE IF NOT EXISTS `face` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `userId` TEXT NOT NULL, `sampleId` TEXT NOT NULL, `userName` TEXT NOT NULL, `deptId` TEXT, `deptName` TEXT, `imagePath` TEXT NOT NULL, `path` TEXT, `faceModel` TEXT, `createTime` TEXT, `updateTime` TEXT, `qualityScore` REAL, `qualityStatus` TEXT NOT NULL, `qualityCheckedAt` TEXT, `qualityErrorCode` INTEGER)'); await database.execute( 'CREATE TABLE IF NOT EXISTS `setting` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `userJson` TEXT NOT NULL, `sysJson` TEXT NOT NULL, `canteenExtraPriceConfigJson` TEXT)'); await database.execute( 'CREATE TABLE IF NOT EXISTS `scheduled_task` (`taskCode` TEXT NOT NULL, `enabled` INTEGER NOT NULL, `cronExpression` TEXT NOT NULL, `idleOnly` INTEGER NOT NULL, `lastRunAt` TEXT, `lastSuccessAt` TEXT, `lastStatus` TEXT NOT NULL, `lastMessage` TEXT NOT NULL, `createTime` TEXT NOT NULL, `updateTime` TEXT NOT NULL, PRIMARY KEY (`taskCode`))'); await database.execute( 'CREATE TABLE IF NOT EXISTS `scheduled_task_log` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `taskCode` TEXT NOT NULL, `taskName` TEXT NOT NULL, `triggerType` TEXT NOT NULL, `sourceType` TEXT NOT NULL, `sourceName` TEXT NOT NULL, `status` TEXT NOT NULL, `message` TEXT NOT NULL, `errorType` TEXT, `errorMessage` TEXT, `errorStack` TEXT, `startedAt` TEXT NOT NULL, `finishedAt` TEXT, `durationMs` INTEGER NOT NULL, `scannedCount` INTEGER, `skippedCount` INTEGER, `successCount` INTEGER, `failureCount` INTEGER)'); await database.execute( 'CREATE TABLE IF NOT EXISTS `file_upload_record` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `hardId` TEXT NOT NULL, `bizType` TEXT NOT NULL, `relativePath` TEXT NOT NULL, `originalName` TEXT NOT NULL, `sourceSize` INTEGER NOT NULL, `sourceModifiedTime` TEXT NOT NULL, `sanitizedHash` TEXT NOT NULL, `sanitizedSize` INTEGER NOT NULL, `status` TEXT NOT NULL, `serverFileId` TEXT, `attemptCount` INTEGER NOT NULL, `lastAttemptAt` TEXT, `uploadedAt` TEXT, `lastError` TEXT, `createTime` TEXT NOT NULL, `updateTime` TEXT NOT NULL)'); await database.execute( 'CREATE TABLE IF NOT EXISTS `order_evidence_upload_task` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `androidOrderCode` TEXT, `serverOrderId` TEXT, `recognitionSessionId` TEXT NOT NULL, `evidenceType` TEXT NOT NULL, `evidenceRole` TEXT NOT NULL, `sequenceNo` INTEGER NOT NULL, `userId` TEXT NOT NULL, `faceSampleId` TEXT, `referenceImageUrl` TEXT, `referenceImageVersion` TEXT, `localFilePath` TEXT, `imageHash` TEXT, `imageSize` INTEGER, `imageWidth` INTEGER, `imageHeight` INTEGER, `similarity` REAL, `similarityThreshold` REAL, `capturedAt` TEXT NOT NULL, `appVersion` TEXT NOT NULL, `status` TEXT NOT NULL, `attemptCount` INTEGER NOT NULL, `nextRetryAt` TEXT, `serverEvidenceId` TEXT, `serverImageUrl` TEXT, `lastError` TEXT, `unavailableReportedAt` TEXT, `completedAt` TEXT, `createTime` TEXT NOT NULL, `updateTime` TEXT NOT NULL, `expiresAt` TEXT NOT NULL)'); await database.execute( 'CREATE UNIQUE INDEX `index_print_history_servicePrintId` ON `print_history` (`servicePrintId`)'); await database.execute( 'CREATE INDEX `index_scheduled_task_log_taskCode_startedAt` ON `scheduled_task_log` (`taskCode`, `startedAt`)'); await database.execute( 'CREATE INDEX `index_scheduled_task_log_sourceType_status_startedAt` ON `scheduled_task_log` (`sourceType`, `status`, `startedAt`)'); await database.execute( 'CREATE UNIQUE INDEX `index_file_upload_record_hardId_bizType_relativePath` ON `file_upload_record` (`hardId`, `bizType`, `relativePath`)'); await database.execute( 'CREATE INDEX `index_file_upload_record_bizType_status_updateTime` ON `file_upload_record` (`bizType`, `status`, `updateTime`)'); await database.execute( 'CREATE UNIQUE INDEX `index_order_evidence_upload_task_androidOrderCode_evidenceType_evidenceRole_sequenceNo` ON `order_evidence_upload_task` (`androidOrderCode`, `evidenceType`, `evidenceRole`, `sequenceNo`)'); await database.execute( 'CREATE INDEX `index_order_evidence_upload_task_status_nextRetryAt_createTime` ON `order_evidence_upload_task` (`status`, `nextRetryAt`, `createTime`)'); await callback?.onCreate?.call(database, version); }, ); return sqfliteDatabaseFactory.openDatabase(path, options: databaseOptions); } @override BroadcastDao get getBroadcastDao { return _getBroadcastDaoInstance ??= _$BroadcastDao(database, changeListener); } @override OrderDao get getOrderDao { return _getOrderDaoInstance ??= _$OrderDao(database, changeListener); } @override OrderHoldBillDao get getOrderHoldBillDao { return _getOrderHoldBillDaoInstance ??= _$OrderHoldBillDao(database, changeListener); } @override CanteenSpuDao get getCanteenSpuDao { return _getCanteenSpuDaoInstance ??= _$CanteenSpuDao(database, changeListener); } @override SupermarketSkuDao get getSupermarketSkuDao { return _getSupermarketSkuDaoInstance ??= _$SupermarketSkuDao(database, changeListener); } @override SupermarketSpuDao get getSupermarketSpuDao { return _getSupermarketSpuDaoInstance ??= _$SupermarketSpuDao(database, changeListener); } @override SupermarketCodeDao get getSupermarketCodeDao { return _getSupermarketCodeDaoInstance ??= _$SupermarketCodeDao(database, changeListener); } @override ShopCardDao get getShopCardDao { return _getShopCardDaoInstance ??= _$ShopCardDao(database, changeListener); } @override ClassifyDao get getClassifyDao { return _getClassifyDaoInstance ??= _$ClassifyDao(database, changeListener); } @override PrintHistoryDao get getPrintHistoryDao { return _getPrintHistoryDaoInstance ??= _$PrintHistoryDao(database, changeListener); } @override UserDao get getUserDao { return _getUserDaoInstance ??= _$UserDao(database, changeListener); } @override FaceDao get getFaceDao { return _getFaceDaoInstance ??= _$FaceDao(database, changeListener); } @override SettingDao get getSettingDao { return _getSettingDaoInstance ??= _$SettingDao(database, changeListener); } @override ScheduledTaskDao get getScheduledTaskDao { return _getScheduledTaskDaoInstance ??= _$ScheduledTaskDao(database, changeListener); } @override ScheduledTaskLogDao get getScheduledTaskLogDao { return _getScheduledTaskLogDaoInstance ??= _$ScheduledTaskLogDao(database, changeListener); } @override FileUploadRecordDao get getFileUploadRecordDao { return _getFileUploadRecordDaoInstance ??= _$FileUploadRecordDao(database, changeListener); } @override OrderEvidenceUploadTaskDao get getOrderEvidenceUploadTaskDao { return _getOrderEvidenceUploadTaskDaoInstance ??= _$OrderEvidenceUploadTaskDao(database, changeListener); } } class _$BroadcastDao extends BroadcastDao { _$BroadcastDao( this.database, this.changeListener, ) : _queryAdapter = QueryAdapter(database), _broadcastEntityInsertionAdapter = InsertionAdapter( database, 'broadcast', (BroadcastEntity item) => { 'id': item.id, 'content': item.content, 'broadcastCount': item.broadcastCount, 'broadcastMaxCount': item.broadcastMaxCount, 'isBroadcast': _boolConverter.encode(item.isBroadcast), 'isDone': _boolConverter.encode(item.isDone), 'isDoneTime': _dateTimeEmptyConverter.encode(item.isDoneTime), 'serviceCode': item.serviceCode, 'serviceOrderCode': item.serviceOrderCode, 'userId': item.userId, 'username': item.username, 'userMobile': item.userMobile, 'productDesc': item.productDesc, 'payPrice': item.payPrice, 'hourType': item.hourType?.index, 'enable': _boolConverter.encode(item.enable), 'createTime': _dateTimeConverter.encode(item.createTime) }), _broadcastEntityUpdateAdapter = UpdateAdapter( database, 'broadcast', ['id'], (BroadcastEntity item) => { 'id': item.id, 'content': item.content, 'broadcastCount': item.broadcastCount, 'broadcastMaxCount': item.broadcastMaxCount, 'isBroadcast': _boolConverter.encode(item.isBroadcast), 'isDone': _boolConverter.encode(item.isDone), 'isDoneTime': _dateTimeEmptyConverter.encode(item.isDoneTime), 'serviceCode': item.serviceCode, 'serviceOrderCode': item.serviceOrderCode, 'userId': item.userId, 'username': item.username, 'userMobile': item.userMobile, 'productDesc': item.productDesc, 'payPrice': item.payPrice, 'hourType': item.hourType?.index, 'enable': _boolConverter.encode(item.enable), 'createTime': _dateTimeConverter.encode(item.createTime) }); final sqflite.DatabaseExecutor database; final StreamController changeListener; final QueryAdapter _queryAdapter; final InsertionAdapter _broadcastEntityInsertionAdapter; final UpdateAdapter _broadcastEntityUpdateAdapter; @override Future del(String serviceOrderCode) async { await _queryAdapter.queryNoReturn( 'DELETE FROM broadcast WHERE isDone = 0 AND (?1 = \'-1\' OR serviceOrderCode = ?1)', arguments: [serviceOrderCode]); } @override Future> getAll(String hourType) async { return _queryAdapter.queryList( 'SELECT * FROM broadcast WHERE isDone = 0 AND enable = 1 AND broadcastCount < broadcastMaxCount AND (?1 = \'-1\' OR hourType = ?1) AND strftime(\'%Y-%m-%d\', createTime) = strftime(\'%Y-%m-%d\', \'now\', \'localtime\')', mapper: (Map row) => BroadcastEntity(id: row['id'] as int?, content: row['content'] as String, broadcastCount: row['broadcastCount'] as int, broadcastMaxCount: row['broadcastMaxCount'] as int, isBroadcast: _boolConverter.decode(row['isBroadcast'] as int), isDone: _boolConverter.decode(row['isDone'] as int), createTime: _dateTimeConverter.decode(row['createTime'] as String), serviceCode: row['serviceCode'] as String, serviceOrderCode: row['serviceOrderCode'] as String, userId: row['userId'] as String, username: row['username'] as String, userMobile: row['userMobile'] as String, productDesc: row['productDesc'] as String, payPrice: row['payPrice'] as int, hourType: row['hourType'] == null ? null : ProductHourType.values[row['hourType'] as int], enable: _boolConverter.decode(row['enable'] as int)), arguments: [hourType]); } @override Future> findAllPage( String hourType, int pageSize, int offset, ) async { return _queryAdapter.queryList( 'SELECT * FROM broadcast WHERE strftime(\'%Y-%m-%d\', createTime) = strftime(\'%Y-%m-%d\', \'now\', \'localtime\') AND (?1 = \'-1\' OR hourType = ?1) LIMIT ?2 OFFSET ?3', mapper: (Map row) => BroadcastEntity(id: row['id'] as int?, content: row['content'] as String, broadcastCount: row['broadcastCount'] as int, broadcastMaxCount: row['broadcastMaxCount'] as int, isBroadcast: _boolConverter.decode(row['isBroadcast'] as int), isDone: _boolConverter.decode(row['isDone'] as int), createTime: _dateTimeConverter.decode(row['createTime'] as String), serviceCode: row['serviceCode'] as String, serviceOrderCode: row['serviceOrderCode'] as String, userId: row['userId'] as String, username: row['username'] as String, userMobile: row['userMobile'] as String, productDesc: row['productDesc'] as String, payPrice: row['payPrice'] as int, hourType: row['hourType'] == null ? null : ProductHourType.values[row['hourType'] as int], enable: _boolConverter.decode(row['enable'] as int)), arguments: [hourType, pageSize, offset]); } @override Future count(String hourType) async { return _queryAdapter.query( 'SELECT COUNT(0) FROM broadcast WHERE strftime(\'%Y-%m-%d\', createTime) = strftime(\'%Y-%m-%d\', \'now\', \'localtime\') AND (?1 = \'-1\' OR hourType = ?1)', mapper: (Map row) => row.values.first as int, arguments: [hourType]); } @override Future save(BroadcastEntity entity) async { await _broadcastEntityInsertionAdapter.insert( entity, OnConflictStrategy.abort); } @override Future batchSave(List entitys) async { await _broadcastEntityInsertionAdapter.insertList( entitys, OnConflictStrategy.abort); } @override Future edit(BroadcastEntity entity) async { await _broadcastEntityUpdateAdapter.update( entity, OnConflictStrategy.abort); } } class _$OrderDao extends OrderDao { _$OrderDao( this.database, this.changeListener, ) : _queryAdapter = QueryAdapter(database), _orderEntityInsertionAdapter = InsertionAdapter( database, 'order_record', (OrderEntity item) => { 'id': item.id, 'uniqueCode': item.uniqueCode, 'serviceUniqueCode': item.serviceUniqueCode, 'sysType': _sysTypeConverter.encode(item.sysType), 'userCode': item.userCode, 'username': item.username, 'hourType': item.hourType, 'price': item.price, 'extraPrice': item.extraPrice, 'payPrice': item.payPrice, 'walletId': item.walletId, 'orderSourceTypeId': item.orderSourceTypeId, 'type': _orderTypeConverter.encode(item.type), 'status': _orderStatusConverter.encode(item.status), 'payType': _orderPayTypeConverter.encode(item.payType), 'productDesc': item.productDesc, 'count': item.count, 'weight': item.weight, 'payTime': _dateTimeEmptyConverter.encode(item.payTime), 'createTime': _dateTimeConverter.encode(item.createTime) }), _orderEntityUpdateAdapter = UpdateAdapter( database, 'order_record', ['id'], (OrderEntity item) => { 'id': item.id, 'uniqueCode': item.uniqueCode, 'serviceUniqueCode': item.serviceUniqueCode, 'sysType': _sysTypeConverter.encode(item.sysType), 'userCode': item.userCode, 'username': item.username, 'hourType': item.hourType, 'price': item.price, 'extraPrice': item.extraPrice, 'payPrice': item.payPrice, 'walletId': item.walletId, 'orderSourceTypeId': item.orderSourceTypeId, 'type': _orderTypeConverter.encode(item.type), 'status': _orderStatusConverter.encode(item.status), 'payType': _orderPayTypeConverter.encode(item.payType), 'productDesc': item.productDesc, 'count': item.count, 'weight': item.weight, 'payTime': _dateTimeEmptyConverter.encode(item.payTime), 'createTime': _dateTimeConverter.encode(item.createTime) }), _orderEntityDeletionAdapter = DeletionAdapter( database, 'order_record', ['id'], (OrderEntity item) => { 'id': item.id, 'uniqueCode': item.uniqueCode, 'serviceUniqueCode': item.serviceUniqueCode, 'sysType': _sysTypeConverter.encode(item.sysType), 'userCode': item.userCode, 'username': item.username, 'hourType': item.hourType, 'price': item.price, 'extraPrice': item.extraPrice, 'payPrice': item.payPrice, 'walletId': item.walletId, 'orderSourceTypeId': item.orderSourceTypeId, 'type': _orderTypeConverter.encode(item.type), 'status': _orderStatusConverter.encode(item.status), 'payType': _orderPayTypeConverter.encode(item.payType), 'productDesc': item.productDesc, 'count': item.count, 'weight': item.weight, 'payTime': _dateTimeEmptyConverter.encode(item.payTime), 'createTime': _dateTimeConverter.encode(item.createTime) }); final sqflite.DatabaseExecutor database; final StreamController changeListener; final QueryAdapter _queryAdapter; final InsertionAdapter _orderEntityInsertionAdapter; final UpdateAdapter _orderEntityUpdateAdapter; final DeletionAdapter _orderEntityDeletionAdapter; @override Future editOfflineStatus(String codes) async { await _queryAdapter.queryNoReturn( 'UPDATE order_record SET status = \'PAY\' WHERE uniqueCode IN ?1', arguments: [codes]); } @override Future> findAll( String status, DateTime startCreateOrderTime, DateTime endCreateOrderTime, int pageSize, int offset, String sysType, String hourType, ) async { return _queryAdapter.queryList( 'SELECT * FROM order_record WHERE (?1 == \"-1\" OR status = ?1) AND (?6 = \'-1\' OR sysType = ?6) AND (?7 = \'-1\' OR hourType = ?7) AND strftime(\'%Y-%m-%d\', createTime) >= strftime(\'%Y-%m-%d\', ?2) AND strftime(\'%Y-%m-%d\', createTime) <= strftime(\'%Y-%m-%d\', ?3) ORDER BY createTime DESC LIMIT ?4 OFFSET ?5', mapper: (Map row) => OrderEntity( id: row['id'] as int?, uniqueCode: row['uniqueCode'] as String, serviceUniqueCode: row['serviceUniqueCode'] as String, sysType: _sysTypeConverter.decode(row['sysType'] as String), userCode: row['userCode'] as String, username: row['username'] as String?, hourType: row['hourType'] as String?, price: row['price'] as int, extraPrice: row['extraPrice'] as int, payPrice: row['payPrice'] as int, walletId: row['walletId'] as String?, orderSourceTypeId: row['orderSourceTypeId'] as String?, type: _orderTypeConverter.decode(row['type'] as String), status: _orderStatusConverter.decode(row['status'] as String), payType: _orderPayTypeConverter.decode(row['payType'] as String), productDesc: row['productDesc'] as String?, count: row['count'] as int, weight: row['weight'] as double, payTime: _dateTimeEmptyConverter.decode(row['payTime'] as String?), createTime: _dateTimeConverter.decode(row['createTime'] as String)), arguments: [ status, _dateTimeConverter.encode(startCreateOrderTime), _dateTimeConverter.encode(endCreateOrderTime), pageSize, offset, sysType, hourType ]); } @override Future count( String status, DateTime startCreateOrderTime, DateTime endCreateOrderTime, String sysType, String hourType, ) async { return _queryAdapter.query( 'SELECT COUNT(0) FROM order_record WHERE (?1 == \"-1\" OR status = ?1) AND (?4 = \'-1\' OR sysType = ?4) AND (?5 = \'-1\' OR hourType = ?5) AND strftime(\'%Y-%m-%d\', createTime) >= strftime(\'%Y-%m-%d\', ?2) AND strftime(\'%Y-%m-%d\', createTime) <= strftime(\'%Y-%m-%d\', ?3)', mapper: (Map row) => row.values.first as int, arguments: [ status, _dateTimeConverter.encode(startCreateOrderTime), _dateTimeConverter.encode(endCreateOrderTime), sysType, hourType ]); } @override Future> findOffline( String sysType, DateTime startCreateOrderTime, DateTime endCreateOrderTime, ) async { return _queryAdapter.queryList( 'SELECT * FROM order_record WHERE status = \'OFFLINE_PAY\' AND (?1 = \'-1\' OR sysType = ?1) AND createTime >= ?2 AND createTime <= ?3', mapper: (Map row) => OrderEntity( id: row['id'] as int?, uniqueCode: row['uniqueCode'] as String, serviceUniqueCode: row['serviceUniqueCode'] as String, sysType: _sysTypeConverter.decode(row['sysType'] as String), userCode: row['userCode'] as String, username: row['username'] as String?, hourType: row['hourType'] as String?, price: row['price'] as int, extraPrice: row['extraPrice'] as int, payPrice: row['payPrice'] as int, walletId: row['walletId'] as String?, orderSourceTypeId: row['orderSourceTypeId'] as String?, type: _orderTypeConverter.decode(row['type'] as String), status: _orderStatusConverter.decode(row['status'] as String), payType: _orderPayTypeConverter.decode(row['payType'] as String), productDesc: row['productDesc'] as String?, count: row['count'] as int, weight: row['weight'] as double, payTime: _dateTimeEmptyConverter.decode(row['payTime'] as String?), createTime: _dateTimeConverter.decode(row['createTime'] as String)), arguments: [ sysType, _dateTimeConverter.encode(startCreateOrderTime), _dateTimeConverter.encode(endCreateOrderTime) ]); } @override Future findById(int id) async { return _queryAdapter.query( 'SELECT * FROM order_record WHERE id = ?1', mapper: (Map row) => OrderEntity( id: row['id'] as int?, uniqueCode: row['uniqueCode'] as String, serviceUniqueCode: row['serviceUniqueCode'] as String, sysType: _sysTypeConverter.decode(row['sysType'] as String), userCode: row['userCode'] as String, username: row['username'] as String?, hourType: row['hourType'] as String?, price: row['price'] as int, extraPrice: row['extraPrice'] as int, payPrice: row['payPrice'] as int, walletId: row['walletId'] as String?, orderSourceTypeId: row['orderSourceTypeId'] as String?, type: _orderTypeConverter.decode(row['type'] as String), status: _orderStatusConverter.decode(row['status'] as String), payType: _orderPayTypeConverter.decode(row['payType'] as String), productDesc: row['productDesc'] as String?, count: row['count'] as int, weight: row['weight'] as double, payTime: _dateTimeEmptyConverter.decode(row['payTime'] as String?), createTime: _dateTimeConverter.decode(row['createTime'] as String)), arguments: [id]); } @override Future save(OrderEntity entity) { return _orderEntityInsertionAdapter.insertAndReturnId( entity, OnConflictStrategy.abort); } @override Future batchSave(List entitys) async { await _orderEntityInsertionAdapter.insertList( entitys, OnConflictStrategy.abort); } @override Future edit(OrderEntity entity) async { await _orderEntityUpdateAdapter.update(entity, OnConflictStrategy.abort); } @override Future batchEdit(List entitys) async { await _orderEntityUpdateAdapter.updateList( entitys, OnConflictStrategy.abort); } @override Future del(OrderEntity entity) async { await _orderEntityDeletionAdapter.delete(entity); } @override Future batchDel(List entitys) async { await _orderEntityDeletionAdapter.deleteList(entitys); } } class _$OrderHoldBillDao extends OrderHoldBillDao { _$OrderHoldBillDao( this.database, this.changeListener, ) : _queryAdapter = QueryAdapter(database), _orderHoldBillEntityInsertionAdapter = InsertionAdapter( database, 'order_hold_bill', (OrderHoldBillEntity item) => { 'id': item.id, 'sysType': _sysTypeConverter.encode(item.sysType), 'carListJson': item.carListJson, 'userJson': item.userJson, 'price': item.price, 'extraPrice': item.extraPrice, 'payPrice': item.payPrice, 'createTime': _dateTimeConverter.encode(item.createTime) }), _orderHoldBillEntityUpdateAdapter = UpdateAdapter( database, 'order_hold_bill', ['id'], (OrderHoldBillEntity item) => { 'id': item.id, 'sysType': _sysTypeConverter.encode(item.sysType), 'carListJson': item.carListJson, 'userJson': item.userJson, 'price': item.price, 'extraPrice': item.extraPrice, 'payPrice': item.payPrice, 'createTime': _dateTimeConverter.encode(item.createTime) }), _orderHoldBillEntityDeletionAdapter = DeletionAdapter( database, 'order_hold_bill', ['id'], (OrderHoldBillEntity item) => { 'id': item.id, 'sysType': _sysTypeConverter.encode(item.sysType), 'carListJson': item.carListJson, 'userJson': item.userJson, 'price': item.price, 'extraPrice': item.extraPrice, 'payPrice': item.payPrice, 'createTime': _dateTimeConverter.encode(item.createTime) }); final sqflite.DatabaseExecutor database; final StreamController changeListener; final QueryAdapter _queryAdapter; final InsertionAdapter _orderHoldBillEntityInsertionAdapter; final UpdateAdapter _orderHoldBillEntityUpdateAdapter; final DeletionAdapter _orderHoldBillEntityDeletionAdapter; @override Future> list( String startTime, String endTime, int pageSize, int offset, ) async { return _queryAdapter.queryList( 'SELECT * FROM order_hold_bill WHERE createTime >= ?1 AND createTime <= ?2 ORDER BY createTime DESC LIMIT ?3 OFFSET ?4', mapper: (Map row) => OrderHoldBillEntity(id: row['id'] as int?, sysType: _sysTypeConverter.decode(row['sysType'] as String), carListJson: row['carListJson'] as String?, userJson: row['userJson'] as String?, price: row['price'] as int, extraPrice: row['extraPrice'] as int, payPrice: row['payPrice'] as int, createTime: _dateTimeConverter.decode(row['createTime'] as String)), arguments: [startTime, endTime, pageSize, offset]); } @override Future count( String startTime, String endTime, ) async { return _queryAdapter.query( 'SELECT COUNT(*) FROM order_hold_bill WHERE createTime >= ?1 AND createTime <= ?2', mapper: (Map row) => row.values.first as int, arguments: [startTime, endTime]); } @override Future deleteOlderThan7Days() async { return _queryAdapter.query( 'DELETE FROM order_hold_bill WHERE createTime < datetime(\'now\', \'-7 days\')', mapper: (Map row) => row.values.first as int); } @override Future save(OrderHoldBillEntity entity) { return _orderHoldBillEntityInsertionAdapter.insertAndReturnId( entity, OnConflictStrategy.abort); } @override Future edit(OrderHoldBillEntity entity) async { await _orderHoldBillEntityUpdateAdapter.update( entity, OnConflictStrategy.abort); } @override Future del(OrderHoldBillEntity entity) async { await _orderHoldBillEntityDeletionAdapter.delete(entity); } } class _$CanteenSpuDao extends CanteenSpuDao { _$CanteenSpuDao( this.database, this.changeListener, ) : _queryAdapter = QueryAdapter(database), _canteenSpuEntityInsertionAdapter = InsertionAdapter( database, 'canteen_spu', (CanteenSpuEntity item) => { 'id': item.id, 'serviceUniqueCode': item.serviceUniqueCode, 'classifyServiceUniqueCode': item.classifyServiceUniqueCode, 'hourType': item.hourType?.index, 'saleDate': _dateTimeConverter.encode(item.saleDate), 'name': item.name, 'price': item.price, 'image': item.image, 'isDefault': _boolConverter.encode(item.isDefault), 'status': item.status, 'sort': item.sort, 'isPriceIncreased': _boolConverter.encode(item.isPriceIncreased), 'createTime': _dateTimeConverter.encode(item.createTime), 'updateTime': _dateTimeConverter.encode(item.updateTime) }), _canteenSpuEntityUpdateAdapter = UpdateAdapter( database, 'canteen_spu', ['id'], (CanteenSpuEntity item) => { 'id': item.id, 'serviceUniqueCode': item.serviceUniqueCode, 'classifyServiceUniqueCode': item.classifyServiceUniqueCode, 'hourType': item.hourType?.index, 'saleDate': _dateTimeConverter.encode(item.saleDate), 'name': item.name, 'price': item.price, 'image': item.image, 'isDefault': _boolConverter.encode(item.isDefault), 'status': item.status, 'sort': item.sort, 'isPriceIncreased': _boolConverter.encode(item.isPriceIncreased), 'createTime': _dateTimeConverter.encode(item.createTime), 'updateTime': _dateTimeConverter.encode(item.updateTime) }), _canteenSpuEntityDeletionAdapter = DeletionAdapter( database, 'canteen_spu', ['id'], (CanteenSpuEntity item) => { 'id': item.id, 'serviceUniqueCode': item.serviceUniqueCode, 'classifyServiceUniqueCode': item.classifyServiceUniqueCode, 'hourType': item.hourType?.index, 'saleDate': _dateTimeConverter.encode(item.saleDate), 'name': item.name, 'price': item.price, 'image': item.image, 'isDefault': _boolConverter.encode(item.isDefault), 'status': item.status, 'sort': item.sort, 'isPriceIncreased': _boolConverter.encode(item.isPriceIncreased), 'createTime': _dateTimeConverter.encode(item.createTime), 'updateTime': _dateTimeConverter.encode(item.updateTime) }); final sqflite.DatabaseExecutor database; final StreamController changeListener; final QueryAdapter _queryAdapter; final InsertionAdapter _canteenSpuEntityInsertionAdapter; final UpdateAdapter _canteenSpuEntityUpdateAdapter; final DeletionAdapter _canteenSpuEntityDeletionAdapter; @override Future delAllByType() async { await _queryAdapter.queryNoReturn('DELETE FROM canteen_spu'); } @override Future delAllByDay(String dayStr) async { await _queryAdapter.queryNoReturn( 'DELETE FROM canteen_spu WHERE strftime(\'%Y-%m-%d\', saleDate) = strftime(\'%Y-%m-%d\', ?1)', arguments: [dayStr]); } @override Future editDefault( bool isDefault, String uniqueCode, int hourTypeIndex, ) async { await _queryAdapter.queryNoReturn( 'UPDATE canteen_spu SET isDefault = CASE WHEN serviceUniqueCode = ?2 THEN ?1 WHEN ?1 = 1 THEN 0 ELSE isDefault END WHERE canteen_spu.hourType = ?3 AND strftime(\'%Y-%m-%d\', saleDate) = strftime(\'%Y-%m-%d\', \'now\', \'localtime\')', arguments: [ _boolConverter.encode(isDefault), uniqueCode, hourTypeIndex ]); } @override Future getCount(String hourType) async { return _queryAdapter.query( 'SELECT DISTINCT COUNT(0) FROM canteen_spu WHERE (?1 = \'-1\' OR INSTR(\',\' || hourType || \',\', \',\' || ?1 || \',\') > 0) AND strftime(\'%Y-%m-%d\', saleDate) = strftime(\'%Y-%m-%d\', \'now\', \'localtime\')', mapper: (Map row) => row.values.first as int, arguments: [hourType]); } @override Future getByCode( String code, String saleDate, ) async { return _queryAdapter.query( 'SELECT * FROM canteen_spu WHERE serviceUniqueCode = ?1 AND (?2 = \'-1\' OR strftime(\'%Y-%m-%d\', saleDate) = strftime(\'%Y-%m-%d\', ?2)) LIMIT 1', mapper: (Map row) => CanteenSpuEntity(id: row['id'] as int?, serviceUniqueCode: row['serviceUniqueCode'] as String, classifyServiceUniqueCode: row['classifyServiceUniqueCode'] as String, hourType: row['hourType'] == null ? null : ProductHourType.values[row['hourType'] as int], saleDate: _dateTimeConverter.decode(row['saleDate'] as String), name: row['name'] as String, price: row['price'] as int, image: row['image'] as String?, isDefault: _boolConverter.decode(row['isDefault'] as int), status: row['status'] as int, sort: row['sort'] as int, isPriceIncreased: _boolConverter.decode(row['isPriceIncreased'] as int), createTime: _dateTimeConverter.decode(row['createTime'] as String), updateTime: _dateTimeConverter.decode(row['updateTime'] as String)), arguments: [code, saleDate]); } @override Future> getAll( String classifyServiceUniqueCode, String hourType, String saleDate, ) async { return _queryAdapter.queryList( 'SELECT canteen_spu.* FROM canteen_spu LEFT JOIN classify ON canteen_spu.classifyServiceUniqueCode = classify.serviceUniqueCode AND classify.delFlag = 0 WHERE (?1 = \'-1\' OR canteen_spu.classifyServiceUniqueCode = ?1) AND (?2 = \'-1\' OR INSTR(\',\' || hourType || \',\', \',\' || ?2 || \',\') > 0) AND (?3 = \'-1\' OR strftime(\'%Y-%m-%d\', saleDate) = strftime(\'%Y-%m-%d\', ?3)) ORDER BY classify.sort,canteen_spu.sort desc,canteen_spu.price', mapper: (Map row) => CanteenSpuEntity(id: row['id'] as int?, serviceUniqueCode: row['serviceUniqueCode'] as String, classifyServiceUniqueCode: row['classifyServiceUniqueCode'] as String, hourType: row['hourType'] == null ? null : ProductHourType.values[row['hourType'] as int], saleDate: _dateTimeConverter.decode(row['saleDate'] as String), name: row['name'] as String, price: row['price'] as int, image: row['image'] as String?, isDefault: _boolConverter.decode(row['isDefault'] as int), status: row['status'] as int, sort: row['sort'] as int, isPriceIncreased: _boolConverter.decode(row['isPriceIncreased'] as int), createTime: _dateTimeConverter.decode(row['createTime'] as String), updateTime: _dateTimeConverter.decode(row['updateTime'] as String)), arguments: [classifyServiceUniqueCode, hourType, saleDate]); } @override Future> getAllPage( String classifyServiceUniqueCode, String hourType, int pageSize, int offset, ) async { return _queryAdapter.queryList( 'SELECT canteen_spu.* FROM canteen_spu LEFT JOIN classify ON canteen_spu.classifyServiceUniqueCode = classify.serviceUniqueCode AND classify.delFlag = 0 WHERE (?1 = \'-1\' OR canteen_spu.classifyServiceUniqueCode = ?1) AND (?2 = \'-1\' OR INSTR(\',\' || canteen_spu.hourType || \',\', \',\' || ?2 || \',\') > 0) AND strftime(\'%Y-%m-%d\', saleDate) = strftime(\'%Y-%m-%d\', \'now\', \'localtime\') ORDER BY classify.sort, classify.id, canteen_spu.price LIMIT ?3 OFFSET ?4', mapper: (Map row) => CanteenSpuEntity(id: row['id'] as int?, serviceUniqueCode: row['serviceUniqueCode'] as String, classifyServiceUniqueCode: row['classifyServiceUniqueCode'] as String, hourType: row['hourType'] == null ? null : ProductHourType.values[row['hourType'] as int], saleDate: _dateTimeConverter.decode(row['saleDate'] as String), name: row['name'] as String, price: row['price'] as int, image: row['image'] as String?, isDefault: _boolConverter.decode(row['isDefault'] as int), status: row['status'] as int, sort: row['sort'] as int, isPriceIncreased: _boolConverter.decode(row['isPriceIncreased'] as int), createTime: _dateTimeConverter.decode(row['createTime'] as String), updateTime: _dateTimeConverter.decode(row['updateTime'] as String)), arguments: [classifyServiceUniqueCode, hourType, pageSize, offset]); } @override Future> getDefault(int hourTypeIndex) async { return _queryAdapter.queryList( 'SELECT * FROM canteen_spu WHERE isDefault = 1 AND canteen_spu.hourType = ?1 AND strftime(\'%Y-%m-%d\', saleDate) = strftime(\'%Y-%m-%d\', \'now\', \'localtime\')', mapper: (Map row) => CanteenSpuEntity(id: row['id'] as int?, serviceUniqueCode: row['serviceUniqueCode'] as String, classifyServiceUniqueCode: row['classifyServiceUniqueCode'] as String, hourType: row['hourType'] == null ? null : ProductHourType.values[row['hourType'] as int], saleDate: _dateTimeConverter.decode(row['saleDate'] as String), name: row['name'] as String, price: row['price'] as int, image: row['image'] as String?, isDefault: _boolConverter.decode(row['isDefault'] as int), status: row['status'] as int, sort: row['sort'] as int, isPriceIncreased: _boolConverter.decode(row['isPriceIncreased'] as int), createTime: _dateTimeConverter.decode(row['createTime'] as String), updateTime: _dateTimeConverter.decode(row['updateTime'] as String)), arguments: [hourTypeIndex]); } @override Future save(CanteenSpuEntity entity) async { await _canteenSpuEntityInsertionAdapter.insert( entity, OnConflictStrategy.abort); } @override Future batchSave(List entitys) async { await _canteenSpuEntityInsertionAdapter.insertList( entitys, OnConflictStrategy.abort); } @override Future batchEdit(List entitys) async { await _canteenSpuEntityUpdateAdapter.updateList( entitys, OnConflictStrategy.abort); } @override Future batchDel(List entitys) async { await _canteenSpuEntityDeletionAdapter.deleteList(entitys); } } class _$SupermarketSkuDao extends SupermarketSkuDao { _$SupermarketSkuDao( this.database, this.changeListener, ) : _queryAdapter = QueryAdapter(database), _supermarketSkuEntityInsertionAdapter = InsertionAdapter( database, 'supermarket_sku', (SupermarketSkuEntity item) => { 'id': item.id, 'serviceUniqueCode': item.serviceUniqueCode, 'spuId': item.spuId, 'barCode': item.barCode, 'spec': item.spec, 'unit': item.unit, 'packageNum': item.packageNum, 'purchasePrice': item.purchasePrice, 'retailPrice': item.retailPrice, 'promotionPrice': item.promotionPrice }); final sqflite.DatabaseExecutor database; final StreamController changeListener; final QueryAdapter _queryAdapter; final InsertionAdapter _supermarketSkuEntityInsertionAdapter; @override Future delAllForce() async { await _queryAdapter.queryNoReturn('DELETE FROM supermarket_sku'); } @override Future getCount( String barCode, String classifyServiceUniqueCode, ) async { return _queryAdapter.query( 'SELECT DISTINCT COUNT(0) FROM supermarket_sku INNER JOIN supermarket_spu ON supermarket_sku.spuId = supermarket_spu.serviceUniqueCode AND supermarket_spu.delFlag = 0 INNER JOIN classify ON supermarket_spu.classifyServiceUniqueCode = classify.serviceUniqueCode AND classify.delFlag = 0 WHERE 1 = 1 AND (?1 = \'-1\' OR supermarket_sku.barCode LIKE \'%\' || ?1 || \'%\' OR supermarket_spu.productName LIKE \'%\' || ?1 || \'%\' OR (?1 != \'\' AND supermarket_spu.productNamePy LIKE \'%\' || ?1 || \'%\') ) AND (?2 = \'-1\' OR supermarket_spu.classifyServiceUniqueCode = ?2)', mapper: (Map row) => row.values.first as int, arguments: [barCode, classifyServiceUniqueCode]); } @override Future> getAllPage( String barCode, String classifyServiceUniqueCode, int pageSize, int offset, ) async { return _queryAdapter.queryList( 'SELECT supermarket_sku.id, supermarket_sku.serviceUniqueCode, supermarket_sku.spuId, supermarket_spu.productCode, supermarket_spu.classifyServiceUniqueCode, supermarket_spu.productName, supermarket_spu.productNamePy, supermarket_spu.picUrl, supermarket_spu.productNature, supermarket_spu.salesCount, supermarket_spu.stock, supermarket_spu.sort, supermarket_spu.createTime, supermarket_spu.updateTime, supermarket_spu.delFlag, supermarket_sku.barCode, supermarket_sku.promotionPrice, supermarket_sku.purchasePrice, supermarket_sku.retailPrice, supermarket_sku.spec, supermarket_sku.packageNum, supermarket_sku.unit, supermarket_sku.packageNum FROM supermarket_sku INNER JOIN supermarket_spu ON supermarket_sku.spuId = supermarket_spu.serviceUniqueCode AND supermarket_spu.delFlag = 0 INNER JOIN classify ON supermarket_spu.classifyServiceUniqueCode = classify.serviceUniqueCode AND classify.delFlag = 0 WHERE 1 = 1 AND (?1 = \'-1\' OR supermarket_sku.barCode LIKE \'%\' || ?1 || \'%\' OR supermarket_spu.productName LIKE \'%\' || ?1 || \'%\' OR (?1 != \'\' AND supermarket_spu.productNamePy LIKE \'%\' || ?1 || \'%\') ) AND (?2 = \'-1\' OR supermarket_spu.classifyServiceUniqueCode = ?2) ORDER BY supermarket_sku.spuId LIMIT ?3 OFFSET ?4', mapper: (Map row) => SupermarketSpuEntity(id: row['id'] as int?, serviceUniqueCode: row['serviceUniqueCode'] as String, classifyServiceUniqueCode: row['classifyServiceUniqueCode'] as String, productCode: row['productCode'] as String, productName: row['productName'] as String, productNature: _supermarketNatureConverter.decode(row['productNature'] as String), barCode: row['barCode'] as String?, packageNum: row['packageNum'] as int, unit: row['unit'] as String, spec: row['spec'] as String, picUrl: row['picUrl'] as String?, stock: row['stock'] as double?, salesCount: row['salesCount'] as double?, purchasePrice: row['purchasePrice'] as int, retailPrice: row['retailPrice'] as int, promotionPrice: row['promotionPrice'] as int, sort: row['sort'] as int, createTime: _dateTimeConverter.decode(row['createTime'] as String), updateTime: _dateTimeConverter.decode(row['updateTime'] as String), delFlag: _boolConverter.decode(row['delFlag'] as int)), arguments: [barCode, classifyServiceUniqueCode, pageSize, offset]); } @override Future getByBarCode(String barCode) async { return _queryAdapter.query( 'SELECT supermarket_sku.id, supermarket_sku.serviceUniqueCode, supermarket_sku.spuId, supermarket_spu.productCode, supermarket_spu.classifyServiceUniqueCode, supermarket_spu.productName, supermarket_spu.picUrl, supermarket_spu.productNature, supermarket_spu.salesCount, supermarket_spu.stock, supermarket_spu.sort, supermarket_spu.createTime, supermarket_spu.updateTime, supermarket_spu.delFlag, supermarket_sku.barCode, supermarket_sku.promotionPrice, supermarket_sku.purchasePrice, supermarket_sku.retailPrice, supermarket_sku.spec, supermarket_sku.packageNum, supermarket_sku.unit, supermarket_sku.packageNum FROM supermarket_sku INNER JOIN supermarket_spu ON supermarket_sku.spuId = supermarket_spu.serviceUniqueCode AND supermarket_spu.delFlag = 0 WHERE 1 = 1 AND (?1 = \'-1\' OR supermarket_sku.barCode = ?1) LIMIT 1', mapper: (Map row) => SupermarketSpuEntity(id: row['id'] as int?, serviceUniqueCode: row['serviceUniqueCode'] as String, classifyServiceUniqueCode: row['classifyServiceUniqueCode'] as String, productCode: row['productCode'] as String, productName: row['productName'] as String, productNature: _supermarketNatureConverter.decode(row['productNature'] as String), barCode: row['barCode'] as String?, packageNum: row['packageNum'] as int, unit: row['unit'] as String, spec: row['spec'] as String, picUrl: row['picUrl'] as String?, stock: row['stock'] as double?, salesCount: row['salesCount'] as double?, purchasePrice: row['purchasePrice'] as int, retailPrice: row['retailPrice'] as int, promotionPrice: row['promotionPrice'] as int, sort: row['sort'] as int, createTime: _dateTimeConverter.decode(row['createTime'] as String), updateTime: _dateTimeConverter.decode(row['updateTime'] as String), delFlag: _boolConverter.decode(row['delFlag'] as int)), arguments: [barCode]); } @override Future getBySkuCode(String skuCode) async { return _queryAdapter.query( 'SELECT supermarket_sku.id, supermarket_sku.serviceUniqueCode, supermarket_sku.spuId, supermarket_spu.productCode, supermarket_spu.classifyServiceUniqueCode, supermarket_spu.productName, supermarket_spu.picUrl, supermarket_spu.productNature, supermarket_spu.salesCount, supermarket_spu.stock, supermarket_spu.sort, supermarket_spu.createTime, supermarket_spu.updateTime, supermarket_spu.delFlag, supermarket_sku.barCode, supermarket_sku.promotionPrice, supermarket_sku.purchasePrice, supermarket_sku.retailPrice, supermarket_sku.spec, supermarket_sku.packageNum, supermarket_sku.unit, supermarket_sku.packageNum FROM supermarket_sku INNER JOIN supermarket_spu ON supermarket_sku.spuId = supermarket_spu.serviceUniqueCode AND supermarket_spu.delFlag = 0 WHERE 1 = 1 AND (?1 = \'-1\' OR supermarket_sku.serviceUniqueCode = ?1) LIMIT 1', mapper: (Map row) => SupermarketSpuEntity(id: row['id'] as int?, serviceUniqueCode: row['serviceUniqueCode'] as String, classifyServiceUniqueCode: row['classifyServiceUniqueCode'] as String, productCode: row['productCode'] as String, productName: row['productName'] as String, productNature: _supermarketNatureConverter.decode(row['productNature'] as String), barCode: row['barCode'] as String?, packageNum: row['packageNum'] as int, unit: row['unit'] as String, spec: row['spec'] as String, picUrl: row['picUrl'] as String?, stock: row['stock'] as double?, salesCount: row['salesCount'] as double?, purchasePrice: row['purchasePrice'] as int, retailPrice: row['retailPrice'] as int, promotionPrice: row['promotionPrice'] as int, sort: row['sort'] as int, createTime: _dateTimeConverter.decode(row['createTime'] as String), updateTime: _dateTimeConverter.decode(row['updateTime'] as String), delFlag: _boolConverter.decode(row['delFlag'] as int)), arguments: [skuCode]); } @override Future batchSave(List changeList) async { await _supermarketSkuEntityInsertionAdapter.insertList( changeList, OnConflictStrategy.abort); } } class _$SupermarketSpuDao extends SupermarketSpuDao { _$SupermarketSpuDao( this.database, this.changeListener, ) : _queryAdapter = QueryAdapter(database), _supermarketSpuEntityInsertionAdapter = InsertionAdapter( database, 'supermarket_spu', (SupermarketSpuEntity item) => { 'id': item.id, 'serviceUniqueCode': item.serviceUniqueCode, 'classifyServiceUniqueCode': item.classifyServiceUniqueCode, 'productCode': item.productCode, 'productName': item.productName, 'productNamePy': item.productNamePy, 'productNature': _supermarketNatureConverter.encode(item.productNature), 'barCode': item.barCode, 'packageNum': item.packageNum, 'unit': item.unit, 'spec': item.spec, 'picUrl': item.picUrl, 'stock': item.stock, 'salesCount': item.salesCount, 'purchasePrice': item.purchasePrice, 'retailPrice': item.retailPrice, 'promotionPrice': item.promotionPrice, 'sort': item.sort, 'createTime': _dateTimeConverter.encode(item.createTime), 'updateTime': _dateTimeConverter.encode(item.updateTime), 'delFlag': _boolConverter.encode(item.delFlag) }), _supermarketSpuEntityUpdateAdapter = UpdateAdapter( database, 'supermarket_spu', ['id'], (SupermarketSpuEntity item) => { 'id': item.id, 'serviceUniqueCode': item.serviceUniqueCode, 'classifyServiceUniqueCode': item.classifyServiceUniqueCode, 'productCode': item.productCode, 'productName': item.productName, 'productNamePy': item.productNamePy, 'productNature': _supermarketNatureConverter.encode(item.productNature), 'barCode': item.barCode, 'packageNum': item.packageNum, 'unit': item.unit, 'spec': item.spec, 'picUrl': item.picUrl, 'stock': item.stock, 'salesCount': item.salesCount, 'purchasePrice': item.purchasePrice, 'retailPrice': item.retailPrice, 'promotionPrice': item.promotionPrice, 'sort': item.sort, 'createTime': _dateTimeConverter.encode(item.createTime), 'updateTime': _dateTimeConverter.encode(item.updateTime), 'delFlag': _boolConverter.encode(item.delFlag) }); final sqflite.DatabaseExecutor database; final StreamController changeListener; final QueryAdapter _queryAdapter; final InsertionAdapter _supermarketSpuEntityInsertionAdapter; final UpdateAdapter _supermarketSpuEntityUpdateAdapter; @override Future> getAll( String classifyServiceUniqueCode) async { return _queryAdapter.queryList( 'SELECT supermarket_spu.* FROM supermarket_spu LEFT JOIN classify ON supermarket_spu.classifyServiceUniqueCode = classify.serviceUniqueCode AND classify.delFlag = 0 WHERE supermarket_spu.delFlag = 0 AND (?1 = \'-1\' OR supermarket_spu.classifyServiceUniqueCode = ?1) ORDER BY classify.sort', mapper: (Map row) => SupermarketSpuEntity(id: row['id'] as int?, serviceUniqueCode: row['serviceUniqueCode'] as String, classifyServiceUniqueCode: row['classifyServiceUniqueCode'] as String, productCode: row['productCode'] as String, productName: row['productName'] as String, productNature: _supermarketNatureConverter.decode(row['productNature'] as String), barCode: row['barCode'] as String?, packageNum: row['packageNum'] as int, unit: row['unit'] as String, spec: row['spec'] as String, picUrl: row['picUrl'] as String?, stock: row['stock'] as double?, salesCount: row['salesCount'] as double?, purchasePrice: row['purchasePrice'] as int, retailPrice: row['retailPrice'] as int, promotionPrice: row['promotionPrice'] as int, sort: row['sort'] as int, createTime: _dateTimeConverter.decode(row['createTime'] as String), updateTime: _dateTimeConverter.decode(row['updateTime'] as String), delFlag: _boolConverter.decode(row['delFlag'] as int)), arguments: [classifyServiceUniqueCode]); } @override Future getCount() async { return _queryAdapter.query( 'SELECT DISTINCT COUNT(0) FROM supermarket_spu WHERE delFlag = 0', mapper: (Map row) => row.values.first as int); } @override Future> getAllPage( String classifyServiceUniqueCode, int pageSize, int offset, ) async { return _queryAdapter.queryList( 'SELECT supermarket_spu.* FROM supermarket_spu LEFT JOIN classify ON supermarket_spu.classifyServiceUniqueCode = classify.serviceUniqueCode AND classify.delFlag = 0 WHERE supermarket_spu.delFlag = 0 AND (?1 = \'-1\' OR supermarket_spu.classifyServiceUniqueCode = ?1) ORDER BY classify.sort LIMIT ?2 OFFSET ?3', mapper: (Map row) => SupermarketSpuEntity(id: row['id'] as int?, serviceUniqueCode: row['serviceUniqueCode'] as String, classifyServiceUniqueCode: row['classifyServiceUniqueCode'] as String, productCode: row['productCode'] as String, productName: row['productName'] as String, productNature: _supermarketNatureConverter.decode(row['productNature'] as String), barCode: row['barCode'] as String?, packageNum: row['packageNum'] as int, unit: row['unit'] as String, spec: row['spec'] as String, picUrl: row['picUrl'] as String?, stock: row['stock'] as double?, salesCount: row['salesCount'] as double?, purchasePrice: row['purchasePrice'] as int, retailPrice: row['retailPrice'] as int, promotionPrice: row['promotionPrice'] as int, sort: row['sort'] as int, createTime: _dateTimeConverter.decode(row['createTime'] as String), updateTime: _dateTimeConverter.decode(row['updateTime'] as String), delFlag: _boolConverter.decode(row['delFlag'] as int)), arguments: [classifyServiceUniqueCode, pageSize, offset]); } @override Future getByCode(String code) async { return _queryAdapter.query( 'SELECT * FROM supermarket_spu WHERE delFlag = 0 AND serviceUniqueCode = ?1', mapper: (Map row) => SupermarketSpuEntity(id: row['id'] as int?, serviceUniqueCode: row['serviceUniqueCode'] as String, classifyServiceUniqueCode: row['classifyServiceUniqueCode'] as String, productCode: row['productCode'] as String, productName: row['productName'] as String, productNature: _supermarketNatureConverter.decode(row['productNature'] as String), barCode: row['barCode'] as String?, packageNum: row['packageNum'] as int, unit: row['unit'] as String, spec: row['spec'] as String, picUrl: row['picUrl'] as String?, stock: row['stock'] as double?, salesCount: row['salesCount'] as double?, purchasePrice: row['purchasePrice'] as int, retailPrice: row['retailPrice'] as int, promotionPrice: row['promotionPrice'] as int, sort: row['sort'] as int, createTime: _dateTimeConverter.decode(row['createTime'] as String), updateTime: _dateTimeConverter.decode(row['updateTime'] as String), delFlag: _boolConverter.decode(row['delFlag'] as int)), arguments: [code]); } @override Future delAllForce() async { await _queryAdapter.queryNoReturn('DELETE FROM supermarket_spu'); } @override Future batchSave(List changeList) async { await _supermarketSpuEntityInsertionAdapter.insertList( changeList, OnConflictStrategy.abort); } @override Future batchEdit(List changeList) async { await _supermarketSpuEntityUpdateAdapter.updateList( changeList, OnConflictStrategy.abort); } } class _$SupermarketCodeDao extends SupermarketCodeDao { _$SupermarketCodeDao( this.database, this.changeListener, ) : _queryAdapter = QueryAdapter(database), _supermarketCodeEntityInsertionAdapter = InsertionAdapter( database, 'supermarket_code', (SupermarketCodeEntity item) => { 'id': item.id, 'serviceUniqueCode': item.serviceUniqueCode, 'spuId': item.spuId, 'unitId': item.unitId, 'barCode': item.barCode }); final sqflite.DatabaseExecutor database; final StreamController changeListener; final QueryAdapter _queryAdapter; final InsertionAdapter _supermarketCodeEntityInsertionAdapter; @override Future delAllForce() async { await _queryAdapter.queryNoReturn('DELETE FROM supermarket_code'); } @override Future getByBarCode(String barCode) async { return _queryAdapter.query( 'SELECT supermarket_sku.id, supermarket_sku.serviceUniqueCode, supermarket_sku.spuId, supermarket_spu.productCode, supermarket_spu.classifyServiceUniqueCode, supermarket_spu.productName, supermarket_spu.picUrl, supermarket_spu.productNature, supermarket_spu.salesCount, supermarket_spu.stock, supermarket_spu.sort, supermarket_spu.createTime, supermarket_spu.updateTime, supermarket_spu.delFlag, supermarket_sku.barCode, supermarket_sku.promotionPrice, supermarket_sku.purchasePrice, supermarket_sku.retailPrice, supermarket_sku.spec, supermarket_sku.packageNum, supermarket_sku.unit, supermarket_sku.packageNum FROM supermarket_code INNER JOIN supermarket_spu ON supermarket_code.spuId = supermarket_spu.serviceUniqueCode AND supermarket_spu.delFlag = 0 INNER JOIN supermarket_sku ON supermarket_spu.serviceUniqueCode = supermarket_sku.spuId WHERE 1 = 1 AND (?1 = \'-1\' OR supermarket_code.barCode = ?1) LIMIT 1', mapper: (Map row) => SupermarketSpuEntity(id: row['id'] as int?, serviceUniqueCode: row['serviceUniqueCode'] as String, classifyServiceUniqueCode: row['classifyServiceUniqueCode'] as String, productCode: row['productCode'] as String, productName: row['productName'] as String, productNature: _supermarketNatureConverter.decode(row['productNature'] as String), barCode: row['barCode'] as String?, packageNum: row['packageNum'] as int, unit: row['unit'] as String, spec: row['spec'] as String, picUrl: row['picUrl'] as String?, stock: row['stock'] as double?, salesCount: row['salesCount'] as double?, purchasePrice: row['purchasePrice'] as int, retailPrice: row['retailPrice'] as int, promotionPrice: row['promotionPrice'] as int, sort: row['sort'] as int, createTime: _dateTimeConverter.decode(row['createTime'] as String), updateTime: _dateTimeConverter.decode(row['updateTime'] as String), delFlag: _boolConverter.decode(row['delFlag'] as int)), arguments: [barCode]); } @override Future batchSave(List changeList) async { await _supermarketCodeEntityInsertionAdapter.insertList( changeList, OnConflictStrategy.abort); } } class _$ShopCardDao extends ShopCardDao { _$ShopCardDao( this.database, this.changeListener, ) : _queryAdapter = QueryAdapter(database), _shopCardEntityInsertionAdapter = InsertionAdapter( database, 'shop_card', (ShopCardEntity item) => { 'id': item.id, 'orderId': item.orderId, 'productServiceUniqueCode': item.productServiceUniqueCode, 'productName': item.productName, 'productPic': item.productPic, 'productPrice': item.productPrice, 'nature': _supermarketNatureConverter.encode(item.nature), 'productNumber': item.productNumber, 'productWidget': item.productWidget, 'totalPrice': item.totalPrice, 'isPriceIncreased': _boolConverter.encode(item.isPriceIncreased) }), _shopCardEntityUpdateAdapter = UpdateAdapter( database, 'shop_card', ['id'], (ShopCardEntity item) => { 'id': item.id, 'orderId': item.orderId, 'productServiceUniqueCode': item.productServiceUniqueCode, 'productName': item.productName, 'productPic': item.productPic, 'productPrice': item.productPrice, 'nature': _supermarketNatureConverter.encode(item.nature), 'productNumber': item.productNumber, 'productWidget': item.productWidget, 'totalPrice': item.totalPrice, 'isPriceIncreased': _boolConverter.encode(item.isPriceIncreased) }), _shopCardEntityDeletionAdapter = DeletionAdapter( database, 'shop_card', ['id'], (ShopCardEntity item) => { 'id': item.id, 'orderId': item.orderId, 'productServiceUniqueCode': item.productServiceUniqueCode, 'productName': item.productName, 'productPic': item.productPic, 'productPrice': item.productPrice, 'nature': _supermarketNatureConverter.encode(item.nature), 'productNumber': item.productNumber, 'productWidget': item.productWidget, 'totalPrice': item.totalPrice, 'isPriceIncreased': _boolConverter.encode(item.isPriceIncreased) }); final sqflite.DatabaseExecutor database; final StreamController changeListener; final QueryAdapter _queryAdapter; final InsertionAdapter _shopCardEntityInsertionAdapter; final UpdateAdapter _shopCardEntityUpdateAdapter; final DeletionAdapter _shopCardEntityDeletionAdapter; @override Future> findByOrderId(int orderId) async { return _queryAdapter.queryList( 'SELECT * FROM shop_card WHERE orderId = ?1', mapper: (Map row) => ShopCardEntity( id: row['id'] as int?, orderId: row['orderId'] as int, productServiceUniqueCode: row['productServiceUniqueCode'] as String, productName: row['productName'] as String, productPic: row['productPic'] as String, productPrice: row['productPrice'] as int, nature: _supermarketNatureConverter.decode(row['nature'] as String), productNumber: row['productNumber'] as int, productWidget: row['productWidget'] as double, totalPrice: row['totalPrice'] as int, isPriceIncreased: _boolConverter.decode(row['isPriceIncreased'] as int)), arguments: [orderId]); } @override Future save(ShopCardEntity entity) async { await _shopCardEntityInsertionAdapter.insert( entity, OnConflictStrategy.abort); } @override Future batchSave(List entitys) async { await _shopCardEntityInsertionAdapter.insertList( entitys, OnConflictStrategy.abort); } @override Future edit(ShopCardEntity entity) async { await _shopCardEntityUpdateAdapter.update(entity, OnConflictStrategy.abort); } @override Future batchEdit(List entitys) async { await _shopCardEntityUpdateAdapter.updateList( entitys, OnConflictStrategy.abort); } @override Future del(ShopCardEntity entity) async { await _shopCardEntityDeletionAdapter.delete(entity); } @override Future batchDel(List entitys) async { await _shopCardEntityDeletionAdapter.deleteList(entitys); } } class _$ClassifyDao extends ClassifyDao { _$ClassifyDao( this.database, this.changeListener, ) : _queryAdapter = QueryAdapter(database), _classifyEntityInsertionAdapter = InsertionAdapter( database, 'classify', (ClassifyEntity item) => { 'id': item.id, 'serviceUniqueCode': item.serviceUniqueCode, 'sysType': _sysTypeConverter.encode(item.sysType), 'name': item.name, 'categoryType': item.categoryType, 'sort': item.sort, 'createTime': _dateTimeConverter.encode(item.createTime), 'updateTime': _dateTimeConverter.encode(item.updateTime), 'delFlag': _boolConverter.encode(item.delFlag) }), _classifyEntityUpdateAdapter = UpdateAdapter( database, 'classify', ['id'], (ClassifyEntity item) => { 'id': item.id, 'serviceUniqueCode': item.serviceUniqueCode, 'sysType': _sysTypeConverter.encode(item.sysType), 'name': item.name, 'categoryType': item.categoryType, 'sort': item.sort, 'createTime': _dateTimeConverter.encode(item.createTime), 'updateTime': _dateTimeConverter.encode(item.updateTime), 'delFlag': _boolConverter.encode(item.delFlag) }); final sqflite.DatabaseExecutor database; final StreamController changeListener; final QueryAdapter _queryAdapter; final InsertionAdapter _classifyEntityInsertionAdapter; final UpdateAdapter _classifyEntityUpdateAdapter; @override Future delAllForce() async { await _queryAdapter.queryNoReturn('DELETE FROM classify'); } @override Future delBySysType(String sysType) async { return _queryAdapter.query( 'UPDATE classify SET delFlag = 1 WHERE delFlag = 0 AND (?1 = \'-1\' OR sysType = ?1)', mapper: (Map row) => row.values.first as int, arguments: [sysType]); } @override Future getCount() async { return _queryAdapter.query( 'SELECT DISTINCT COUNT(0) FROM classify WHERE delFlag = 0', mapper: (Map row) => row.values.first as int); } @override Future getByCode(String code) async { return _queryAdapter.query( 'SELECT * FROM classify WHERE delFlag = 0 AND serviceUniqueCode = ?1', mapper: (Map row) => ClassifyEntity( id: row['id'] as int?, serviceUniqueCode: row['serviceUniqueCode'] as String, sysType: _sysTypeConverter.decode(row['sysType'] as String), name: row['name'] as String, categoryType: row['categoryType'] as String, sort: row['sort'] as int, createTime: _dateTimeConverter.decode(row['createTime'] as String), updateTime: _dateTimeConverter.decode(row['updateTime'] as String), delFlag: _boolConverter.decode(row['delFlag'] as int)), arguments: [code]); } @override Future> getAll( String sysType, String categoryType, ) async { return _queryAdapter.queryList( 'SELECT classify.* FROM classify WHERE delFlag = 0 AND (?1 = \'-1\' OR sysType = ?1) AND (?2 = \'-1\' OR INSTR(\',\' || categoryType || \',\', \',\' || ?2 || \',\') > 0) ORDER BY classify.sort', mapper: (Map row) => ClassifyEntity(id: row['id'] as int?, serviceUniqueCode: row['serviceUniqueCode'] as String, sysType: _sysTypeConverter.decode(row['sysType'] as String), name: row['name'] as String, categoryType: row['categoryType'] as String, sort: row['sort'] as int, createTime: _dateTimeConverter.decode(row['createTime'] as String), updateTime: _dateTimeConverter.decode(row['updateTime'] as String), delFlag: _boolConverter.decode(row['delFlag'] as int)), arguments: [sysType, categoryType]); } @override Future save(ClassifyEntity entity) async { await _classifyEntityInsertionAdapter.insert( entity, OnConflictStrategy.abort); } @override Future batchSave(List entitys) async { await _classifyEntityInsertionAdapter.insertList( entitys, OnConflictStrategy.abort); } @override Future edit(ClassifyEntity entity) async { await _classifyEntityUpdateAdapter.update(entity, OnConflictStrategy.abort); } @override Future batchEdit(List entitys) async { await _classifyEntityUpdateAdapter.updateList( entitys, OnConflictStrategy.abort); } } class _$PrintHistoryDao extends PrintHistoryDao { _$PrintHistoryDao( this.database, this.changeListener, ) : _queryAdapter = QueryAdapter(database), _printHistoryEntityInsertionAdapter = InsertionAdapter( database, 'print_history', (PrintHistoryEntity item) => { 'id': item.id, 'orderId': item.orderId, 'serviceOrderId': item.serviceOrderId, 'servicePrintId': item.servicePrintId, 'invoiceUrl': item.invoiceUrl, 'printType': item.printType, 'printNo': item.printNo, 'retryVersion': item.retryVersion, 'attemptCount': item.attemptCount, 'lastError': item.lastError, 'resultPending': _boolConverter.encode(item.resultPending), 'status': _printStatusConverter.encode(item.status), 'printTime': item.printTime, 'syncTime': _dateTimeEmptyConverter.encode(item.syncTime), 'createTime': _dateTimeConverter.encode(item.createTime) }), _printHistoryEntityUpdateAdapter = UpdateAdapter( database, 'print_history', ['id'], (PrintHistoryEntity item) => { 'id': item.id, 'orderId': item.orderId, 'serviceOrderId': item.serviceOrderId, 'servicePrintId': item.servicePrintId, 'invoiceUrl': item.invoiceUrl, 'printType': item.printType, 'printNo': item.printNo, 'retryVersion': item.retryVersion, 'attemptCount': item.attemptCount, 'lastError': item.lastError, 'resultPending': _boolConverter.encode(item.resultPending), 'status': _printStatusConverter.encode(item.status), 'printTime': item.printTime, 'syncTime': _dateTimeEmptyConverter.encode(item.syncTime), 'createTime': _dateTimeConverter.encode(item.createTime) }), _printHistoryEntityDeletionAdapter = DeletionAdapter( database, 'print_history', ['id'], (PrintHistoryEntity item) => { 'id': item.id, 'orderId': item.orderId, 'serviceOrderId': item.serviceOrderId, 'servicePrintId': item.servicePrintId, 'invoiceUrl': item.invoiceUrl, 'printType': item.printType, 'printNo': item.printNo, 'retryVersion': item.retryVersion, 'attemptCount': item.attemptCount, 'lastError': item.lastError, 'resultPending': _boolConverter.encode(item.resultPending), 'status': _printStatusConverter.encode(item.status), 'printTime': item.printTime, 'syncTime': _dateTimeEmptyConverter.encode(item.syncTime), 'createTime': _dateTimeConverter.encode(item.createTime) }); final sqflite.DatabaseExecutor database; final StreamController changeListener; final QueryAdapter _queryAdapter; final InsertionAdapter _printHistoryEntityInsertionAdapter; final UpdateAdapter _printHistoryEntityUpdateAdapter; final DeletionAdapter _printHistoryEntityDeletionAdapter; @override Future delAll() async { await _queryAdapter.queryNoReturn('DELETE FROM print_history'); } @override Future> getAll(String status) async { return _queryAdapter.queryList( 'SELECT * FROM print_history WHERE (?1 = \'-1\' OR status = ?1)', mapper: (Map row) => PrintHistoryEntity(id: row['id'] as int?, orderId: row['orderId'] as String, serviceOrderId: row['serviceOrderId'] as String, servicePrintId: row['servicePrintId'] as String, invoiceUrl: row['invoiceUrl'] as String, printType: row['printType'] as String, printNo: row['printNo'] as int, retryVersion: row['retryVersion'] as int, attemptCount: row['attemptCount'] as int, lastError: row['lastError'] as String?, resultPending: _boolConverter.decode(row['resultPending'] as int), status: _printStatusConverter.decode(row['status'] as String), printTime: row['printTime'] as String?, syncTime: _dateTimeEmptyConverter.decode(row['syncTime'] as String?), createTime: _dateTimeConverter.decode(row['createTime'] as String)), arguments: [status]); } @override Future findByServicePrintId( String servicePrintId) async { return _queryAdapter.query( 'SELECT * FROM print_history WHERE servicePrintId = ?1 LIMIT 1', mapper: (Map row) => PrintHistoryEntity( id: row['id'] as int?, orderId: row['orderId'] as String, serviceOrderId: row['serviceOrderId'] as String, servicePrintId: row['servicePrintId'] as String, invoiceUrl: row['invoiceUrl'] as String, printType: row['printType'] as String, printNo: row['printNo'] as int, retryVersion: row['retryVersion'] as int, attemptCount: row['attemptCount'] as int, lastError: row['lastError'] as String?, resultPending: _boolConverter.decode(row['resultPending'] as int), status: _printStatusConverter.decode(row['status'] as String), printTime: row['printTime'] as String?, syncTime: _dateTimeEmptyConverter.decode(row['syncTime'] as String?), createTime: _dateTimeConverter.decode(row['createTime'] as String)), arguments: [servicePrintId]); } @override Future> getPendingResults() async { return _queryAdapter.queryList( 'SELECT * FROM print_history WHERE resultPending = 1 ORDER BY createTime ASC', mapper: (Map row) => PrintHistoryEntity( id: row['id'] as int?, orderId: row['orderId'] as String, serviceOrderId: row['serviceOrderId'] as String, servicePrintId: row['servicePrintId'] as String, invoiceUrl: row['invoiceUrl'] as String, printType: row['printType'] as String, printNo: row['printNo'] as int, retryVersion: row['retryVersion'] as int, attemptCount: row['attemptCount'] as int, lastError: row['lastError'] as String?, resultPending: _boolConverter.decode(row['resultPending'] as int), status: _printStatusConverter.decode(row['status'] as String), printTime: row['printTime'] as String?, syncTime: _dateTimeEmptyConverter.decode(row['syncTime'] as String?), createTime: _dateTimeConverter.decode(row['createTime'] as String))); } @override Future countPending() async { return _queryAdapter.query( 'SELECT COUNT(*) FROM print_history WHERE status = \'NONE\'', mapper: (Map row) => row.values.first as int); } @override Future countFailed() async { return _queryAdapter.query( 'SELECT COUNT(*) FROM print_history WHERE status = \'ERROR\'', mapper: (Map row) => row.values.first as int); } @override Future findLatestError() async { return _queryAdapter.query( 'SELECT * FROM print_history WHERE lastError IS NOT NULL AND lastError != \'\' ORDER BY id DESC LIMIT 1', mapper: (Map row) => PrintHistoryEntity( id: row['id'] as int?, orderId: row['orderId'] as String, serviceOrderId: row['serviceOrderId'] as String, servicePrintId: row['servicePrintId'] as String, invoiceUrl: row['invoiceUrl'] as String, printType: row['printType'] as String, printNo: row['printNo'] as int, retryVersion: row['retryVersion'] as int, attemptCount: row['attemptCount'] as int, lastError: row['lastError'] as String?, resultPending: _boolConverter.decode(row['resultPending'] as int), status: _printStatusConverter.decode(row['status'] as String), printTime: row['printTime'] as String?, syncTime: _dateTimeEmptyConverter.decode(row['syncTime'] as String?), createTime: _dateTimeConverter.decode(row['createTime'] as String))); } @override Future save(PrintHistoryEntity entity) async { await _printHistoryEntityInsertionAdapter.insert( entity, OnConflictStrategy.abort); } @override Future batchSave(List entitys) async { await _printHistoryEntityInsertionAdapter.insertList( entitys, OnConflictStrategy.abort); } @override Future edit(PrintHistoryEntity entity) async { await _printHistoryEntityUpdateAdapter.update( entity, OnConflictStrategy.abort); } @override Future batchEdit(List entitys) async { await _printHistoryEntityUpdateAdapter.updateList( entitys, OnConflictStrategy.abort); } @override Future del(PrintHistoryEntity entity) async { await _printHistoryEntityDeletionAdapter.delete(entity); } @override Future batchDel(List entitys) async { await _printHistoryEntityDeletionAdapter.deleteList(entitys); } } class _$UserDao extends UserDao { _$UserDao( this.database, this.changeListener, ) : _queryAdapter = QueryAdapter(database), _userEntityInsertionAdapter = InsertionAdapter( database, 'user_record', (UserEntity item) => { 'id': item.id, 'userId': item.userId, 'nickname': item.nickname, 'mobile': item.mobile, 'avatar': item.avatar, 'walletCardNumber': item.walletCardNumber, 'walletId': item.walletId, 'walletTypeId': item.walletTypeId, 'walletBalance': item.walletBalance, 'canteenId': item.canteenId, 'discountsList': _listDiscountsConverter.encode(item.discountsList), 'discountsUpdateTime': _dateTimeEmptyConverter.encode(item.discountsUpdateTime), 'createTime': _dateTimeEmptyConverter.encode(item.createTime), 'updateTime': _dateTimeEmptyConverter.encode(item.updateTime) }), _userEntityUpdateAdapter = UpdateAdapter( database, 'user_record', ['id'], (UserEntity item) => { 'id': item.id, 'userId': item.userId, 'nickname': item.nickname, 'mobile': item.mobile, 'avatar': item.avatar, 'walletCardNumber': item.walletCardNumber, 'walletId': item.walletId, 'walletTypeId': item.walletTypeId, 'walletBalance': item.walletBalance, 'canteenId': item.canteenId, 'discountsList': _listDiscountsConverter.encode(item.discountsList), 'discountsUpdateTime': _dateTimeEmptyConverter.encode(item.discountsUpdateTime), 'createTime': _dateTimeEmptyConverter.encode(item.createTime), 'updateTime': _dateTimeEmptyConverter.encode(item.updateTime) }), _userEntityDeletionAdapter = DeletionAdapter( database, 'user_record', ['id'], (UserEntity item) => { 'id': item.id, 'userId': item.userId, 'nickname': item.nickname, 'mobile': item.mobile, 'avatar': item.avatar, 'walletCardNumber': item.walletCardNumber, 'walletId': item.walletId, 'walletTypeId': item.walletTypeId, 'walletBalance': item.walletBalance, 'canteenId': item.canteenId, 'discountsList': _listDiscountsConverter.encode(item.discountsList), 'discountsUpdateTime': _dateTimeEmptyConverter.encode(item.discountsUpdateTime), 'createTime': _dateTimeEmptyConverter.encode(item.createTime), 'updateTime': _dateTimeEmptyConverter.encode(item.updateTime) }); final sqflite.DatabaseExecutor database; final StreamController changeListener; final QueryAdapter _queryAdapter; final InsertionAdapter _userEntityInsertionAdapter; final UpdateAdapter _userEntityUpdateAdapter; final DeletionAdapter _userEntityDeletionAdapter; @override Future findByUserId(String userId) async { return _queryAdapter.query( 'SELECT * FROM user_record WHERE userId = ?1', mapper: (Map row) => UserEntity( id: row['id'] as int?, userId: row['userId'] as String, nickname: row['nickname'] as String, mobile: row['mobile'] as String?, avatar: row['avatar'] as String?, walletCardNumber: row['walletCardNumber'] as String?, walletId: row['walletId'] as String?, walletTypeId: row['walletTypeId'] as String?, walletBalance: row['walletBalance'] as int?, canteenId: row['canteenId'] as String?, createTime: _dateTimeEmptyConverter.decode(row['createTime'] as String?), updateTime: _dateTimeEmptyConverter.decode(row['updateTime'] as String?), discountsUpdateTime: _dateTimeEmptyConverter .decode(row['discountsUpdateTime'] as String?), discountsList: _listDiscountsConverter .decode(row['discountsList'] as String?)), arguments: [userId]); } @override Future findByCardNumber(String walletCardNumber) async { return _queryAdapter.query( 'SELECT * FROM user_record WHERE walletCardNumber = ?1', mapper: (Map row) => UserEntity( id: row['id'] as int?, userId: row['userId'] as String, nickname: row['nickname'] as String, mobile: row['mobile'] as String?, avatar: row['avatar'] as String?, walletCardNumber: row['walletCardNumber'] as String?, walletId: row['walletId'] as String?, walletTypeId: row['walletTypeId'] as String?, walletBalance: row['walletBalance'] as int?, canteenId: row['canteenId'] as String?, createTime: _dateTimeEmptyConverter.decode(row['createTime'] as String?), updateTime: _dateTimeEmptyConverter.decode(row['updateTime'] as String?), discountsUpdateTime: _dateTimeEmptyConverter .decode(row['discountsUpdateTime'] as String?), discountsList: _listDiscountsConverter .decode(row['discountsList'] as String?)), arguments: [walletCardNumber]); } @override Future delById(int id) async { await _queryAdapter.queryNoReturn('DELETE FROM user_record WHERE id = ?1', arguments: [id]); } @override Future delAll() async { await _queryAdapter.queryNoReturn('DELETE FROM user_record'); } @override Future findCount(String keyword) async { return _queryAdapter.query( 'SELECT COUNT(0) FROM user_record WHERE (?1 = \'-1\' OR nickname LIKE \'%\' || ?1 || \'%\' OR userId LIKE \'%\' || ?1 || \'%\' OR walletCardNumber LIKE \'%\' || ?1 || \'%\' OR mobile LIKE \'%\' || ?1 || \'%\')', mapper: (Map row) => row.values.first as int, arguments: [keyword]); } @override Future> findAll( String keyword, int pageSize, int offset, ) async { return _queryAdapter.queryList( 'SELECT * FROM user_record WHERE (?1 = \'-1\' OR nickname LIKE \'%\' || ?1 || \'%\' OR userId LIKE \'%\' || ?1 || \'%\' OR walletCardNumber LIKE \'%\' || ?1 || \'%\' OR mobile LIKE \'%\' || ?1 || \'%\') ORDER BY updateTime DESC, id DESC LIMIT ?2 OFFSET ?3', mapper: (Map row) => UserEntity(id: row['id'] as int?, userId: row['userId'] as String, nickname: row['nickname'] as String, mobile: row['mobile'] as String?, avatar: row['avatar'] as String?, walletCardNumber: row['walletCardNumber'] as String?, walletId: row['walletId'] as String?, walletTypeId: row['walletTypeId'] as String?, walletBalance: row['walletBalance'] as int?, canteenId: row['canteenId'] as String?, createTime: _dateTimeEmptyConverter.decode(row['createTime'] as String?), updateTime: _dateTimeEmptyConverter.decode(row['updateTime'] as String?), discountsUpdateTime: _dateTimeEmptyConverter.decode(row['discountsUpdateTime'] as String?), discountsList: _listDiscountsConverter.decode(row['discountsList'] as String?)), arguments: [keyword, pageSize, offset]); } @override Future save(UserEntity entity) async { await _userEntityInsertionAdapter.insert(entity, OnConflictStrategy.abort); } @override Future batchSave(List entitys) async { await _userEntityInsertionAdapter.insertList( entitys, OnConflictStrategy.abort); } @override Future edit(UserEntity entity) async { await _userEntityUpdateAdapter.update(entity, OnConflictStrategy.abort); } @override Future batchEdit(List entitys) async { await _userEntityUpdateAdapter.updateList( entitys, OnConflictStrategy.abort); } @override Future del(UserEntity entity) async { await _userEntityDeletionAdapter.delete(entity); } @override Future batchDel(List entitys) async { await _userEntityDeletionAdapter.deleteList(entitys); } } class _$FaceDao extends FaceDao { _$FaceDao( this.database, this.changeListener, ) : _queryAdapter = QueryAdapter(database), _faceEntityInsertionAdapter = InsertionAdapter( database, 'face', (FaceEntity item) => { 'id': item.id, 'userId': item.userId, 'sampleId': item.sampleId, 'userName': item.userName, 'deptId': item.deptId, 'deptName': item.deptName, 'imagePath': item.imagePath, 'path': item.path, 'faceModel': _listIntConverter.encode(item.faceModel), 'createTime': _dateTimeEmptyConverter.encode(item.createTime), 'updateTime': _dateTimeEmptyConverter.encode(item.updateTime), 'qualityScore': item.qualityScore, 'qualityStatus': item.qualityStatus, 'qualityCheckedAt': _dateTimeEmptyConverter.encode(item.qualityCheckedAt), 'qualityErrorCode': item.qualityErrorCode }), _faceEntityUpdateAdapter = UpdateAdapter( database, 'face', ['id'], (FaceEntity item) => { 'id': item.id, 'userId': item.userId, 'sampleId': item.sampleId, 'userName': item.userName, 'deptId': item.deptId, 'deptName': item.deptName, 'imagePath': item.imagePath, 'path': item.path, 'faceModel': _listIntConverter.encode(item.faceModel), 'createTime': _dateTimeEmptyConverter.encode(item.createTime), 'updateTime': _dateTimeEmptyConverter.encode(item.updateTime), 'qualityScore': item.qualityScore, 'qualityStatus': item.qualityStatus, 'qualityCheckedAt': _dateTimeEmptyConverter.encode(item.qualityCheckedAt), 'qualityErrorCode': item.qualityErrorCode }), _faceEntityDeletionAdapter = DeletionAdapter( database, 'face', ['id'], (FaceEntity item) => { 'id': item.id, 'userId': item.userId, 'sampleId': item.sampleId, 'userName': item.userName, 'deptId': item.deptId, 'deptName': item.deptName, 'imagePath': item.imagePath, 'path': item.path, 'faceModel': _listIntConverter.encode(item.faceModel), 'createTime': _dateTimeEmptyConverter.encode(item.createTime), 'updateTime': _dateTimeEmptyConverter.encode(item.updateTime), 'qualityScore': item.qualityScore, 'qualityStatus': item.qualityStatus, 'qualityCheckedAt': _dateTimeEmptyConverter.encode(item.qualityCheckedAt), 'qualityErrorCode': item.qualityErrorCode }); final sqflite.DatabaseExecutor database; final StreamController changeListener; final QueryAdapter _queryAdapter; final InsertionAdapter _faceEntityInsertionAdapter; final UpdateAdapter _faceEntityUpdateAdapter; final DeletionAdapter _faceEntityDeletionAdapter; @override Future delAll() async { await _queryAdapter.queryNoReturn('DELETE FROM face'); } @override Future delById(int id) async { await _queryAdapter .queryNoReturn('DELETE FROM face WHERE id = ?1', arguments: [id]); } @override Future delByUserId(String userId) async { await _queryAdapter.queryNoReturn('DELETE FROM face WHERE userId = ?1', arguments: [userId]); } @override Future delBySampleId(String sampleId) async { await _queryAdapter.queryNoReturn('DELETE FROM face WHERE sampleId = ?1', arguments: [sampleId]); } @override Future findCount(String userName) async { return _queryAdapter.query( 'SELECT DISTINCT COUNT(0) FROM face WHERE (?1 = \'-1\' OR userName LIKE \'%\' || ?1 || \'%\')', mapper: (Map row) => row.values.first as int, arguments: [userName]); } @override Future findLowQualityCount( String userName, double threshold, ) async { return _queryAdapter.query( 'SELECT COUNT(0) FROM face WHERE qualityStatus = \'detected\' AND qualityScore IS NOT NULL AND qualityScore < ?2 AND (?1 = \'-1\' OR userName LIKE \'%\' || ?1 || \'%\')', mapper: (Map row) => row.values.first as int, arguments: [userName, threshold]); } @override Future> findLowQuality( String userName, double threshold, int pageSize, int offset, ) async { return _queryAdapter.queryList( 'SELECT * FROM face WHERE qualityStatus = \'detected\' AND qualityScore IS NOT NULL AND qualityScore < ?2 AND (?1 = \'-1\' OR userName LIKE \'%\' || ?1 || \'%\') ORDER BY id ASC LIMIT ?3 OFFSET ?4', mapper: (Map row) => FaceEntity(id: row['id'] as int?, userId: row['userId'] as String, sampleId: row['sampleId'] as String, userName: row['userName'] as String, deptId: row['deptId'] as String?, deptName: row['deptName'] as String?, imagePath: row['imagePath'] as String, path: row['path'] as String?, faceModel: _listIntConverter.decode(row['faceModel'] as String), createTime: _dateTimeEmptyConverter.decode(row['createTime'] as String?), updateTime: _dateTimeEmptyConverter.decode(row['updateTime'] as String?), qualityScore: row['qualityScore'] as double?, qualityStatus: row['qualityStatus'] as String, qualityCheckedAt: _dateTimeEmptyConverter.decode(row['qualityCheckedAt'] as String?), qualityErrorCode: row['qualityErrorCode'] as int?), arguments: [userName, threshold, pageSize, offset]); } @override Future> findAllLowQuality(double threshold) async { return _queryAdapter.queryList( 'SELECT * FROM face WHERE qualityStatus = \'detected\' AND qualityScore IS NOT NULL AND qualityScore < ?1 ORDER BY id ASC', mapper: (Map row) => FaceEntity(id: row['id'] as int?, userId: row['userId'] as String, sampleId: row['sampleId'] as String, userName: row['userName'] as String, deptId: row['deptId'] as String?, deptName: row['deptName'] as String?, imagePath: row['imagePath'] as String, path: row['path'] as String?, faceModel: _listIntConverter.decode(row['faceModel'] as String), createTime: _dateTimeEmptyConverter.decode(row['createTime'] as String?), updateTime: _dateTimeEmptyConverter.decode(row['updateTime'] as String?), qualityScore: row['qualityScore'] as double?, qualityStatus: row['qualityStatus'] as String, qualityCheckedAt: _dateTimeEmptyConverter.decode(row['qualityCheckedAt'] as String?), qualityErrorCode: row['qualityErrorCode'] as int?), arguments: [threshold]); } @override Future findPendingQualityCount() async { return _queryAdapter.query( 'SELECT COUNT(0) FROM face WHERE qualityStatus = \'pending\'', mapper: (Map row) => row.values.first as int); } @override Future findFailedQualityCount() async { return _queryAdapter.query( 'SELECT COUNT(0) FROM face WHERE qualityStatus = \'failed\'', mapper: (Map row) => row.values.first as int); } @override Future> findQualityAuditCandidates() async { return _queryAdapter.queryList( 'SELECT * FROM face WHERE qualityStatus IN (\'pending\', \'failed\') ORDER BY id ASC', mapper: (Map row) => FaceEntity( id: row['id'] as int?, userId: row['userId'] as String, sampleId: row['sampleId'] as String, userName: row['userName'] as String, deptId: row['deptId'] as String?, deptName: row['deptName'] as String?, imagePath: row['imagePath'] as String, path: row['path'] as String?, faceModel: _listIntConverter.decode(row['faceModel'] as String), createTime: _dateTimeEmptyConverter.decode(row['createTime'] as String?), updateTime: _dateTimeEmptyConverter.decode(row['updateTime'] as String?), qualityScore: row['qualityScore'] as double?, qualityStatus: row['qualityStatus'] as String, qualityCheckedAt: _dateTimeEmptyConverter .decode(row['qualityCheckedAt'] as String?), qualityErrorCode: row['qualityErrorCode'] as int?)); } @override Future getById(int id) async { return _queryAdapter.query('SELECT * FROM face WHERE id = ?1', mapper: (Map row) => FaceEntity( id: row['id'] as int?, userId: row['userId'] as String, sampleId: row['sampleId'] as String, userName: row['userName'] as String, deptId: row['deptId'] as String?, deptName: row['deptName'] as String?, imagePath: row['imagePath'] as String, path: row['path'] as String?, faceModel: _listIntConverter.decode(row['faceModel'] as String), createTime: _dateTimeEmptyConverter.decode(row['createTime'] as String?), updateTime: _dateTimeEmptyConverter.decode(row['updateTime'] as String?), qualityScore: row['qualityScore'] as double?, qualityStatus: row['qualityStatus'] as String, qualityCheckedAt: _dateTimeEmptyConverter .decode(row['qualityCheckedAt'] as String?), qualityErrorCode: row['qualityErrorCode'] as int?), arguments: [id]); } @override Future findBySampleId(String sampleId) async { return _queryAdapter.query('SELECT * FROM face WHERE sampleId = ?1', mapper: (Map row) => FaceEntity( id: row['id'] as int?, userId: row['userId'] as String, sampleId: row['sampleId'] as String, userName: row['userName'] as String, deptId: row['deptId'] as String?, deptName: row['deptName'] as String?, imagePath: row['imagePath'] as String, path: row['path'] as String?, faceModel: _listIntConverter.decode(row['faceModel'] as String), createTime: _dateTimeEmptyConverter.decode(row['createTime'] as String?), updateTime: _dateTimeEmptyConverter.decode(row['updateTime'] as String?), qualityScore: row['qualityScore'] as double?, qualityStatus: row['qualityStatus'] as String, qualityCheckedAt: _dateTimeEmptyConverter .decode(row['qualityCheckedAt'] as String?), qualityErrorCode: row['qualityErrorCode'] as int?), arguments: [sampleId]); } @override Future?> findByUserId(String userId) async { return _queryAdapter.queryList('SELECT * FROM face WHERE userId = ?1', mapper: (Map row) => FaceEntity( id: row['id'] as int?, userId: row['userId'] as String, sampleId: row['sampleId'] as String, userName: row['userName'] as String, deptId: row['deptId'] as String?, deptName: row['deptName'] as String?, imagePath: row['imagePath'] as String, path: row['path'] as String?, faceModel: _listIntConverter.decode(row['faceModel'] as String), createTime: _dateTimeEmptyConverter.decode(row['createTime'] as String?), updateTime: _dateTimeEmptyConverter.decode(row['updateTime'] as String?), qualityScore: row['qualityScore'] as double?, qualityStatus: row['qualityStatus'] as String, qualityCheckedAt: _dateTimeEmptyConverter .decode(row['qualityCheckedAt'] as String?), qualityErrorCode: row['qualityErrorCode'] as int?), arguments: [userId]); } @override Future> findAll( String userName, int pageSize, int offset, ) async { return _queryAdapter.queryList( 'SELECT * FROM face WHERE (?1 = \'-1\' OR userName LIKE \'%\' || ?1 || \'%\') LIMIT ?2 OFFSET ?3', mapper: (Map row) => FaceEntity(id: row['id'] as int?, userId: row['userId'] as String, sampleId: row['sampleId'] as String, userName: row['userName'] as String, deptId: row['deptId'] as String?, deptName: row['deptName'] as String?, imagePath: row['imagePath'] as String, path: row['path'] as String?, faceModel: _listIntConverter.decode(row['faceModel'] as String), createTime: _dateTimeEmptyConverter.decode(row['createTime'] as String?), updateTime: _dateTimeEmptyConverter.decode(row['updateTime'] as String?), qualityScore: row['qualityScore'] as double?, qualityStatus: row['qualityStatus'] as String, qualityCheckedAt: _dateTimeEmptyConverter.decode(row['qualityCheckedAt'] as String?), qualityErrorCode: row['qualityErrorCode'] as int?), arguments: [userName, pageSize, offset]); } @override Future> getAll() async { return _queryAdapter.queryList('SELECT * FROM face ORDER BY sampleId ASC', mapper: (Map row) => FaceEntity( id: row['id'] as int?, userId: row['userId'] as String, sampleId: row['sampleId'] as String, userName: row['userName'] as String, deptId: row['deptId'] as String?, deptName: row['deptName'] as String?, imagePath: row['imagePath'] as String, path: row['path'] as String?, faceModel: _listIntConverter.decode(row['faceModel'] as String), createTime: _dateTimeEmptyConverter.decode(row['createTime'] as String?), updateTime: _dateTimeEmptyConverter.decode(row['updateTime'] as String?), qualityScore: row['qualityScore'] as double?, qualityStatus: row['qualityStatus'] as String, qualityCheckedAt: _dateTimeEmptyConverter .decode(row['qualityCheckedAt'] as String?), qualityErrorCode: row['qualityErrorCode'] as int?)); } @override Future> findAllUserIds() async { return _queryAdapter.queryList( 'SELECT DISTINCT a.deptId FROM face a WHERE a.deptId IS NOT NULL', mapper: (Map row) => row.values.first as String); } @override Future?> getEmptyFaceList() async { return _queryAdapter.queryList( 'SELECT * FROM face WHERE faceModel = \'\' OR faceModel IS NULL', mapper: (Map row) => FaceEntity( id: row['id'] as int?, userId: row['userId'] as String, sampleId: row['sampleId'] as String, userName: row['userName'] as String, deptId: row['deptId'] as String?, deptName: row['deptName'] as String?, imagePath: row['imagePath'] as String, path: row['path'] as String?, faceModel: _listIntConverter.decode(row['faceModel'] as String), createTime: _dateTimeEmptyConverter.decode(row['createTime'] as String?), updateTime: _dateTimeEmptyConverter.decode(row['updateTime'] as String?), qualityScore: row['qualityScore'] as double?, qualityStatus: row['qualityStatus'] as String, qualityCheckedAt: _dateTimeEmptyConverter .decode(row['qualityCheckedAt'] as String?), qualityErrorCode: row['qualityErrorCode'] as int?)); } @override Future save(FaceEntity entity) { return _faceEntityInsertionAdapter.insertAndReturnId( entity, OnConflictStrategy.abort); } @override Future batchSave(List entitys) async { await _faceEntityInsertionAdapter.insertList( entitys, OnConflictStrategy.abort); } @override Future edit(FaceEntity entity) async { await _faceEntityUpdateAdapter.update(entity, OnConflictStrategy.abort); } @override Future batchEdit(List entitys) async { await _faceEntityUpdateAdapter.updateList( entitys, OnConflictStrategy.abort); } @override Future del(FaceEntity entity) async { await _faceEntityDeletionAdapter.delete(entity); } @override Future batchDel(List entitys) async { await _faceEntityDeletionAdapter.deleteList(entitys); } } class _$SettingDao extends SettingDao { _$SettingDao( this.database, this.changeListener, ) : _queryAdapter = QueryAdapter(database), _settingEntityInsertionAdapter = InsertionAdapter( database, 'setting', (SettingEntity item) => { 'id': item.id, 'userJson': item.userJson, 'sysJson': item.sysJson, 'canteenExtraPriceConfigJson': item.canteenExtraPriceConfigJson }), _settingEntityUpdateAdapter = UpdateAdapter( database, 'setting', ['id'], (SettingEntity item) => { 'id': item.id, 'userJson': item.userJson, 'sysJson': item.sysJson, 'canteenExtraPriceConfigJson': item.canteenExtraPriceConfigJson }), _settingEntityDeletionAdapter = DeletionAdapter( database, 'setting', ['id'], (SettingEntity item) => { 'id': item.id, 'userJson': item.userJson, 'sysJson': item.sysJson, 'canteenExtraPriceConfigJson': item.canteenExtraPriceConfigJson }); final sqflite.DatabaseExecutor database; final StreamController changeListener; final QueryAdapter _queryAdapter; final InsertionAdapter _settingEntityInsertionAdapter; final UpdateAdapter _settingEntityUpdateAdapter; final DeletionAdapter _settingEntityDeletionAdapter; @override Future get() async { return _queryAdapter.query('SELECT * FROM setting LIMIT 1', mapper: (Map row) => SettingEntity( id: row['id'] as int?, userJson: row['userJson'] as String, sysJson: row['sysJson'] as String, canteenExtraPriceConfigJson: row['canteenExtraPriceConfigJson'] as String?)); } @override Future save(SettingEntity entity) { return _settingEntityInsertionAdapter.insertAndReturnId( entity, OnConflictStrategy.abort); } @override Future edit(SettingEntity entity) async { await _settingEntityUpdateAdapter.update(entity, OnConflictStrategy.abort); } @override Future del(SettingEntity entity) async { await _settingEntityDeletionAdapter.delete(entity); } } class _$ScheduledTaskDao extends ScheduledTaskDao { _$ScheduledTaskDao( this.database, this.changeListener, ) : _queryAdapter = QueryAdapter(database), _scheduledTaskEntityInsertionAdapter = InsertionAdapter( database, 'scheduled_task', (ScheduledTaskEntity item) => { 'taskCode': item.taskCode, 'enabled': _boolConverter.encode(item.enabled), 'cronExpression': item.cronExpression, 'idleOnly': _boolConverter.encode(item.idleOnly), 'lastRunAt': _dateTimeEmptyConverter.encode(item.lastRunAt), 'lastSuccessAt': _dateTimeEmptyConverter.encode(item.lastSuccessAt), 'lastStatus': item.lastStatus, 'lastMessage': item.lastMessage, 'createTime': _dateTimeConverter.encode(item.createTime), 'updateTime': _dateTimeConverter.encode(item.updateTime) }), _scheduledTaskEntityUpdateAdapter = UpdateAdapter( database, 'scheduled_task', ['taskCode'], (ScheduledTaskEntity item) => { 'taskCode': item.taskCode, 'enabled': _boolConverter.encode(item.enabled), 'cronExpression': item.cronExpression, 'idleOnly': _boolConverter.encode(item.idleOnly), 'lastRunAt': _dateTimeEmptyConverter.encode(item.lastRunAt), 'lastSuccessAt': _dateTimeEmptyConverter.encode(item.lastSuccessAt), 'lastStatus': item.lastStatus, 'lastMessage': item.lastMessage, 'createTime': _dateTimeConverter.encode(item.createTime), 'updateTime': _dateTimeConverter.encode(item.updateTime) }); final sqflite.DatabaseExecutor database; final StreamController changeListener; final QueryAdapter _queryAdapter; final InsertionAdapter _scheduledTaskEntityInsertionAdapter; final UpdateAdapter _scheduledTaskEntityUpdateAdapter; @override Future> getAll() async { return _queryAdapter.queryList( 'SELECT * FROM scheduled_task ORDER BY taskCode', mapper: (Map row) => ScheduledTaskEntity( taskCode: row['taskCode'] as String, enabled: _boolConverter.decode(row['enabled'] as int), cronExpression: row['cronExpression'] as String, idleOnly: _boolConverter.decode(row['idleOnly'] as int), lastRunAt: _dateTimeEmptyConverter.decode(row['lastRunAt'] as String?), lastSuccessAt: _dateTimeEmptyConverter.decode(row['lastSuccessAt'] as String?), lastStatus: row['lastStatus'] as String, lastMessage: row['lastMessage'] as String, createTime: _dateTimeConverter.decode(row['createTime'] as String), updateTime: _dateTimeConverter.decode(row['updateTime'] as String))); } @override Future getByCode(String taskCode) async { return _queryAdapter.query( 'SELECT * FROM scheduled_task WHERE taskCode = ?1 LIMIT 1', mapper: (Map row) => ScheduledTaskEntity( taskCode: row['taskCode'] as String, enabled: _boolConverter.decode(row['enabled'] as int), cronExpression: row['cronExpression'] as String, idleOnly: _boolConverter.decode(row['idleOnly'] as int), lastRunAt: _dateTimeEmptyConverter.decode(row['lastRunAt'] as String?), lastSuccessAt: _dateTimeEmptyConverter.decode(row['lastSuccessAt'] as String?), lastStatus: row['lastStatus'] as String, lastMessage: row['lastMessage'] as String, createTime: _dateTimeConverter.decode(row['createTime'] as String), updateTime: _dateTimeConverter.decode(row['updateTime'] as String)), arguments: [taskCode]); } @override Future save(ScheduledTaskEntity entity) async { await _scheduledTaskEntityInsertionAdapter.insert( entity, OnConflictStrategy.replace); } @override Future batchSave(List entities) async { await _scheduledTaskEntityInsertionAdapter.insertList( entities, OnConflictStrategy.replace); } @override Future edit(ScheduledTaskEntity entity) async { await _scheduledTaskEntityUpdateAdapter.update( entity, OnConflictStrategy.abort); } } class _$ScheduledTaskLogDao extends ScheduledTaskLogDao { _$ScheduledTaskLogDao( this.database, this.changeListener, ) : _queryAdapter = QueryAdapter(database), _scheduledTaskLogEntityInsertionAdapter = InsertionAdapter( database, 'scheduled_task_log', (ScheduledTaskLogEntity item) => { 'id': item.id, 'taskCode': item.taskCode, 'taskName': item.taskName, 'triggerType': item.triggerType, 'sourceType': item.sourceType, 'sourceName': item.sourceName, 'status': item.status, 'message': item.message, 'errorType': item.errorType, 'errorMessage': item.errorMessage, 'errorStack': item.errorStack, 'startedAt': _dateTimeConverter.encode(item.startedAt), 'finishedAt': _dateTimeEmptyConverter.encode(item.finishedAt), 'durationMs': item.durationMs, 'scannedCount': item.scannedCount, 'skippedCount': item.skippedCount, 'successCount': item.successCount, 'failureCount': item.failureCount }), _scheduledTaskLogEntityUpdateAdapter = UpdateAdapter( database, 'scheduled_task_log', ['id'], (ScheduledTaskLogEntity item) => { 'id': item.id, 'taskCode': item.taskCode, 'taskName': item.taskName, 'triggerType': item.triggerType, 'sourceType': item.sourceType, 'sourceName': item.sourceName, 'status': item.status, 'message': item.message, 'errorType': item.errorType, 'errorMessage': item.errorMessage, 'errorStack': item.errorStack, 'startedAt': _dateTimeConverter.encode(item.startedAt), 'finishedAt': _dateTimeEmptyConverter.encode(item.finishedAt), 'durationMs': item.durationMs, 'scannedCount': item.scannedCount, 'skippedCount': item.skippedCount, 'successCount': item.successCount, 'failureCount': item.failureCount }); final sqflite.DatabaseExecutor database; final StreamController changeListener; final QueryAdapter _queryAdapter; final InsertionAdapter _scheduledTaskLogEntityInsertionAdapter; final UpdateAdapter _scheduledTaskLogEntityUpdateAdapter; @override Future> getByTask( String taskCode, String sourceType, int limit, ) async { return _queryAdapter.queryList( 'SELECT * FROM scheduled_task_log WHERE taskCode = ?1 AND (?2 = \'\' OR sourceType = ?2) ORDER BY id DESC LIMIT ?3', mapper: (Map row) => ScheduledTaskLogEntity(id: row['id'] as int?, taskCode: row['taskCode'] as String, taskName: row['taskName'] as String, triggerType: row['triggerType'] as String, sourceType: row['sourceType'] as String, sourceName: row['sourceName'] as String, status: row['status'] as String, message: row['message'] as String, errorType: row['errorType'] as String?, errorMessage: row['errorMessage'] as String?, errorStack: row['errorStack'] as String?, startedAt: _dateTimeConverter.decode(row['startedAt'] as String), finishedAt: _dateTimeEmptyConverter.decode(row['finishedAt'] as String?), durationMs: row['durationMs'] as int, scannedCount: row['scannedCount'] as int?, skippedCount: row['skippedCount'] as int?, successCount: row['successCount'] as int?, failureCount: row['failureCount'] as int?), arguments: [taskCode, sourceType, limit]); } @override Future> getPageByTask( String taskCode, String sourceType, int pageSize, int offset, ) async { return _queryAdapter.queryList( 'SELECT * FROM scheduled_task_log WHERE taskCode = ?1 AND (?2 = \'\' OR sourceType = ?2) ORDER BY id DESC LIMIT ?3 OFFSET ?4', mapper: (Map row) => ScheduledTaskLogEntity(id: row['id'] as int?, taskCode: row['taskCode'] as String, taskName: row['taskName'] as String, triggerType: row['triggerType'] as String, sourceType: row['sourceType'] as String, sourceName: row['sourceName'] as String, status: row['status'] as String, message: row['message'] as String, errorType: row['errorType'] as String?, errorMessage: row['errorMessage'] as String?, errorStack: row['errorStack'] as String?, startedAt: _dateTimeConverter.decode(row['startedAt'] as String), finishedAt: _dateTimeEmptyConverter.decode(row['finishedAt'] as String?), durationMs: row['durationMs'] as int, scannedCount: row['scannedCount'] as int?, skippedCount: row['skippedCount'] as int?, successCount: row['successCount'] as int?, failureCount: row['failureCount'] as int?), arguments: [taskCode, sourceType, pageSize, offset]); } @override Future countByTask( String taskCode, String sourceType, ) async { return _queryAdapter.query( 'SELECT COUNT(0) FROM scheduled_task_log WHERE taskCode = ?1 AND (?2 = \'\' OR sourceType = ?2)', mapper: (Map row) => row.values.first as int, arguments: [taskCode, sourceType]); } @override Future getLatest(String taskCode) async { return _queryAdapter.query( 'SELECT * FROM scheduled_task_log WHERE taskCode = ?1 ORDER BY id DESC LIMIT 1', mapper: (Map row) => ScheduledTaskLogEntity(id: row['id'] as int?, taskCode: row['taskCode'] as String, taskName: row['taskName'] as String, triggerType: row['triggerType'] as String, sourceType: row['sourceType'] as String, sourceName: row['sourceName'] as String, status: row['status'] as String, message: row['message'] as String, errorType: row['errorType'] as String?, errorMessage: row['errorMessage'] as String?, errorStack: row['errorStack'] as String?, startedAt: _dateTimeConverter.decode(row['startedAt'] as String), finishedAt: _dateTimeEmptyConverter.decode(row['finishedAt'] as String?), durationMs: row['durationMs'] as int, scannedCount: row['scannedCount'] as int?, skippedCount: row['skippedCount'] as int?, successCount: row['successCount'] as int?, failureCount: row['failureCount'] as int?), arguments: [taskCode]); } @override Future trimHistory() async { await _queryAdapter.queryNoReturn( 'DELETE FROM scheduled_task_log WHERE id NOT IN ( SELECT id FROM scheduled_task_log ORDER BY id DESC LIMIT 2000 )'); } @override Future save(ScheduledTaskLogEntity entity) { return _scheduledTaskLogEntityInsertionAdapter.insertAndReturnId( entity, OnConflictStrategy.abort); } @override Future edit(ScheduledTaskLogEntity entity) async { await _scheduledTaskLogEntityUpdateAdapter.update( entity, OnConflictStrategy.abort); } } class _$FileUploadRecordDao extends FileUploadRecordDao { _$FileUploadRecordDao( this.database, this.changeListener, ) : _queryAdapter = QueryAdapter(database), _fileUploadRecordEntityInsertionAdapter = InsertionAdapter( database, 'file_upload_record', (FileUploadRecordEntity item) => { 'id': item.id, 'hardId': item.hardId, 'bizType': item.bizType, 'relativePath': item.relativePath, 'originalName': item.originalName, 'sourceSize': item.sourceSize, 'sourceModifiedTime': _dateTimeConverter.encode(item.sourceModifiedTime), 'sanitizedHash': item.sanitizedHash, 'sanitizedSize': item.sanitizedSize, 'status': item.status, 'serverFileId': item.serverFileId, 'attemptCount': item.attemptCount, 'lastAttemptAt': _dateTimeEmptyConverter.encode(item.lastAttemptAt), 'uploadedAt': _dateTimeEmptyConverter.encode(item.uploadedAt), 'lastError': item.lastError, 'createTime': _dateTimeConverter.encode(item.createTime), 'updateTime': _dateTimeConverter.encode(item.updateTime) }), _fileUploadRecordEntityUpdateAdapter = UpdateAdapter( database, 'file_upload_record', ['id'], (FileUploadRecordEntity item) => { 'id': item.id, 'hardId': item.hardId, 'bizType': item.bizType, 'relativePath': item.relativePath, 'originalName': item.originalName, 'sourceSize': item.sourceSize, 'sourceModifiedTime': _dateTimeConverter.encode(item.sourceModifiedTime), 'sanitizedHash': item.sanitizedHash, 'sanitizedSize': item.sanitizedSize, 'status': item.status, 'serverFileId': item.serverFileId, 'attemptCount': item.attemptCount, 'lastAttemptAt': _dateTimeEmptyConverter.encode(item.lastAttemptAt), 'uploadedAt': _dateTimeEmptyConverter.encode(item.uploadedAt), 'lastError': item.lastError, 'createTime': _dateTimeConverter.encode(item.createTime), 'updateTime': _dateTimeConverter.encode(item.updateTime) }); final sqflite.DatabaseExecutor database; final StreamController changeListener; final QueryAdapter _queryAdapter; final InsertionAdapter _fileUploadRecordEntityInsertionAdapter; final UpdateAdapter _fileUploadRecordEntityUpdateAdapter; @override Future> getAll( String hardId, String bizType, ) async { return _queryAdapter.queryList( 'SELECT * FROM file_upload_record WHERE hardId = ?1 AND bizType = ?2 ORDER BY updateTime DESC', mapper: (Map row) => FileUploadRecordEntity(id: row['id'] as int?, hardId: row['hardId'] as String, bizType: row['bizType'] as String, relativePath: row['relativePath'] as String, originalName: row['originalName'] as String, sourceSize: row['sourceSize'] as int, sourceModifiedTime: _dateTimeConverter.decode(row['sourceModifiedTime'] as String), sanitizedHash: row['sanitizedHash'] as String, sanitizedSize: row['sanitizedSize'] as int, status: row['status'] as String, serverFileId: row['serverFileId'] as String?, attemptCount: row['attemptCount'] as int, lastAttemptAt: _dateTimeEmptyConverter.decode(row['lastAttemptAt'] as String?), uploadedAt: _dateTimeEmptyConverter.decode(row['uploadedAt'] as String?), lastError: row['lastError'] as String?, createTime: _dateTimeConverter.decode(row['createTime'] as String), updateTime: _dateTimeConverter.decode(row['updateTime'] as String)), arguments: [hardId, bizType]); } @override Future getByPath( String hardId, String bizType, String relativePath, ) async { return _queryAdapter.query( 'SELECT * FROM file_upload_record WHERE hardId = ?1 AND bizType = ?2 AND relativePath = ?3 LIMIT 1', mapper: (Map row) => FileUploadRecordEntity(id: row['id'] as int?, hardId: row['hardId'] as String, bizType: row['bizType'] as String, relativePath: row['relativePath'] as String, originalName: row['originalName'] as String, sourceSize: row['sourceSize'] as int, sourceModifiedTime: _dateTimeConverter.decode(row['sourceModifiedTime'] as String), sanitizedHash: row['sanitizedHash'] as String, sanitizedSize: row['sanitizedSize'] as int, status: row['status'] as String, serverFileId: row['serverFileId'] as String?, attemptCount: row['attemptCount'] as int, lastAttemptAt: _dateTimeEmptyConverter.decode(row['lastAttemptAt'] as String?), uploadedAt: _dateTimeEmptyConverter.decode(row['uploadedAt'] as String?), lastError: row['lastError'] as String?, createTime: _dateTimeConverter.decode(row['createTime'] as String), updateTime: _dateTimeConverter.decode(row['updateTime'] as String)), arguments: [hardId, bizType, relativePath]); } @override Future save(FileUploadRecordEntity entity) { return _fileUploadRecordEntityInsertionAdapter.insertAndReturnId( entity, OnConflictStrategy.replace); } @override Future edit(FileUploadRecordEntity entity) async { await _fileUploadRecordEntityUpdateAdapter.update( entity, OnConflictStrategy.abort); } } class _$OrderEvidenceUploadTaskDao extends OrderEvidenceUploadTaskDao { _$OrderEvidenceUploadTaskDao( this.database, this.changeListener, ) : _queryAdapter = QueryAdapter(database), _orderEvidenceUploadTaskEntityInsertionAdapter = InsertionAdapter( database, 'order_evidence_upload_task', (OrderEvidenceUploadTaskEntity item) => { 'id': item.id, 'androidOrderCode': item.androidOrderCode, 'serverOrderId': item.serverOrderId, 'recognitionSessionId': item.recognitionSessionId, 'evidenceType': item.evidenceType, 'evidenceRole': item.evidenceRole, 'sequenceNo': item.sequenceNo, 'userId': item.userId, 'faceSampleId': item.faceSampleId, 'referenceImageUrl': item.referenceImageUrl, 'referenceImageVersion': item.referenceImageVersion, 'localFilePath': item.localFilePath, 'imageHash': item.imageHash, 'imageSize': item.imageSize, 'imageWidth': item.imageWidth, 'imageHeight': item.imageHeight, 'similarity': item.similarity, 'similarityThreshold': item.similarityThreshold, 'capturedAt': _dateTimeConverter.encode(item.capturedAt), 'appVersion': item.appVersion, 'status': item.status, 'attemptCount': item.attemptCount, 'nextRetryAt': _dateTimeEmptyConverter.encode(item.nextRetryAt), 'serverEvidenceId': item.serverEvidenceId, 'serverImageUrl': item.serverImageUrl, 'lastError': item.lastError, 'unavailableReportedAt': _dateTimeEmptyConverter .encode(item.unavailableReportedAt), 'completedAt': _dateTimeEmptyConverter.encode(item.completedAt), 'createTime': _dateTimeConverter.encode(item.createTime), 'updateTime': _dateTimeConverter.encode(item.updateTime), 'expiresAt': _dateTimeConverter.encode(item.expiresAt) }), _orderEvidenceUploadTaskEntityUpdateAdapter = UpdateAdapter( database, 'order_evidence_upload_task', ['id'], (OrderEvidenceUploadTaskEntity item) => { 'id': item.id, 'androidOrderCode': item.androidOrderCode, 'serverOrderId': item.serverOrderId, 'recognitionSessionId': item.recognitionSessionId, 'evidenceType': item.evidenceType, 'evidenceRole': item.evidenceRole, 'sequenceNo': item.sequenceNo, 'userId': item.userId, 'faceSampleId': item.faceSampleId, 'referenceImageUrl': item.referenceImageUrl, 'referenceImageVersion': item.referenceImageVersion, 'localFilePath': item.localFilePath, 'imageHash': item.imageHash, 'imageSize': item.imageSize, 'imageWidth': item.imageWidth, 'imageHeight': item.imageHeight, 'similarity': item.similarity, 'similarityThreshold': item.similarityThreshold, 'capturedAt': _dateTimeConverter.encode(item.capturedAt), 'appVersion': item.appVersion, 'status': item.status, 'attemptCount': item.attemptCount, 'nextRetryAt': _dateTimeEmptyConverter.encode(item.nextRetryAt), 'serverEvidenceId': item.serverEvidenceId, 'serverImageUrl': item.serverImageUrl, 'lastError': item.lastError, 'unavailableReportedAt': _dateTimeEmptyConverter .encode(item.unavailableReportedAt), 'completedAt': _dateTimeEmptyConverter.encode(item.completedAt), 'createTime': _dateTimeConverter.encode(item.createTime), 'updateTime': _dateTimeConverter.encode(item.updateTime), 'expiresAt': _dateTimeConverter.encode(item.expiresAt) }); final sqflite.DatabaseExecutor database; final StreamController changeListener; final QueryAdapter _queryAdapter; final InsertionAdapter _orderEvidenceUploadTaskEntityInsertionAdapter; final UpdateAdapter _orderEvidenceUploadTaskEntityUpdateAdapter; @override Future getByPosition( String androidOrderCode, String evidenceType, String evidenceRole, int sequenceNo, ) async { return _queryAdapter.query( 'SELECT * FROM order_evidence_upload_task WHERE androidOrderCode = ?1 AND evidenceType = ?2 AND evidenceRole = ?3 AND sequenceNo = ?4 LIMIT 1', mapper: (Map row) => OrderEvidenceUploadTaskEntity(id: row['id'] as int?, androidOrderCode: row['androidOrderCode'] as String?, serverOrderId: row['serverOrderId'] as String?, recognitionSessionId: row['recognitionSessionId'] as String, evidenceType: row['evidenceType'] as String, evidenceRole: row['evidenceRole'] as String, sequenceNo: row['sequenceNo'] as int, userId: row['userId'] as String, faceSampleId: row['faceSampleId'] as String?, referenceImageUrl: row['referenceImageUrl'] as String?, referenceImageVersion: row['referenceImageVersion'] as String?, localFilePath: row['localFilePath'] as String?, imageHash: row['imageHash'] as String?, imageSize: row['imageSize'] as int?, imageWidth: row['imageWidth'] as int?, imageHeight: row['imageHeight'] as int?, similarity: row['similarity'] as double?, similarityThreshold: row['similarityThreshold'] as double?, capturedAt: _dateTimeConverter.decode(row['capturedAt'] as String), appVersion: row['appVersion'] as String, status: row['status'] as String, attemptCount: row['attemptCount'] as int, nextRetryAt: _dateTimeEmptyConverter.decode(row['nextRetryAt'] as String?), serverEvidenceId: row['serverEvidenceId'] as String?, serverImageUrl: row['serverImageUrl'] as String?, lastError: row['lastError'] as String?, unavailableReportedAt: _dateTimeEmptyConverter.decode(row['unavailableReportedAt'] as String?), completedAt: _dateTimeEmptyConverter.decode(row['completedAt'] as String?), createTime: _dateTimeConverter.decode(row['createTime'] as String), updateTime: _dateTimeConverter.decode(row['updateTime'] as String), expiresAt: _dateTimeConverter.decode(row['expiresAt'] as String)), arguments: [androidOrderCode, evidenceType, evidenceRole, sequenceNo]); } @override Future getByServerOrderPosition( String serverOrderId, String evidenceType, String evidenceRole, int sequenceNo, ) async { return _queryAdapter.query( 'SELECT * FROM order_evidence_upload_task WHERE serverOrderId = ?1 AND evidenceType = ?2 AND evidenceRole = ?3 AND sequenceNo = ?4 LIMIT 1', mapper: (Map row) => OrderEvidenceUploadTaskEntity(id: row['id'] as int?, androidOrderCode: row['androidOrderCode'] as String?, serverOrderId: row['serverOrderId'] as String?, recognitionSessionId: row['recognitionSessionId'] as String, evidenceType: row['evidenceType'] as String, evidenceRole: row['evidenceRole'] as String, sequenceNo: row['sequenceNo'] as int, userId: row['userId'] as String, faceSampleId: row['faceSampleId'] as String?, referenceImageUrl: row['referenceImageUrl'] as String?, referenceImageVersion: row['referenceImageVersion'] as String?, localFilePath: row['localFilePath'] as String?, imageHash: row['imageHash'] as String?, imageSize: row['imageSize'] as int?, imageWidth: row['imageWidth'] as int?, imageHeight: row['imageHeight'] as int?, similarity: row['similarity'] as double?, similarityThreshold: row['similarityThreshold'] as double?, capturedAt: _dateTimeConverter.decode(row['capturedAt'] as String), appVersion: row['appVersion'] as String, status: row['status'] as String, attemptCount: row['attemptCount'] as int, nextRetryAt: _dateTimeEmptyConverter.decode(row['nextRetryAt'] as String?), serverEvidenceId: row['serverEvidenceId'] as String?, serverImageUrl: row['serverImageUrl'] as String?, lastError: row['lastError'] as String?, unavailableReportedAt: _dateTimeEmptyConverter.decode(row['unavailableReportedAt'] as String?), completedAt: _dateTimeEmptyConverter.decode(row['completedAt'] as String?), createTime: _dateTimeConverter.decode(row['createTime'] as String), updateTime: _dateTimeConverter.decode(row['updateTime'] as String), expiresAt: _dateTimeConverter.decode(row['expiresAt'] as String)), arguments: [serverOrderId, evidenceType, evidenceRole, sequenceNo]); } @override Future> getByOrderCode( String androidOrderCode) async { return _queryAdapter.queryList( 'SELECT * FROM order_evidence_upload_task WHERE androidOrderCode = ?1 ORDER BY evidenceType, evidenceRole, sequenceNo', mapper: (Map row) => OrderEvidenceUploadTaskEntity(id: row['id'] as int?, androidOrderCode: row['androidOrderCode'] as String?, serverOrderId: row['serverOrderId'] as String?, recognitionSessionId: row['recognitionSessionId'] as String, evidenceType: row['evidenceType'] as String, evidenceRole: row['evidenceRole'] as String, sequenceNo: row['sequenceNo'] as int, userId: row['userId'] as String, faceSampleId: row['faceSampleId'] as String?, referenceImageUrl: row['referenceImageUrl'] as String?, referenceImageVersion: row['referenceImageVersion'] as String?, localFilePath: row['localFilePath'] as String?, imageHash: row['imageHash'] as String?, imageSize: row['imageSize'] as int?, imageWidth: row['imageWidth'] as int?, imageHeight: row['imageHeight'] as int?, similarity: row['similarity'] as double?, similarityThreshold: row['similarityThreshold'] as double?, capturedAt: _dateTimeConverter.decode(row['capturedAt'] as String), appVersion: row['appVersion'] as String, status: row['status'] as String, attemptCount: row['attemptCount'] as int, nextRetryAt: _dateTimeEmptyConverter.decode(row['nextRetryAt'] as String?), serverEvidenceId: row['serverEvidenceId'] as String?, serverImageUrl: row['serverImageUrl'] as String?, lastError: row['lastError'] as String?, unavailableReportedAt: _dateTimeEmptyConverter.decode(row['unavailableReportedAt'] as String?), completedAt: _dateTimeEmptyConverter.decode(row['completedAt'] as String?), createTime: _dateTimeConverter.decode(row['createTime'] as String), updateTime: _dateTimeConverter.decode(row['updateTime'] as String), expiresAt: _dateTimeConverter.decode(row['expiresAt'] as String)), arguments: [androidOrderCode]); } @override Future> getByRecognitionSession( String recognitionSessionId) async { return _queryAdapter.queryList( 'SELECT * FROM order_evidence_upload_task WHERE recognitionSessionId = ?1 ORDER BY evidenceRole, sequenceNo', mapper: (Map row) => OrderEvidenceUploadTaskEntity(id: row['id'] as int?, androidOrderCode: row['androidOrderCode'] as String?, serverOrderId: row['serverOrderId'] as String?, recognitionSessionId: row['recognitionSessionId'] as String, evidenceType: row['evidenceType'] as String, evidenceRole: row['evidenceRole'] as String, sequenceNo: row['sequenceNo'] as int, userId: row['userId'] as String, faceSampleId: row['faceSampleId'] as String?, referenceImageUrl: row['referenceImageUrl'] as String?, referenceImageVersion: row['referenceImageVersion'] as String?, localFilePath: row['localFilePath'] as String?, imageHash: row['imageHash'] as String?, imageSize: row['imageSize'] as int?, imageWidth: row['imageWidth'] as int?, imageHeight: row['imageHeight'] as int?, similarity: row['similarity'] as double?, similarityThreshold: row['similarityThreshold'] as double?, capturedAt: _dateTimeConverter.decode(row['capturedAt'] as String), appVersion: row['appVersion'] as String, status: row['status'] as String, attemptCount: row['attemptCount'] as int, nextRetryAt: _dateTimeEmptyConverter.decode(row['nextRetryAt'] as String?), serverEvidenceId: row['serverEvidenceId'] as String?, serverImageUrl: row['serverImageUrl'] as String?, lastError: row['lastError'] as String?, unavailableReportedAt: _dateTimeEmptyConverter.decode(row['unavailableReportedAt'] as String?), completedAt: _dateTimeEmptyConverter.decode(row['completedAt'] as String?), createTime: _dateTimeConverter.decode(row['createTime'] as String), updateTime: _dateTimeConverter.decode(row['updateTime'] as String), expiresAt: _dateTimeConverter.decode(row['expiresAt'] as String)), arguments: [recognitionSessionId]); } @override Future> getDueTasks( DateTime now, int limit, ) async { return _queryAdapter.queryList( 'SELECT * FROM order_evidence_upload_task WHERE status IN (\'WAITING_ORDER\', \'READY\', \'UPLOADING\', \'RETRY_WAIT\') AND (androidOrderCode IS NOT NULL OR serverOrderId IS NOT NULL) AND (nextRetryAt IS NULL OR nextRetryAt <= ?1) ORDER BY createTime ASC, id ASC LIMIT ?2', mapper: (Map row) => OrderEvidenceUploadTaskEntity(id: row['id'] as int?, androidOrderCode: row['androidOrderCode'] as String?, serverOrderId: row['serverOrderId'] as String?, recognitionSessionId: row['recognitionSessionId'] as String, evidenceType: row['evidenceType'] as String, evidenceRole: row['evidenceRole'] as String, sequenceNo: row['sequenceNo'] as int, userId: row['userId'] as String, faceSampleId: row['faceSampleId'] as String?, referenceImageUrl: row['referenceImageUrl'] as String?, referenceImageVersion: row['referenceImageVersion'] as String?, localFilePath: row['localFilePath'] as String?, imageHash: row['imageHash'] as String?, imageSize: row['imageSize'] as int?, imageWidth: row['imageWidth'] as int?, imageHeight: row['imageHeight'] as int?, similarity: row['similarity'] as double?, similarityThreshold: row['similarityThreshold'] as double?, capturedAt: _dateTimeConverter.decode(row['capturedAt'] as String), appVersion: row['appVersion'] as String, status: row['status'] as String, attemptCount: row['attemptCount'] as int, nextRetryAt: _dateTimeEmptyConverter.decode(row['nextRetryAt'] as String?), serverEvidenceId: row['serverEvidenceId'] as String?, serverImageUrl: row['serverImageUrl'] as String?, lastError: row['lastError'] as String?, unavailableReportedAt: _dateTimeEmptyConverter.decode(row['unavailableReportedAt'] as String?), completedAt: _dateTimeEmptyConverter.decode(row['completedAt'] as String?), createTime: _dateTimeConverter.decode(row['createTime'] as String), updateTime: _dateTimeConverter.decode(row['updateTime'] as String), expiresAt: _dateTimeConverter.decode(row['expiresAt'] as String)), arguments: [_dateTimeConverter.encode(now), limit]); } @override Future> getUnavailableReportTasks( DateTime now, int limit, ) async { return _queryAdapter.queryList( 'SELECT * FROM order_evidence_upload_task WHERE status IN (\'PERMANENT_FAILED\', \'EXPIRED\') AND (androidOrderCode IS NOT NULL OR serverOrderId IS NOT NULL) AND unavailableReportedAt IS NULL AND (nextRetryAt IS NULL OR nextRetryAt <= ?1) ORDER BY updateTime ASC, id ASC LIMIT ?2', mapper: (Map row) => OrderEvidenceUploadTaskEntity(id: row['id'] as int?, androidOrderCode: row['androidOrderCode'] as String?, serverOrderId: row['serverOrderId'] as String?, recognitionSessionId: row['recognitionSessionId'] as String, evidenceType: row['evidenceType'] as String, evidenceRole: row['evidenceRole'] as String, sequenceNo: row['sequenceNo'] as int, userId: row['userId'] as String, faceSampleId: row['faceSampleId'] as String?, referenceImageUrl: row['referenceImageUrl'] as String?, referenceImageVersion: row['referenceImageVersion'] as String?, localFilePath: row['localFilePath'] as String?, imageHash: row['imageHash'] as String?, imageSize: row['imageSize'] as int?, imageWidth: row['imageWidth'] as int?, imageHeight: row['imageHeight'] as int?, similarity: row['similarity'] as double?, similarityThreshold: row['similarityThreshold'] as double?, capturedAt: _dateTimeConverter.decode(row['capturedAt'] as String), appVersion: row['appVersion'] as String, status: row['status'] as String, attemptCount: row['attemptCount'] as int, nextRetryAt: _dateTimeEmptyConverter.decode(row['nextRetryAt'] as String?), serverEvidenceId: row['serverEvidenceId'] as String?, serverImageUrl: row['serverImageUrl'] as String?, lastError: row['lastError'] as String?, unavailableReportedAt: _dateTimeEmptyConverter.decode(row['unavailableReportedAt'] as String?), completedAt: _dateTimeEmptyConverter.decode(row['completedAt'] as String?), createTime: _dateTimeConverter.decode(row['createTime'] as String), updateTime: _dateTimeConverter.decode(row['updateTime'] as String), expiresAt: _dateTimeConverter.decode(row['expiresAt'] as String)), arguments: [_dateTimeConverter.encode(now), limit]); } @override Future> getExpiredWaitingTasks( DateTime now) async { return _queryAdapter.queryList( 'SELECT * FROM order_evidence_upload_task WHERE status = \'WAITING_ORDER\' AND expiresAt <= ?1 ORDER BY expiresAt ASC', mapper: (Map row) => OrderEvidenceUploadTaskEntity(id: row['id'] as int?, androidOrderCode: row['androidOrderCode'] as String?, serverOrderId: row['serverOrderId'] as String?, recognitionSessionId: row['recognitionSessionId'] as String, evidenceType: row['evidenceType'] as String, evidenceRole: row['evidenceRole'] as String, sequenceNo: row['sequenceNo'] as int, userId: row['userId'] as String, faceSampleId: row['faceSampleId'] as String?, referenceImageUrl: row['referenceImageUrl'] as String?, referenceImageVersion: row['referenceImageVersion'] as String?, localFilePath: row['localFilePath'] as String?, imageHash: row['imageHash'] as String?, imageSize: row['imageSize'] as int?, imageWidth: row['imageWidth'] as int?, imageHeight: row['imageHeight'] as int?, similarity: row['similarity'] as double?, similarityThreshold: row['similarityThreshold'] as double?, capturedAt: _dateTimeConverter.decode(row['capturedAt'] as String), appVersion: row['appVersion'] as String, status: row['status'] as String, attemptCount: row['attemptCount'] as int, nextRetryAt: _dateTimeEmptyConverter.decode(row['nextRetryAt'] as String?), serverEvidenceId: row['serverEvidenceId'] as String?, serverImageUrl: row['serverImageUrl'] as String?, lastError: row['lastError'] as String?, unavailableReportedAt: _dateTimeEmptyConverter.decode(row['unavailableReportedAt'] as String?), completedAt: _dateTimeEmptyConverter.decode(row['completedAt'] as String?), createTime: _dateTimeConverter.decode(row['createTime'] as String), updateTime: _dateTimeConverter.decode(row['updateTime'] as String), expiresAt: _dateTimeConverter.decode(row['expiresAt'] as String)), arguments: [_dateTimeConverter.encode(now)]); } @override Future> getExpiredImageTasks( DateTime now) async { return _queryAdapter.queryList( 'SELECT * FROM order_evidence_upload_task WHERE localFilePath IS NOT NULL AND status NOT IN (\'SUCCESS\', \'CANCELLED\') AND expiresAt <= ?1 ORDER BY expiresAt ASC', mapper: (Map row) => OrderEvidenceUploadTaskEntity(id: row['id'] as int?, androidOrderCode: row['androidOrderCode'] as String?, serverOrderId: row['serverOrderId'] as String?, recognitionSessionId: row['recognitionSessionId'] as String, evidenceType: row['evidenceType'] as String, evidenceRole: row['evidenceRole'] as String, sequenceNo: row['sequenceNo'] as int, userId: row['userId'] as String, faceSampleId: row['faceSampleId'] as String?, referenceImageUrl: row['referenceImageUrl'] as String?, referenceImageVersion: row['referenceImageVersion'] as String?, localFilePath: row['localFilePath'] as String?, imageHash: row['imageHash'] as String?, imageSize: row['imageSize'] as int?, imageWidth: row['imageWidth'] as int?, imageHeight: row['imageHeight'] as int?, similarity: row['similarity'] as double?, similarityThreshold: row['similarityThreshold'] as double?, capturedAt: _dateTimeConverter.decode(row['capturedAt'] as String), appVersion: row['appVersion'] as String, status: row['status'] as String, attemptCount: row['attemptCount'] as int, nextRetryAt: _dateTimeEmptyConverter.decode(row['nextRetryAt'] as String?), serverEvidenceId: row['serverEvidenceId'] as String?, serverImageUrl: row['serverImageUrl'] as String?, lastError: row['lastError'] as String?, unavailableReportedAt: _dateTimeEmptyConverter.decode(row['unavailableReportedAt'] as String?), completedAt: _dateTimeEmptyConverter.decode(row['completedAt'] as String?), createTime: _dateTimeConverter.decode(row['createTime'] as String), updateTime: _dateTimeConverter.decode(row['updateTime'] as String), expiresAt: _dateTimeConverter.decode(row['expiresAt'] as String)), arguments: [_dateTimeConverter.encode(now)]); } @override Future deleteSuccessfulBefore(DateTime before) async { await _queryAdapter.queryNoReturn( 'DELETE FROM order_evidence_upload_task WHERE status = \'SUCCESS\' AND completedAt IS NOT NULL AND completedAt < ?1', arguments: [_dateTimeConverter.encode(before)]); } @override Future> getAll() async { return _queryAdapter.queryList( 'SELECT * FROM order_evidence_upload_task ORDER BY id ASC', mapper: (Map row) => OrderEvidenceUploadTaskEntity( id: row['id'] as int?, androidOrderCode: row['androidOrderCode'] as String?, serverOrderId: row['serverOrderId'] as String?, recognitionSessionId: row['recognitionSessionId'] as String, evidenceType: row['evidenceType'] as String, evidenceRole: row['evidenceRole'] as String, sequenceNo: row['sequenceNo'] as int, userId: row['userId'] as String, faceSampleId: row['faceSampleId'] as String?, referenceImageUrl: row['referenceImageUrl'] as String?, referenceImageVersion: row['referenceImageVersion'] as String?, localFilePath: row['localFilePath'] as String?, imageHash: row['imageHash'] as String?, imageSize: row['imageSize'] as int?, imageWidth: row['imageWidth'] as int?, imageHeight: row['imageHeight'] as int?, similarity: row['similarity'] as double?, similarityThreshold: row['similarityThreshold'] as double?, capturedAt: _dateTimeConverter.decode(row['capturedAt'] as String), appVersion: row['appVersion'] as String, status: row['status'] as String, attemptCount: row['attemptCount'] as int, nextRetryAt: _dateTimeEmptyConverter.decode(row['nextRetryAt'] as String?), serverEvidenceId: row['serverEvidenceId'] as String?, serverImageUrl: row['serverImageUrl'] as String?, lastError: row['lastError'] as String?, unavailableReportedAt: _dateTimeEmptyConverter .decode(row['unavailableReportedAt'] as String?), completedAt: _dateTimeEmptyConverter.decode(row['completedAt'] as String?), createTime: _dateTimeConverter.decode(row['createTime'] as String), updateTime: _dateTimeConverter.decode(row['updateTime'] as String), expiresAt: _dateTimeConverter.decode(row['expiresAt'] as String))); } @override Future save(OrderEvidenceUploadTaskEntity entity) { return _orderEvidenceUploadTaskEntityInsertionAdapter.insertAndReturnId( entity, OnConflictStrategy.replace); } @override Future edit(OrderEvidenceUploadTaskEntity entity) async { await _orderEvidenceUploadTaskEntityUpdateAdapter.update( entity, OnConflictStrategy.abort); } } // ignore_for_file: unused_element final _dateTimeConverter = DateTimeConverter(); final _dateTimeEmptyConverter = DateTimeEmptyConverter(); final _orderStatusConverter = OrderStatusConverter(); final _orderTypeConverter = OrderTypeConverter(); final _orderPayTypeConverter = OrderPayTypeConverter(); final _sysTypeConverter = SysTypeConverter(); final _printStatusConverter = PrintStatusConverter(); final _productHourTypeConverter = ProductHourTypeConverter(); final _supermarketNatureConverter = SupermarketNatureConverter(); final _discountsTypeConverter = DiscountsTypeConverter(); final _listDiscountsConverter = ListDiscountsConverter(); final _listIntConverter = ListIntConverter(); final _boolConverter = BoolConverter();