diff --git a/app/src/main/java/com/gamedog/vididin/api/WithDrawApi.kt b/app/src/main/java/com/gamedog/vididin/api/WithDrawApi.kt deleted file mode 100644 index a7103c8..0000000 --- a/app/src/main/java/com/gamedog/vididin/api/WithDrawApi.kt +++ /dev/null @@ -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 - - -} \ No newline at end of file diff --git a/app/src/main/java/com/gamedog/vididin/features/withdraw/WithDrawActivity.kt b/app/src/main/java/com/gamedog/vididin/features/withdraw/WithDrawActivity.kt index a13d8d2..395bf98 100644 --- a/app/src/main/java/com/gamedog/vididin/features/withdraw/WithDrawActivity.kt +++ b/app/src/main/java/com/gamedog/vididin/features/withdraw/WithDrawActivity.kt @@ -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(), OnTabStyleListener { - - override val mViewModel: ViewModel by viewModels() - override fun inflateViewBinding(inflater: LayoutInflater) = ViewBinding.inflate(inflater) +class WithDrawActivity : AppViewsEmptyViewModelActivity(), OnTabStyleListener { + private val viewModel: ZeroBuyViewModel by viewModels() private val mItemViewList: MutableList = 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(), On //TODO("Not yet implemented") } - override fun ViewBinding.onUiStateCollect(uiState: UiState) { - //TODO("Not yet implemented") - } - override fun onTabIsDarkFont(isDarkFont: Boolean) { //TODO("Not yet implemented") } diff --git a/app/src/main/java/com/gamedog/vididin/features/withdraw/WithdrawViewModel.kt b/app/src/main/java/com/gamedog/vididin/features/withdraw/WithdrawViewModel.kt new file mode 100644 index 0000000..c574c89 --- /dev/null +++ b/app/src/main/java/com/gamedog/vididin/features/withdraw/WithdrawViewModel.kt @@ -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.Loading) + val InitData: StateFlow> = _InitData.asStateFlow() + + private val _PayoutResult = MutableStateFlow>(Result.Loading) + val PayoutResult: StateFlow> = _PayoutResult.asStateFlow() + + private val _CheckResult = MutableStateFlow>(Result.Loading) + val CheckResult: StateFlow> = _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()) + } + } + } + + +} \ No newline at end of file diff --git a/app/src/main/java/com/gamedog/vididin/netbase/ApiService.kt b/app/src/main/java/com/gamedog/vididin/netbase/ApiService.kt index 371a436..e01b490 100644 --- a/app/src/main/java/com/gamedog/vididin/netbase/ApiService.kt +++ b/app/src/main/java/com/gamedog/vididin/netbase/ApiService.kt @@ -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 = 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 + + } \ No newline at end of file diff --git a/app/src/main/java/com/gamedog/vididin/netbase/NetworkUtil.kt b/app/src/main/java/com/gamedog/vididin/netbase/NetworkUtil.kt index 173b430..da37462 100644 --- a/app/src/main/java/com/gamedog/vididin/netbase/NetworkUtil.kt +++ b/app/src/main/java/com/gamedog/vididin/netbase/NetworkUtil.kt @@ -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 callApi(apiCall: suspend () -> T): Result { + 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 executeRequest(requestBlock: suspend () -> T): Result { 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}") } } + + + } \ No newline at end of file diff --git a/app/src/main/java/com/gamedog/vididin/netbase/RetrofitUtil.kt b/app/src/main/java/com/gamedog/vididin/netbase/RetrofitUtil.kt index 16bfa4e..9703b7d 100644 --- a/app/src/main/java/com/gamedog/vididin/netbase/RetrofitUtil.kt +++ b/app/src/main/java/com/gamedog/vididin/netbase/RetrofitUtil.kt @@ -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)