66 lines
1.7 KiB
Dart
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,
|
|
);
|
|
}
|