接口联调

This commit is contained in:
2025-11-28 18:46:41 +08:00
parent 9bcd7c9983
commit 29188c5944
39 changed files with 1882 additions and 1662 deletions
@@ -29,7 +29,7 @@ import com.sw.dualscreen.ext.gone
import com.sw.dualscreen.ext.maskName
import com.sw.dualscreen.ext.visible
import com.sw.dualscreen.model.request.UserNutritionParam
import com.sw.dualscreen.model.response.DinnerTypeInfo
import com.sw.dualscreen.model.response.DinnerType
import com.sw.dualscreen.model.response.FoodInfo
import com.sw.dualscreen.model.response.UserNutritionData
import com.sw.dualscreen.utils.Debouncer
@@ -89,7 +89,7 @@ class MainScreenPresentation(
private var detectWeight = 0.0 //识别菜品时的重量
private var lastWeight = 0.0 // 上一次的计算热量结果
private var userNutritionData: UserNutritionData? = null
private var dinnerTypeInfo: DinnerTypeInfo? = null
private var dinnerTypeInfo: DinnerType? = null
private val debouncer = Debouncer(500)
private var recognitionTime: Long = 0L // 人脸识别时的时间
private var recognitionWeight: Double = 0.0 // 人脸识别时的重量
@@ -228,27 +228,18 @@ class MainScreenPresentation(
return
}
updateFoodInfo(currentFood!!)
// binding.flPreview.visibility = View.VISIBLE
// binding.ivRecImage.visibility = View.VISIBLE
// binding.flFace.visibility = View.INVISIBLE
//// binding.ivFaceBg.visibility = View.GONE
// binding.tvFaceTip.visibility = View.GONE
//
//// binding.tvBottomTip.visibility = View.GONE
// binding.nutritionInclude.clNutritionData.visibility = View.VISIBLE
foodRecSuccess(currentFood!!)
}
private fun initView() {
binding.ivRecImage.let {
it.outlineProvider = object : ViewOutlineProvider() {
override fun getOutline(view: View, outline: Outline) {
outline.setRoundRect(0, 0, view.width, view.height, 12f.dp)
}
}
it.clipToOutline = true
}
// //binding.ivRecImage.let {
// it.outlineProvider = object : ViewOutlineProvider() {
// override fun getOutline(view: View, outline: Outline) {
// outline.setRoundRect(0, 0, view.width, view.height, 12f.dp)
// }
// }
// it.clipToOutline = true
// }
}
override fun onDisplayRemoved() {
super.onDisplayRemoved()
@@ -270,7 +261,7 @@ class MainScreenPresentation(
/**
* 餐品识别成功,计费模式
*/
fun loadBilledMode(foodInfo: FoodInfo) {
fun loadBilledMode() {
binding.calorieInclude.root.visible()
binding.nutritionInclude.root.gone()
@@ -279,7 +270,7 @@ class MainScreenPresentation(
binding.tvFaceTip.gone()
binding.tvFoodRecPrompt.gone()
binding.llPriceInfo.visible()
binding.ivRecImage.gone()
//binding.ivRecImage.gone()
//updateFoodInfo(foodInfo)
@@ -291,7 +282,7 @@ class MainScreenPresentation(
/**
* 餐品识别成功,不计费模式
*/
fun loadUnbilledMode(foodInfo: FoodInfo) {
fun loadUnbilledMode() {
binding.calorieInclude.root.gone()
binding.nutritionInclude.root.visible()
@@ -300,7 +291,7 @@ class MainScreenPresentation(
binding.tvFaceTip.gone()
binding.tvFoodRecPrompt.gone()
binding.llPriceInfo.gone()
binding.ivRecImage.gone()
//binding.ivRecImage.gone()
//updateFoodInfo(foodInfo)
userNutritionData?.let {
@@ -342,10 +333,12 @@ class MainScreenPresentation(
binding.tvFoodRecPrompt.visible()
binding.flCameraView.visible()
binding.ivPreviewImage.visible()
binding.ivRecImage.gone()
//binding.ivRecImage.gone()
binding.ivFaceRecMask.gone()
binding.tvFaceTip.gone()
binding.llPriceInfo.gone()
binding.flFace.gone()
binding.flRecognizeIr.gone()
pauseCamera()
activity.clearFoodList()
@@ -356,10 +349,10 @@ class MainScreenPresentation(
val mode = SPUtil.getInstance().get(GlobalKey.KEY_CHARGE_MODE, 0)
if (mode == 0) {
//计费
loadBilledMode(foodInfo)
loadBilledMode()
} else {
//不计费
loadUnbilledMode(foodInfo)
loadUnbilledMode()
}
}
@@ -377,13 +370,14 @@ class MainScreenPresentation(
binding.tvFoodName.text = foodInfo.foodName
binding.flFace.visible()
binding.flRecognizeIr.visible()
binding.flCameraView.visible()
binding.ivFaceRecMask.visible()
binding.tvFaceTip.visible()
binding.tvFoodRecPrompt.visible()
binding.llPriceInfo.gone()
binding.ivRecImage.gone()
//binding.ivRecImage.gone()
binding.ivPreviewImage.gone()
dinnerTypeInfo = null
@@ -413,22 +407,22 @@ class MainScreenPresentation(
private fun updateFoodInfo(foodInfo: FoodInfo) {
binding.tvFoodName.text = foodInfo.foodName
binding.ivPreviewImage.gone()
binding.ivRecImage.visible()
if (foodInfo.photoUri != null) {
GlideUtils.loadRoundCornerImage(
context,
url = foodInfo.photoUri,
imageView = binding.ivRecImage,
radius = 12
)
} else {
GlideUtils.loadRoundCornerImage(
context,
url = foodInfo.imgUrl,
imageView = binding.ivRecImage,
radius = 12
)
}
//binding.ivRecImage.visible()
// if (foodInfo.photoUri != null) {
// GlideUtils.loadRoundCornerImage(
// context,
// url = foodInfo.photoUri,
// imageView = //binding.ivRecImage,
// radius = 12
// )
// } else {
// GlideUtils.loadRoundCornerImage(
// context,
// url = foodInfo.imgUrl,
// imageView = //binding.ivRecImage,
// radius = 12
// )
// }
}
private fun calculateNutrition(weight1: Double) {
@@ -436,7 +430,7 @@ class MainScreenPresentation(
if (weight < 0) weight = 0.0
debouncer.debounce {
Timber.tag(TAG).d("calculateNutrition weight = $weight, recognitionWeight = $recognitionWeight")
val dinnerType = dinnerTypeInfo!!.dinnerType!!.dinnerType!!
val dinnerType = dinnerTypeInfo!!.dinnerType!!
Timber.tag(TAG).d("calculateNutrition foodName = ${currentFood!!.foodName}, dinnerType = $dinnerType, userId = ${userNutritionData!!.userId}")
val calcResultInfo = UserNutritionUtils.calculateNutrition(
currentFood!!,
@@ -638,7 +632,7 @@ class MainScreenPresentation(
}
userViewModel.getUserNutritionData(
userId = userId,
foodId = currentFood!!.id!!
foodId = currentFood!!.foodId!!
)
})
@@ -953,7 +947,7 @@ class MainScreenPresentation(
}
val userNutritionParam = UserNutritionParam(
userId = userNutritionData?.userId!!,
foodId = currentFood?.id!!,
foodId = currentFood?.foodId !!,
faceTime = recognitionTime,
faceEndTime = System.currentTimeMillis(),
eatWeight = eatWeight,//lastWeight