100 lines
2.7 KiB
Dart
100 lines
2.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';
|
|
|
|
// broadcast
|
|
@dao
|
|
abstract class BroadcastDao {
|
|
Future<int> toggleEnable(bool enable, ProductHourType hourType) async {
|
|
final app = Get.find<AppControl>();
|
|
final database = app.dataBase.database;
|
|
final sql = '''
|
|
UPDATE broadcast SET enable = ${enable ? 1 : 0}
|
|
WHERE
|
|
(${hourType.code} = '-1' OR hourType = ${hourType.code})
|
|
AND strftime('%Y-%m-%d', createTime) = strftime('%Y-%m-%d', 'now', 'localtime')
|
|
''';
|
|
return await database.rawUpdate(sql, []);
|
|
}
|
|
|
|
Future<int> delByServiceCodes(
|
|
List<String> codes,
|
|
) async {
|
|
if (ObjectUtil.isEmptyList(codes)) return 0;
|
|
final appC = Get.find<AppControl>();
|
|
final database = appC.dataBase.database;
|
|
final placeholders = List.generate(codes.length, (index) => '?').join(', ');
|
|
final sql = '''
|
|
DELETE FROM broadcast
|
|
WHERE
|
|
serviceCode IN ($placeholders)
|
|
AND strftime('%Y-%m-%d', createTime) = strftime('%Y-%m-%d', 'now', 'localtime')
|
|
''';
|
|
return await database.rawDelete(sql, [...codes]);
|
|
}
|
|
|
|
Future<int> delAll() async {
|
|
final appC = Get.find<AppControl>();
|
|
final database = appC.dataBase.database;
|
|
final sql = '''
|
|
DELETE FROM broadcast
|
|
WHERE
|
|
strftime('%Y-%m-%d', createTime) = strftime('%Y-%m-%d', 'now', 'localtime')
|
|
''';
|
|
return await database.rawDelete(sql, []);
|
|
}
|
|
|
|
@insert
|
|
Future<void> save(BroadcastEntity entity);
|
|
|
|
@insert
|
|
Future<void> batchSave(List<BroadcastEntity> entitys);
|
|
|
|
@Query("""
|
|
DELETE FROM broadcast
|
|
WHERE
|
|
isDone = 0
|
|
AND (:serviceOrderCode = '-1' OR serviceOrderCode = :serviceOrderCode)
|
|
""")
|
|
Future<void> del(String serviceOrderCode);
|
|
|
|
@update
|
|
Future<void> edit(BroadcastEntity entity);
|
|
|
|
@Query("""
|
|
SELECT * FROM broadcast
|
|
WHERE
|
|
isDone = 0
|
|
AND enable = 1
|
|
AND broadcastCount < broadcastMaxCount
|
|
AND (:hourType = '-1' OR hourType = :hourType)
|
|
AND strftime('%Y-%m-%d', createTime) = strftime('%Y-%m-%d', 'now', 'localtime')
|
|
""")
|
|
Future<List<BroadcastEntity>> getAll(String hourType);
|
|
|
|
@Query("""
|
|
SELECT * FROM broadcast
|
|
WHERE
|
|
strftime('%Y-%m-%d', createTime) = strftime('%Y-%m-%d', 'now', 'localtime')
|
|
AND (:hourType = '-1' OR hourType = :hourType)
|
|
LIMIT :pageSize OFFSET :offset
|
|
""")
|
|
Future<List<BroadcastEntity>> findAllPage(
|
|
String hourType,
|
|
int pageSize,
|
|
int offset,
|
|
);
|
|
|
|
@Query("""
|
|
SELECT COUNT(0) FROM broadcast
|
|
WHERE
|
|
strftime('%Y-%m-%d', createTime) = strftime('%Y-%m-%d', 'now', 'localtime')
|
|
AND (:hourType = '-1' OR hourType = :hourType)
|
|
""")
|
|
Future<int?> count(
|
|
String hourType,
|
|
);
|
|
}
|