取现 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.content.Intent
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import androidx.activity.viewModels
|
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.ama.core.architecture.util.setOnClickBatch
|
||||||
import com.vididin.real.money.game.R
|
import com.vididin.real.money.game.R
|
||||||
import com.gamedog.vididin.VididinEvents
|
import com.gamedog.vididin.VididinEvents
|
||||||
import com.gamedog.vididin.core.login.login.AccountManager
|
import com.gamedog.vididin.core.login.login.AccountManager
|
||||||
import com.gamedog.vididin.features.withdraw.widget.WithDrawItemView
|
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.main.interfaces.OnTabStyleListener
|
||||||
import com.gamedog.vididin.router.Router
|
import com.gamedog.vididin.router.Router
|
||||||
import dagger.hilt.android.AndroidEntryPoint
|
import dagger.hilt.android.AndroidEntryPoint
|
||||||
import kotlin.getValue
|
import kotlin.getValue
|
||||||
import com.vididin.real.money.game.databinding.ActivityWithdrawBinding as ViewBinding
|
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
|
@AndroidEntryPoint
|
||||||
class WithDrawActivity : AppViewsActivity<ViewBinding, UiState, ViewModel>(), OnTabStyleListener {
|
class WithDrawActivity : AppViewsEmptyViewModelActivity<ViewBinding>(), OnTabStyleListener {
|
||||||
|
|
||||||
override val mViewModel: ViewModel by viewModels()
|
|
||||||
override fun inflateViewBinding(inflater: LayoutInflater) = ViewBinding.inflate(inflater)
|
|
||||||
|
|
||||||
|
private val viewModel: ZeroBuyViewModel by viewModels()
|
||||||
private val mItemViewList: MutableList<WithDrawItemView> = mutableListOf()
|
private val mItemViewList: MutableList<WithDrawItemView> = mutableListOf()
|
||||||
private var mCurSelectedIndex: Int = 0
|
private var mCurSelectedIndex: Int = 0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
override fun inflateViewBinding(inflater: LayoutInflater) = ViewBinding.inflate(inflater)
|
||||||
|
|
||||||
override fun ViewBinding.initWindowInsets() {
|
override fun ViewBinding.initWindowInsets() {
|
||||||
setImmerseRootView(contentRoot)
|
setImmerseRootView(contentRoot)
|
||||||
}
|
}
|
||||||
|
|
@ -124,10 +128,6 @@ class WithDrawActivity : AppViewsActivity<ViewBinding, UiState, ViewModel>(), On
|
||||||
//TODO("Not yet implemented")
|
//TODO("Not yet implemented")
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun ViewBinding.onUiStateCollect(uiState: UiState) {
|
|
||||||
//TODO("Not yet implemented")
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onTabIsDarkFont(isDarkFont: Boolean) {
|
override fun onTabIsDarkFont(isDarkFont: Boolean) {
|
||||||
//TODO("Not yet implemented")
|
//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
|
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 okhttp3.ResponseBody
|
||||||
import retrofit2.http.Body
|
import retrofit2.http.Body
|
||||||
import retrofit2.http.Field
|
import retrofit2.http.Field
|
||||||
|
|
@ -35,4 +42,18 @@ interface ApiService {
|
||||||
@HeaderMap headers: Map<String, String> = emptyMap(),
|
@HeaderMap headers: Map<String, String> = emptyMap(),
|
||||||
@Body body: Any
|
@Body body: Any
|
||||||
): ResponseBody
|
): 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
|
package com.gamedog.vididin.netbase
|
||||||
|
|
||||||
import okhttp3.ResponseBody
|
import okhttp3.ResponseBody
|
||||||
|
import retrofit2.HttpException
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
|
|
||||||
object NetworkUtil {
|
object NetworkUtil {
|
||||||
|
|
@ -9,6 +10,9 @@ object NetworkUtil {
|
||||||
RetrofitUtil.getRetrofitInstance().create(ApiService::class.java)
|
RetrofitUtil.getRetrofitInstance().create(ApiService::class.java)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun apiservice(): ApiService {
|
||||||
|
return apiService
|
||||||
|
}
|
||||||
|
|
||||||
suspend fun get(
|
suspend fun get(
|
||||||
url: String,
|
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> {
|
private suspend fun <T> executeRequest(requestBlock: suspend () -> T): Result<T> {
|
||||||
return try {
|
return try {
|
||||||
Result.Success(requestBlock())
|
Result.Success(requestBlock())
|
||||||
} catch (e: IOException) {
|
} catch (e: IOException) {
|
||||||
Result.Error(e, "网络连接失败,请检查网络设置")
|
Result.Error(e, "网络连接失败,请检查网络设置")
|
||||||
|
} catch (e: HttpException) {
|
||||||
|
Result.Error(e, "服务器错误: ${e.code()}")
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
Result.Error(e, "未知错误: ${e.message}")
|
Result.Error(e, "未知错误: ${e.message}")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -34,7 +34,6 @@ object RetrofitUtil {
|
||||||
|
|
||||||
// TODO - only enable in debug mode
|
// TODO - only enable in debug mode
|
||||||
addInterceptor(GlobalInterceptor2())
|
addInterceptor(GlobalInterceptor2())
|
||||||
|
|
||||||
connectTimeout(30, TimeUnit.SECONDS)
|
connectTimeout(30, TimeUnit.SECONDS)
|
||||||
readTimeout(30, TimeUnit.SECONDS)
|
readTimeout(30, TimeUnit.SECONDS)
|
||||||
writeTimeout(30, TimeUnit.SECONDS)
|
writeTimeout(30, TimeUnit.SECONDS)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue