联合支付模式使用人脸识别生成就餐记录
This commit is contained in:
@@ -114,6 +114,7 @@ class MainScreenPresentation(
|
||||
var isKeepFaceState = false
|
||||
|
||||
var currentUserId: String? = null
|
||||
var isMember: Boolean = false
|
||||
|
||||
var facePreviewInfoList: MutableList<FacePreviewInfo>? = null
|
||||
|
||||
@@ -121,11 +122,15 @@ class MainScreenPresentation(
|
||||
super.onCreate(savedInstanceState)
|
||||
binding = PresentationMainScreenBinding.inflate(layoutInflater)
|
||||
setContentView(binding.root)
|
||||
//0-即放即取,1-余量计量
|
||||
mealPickupMode = SPUtil.getInstance().get(GlobalKey.KEY_PICKUP_MODE, 0) ?: 0
|
||||
window?.setBackgroundDrawableResource(android.R.color.white)
|
||||
initView()
|
||||
//0-计费,1-不计费
|
||||
val chargeMode = SPUtil.getInstance().get(GlobalKey.KEY_CHARGE_MODE, 0)
|
||||
if (chargeMode == 1) {
|
||||
//0-联合支付,1-独立支付
|
||||
val settlementMode = SPUtil.getInstance().get(GlobalKey.KEY_SETTLEMENT_MODE, 1)
|
||||
if (settlementMode == 0 || chargeMode == 1) {
|
||||
setupArcCamera()
|
||||
}
|
||||
registerDataChange()
|
||||
@@ -138,7 +143,9 @@ class MainScreenPresentation(
|
||||
lastWeight = weight * 1000 // 将千克转成克
|
||||
Timber.tag(TAG)
|
||||
.d("updateWeight lastWeight = $weight, currentStep = $currentStep, isGoStep1 = $isGoStep1")
|
||||
//0-即放即取,1-余量计量
|
||||
mealPickupMode = SPUtil.getInstance().get(GlobalKey.KEY_PICKUP_MODE, 0) ?: 0
|
||||
//0-计费,1-不计费
|
||||
val chargeMode = SPUtil.getInstance().get(GlobalKey.KEY_CHARGE_MODE, 0)
|
||||
// if (mealPickupMode == 1 && chargeMode == 0) {
|
||||
// //余量计量+计费模式
|
||||
@@ -586,6 +593,9 @@ class MainScreenPresentation(
|
||||
binding.tvFoodName.text = foodInfo.foodName
|
||||
binding.ivPreviewImage.gone()
|
||||
binding.ivFrame.gone()
|
||||
//0-联合支付,1-独立支付
|
||||
val settlementMode = SPUtil.getInstance().get(GlobalKey.KEY_SETTLEMENT_MODE, 1)
|
||||
//0-计费,1-不计费
|
||||
val chargeMode = SPUtil.getInstance().get(GlobalKey.KEY_CHARGE_MODE, 0)
|
||||
if (chargeMode == 0) {
|
||||
binding.ivRecImage.let {
|
||||
@@ -597,15 +607,19 @@ class MainScreenPresentation(
|
||||
} else {
|
||||
binding.ivRecImage.gone()
|
||||
}
|
||||
val mode = SPUtil.getInstance().get(GlobalKey.KEY_CHARGE_MODE, 0)
|
||||
if (mode == 0) {
|
||||
//独立支付+计费模式,使用人脸识别
|
||||
if (settlementMode == 1 && chargeMode == 0) {
|
||||
//计费,查询营养信息、价格信息------------------------
|
||||
loadBilledMode()
|
||||
} else {
|
||||
//不计费
|
||||
//开启人脸识别
|
||||
if (currentStep == 1 || binding.tvFaceTip.isVisible.not()) {
|
||||
//联合支付,进行人脸识别
|
||||
if (settlementMode == 0) {
|
||||
step2FaceRecognizing(foodInfo)
|
||||
} else {
|
||||
//不计费,开启人脸识别
|
||||
if (currentStep == 1 || binding.tvFaceTip.isVisible.not()) {
|
||||
step2FaceRecognizing(foodInfo)
|
||||
}
|
||||
}
|
||||
}
|
||||
//if (currentStep == 1) {
|
||||
@@ -785,7 +799,10 @@ class MainScreenPresentation(
|
||||
fun resumeCamera() {
|
||||
Timber.tag(TAG).d("resumeCamera isRecognition = $isRecognition")
|
||||
isRecognition = true
|
||||
if (rgbCameraHelper != null && rgbCameraHelper!!.isStopped) {
|
||||
if (rgbCameraHelper == null) {
|
||||
setupArcCamera()
|
||||
rgbCameraHelper!!.start()
|
||||
} else if (rgbCameraHelper!!.isStopped) {
|
||||
rgbCameraHelper!!.start()
|
||||
}
|
||||
}
|
||||
@@ -859,6 +876,7 @@ class MainScreenPresentation(
|
||||
val faceEntity = compareResult.faceEntity
|
||||
val userId = faceEntity.userName
|
||||
currentUserId = userId
|
||||
isMember = faceEntity.userType == "1"
|
||||
isAgainLoadData = false
|
||||
if (userId == null) return@Observer
|
||||
//ToastUtils.showToast("人脸识别成功,userId = $userId")
|
||||
@@ -978,6 +996,7 @@ class MainScreenPresentation(
|
||||
}
|
||||
if (facePreviewInfoList.isNullOrEmpty()) {
|
||||
currentUserId = null
|
||||
isMember = false
|
||||
}
|
||||
//recognizeViewModel.clearLeftFace(facePreviewInfoList)
|
||||
clearLeftFaceData()
|
||||
@@ -1139,6 +1158,7 @@ class MainScreenPresentation(
|
||||
.d("listIsEmpty=$listIsEmpty,lastFaceTrackId=$lastFaceTrackId,listFirstTrackId=$listFirstTrackId")
|
||||
if (listIsEmpty || (lastFaceTrackId != listFirstTrackId)) {
|
||||
if (lastFaceTrackId != -1 && currentUserId != null) {
|
||||
//0-即放即取,1-余量计量
|
||||
mealPickupMode = SPUtil.getInstance().get(GlobalKey.KEY_PICKUP_MODE, 0) ?: 0
|
||||
Timber.tag(TAG).i("$lastFaceTrackId 用户离开")
|
||||
lastFaceTrackId = -1
|
||||
@@ -1159,6 +1179,7 @@ class MainScreenPresentation(
|
||||
ToastUtils.showToast("订单已生成")
|
||||
}
|
||||
currentUserId = null
|
||||
isMember = false
|
||||
//ToastUtils.showToast("isKeepFaceState=$isKeepFaceState,mealPickupMode=$mealPickupMode")
|
||||
//|| isKeepFaceState
|
||||
if (mealPickupMode == 1) {
|
||||
@@ -1173,8 +1194,19 @@ class MainScreenPresentation(
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 人脸离开后调用创建订单接口
|
||||
*/
|
||||
fun createOrder(notEnoughOneBlock: () -> Unit = {}, block: () -> Unit) {
|
||||
////0-联合支付,1-独立支付
|
||||
//val settlementMode = SPUtil.getInstance().get(GlobalKey.KEY_SETTLEMENT_MODE, 1)
|
||||
//0-即放即取,1-余量计量
|
||||
mealPickupMode = SPUtil.getInstance().get(GlobalKey.KEY_PICKUP_MODE, 0) ?: 0
|
||||
//if (settlementMode == 0) {
|
||||
// //使用联合支付方式
|
||||
// ToastUtils.showToast("使用联合支付方式")
|
||||
// return
|
||||
//}
|
||||
val eatWeight = if (mealPickupMode == 0) {
|
||||
//即放即取
|
||||
recognitionWeight
|
||||
@@ -1196,6 +1228,7 @@ class MainScreenPresentation(
|
||||
eatWeight = eatWeight.roundToInt(),
|
||||
eatNum = activity.getEatNum(eatWeight, currentFood!!.specWeight),
|
||||
userId = currentUserId,
|
||||
isMember = isMember ,
|
||||
notEnoughOneBlock = notEnoughOneBlock,
|
||||
block = {
|
||||
activity.runOnUiThread {
|
||||
|
||||
Reference in New Issue
Block a user