取现 http 接口定义
This commit is contained in:
parent
c669384d3c
commit
cea438caa8
|
|
@ -1,28 +0,0 @@
|
|||
package com.gamedog.vididin.feature.home.api
|
||||
|
||||
|
||||
import com.gamedog.vididin.VidiConst
|
||||
import com.gamedog.vididin.beans.req.PayInitReq
|
||||
import com.gamedog.vididin.beans.req.PayoutCheckReq
|
||||
import com.gamedog.vididin.beans.req.PayoutReq
|
||||
import com.gamedog.vididin.beans.resp.PayInit
|
||||
import com.gamedog.vididin.beans.resp.PayoutCheckData
|
||||
import com.gamedog.vididin.beans.resp.PayoutData
|
||||
import retrofit2.http.Body
|
||||
import retrofit2.http.POST
|
||||
|
||||
|
||||
interface WithDrawApi {
|
||||
|
||||
|
||||
@POST(VidiConst.URL_WITHDRAW + "/eonline4/pay/init")
|
||||
suspend fun withdrawInit(@Body param: PayInitReq): PayInit
|
||||
|
||||
@POST(VidiConst.URL_WITHDRAW + "/eonline4/payoutBrazil")
|
||||
suspend fun withdrawPayout(@Body param: PayoutReq): PayoutData
|
||||
|
||||
@POST(VidiConst.URL_WITHDRAW + "/eonline4/payout/check")
|
||||
suspend fun withdrawCheck(@Body param: PayoutCheckReq): PayoutCheckData
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -4,32 +4,36 @@ import android.app.Activity
|
|||
import android.content.Intent
|
||||
import android.view.LayoutInflater
|
||||
import androidx.activity.viewModels
|
||||
import com.ama.core.architecture.appBase.AppViewsActivity
|
||||
import com.ama.core.architecture.appBase.AppViewsEmptyViewModelActivity
|
||||
import com.ama.core.architecture.util.setOnClickBatch
|
||||
import com.vididin.real.money.game.R
|
||||
import com.gamedog.vididin.VididinEvents
|
||||
import com.gamedog.vididin.core.login.login.AccountManager
|
||||
import com.gamedog.vididin.features.withdraw.widget.WithDrawItemView
|
||||
import com.gamedog.vididin.features.zero.ZeroBuyViewModel
|
||||
import com.gamedog.vididin.main.interfaces.OnTabStyleListener
|
||||
import com.gamedog.vididin.router.Router
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import kotlin.getValue
|
||||
import com.vididin.real.money.game.databinding.ActivityWithdrawBinding as ViewBinding
|
||||
import com.gamedog.vididin.main.MainUiState as UiState
|
||||
import com.gamedog.vididin.main.MainViewModel as ViewModel
|
||||
|
||||
|
||||
|
||||
@AndroidEntryPoint
|
||||
class WithDrawActivity : AppViewsActivity<ViewBinding, UiState, ViewModel>(), OnTabStyleListener {
|
||||
|
||||
override val mViewModel: ViewModel by viewModels()
|
||||
override fun inflateViewBinding(inflater: LayoutInflater) = ViewBinding.inflate(inflater)
|
||||
class WithDrawActivity : AppViewsEmptyViewModelActivity<ViewBinding>(), OnTabStyleListener {
|
||||
|
||||
private val viewModel: ZeroBuyViewModel by viewModels()
|
||||
private val mItemViewList: MutableList<WithDrawItemView> = mutableListOf()
|
||||
private var mCurSelectedIndex: Int = 0
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
override fun inflateViewBinding(inflater: LayoutInflater) = ViewBinding.inflate(inflater)
|
||||
|
||||
override fun ViewBinding.initWindowInsets() {
|
||||
setImmerseRootView(contentRoot)
|
||||
}
|
||||
|
|
@ -124,10 +128,6 @@ class WithDrawActivity : AppViewsActivity<ViewBinding, UiState, ViewModel>(), On
|
|||
//TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun ViewBinding.onUiStateCollect(uiState: UiState) {
|
||||
//TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun onTabIsDarkFont(isDarkFont: Boolean) {
|
||||
//TODO("Not yet implemented")
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,58 @@
|
|||
package com.gamedog.vididin.features.withdraw
|
||||
|
||||
import androidx.lifecycle.ViewModel
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import com.gamedog.vididin.beans.req.PayInitReq
|
||||
import com.gamedog.vididin.beans.req.PayoutCheckReq
|
||||
import com.gamedog.vididin.beans.req.PayoutReq
|
||||
import com.gamedog.vididin.beans.resp.PayInit
|
||||
import com.gamedog.vididin.beans.resp.PayoutCheckData
|
||||
import com.gamedog.vididin.beans.resp.PayoutData
|
||||
import com.gamedog.vididin.netbase.NetworkUtil
|
||||
import com.gamedog.vididin.netbase.Result
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.flow.StateFlow
|
||||
import kotlinx.coroutines.flow.asStateFlow
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
class WithdrawViewModel : ViewModel() {
|
||||
private val _InitData = MutableStateFlow<Result<PayInit>>(Result.Loading)
|
||||
val InitData: StateFlow<Result<PayInit>> = _InitData.asStateFlow()
|
||||
|
||||
private val _PayoutResult = MutableStateFlow<Result<PayoutData?>>(Result.Loading)
|
||||
val PayoutResult: StateFlow<Result<PayoutData?>> = _PayoutResult.asStateFlow()
|
||||
|
||||
private val _CheckResult = MutableStateFlow<Result<PayoutCheckData?>>(Result.Loading)
|
||||
val CheckResult: StateFlow<Result<PayoutCheckData?>> = _CheckResult.asStateFlow()
|
||||
|
||||
|
||||
fun withdrawInit() {
|
||||
viewModelScope.launch {
|
||||
_InitData.value = Result.Loading
|
||||
_InitData.value = NetworkUtil.callApi {
|
||||
NetworkUtil.apiservice().withdrawInit(PayInitReq())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
fun withdrawPayout() {
|
||||
viewModelScope.launch {
|
||||
_PayoutResult.value = Result.Loading
|
||||
_PayoutResult.value = NetworkUtil.callApi {
|
||||
NetworkUtil.apiservice().withdrawPayout(PayoutReq())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun withdrawCheck() {
|
||||
viewModelScope.launch {
|
||||
_CheckResult.value = Result.Loading
|
||||
_CheckResult.value = NetworkUtil.callApi {
|
||||
NetworkUtil.apiservice().withdrawCheck(PayoutCheckReq())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -1,5 +1,12 @@
|
|||
package com.gamedog.vididin.netbase
|
||||
|
||||
import com.gamedog.vididin.VidiConst
|
||||
import com.gamedog.vididin.beans.req.PayInitReq
|
||||
import com.gamedog.vididin.beans.req.PayoutCheckReq
|
||||
import com.gamedog.vididin.beans.req.PayoutReq
|
||||
import com.gamedog.vididin.beans.resp.PayInit
|
||||
import com.gamedog.vididin.beans.resp.PayoutCheckData
|
||||
import com.gamedog.vididin.beans.resp.PayoutData
|
||||
import okhttp3.ResponseBody
|
||||
import retrofit2.http.Body
|
||||
import retrofit2.http.Field
|
||||
|
|
@ -35,4 +42,18 @@ interface ApiService {
|
|||
@HeaderMap headers: Map<String, String> = emptyMap(),
|
||||
@Body body: Any
|
||||
): ResponseBody
|
||||
|
||||
|
||||
|
||||
|
||||
@POST(VidiConst.URL_WITHDRAW + "/eonline4/pay/init")
|
||||
suspend fun withdrawInit(@Body param: PayInitReq): PayInit
|
||||
|
||||
@POST(VidiConst.URL_WITHDRAW + "/eonline4/payoutBrazil")
|
||||
suspend fun withdrawPayout(@Body param: PayoutReq): PayoutData
|
||||
|
||||
@POST(VidiConst.URL_WITHDRAW + "/eonline4/payout/check")
|
||||
suspend fun withdrawCheck(@Body param: PayoutCheckReq): PayoutCheckData
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
package com.gamedog.vididin.netbase
|
||||
|
||||
import okhttp3.ResponseBody
|
||||
import retrofit2.HttpException
|
||||
import java.io.IOException
|
||||
|
||||
object NetworkUtil {
|
||||
|
|
@ -9,6 +10,9 @@ object NetworkUtil {
|
|||
RetrofitUtil.getRetrofitInstance().create(ApiService::class.java)
|
||||
}
|
||||
|
||||
fun apiservice(): ApiService {
|
||||
return apiService
|
||||
}
|
||||
|
||||
suspend fun get(
|
||||
url: String,
|
||||
|
|
@ -43,15 +47,31 @@ object NetworkUtil {
|
|||
}
|
||||
}
|
||||
|
||||
suspend fun <T> callApi(apiCall: suspend () -> T): Result<T> {
|
||||
return try {
|
||||
Result.Success(apiCall())
|
||||
} catch (e: IOException) {
|
||||
Result.Error(e, "网络连接失败,请检查网络设置")
|
||||
} catch (e: HttpException) {
|
||||
Result.Error(e, "服务器错误: ${e.code()}")
|
||||
} catch (e: Exception) {
|
||||
Result.Error(e, "未知错误: ${e.message}")
|
||||
}
|
||||
}
|
||||
|
||||
private suspend fun <T> executeRequest(requestBlock: suspend () -> T): Result<T> {
|
||||
return try {
|
||||
Result.Success(requestBlock())
|
||||
} catch (e: IOException) {
|
||||
Result.Error(e, "网络连接失败,请检查网络设置")
|
||||
} catch (e: HttpException) {
|
||||
Result.Error(e, "服务器错误: ${e.code()}")
|
||||
} catch (e: Exception) {
|
||||
Result.Error(e, "未知错误: ${e.message}")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -34,7 +34,6 @@ object RetrofitUtil {
|
|||
|
||||
// TODO - only enable in debug mode
|
||||
addInterceptor(GlobalInterceptor2())
|
||||
|
||||
connectTimeout(30, TimeUnit.SECONDS)
|
||||
readTimeout(30, TimeUnit.SECONDS)
|
||||
writeTimeout(30, TimeUnit.SECONDS)
|
||||
|
|
|
|||
Loading…
Reference in New Issue