refactor(ReviewActivity): 优化提交流程的时间间隔控制逻辑
- 添加常量 PUSH_TO_NEXT_MIN_INTERVAL_MS 定义最小间隔时间为 1100 毫秒 - 将 firstPushToNextAt 重命名为 firstPushToNextSuccessAt 并初始化为 0L - 在成功响应后记录首次推送成功时间戳 - 使用新的成功时间戳计算延迟间隔 - 将硬编码的 600 毫秒替换为常量 PUSH_TO_NEXT_MIN_INTERVAL_MS
这个提交包含在:
父节点
97394226fb
当前提交
292a4352ac
@ -29,6 +29,10 @@ import io.reactivex.schedulers.Schedulers
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
class ReviewActivity : BaseListFormLayoutNormalActivity<ItemItem, ItemListVM, ActivityReviewBinding>() {
|
||||
private companion object {
|
||||
const val PUSH_TO_NEXT_MIN_INTERVAL_MS = 1100L
|
||||
}
|
||||
|
||||
override fun getLayoutId(): Int = R.layout.activity_review
|
||||
override fun fullscreen(): Boolean = true
|
||||
|
||||
@ -101,7 +105,7 @@ class ReviewActivity : BaseListFormLayoutNormalActivity<ItemItem, ItemListVM, Ac
|
||||
isSubmitting = true
|
||||
submitDisposable?.dispose()
|
||||
val service = HttpManager.getApi(Service::class.java)
|
||||
val firstPushToNextAt = System.currentTimeMillis()
|
||||
var firstPushToNextSuccessAt = 0L
|
||||
submitDisposable = service.pushToNext(
|
||||
PushToNextRequest(
|
||||
workProcessInstanceId = workProcessInstanceId,
|
||||
@ -115,6 +119,7 @@ class ReviewActivity : BaseListFormLayoutNormalActivity<ItemItem, ItemListVM, Ac
|
||||
IllegalStateException(if (response.msg.isBlank()) "同意失败" else response.msg)
|
||||
)
|
||||
}
|
||||
firstPushToNextSuccessAt = System.currentTimeMillis()
|
||||
val needHandlerActivityIds = response.data.result.orEmpty().mapNotNull { it.activityId }.distinct()
|
||||
if (needHandlerActivityIds.isEmpty()) {
|
||||
Observable.just(emptyList())
|
||||
@ -136,8 +141,8 @@ class ReviewActivity : BaseListFormLayoutNormalActivity<ItemItem, ItemListVM, Ac
|
||||
}
|
||||
}
|
||||
}.flatMap { selectedHandler ->
|
||||
val elapsed = System.currentTimeMillis() - firstPushToNextAt
|
||||
val remainingDelayMs = (600L - elapsed).coerceAtLeast(0L)
|
||||
val elapsed = System.currentTimeMillis() - firstPushToNextSuccessAt
|
||||
val remainingDelayMs = (PUSH_TO_NEXT_MIN_INTERVAL_MS - elapsed).coerceAtLeast(0L)
|
||||
Observable.timer(remainingDelayMs, TimeUnit.MILLISECONDS)
|
||||
.flatMap {
|
||||
service.pushToNext(
|
||||
|
||||
正在加载...
在新工单中引用
屏蔽一个用户