Files
biz_xfj_cloud/lib/common/services/database/dao/classify_dao.dart
T

66 lines
1.7 KiB
Dart

import 'package:common_utils/common_utils.dart';
import 'package:floor/floor.dart';
import 'package:get/get.dart';
import 'package:pj_supermarket_cloud/common/index.dart';
// classify
@dao
abstract class ClassifyDao {
@insert
Future<void> save(ClassifyEntity entity);
@Query('''
DELETE FROM classify
''')
Future<void> delAllForce();
@insert
Future<void> batchSave(List<ClassifyEntity> entitys);
Future<int> delByIds(List<String> codes) async {
if (ObjectUtil.isEmptyList(codes)) return -1;
final app = Get.find<AppControl>();
final database = app.dataBase.database;
final placeholders = List.generate(codes.length, (index) => '?').join(', ');
final sql = '''
UPDATE classify SET delFlag = 1 WHERE serviceUniqueCode IN ($placeholders)
''';
return await database.rawUpdate(sql, [...codes]);
}
@Query('''
UPDATE classify SET delFlag = 1
WHERE delFlag = 0
AND (:sysType = '-1' OR sysType = :sysType)
''')
Future<int?> delBySysType(String sysType);
@update
Future<void> edit(ClassifyEntity entity);
@update
Future<void> batchEdit(List<ClassifyEntity> entitys);
@Query('SELECT DISTINCT COUNT(0) FROM classify WHERE delFlag = 0')
Future<int?> getCount();
@Query("""
SELECT * FROM classify WHERE delFlag = 0 AND serviceUniqueCode = :code
""")
Future<ClassifyEntity?> getByCode(String code);
@Query('''
SELECT classify.* FROM classify
WHERE
delFlag = 0 AND
(:sysType = '-1' OR sysType = :sysType) AND
(:categoryType = '-1' OR INSTR(',' || categoryType || ',', ',' || :categoryType || ',') > 0)
ORDER BY classify.sort
''')
Future<List<ClassifyEntity>> getAll(
String sysType,
String categoryType,
);
}