feat(face): 支持按userFaceId查询单条人脸记录

- FaceDao新增queryByUserFaceId接口,实现按userFaceId精确查询
- FaceApi新增queryByUserFaceId方法,封装Dao查询逻辑
- LoginByFaceActivity插入人脸时,先按userFaceId查询,存在则更新避免重复
- NetViewModelV2同步人脸数据时,优先用userFaceId判重,减少重复入库
- 修正FaceEntity中userId字段数据库列名错误(user_id替代user_idd)
- 增加注释说明及代码格式优化,提升代码可读性和健壮性
This commit is contained in:
mazengfei
2026-08-18 09:12:40 +08:00
parent 747e243122
commit 524837ec20
6 changed files with 1312 additions and 7 deletions
@@ -98,6 +98,17 @@ public class FaceApi {
getFaceDao().deleteFaceByUserFaceId(userFaceId);
}
/**
* 按 userFaceId 查询单条人脸记录
*/
public FaceEntity queryByUserFaceId(String userFaceId) {
if (userFaceId == null || userFaceId.isEmpty()) {
return null;
}
return getFaceDao().queryByUserFaceId(userFaceId);
}
public Long insert(FaceEntity entity) {
if (entity == null) {
return 0L;
@@ -61,6 +61,12 @@ public interface FaceDao {
@Query("DELETE from face WHERE user_face_id = :userFaceId")
int deleteFaceByUserFaceId(String userFaceId);
/**
* 按 userFaceId 查询单条人脸记录
*/
@Query("SELECT * FROM face WHERE user_face_id = :userFaceId LIMIT 1")
FaceEntity queryByUserFaceId(String userFaceId);
/**
* 删除所有已注册的人脸
*
@@ -58,7 +58,7 @@ public class FaceEntity implements Parcelable {
@Ignore
private int trackId;//人脸追踪ID
@ColumnInfo(name = "user_idd")
@ColumnInfo(name = "user_id")
private String userId;
@ColumnInfo(name = "user_face_id")
private String userFaceId;