feat:人脸删除同步
This commit is contained in:
1 parent
593aa39b78
commit
b916d6ca85
6 files changed
+55
-13
No files matched your search
@@ -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) =>
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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";
|
||||
// 测试环境-食堂-浦阳
|
||||
|
||||
Reference in new issue
Block a user