From 86c3c07e424a040730bb381bb49ba9664c0f78b9 Mon Sep 17 00:00:00 2001 From: mazengfei <331023091@qq.com> Date: Thu, 12 Mar 2026 11:10:26 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9A=90=E8=97=8F=E6=B5=8B=E8=AF=95=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sw/platecabinet/activity/FunActivity.kt | 24 +++++++++++++++++++ .../platecabinet/viewmodel/UserViewModel.kt | 15 +++++++++++- app/src/main/res/layout/activity_fun.xml | 14 +++++++++++ 3 files changed, 52 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/sw/platecabinet/activity/FunActivity.kt b/app/src/main/java/com/sw/platecabinet/activity/FunActivity.kt index 46ac422..94d479a 100644 --- a/app/src/main/java/com/sw/platecabinet/activity/FunActivity.kt +++ b/app/src/main/java/com/sw/platecabinet/activity/FunActivity.kt @@ -1,6 +1,8 @@ package com.sw.platecabinet.activity +import androidx.activity.viewModels import androidx.lifecycle.lifecycleScope +import com.sw.plate.utils.Base64 import com.sw.plate.utils.ToastUtils import com.sw.plate.utils.arcface.facedb.FaceDatabase import com.sw.platecabinet.MyApp @@ -10,10 +12,12 @@ import com.sw.platecabinet.dialog.CustomDialog import com.sw.platecabinet.ext.clickWithDebounce import com.sw.platecabinet.utils.PlateUtils import com.sw.platecabinet.utils.SpTool +import com.sw.platecabinet.viewmodel.UserViewModel import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.delay import kotlinx.coroutines.launch import kotlinx.coroutines.withContext +import kotlin.getValue class FunActivity : BaseActivity() { @@ -34,6 +38,26 @@ class FunActivity : BaseActivity() { binding.btnPutPlate.clickWithDebounce { putPlate() } queryUserCount() + + binding.btnTestFeature.clickWithDebounce { + testFeature() + } + } + private fun testFeature() { + userViewModel.getUserFace(1, 1) {list -> + lifecycleScope.launch { + withContext(Dispatchers.IO) { + if (list.isEmpty()) return@withContext + val userId = list[0].userId + val base64Feature = list[0].faceFeatureStr + val faceDao = FaceDatabase.getInstance(this@FunActivity).faceDao() + val entityList = faceDao.queryAllByUserName(userId) + val resultList = entityList.map { base64Feature == Base64.encode(it.featureData) } + val isEqual = resultList.any { true } + ToastUtils.showToast("比较结果:$isEqual") + } + } + } } private fun clearFace() { diff --git a/app/src/main/java/com/sw/platecabinet/viewmodel/UserViewModel.kt b/app/src/main/java/com/sw/platecabinet/viewmodel/UserViewModel.kt index e9a1cb3..9cb8c35 100644 --- a/app/src/main/java/com/sw/platecabinet/viewmodel/UserViewModel.kt +++ b/app/src/main/java/com/sw/platecabinet/viewmodel/UserViewModel.kt @@ -51,6 +51,19 @@ class UserViewModel : BaseViewModel() { // } // } + fun getUserFace( + pageNo: Int, + pageSize: Int, + callback: (List) -> Unit + ) { + launchWithLoading{ + val response = repository.getUserFaceCache(pageNum = pageNo, pageSize = pageSize) + val status = parseResponse(response) + if (status) callback(response.data?:emptyList()) + else emptyList() + } + } + /** * 获取人脸数据 */ @@ -84,7 +97,7 @@ class UserViewModel : BaseViewModel() { //第一页数据删除本地数据库 faceApi.clearFaceData() } - faceApi.updateFaceData( pageNo, faceEntityList) + faceApi.updateFaceData(pageNo, faceEntityList) if (list.size >= pageSize) { faceTimestamp = list.last().faceUpdateTimestamp ?: 0 currentPageNo++ diff --git a/app/src/main/res/layout/activity_fun.xml b/app/src/main/res/layout/activity_fun.xml index fc3bd5a..e8497f1 100644 --- a/app/src/main/res/layout/activity_fun.xml +++ b/app/src/main/res/layout/activity_fun.xml @@ -93,4 +93,18 @@ android:background="@drawable/btn_outline" android:text="模拟放置餐盘" android:textColor="#FFCC99" /> + + \ No newline at end of file