feat(weightBilling): 优化按重量计费逻辑并完善界面展示

- 规格栏显示改为直接展示规格重量,去除单价/100克显示
- 新增最小计费重量常量 MIN_BILLABLE_WEIGHT,净重不足时阻止下单
- 下单时检测净重,低于最小计费重量时弹出提示并拦截
- 计算价格时按净重计算,单价基于规格价与规格重量的比值
- 本地明细中 eatNum 仅用于展示份数,不参与金额计算
- SettlementOrder 用实际食用重量 eatWeight 赋值 num 字段,配合重量栏显示逻辑调整
This commit is contained in:
mazengfei
2026-08-05 10:23:48 +08:00
parent a8ade16058
commit 512e0b5b4f
4 changed files with 21 additions and 9 deletions
@@ -107,6 +107,8 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
const val WEIGHT_CHANGE_VALUE = 20
const val WEIGHT_RESET_RECOGNIZE = 10
// 档口按重量计费的最小计费重量(克),净重超过此值才计费/下单
const val MIN_BILLABLE_WEIGHT = 10
}
private val viewModel by viewModels<NetViewModelV2>()
@@ -912,8 +914,9 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
val chargeMode = SPUtil.getInstance().get(GlobalKey.KEY_CHARGE_MODE, 0)
//0-即放即取,1-余量计量
val pickupMode = SPUtil.getInstance().get(GlobalKey.KEY_PICKUP_MODE, 0) ?: 0
if (eatNum <= 0) {
ToastUtils.showToast("您好,当前重量不足一份")
// 按重量计费:净重不足最小计费重量时,提示并拦截下单
if (eatWeight < MIN_BILLABLE_WEIGHT) {
ToastUtils.showToast("重量不足,无法下单")
notEnoughOneBlock()
return
}