feat:人脸删除同步

This commit is contained in:
dzc committed 2026-04-16 11:28:32 +08:00
1 parent 593aa39b78
commit b916d6ca85
6 files changed
+55 -13

No files matched your search

+7 -2
View File
@@ -106,7 +106,7 @@ class ServiceAsyncFace {
final String? username;
/// 用户头像
final String? avatar;
final String? userAvatar;
/// 部门id
final String? deptId;
@@ -114,15 +114,20 @@ class ServiceAsyncFace {
/// 部门名
final String? deptName;
/// 删除标志
@JsonKey(fromJson: JsonTool.stringToBoolean, toJson: JsonTool.booleanToString)
final bool? delFlag;
ServiceAsyncFace({
this.id,
this.autoCode,
this.faceImg,
this.userId,
this.username,
this.avatar,
this.userAvatar,
this.deptId,
this.deptName,
this.delFlag,
});
factory ServiceAsyncFace.fromJson(Map<String, dynamic> json) =>
+4 -2
View File
@@ -58,9 +58,10 @@ ServiceAsyncFace _$ServiceAsyncFaceFromJson(Map<String, dynamic> json) =>
faceImg: json['faceImg'] as String?,
userId: json['userId'] as String?,
username: json['username'] as String?,
avatar: json['avatar'] as String?,
userAvatar: json['userAvatar'] as String?,
deptId: json['deptId'] as String?,
deptName: json['deptName'] as String?,
delFlag: JsonTool.stringToBoolean(json['delFlag'] as String?),
);
Map<String, dynamic> _$ServiceAsyncFaceToJson(ServiceAsyncFace instance) =>
@@ -70,9 +71,10 @@ Map<String, dynamic> _$ServiceAsyncFaceToJson(ServiceAsyncFace instance) =>
'faceImg': instance.faceImg,
'userId': instance.userId,
'username': instance.username,
'avatar': instance.avatar,
'userAvatar': instance.userAvatar,
'deptId': instance.deptId,
'deptName': instance.deptName,
'delFlag': JsonTool.booleanToString(instance.delFlag),
};
ServiceTenant _$ServiceTenantFromJson(Map<String, dynamic> json) =>
@@ -27,6 +27,11 @@ abstract class FaceDao {
''')
Future<void> delByUserId(String userId);
@Query('''
DELETE FROM face WHERE sampleId = :sampleId
''')
Future<void> delBySampleId(String sampleId);
@delete
Future<void> batchDel(List<FaceEntity> entitys);
@@ -1752,6 +1752,12 @@ class _$FaceDao extends FaceDao {
arguments: [userId]);
}
@override
Future<void> delBySampleId(String sampleId) async {
await _queryAdapter.queryNoReturn('DELETE FROM face WHERE sampleId = ?1',
arguments: [sampleId]);
}
@override
Future<int?> findCount(String userName) async {
return _queryAdapter.query(
@@ -1979,6 +1985,7 @@ final _orderTypeConverter = OrderTypeConverter();
final _orderPayTypeConverter = OrderPayTypeConverter();
final _sysTypeConverter = SysTypeConverter();
final _printStatusConverter = PrintStatusConverter();
final _productHourTypeConverter = ProductHourTypeConverter();
final _supermarketNatureConverter = SupermarketNatureConverter();
final _discountsTypeConverter = DiscountsTypeConverter();
final _listDiscountsConverter = ListDiscountsConverter();
+30 -7
View File
@@ -106,13 +106,36 @@ class SyncFaceTool {
}
}
for (final v in data) {
final faceEntity = await faceDao.findBySampleId(v.autoCode!);
if (ObjectUtil.isEmpty(v.autoCode) || ObjectUtil.isEmpty(v.userId)) {
logger.e(
"|$_tag|同步人脸跳过无效数据:|autoCode=${v.autoCode}|userId=${v.userId}|deptId=${v.deptId}|username=${v.username}|",
);
continue;
}
final sampleId = v.autoCode!;
final userId = v.userId!;
// 删除人脸
if (v.delFlag == true) {
// 先查询数据库是否存在
final detail = await faceDao.findBySampleId(sampleId);
if (detail == null) {
continue;
}
if (ObjectUtil.isNotEmpty(detail.path)) {
await delFaceByStorage(filePath: detail.path!);
}
await AppFaceTool.removeFace(sampleId: sampleId);
await faceDao.delBySampleId(sampleId);
continue;
}
final faceEntity = await faceDao.findBySampleId(sampleId);
if (faceEntity == null) {
final add = FaceEntity(
userId: v.userId!,
sampleId: v.autoCode!,
userId: userId,
sampleId: sampleId,
userName: v.username ?? "",
deptId: v.deptId!,
deptId: v.deptId,
deptName: v.deptName ?? "",
imagePath: v.faceImg ?? "",
createTime: DateTime.now(),
@@ -146,10 +169,10 @@ class SyncFaceTool {
}
final edit = FaceEntity(
id: faceEntity.id!,
userId: v.userId!,
sampleId: v.autoCode!,
userId: userId,
sampleId: sampleId,
userName: v.username ?? "",
deptId: v.deptId!,
deptId: v.deptId,
deptName: v.deptName ?? "",
imagePath: v.faceImg ?? "",
createTime: DateTime.now(),
@@ -21,10 +21,10 @@ Future<void> _bindServiceDialog(BuildContext context, SysSetting sys) async {
// 正式环境-测试
// uniqueCodeC.text = "1896157295523049473";
// 正式环境-新县府02-主要测试
// uniqueCodeC.text = "1887466308336488450";
uniqueCodeC.text = "1887466308336488450";
/// 测试环境-测试设备-(食堂主要测试)
uniqueCodeC.text = "1877592554489143298";
// uniqueCodeC.text = "1877592554489143298";
// 测试少年宫测试
// uniqueCodeC.text = "1927932460185784321";
// 测试环境-食堂-浦阳