feat(face): 按 userFaceId 删除单条人脸记录

- 在 FaceDao 中新增按 userFaceId 删除人脸记录的SQL语句
- 在 FaceApi 类中新增 deleteByUserFaceId 方法调用该DAO方法
- 在 NetViewModelV2 中删除人脸时改为按 userFaceId 删除,避免误删所有同用户特征
This commit is contained in:
mazengfei
2026-08-12 14:43:29 +08:00
parent 6be9f4f1cf
commit 747e243122
3 changed files with 18 additions and 1 deletions
@@ -226,7 +226,11 @@ class NetViewModelV2 : ViewModel() {
list.forEach { model ->
if (model.faceDeleted == true) {
//删除数据
faceApi.deleteByUserName(model.userId)
// 仅删除 userFaceId 对应的单条人脸记录,避免误删该用户名下所有特征
val userFaceId = model.userFaceId
if (!userFaceId.isNullOrEmpty()) {
faceApi.deleteByUserFaceId(userFaceId)
}
} else {
// 获取该用户所有已存特征,判断当前特征是否已存在
val existList = faceApi.queryAllByUserName(model.userId)
@@ -91,6 +91,13 @@ public class FaceApi {
getFaceDao().deleteFaceById(userName);
}
/**
* 按 userFaceId 删除单条人脸记录
*/
public void deleteByUserFaceId(String userFaceId) {
getFaceDao().deleteFaceByUserFaceId(userFaceId);
}
public Long insert(FaceEntity entity) {
if (entity == null) {
return 0L;
@@ -55,6 +55,12 @@ public interface FaceDao {
@Query("DELETE from face WHERE user_name = :userName")
int deleteFaceById(String userName);
/**
* 按 userFaceId 删除单条人脸记录
*/
@Query("DELETE from face WHERE user_face_id = :userFaceId")
int deleteFaceByUserFaceId(String userFaceId);
/**
* 删除所有已注册的人脸
*