feat(api): 新增取餐盘时刻上报接口及相关调用
- 在 ApiServiceV2 中添加 platePickup 接口用于上报用户开始就餐时刻 - 新增请求体 IdDTO,封装用户 id(餐盘号)字段 - RemoteRepositoryV2 添加对应的 platePickup 方法调用接口 - NetViewModelV2 实现业务方法 platePickup,支持异步回调上报结果 - LoginByFaceActivity 中识别成功出盘后及新用户注册成功后调用 platePickup 上报时刻 - reportPlatePickup 方法完善调用逻辑及日志记录,错误时不会影响主流程
This commit is contained in:
@@ -270,6 +270,32 @@ class NetViewModelV2 : ViewModel() {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 取餐盘上报(P-09a):记录用户开始就餐时刻,作为后续就餐记录(P-09)的强前置。
|
||||
* 失败仅回调通知,不阻断吐盘等业务主流程。
|
||||
*
|
||||
* @param userId 用户 id(餐盘号 = userId)
|
||||
* @param callback 上报结果回调:Boolean 是否成功,String? 成功为 recordNo、失败为错误信息
|
||||
*/
|
||||
fun platePickup(
|
||||
userId: Long,
|
||||
callback: (Boolean, String?) -> Unit = { _, _ -> }
|
||||
) {
|
||||
viewModelScope.launch {
|
||||
try {
|
||||
val response = repository.platePickup(userId)
|
||||
if (response.isSuccess()) {
|
||||
callback(true, response.data)
|
||||
} else {
|
||||
callback(false, response.msg)
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
callback(false, e.message)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun base64ToByteArray(base64: String?): ByteArray? {
|
||||
base64 ?: return null
|
||||
return try {
|
||||
|
||||
Reference in New Issue
Block a user