diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 50e8bda54..25ce6dd2a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1016,6 +1016,11 @@ android:configChanges="screenSize|orientation|keyboardHidden|mcc|mnc|locale|touchscreen|screenLayout|keyboard|navigation|fontScale|uiMode|smallestScreenSize|layoutDirection" android:exported="false" android:screenOrientation="portrait" /> + \ No newline at end of file diff --git a/app/src/main/java/com/yizhuan/erban/association/AssociationViewModel.kt b/app/src/main/java/com/yizhuan/erban/association/AssociationViewModel.kt index f19223c18..182eb705c 100644 --- a/app/src/main/java/com/yizhuan/erban/association/AssociationViewModel.kt +++ b/app/src/main/java/com/yizhuan/erban/association/AssociationViewModel.kt @@ -6,6 +6,7 @@ import com.yizhuan.xchat_android_core.association.AssociationModel import com.yizhuan.xchat_android_core.association.HallListInfo import com.yizhuan.xchat_android_core.association.ClanListInfo import com.yizhuan.xchat_android_core.bean.response.ListResult +import com.yizhuan.xchat_android_core.utils.toast class AssociationViewModel : BaseViewModel() { @@ -23,6 +24,7 @@ class AssociationViewModel : BaseViewModel() { _clanListLiveData.value = AssociationModel.getClanList() }, onError = { + it.message.toast() _clanListLiveData.value = null } ) @@ -34,6 +36,7 @@ class AssociationViewModel : BaseViewModel() { _hallListLiveData.value = AssociationModel.getHallList() }, onError = { + it.message.toast() _hallListLiveData.value = null } ) diff --git a/app/src/main/java/com/yizhuan/erban/earn/EarnRecordViewModel.kt b/app/src/main/java/com/yizhuan/erban/earn/EarnRecordViewModel.kt index 0405cf106..15030de86 100644 --- a/app/src/main/java/com/yizhuan/erban/earn/EarnRecordViewModel.kt +++ b/app/src/main/java/com/yizhuan/erban/earn/EarnRecordViewModel.kt @@ -30,15 +30,16 @@ class EarnRecordViewModel : BaseViewModel() { private val _exchangeLiveData = MutableLiveData() val exchangeLiveData: MutableLiveData = _exchangeLiveData + //绑定提现账号 + private val _boundLiveData = MutableLiveData() + val boundLiveData: MutableLiveData = _boundLiveData + /** * 收益记录 */ fun getEarnRecordInfo() { safeLaunch( true, - onError = { - _earnRecordLiveData.value = null - }, block = { _earnRecordLiveData.value = EarnModel.getEarnRecord() } @@ -51,9 +52,6 @@ class EarnRecordViewModel : BaseViewModel() { fun getGoldToDiamondInfo() { safeLaunch( true, - onError = { - _goldToDiamondLiveData.value = null - }, block = { _goldToDiamondLiveData.value = EarnModel.getGoldToDiamond() } @@ -105,4 +103,36 @@ class EarnRecordViewModel : BaseViewModel() { ) } + /** + * 绑定提现账号 + */ + fun bound( + uid: Long, + swift: String, + bankName: String, + accountNumber: String, + accountName: String, + address: String, + city: String, + province: String, + postCode: String + ) { + safeLaunch( + true, + block = { + _boundLiveData.value = EarnModel.bound( + uid, + swift, + bankName, + accountNumber, + accountName, + address, + city, + province, + postCode + ) + } + ) + } + } \ No newline at end of file diff --git a/app/src/main/java/com/yizhuan/erban/earn/activity/BindWithdrawMsgActivity.kt b/app/src/main/java/com/yizhuan/erban/earn/activity/BindWithdrawMsgActivity.kt new file mode 100644 index 000000000..92c8b9529 --- /dev/null +++ b/app/src/main/java/com/yizhuan/erban/earn/activity/BindWithdrawMsgActivity.kt @@ -0,0 +1,122 @@ +package com.yizhuan.erban.earn.activity + +import android.content.Context +import android.content.Intent +import android.text.Editable +import android.text.TextWatcher +import androidx.activity.viewModels +import com.netease.nim.uikit.StatusBarUtil +import com.yizhuan.erban.R +import com.yizhuan.erban.base.BaseViewBindingActivity +import com.yizhuan.erban.databinding.ActivityBindWithdrawMsgBinding +import com.yizhuan.erban.earn.EarnRecordViewModel +import com.yizhuan.xchat_android_core.auth.AuthModel +import com.yizhuan.xchat_android_core.earn.bean.WithdrawAccount + +/** + * 绑定提现信息 + */ +class BindWithdrawMsgActivity : BaseViewBindingActivity(), + TextWatcher { + + private val earnRecordModel: EarnRecordViewModel by viewModels() + + companion object { + + const val BEAN = "bean" + + @JvmStatic + fun start(context: Context, withdrawAccount: WithdrawAccount) { + val starter = Intent(context, BindWithdrawMsgActivity::class.java) + starter.putExtra(BEAN, withdrawAccount) + context.startActivity(starter) + } + } + + override fun init() { + initTitleBar(getString(R.string.bind_withdraw_message)) + val bean = intent.getSerializableExtra(BEAN) as? WithdrawAccount + bean?.let { + binding.edSwiftCode.setText(it.swift) + binding.edBankName.setText(it.bankName) + binding.edAccountNumber.setText(it.accountNumber) + binding.edAccountName.setText(it.accountName) + binding.edAddress.setText(it.address) + binding.edCity.setText(it.city) + binding.edProvince.setText(it.province) + binding.edPostCode.setText(it.postCode) + + binding.edSwiftCode.addTextChangedListener(this) + binding.edBankName.addTextChangedListener(this) + binding.edAccountNumber.addTextChangedListener(this) + binding.edAccountName.addTextChangedListener(this) + binding.edAddress.addTextChangedListener(this) + binding.edCity.addTextChangedListener(this) + binding.edProvince.addTextChangedListener(this) + binding.edPostCode.addTextChangedListener(this) + + binding.tvSave.setOnClickListener { view -> + val edSwiftCode = binding.edSwiftCode.text.toString() + val edBankName = binding.edBankName.text.toString() + val edAccountNumber = binding.edAccountNumber.text.toString() + val edAccountName = binding.edAccountName.text.toString() + val edAddress = binding.edAddress.text.toString() + val edCity = binding.edCity.text.toString() + val edProvince = binding.edProvince.text.toString() + val edPostCode = binding.edPostCode.text.toString() + earnRecordModel.bound( + AuthModel.get().currentUid, + edSwiftCode, + edBankName, + edAccountNumber, + edAccountName, + edAddress, + edCity, + edProvince, + edPostCode + ) + } + + earnRecordModel.loadingLiveData.observe(this) { loading -> + if (loading) dialogManager.showProgressDialog(this) + else dialogManager.dismissDialog() + } + + earnRecordModel.exchangeLiveData.observe(this) { + toast(getString(R.string.update_success)) + finish() + } + + } + } + + override fun needSteepStateBar() = true + + override fun setStatusBar() { + super.setStatusBar() + StatusBarUtil.transparencyBar(this) + StatusBarUtil.StatusBarLightMode(this) + } + + override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) { + + } + + override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) { + + } + + override fun afterTextChanged(p0: Editable?) { + binding.tvSave.isEnabled = + !(binding.edSwiftCode.text.toString().isEmpty() || binding.edBankName.text.toString() + .isEmpty() + || binding.edAccountNumber.text.toString() + .isEmpty() || binding.edAccountName.text.toString().isEmpty() + || binding.edAddress.text.toString().isEmpty() || binding.edCity.text.toString() + .isEmpty() + || binding.edProvince.text.toString() + .isEmpty() || binding.edPostCode.text.toString() + .isEmpty()) + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/yizhuan/erban/earn/activity/EarnRecordActivity.kt b/app/src/main/java/com/yizhuan/erban/earn/activity/EarnRecordActivity.kt index 4357e1b68..cd187c52b 100644 --- a/app/src/main/java/com/yizhuan/erban/earn/activity/EarnRecordActivity.kt +++ b/app/src/main/java/com/yizhuan/erban/earn/activity/EarnRecordActivity.kt @@ -64,6 +64,10 @@ class EarnRecordActivity : BaseViewBindingActivity(), } } + } + + override fun onResume() { + super.onResume() earnRecordModel.getEarnRecordInfo() } @@ -81,16 +85,13 @@ class EarnRecordActivity : BaseViewBindingActivity(), ChargeActivity.start(this) } R.id.tvDiamondDetail -> {//钻石明细 - CommonWebViewActivity.start( - context, - UriProvider.JAVA_WEB_URL + "peko/modules/myincome/index.html#/DiamondLog" - ) + CommonWebViewActivity.start(context, UriProvider.getDiamondDetail()) } R.id.tvGoldDetail -> {//金币明细 - CommonWebViewActivity.start( - context, - UriProvider.JAVA_WEB_URL + "peko/modules/myincome/index.html#/DiamondLog" - ) +// CommonWebViewActivity.start( +// context, +// UriProvider.JAVA_WEB_URL + "peko/modules/myincome/index.html#/DiamondLog" +// ) } R.id.tvConvertDiamond -> {//兑换钻石 earnRecordModel.getGoldToDiamondInfo() diff --git a/app/src/main/java/com/yizhuan/erban/earn/activity/EarnWithdrawActivity.kt b/app/src/main/java/com/yizhuan/erban/earn/activity/EarnWithdrawActivity.kt index bbb7d9874..dde5a8a5c 100644 --- a/app/src/main/java/com/yizhuan/erban/earn/activity/EarnWithdrawActivity.kt +++ b/app/src/main/java/com/yizhuan/erban/earn/activity/EarnWithdrawActivity.kt @@ -14,13 +14,12 @@ import com.yizhuan.erban.databinding.ActivityEarnWithdrawBinding import com.yizhuan.erban.earn.EarnRecordViewModel import com.yizhuan.erban.pay.password.GiveGoldPassWordFragment import com.yizhuan.erban.ui.setting.ModifyPwdActivity +import com.yizhuan.erban.ui.webview.CommonWebViewActivity import com.yizhuan.erban.ui.widget.dialog.CommonTipDialog -import com.yizhuan.erban.ui.widget.password.PassWordFragment +import com.yizhuan.xchat_android_core.UriProvider import com.yizhuan.xchat_android_core.earn.bean.ConfigWithdrawInfo -import com.yizhuan.xchat_android_core.pay.PayModel import com.yizhuan.xchat_android_core.user.UserModel import com.yizhuan.xchat_android_library.utils.ResUtil -import kotlinx.android.synthetic.main.activity_give_gold_to_user.* /** * author: wushaocheng @@ -95,6 +94,14 @@ class EarnWithdrawActivity : BaseViewBindingActivity + BindWithdrawMsgActivity.start(this, it.account) + } + + binding.tvWithdrawRecord.setOnClickListener { + CommonWebViewActivity.start(context, UriProvider.getWithdrawRecord()) + } + binding.tvWithdraw.setOnClickListener { view -> UserModel.get().cacheLoginUserInfo?.let { userInfo -> if (!userInfo.isBindPaymentPwd) { diff --git a/app/src/main/java/com/yizhuan/erban/pay/GiveGoldModel.kt b/app/src/main/java/com/yizhuan/erban/pay/GiveGoldModel.kt index dc0fe10e5..e0b9cd2da 100644 --- a/app/src/main/java/com/yizhuan/erban/pay/GiveGoldModel.kt +++ b/app/src/main/java/com/yizhuan/erban/pay/GiveGoldModel.kt @@ -39,10 +39,6 @@ class GiveGoldModel : BaseViewModel() { fun getSearchUserInfo(erbanNo: Long) { safeLaunch( true, - onError = { - it.message.toast() - _searchUserLiveData.value = null - }, block = { _searchUserLiveData.value = HomeModel.getSearchUser(erbanNo) } @@ -52,10 +48,6 @@ class GiveGoldModel : BaseViewModel() { fun giveGift(toUid: Long, giftId: Int, giftNum: Int) { safeLaunch( true, - onError = { - it.message.toast() - _giveGiftLiveData.value = null - }, block = { _giveGiftLiveData.value = HomeModel.giveGift(toUid, giftId, giftNum) } diff --git a/app/src/main/res/drawable/shape_f0f5f6_5dp_round.xml b/app/src/main/res/drawable/shape_f0f5f6_5dp_round.xml new file mode 100644 index 000000000..9454b4db4 --- /dev/null +++ b/app/src/main/res/drawable/shape_f0f5f6_5dp_round.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_bind_withdraw_msg.xml b/app/src/main/res/layout/activity_bind_withdraw_msg.xml new file mode 100644 index 000000000..0ec278e71 --- /dev/null +++ b/app/src/main/res/layout/activity_bind_withdraw_msg.xml @@ -0,0 +1,322 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_earn_withdraw.xml b/app/src/main/res/layout/activity_earn_withdraw.xml index 6bbec4c53..0014b1f67 100644 --- a/app/src/main/res/layout/activity_earn_withdraw.xml +++ b/app/src/main/res/layout/activity_earn_withdraw.xml @@ -109,6 +109,7 @@ app:layout_constraintTop_toTopOf="parent" /> 剩餘周提現次數:%d次 立即提現 選擇游戲 - 兑换成功 + 兌換成功 swift code/BIC:%s bank name:%s 提現成功 + 綁定提現信息 \ No newline at end of file diff --git a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/UriProvider.java b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/UriProvider.java index a026016d4..196b8cb76 100644 --- a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/UriProvider.java +++ b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/UriProvider.java @@ -512,4 +512,18 @@ public class UriProvider { return JAVA_WEB_URL.concat("/peko/modules/pay/index.html?channelType=" + type + "&deviceId=" + deviceId); } + /** + * 钻石明细 + */ + public static String getDiamondDetail() { + return JAVA_WEB_URL.concat("peko/modules/myincome/index.html#/DiamondLog"); + } + + /** + * 提现记录 + */ + public static String getWithdrawRecord() { + return JAVA_WEB_URL.concat("peko/modules/myincome/index.html#/GoldLog"); + } + } diff --git a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/earn/bean/GoldToDiamondInfo.kt b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/earn/bean/GoldToDiamondInfo.kt index 593b75e29..1bff8bf9f 100644 --- a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/earn/bean/GoldToDiamondInfo.kt +++ b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/earn/bean/GoldToDiamondInfo.kt @@ -10,4 +10,6 @@ data class GoldToDiamondInfo( val minDiamonds: Long, val maxGolds: Long, val minGolds: Long, + val hasPaymentPwd: Boolean, + val isClan: Boolean ) : Serializable \ No newline at end of file diff --git a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/earn/model/EarnModel.kt b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/earn/model/EarnModel.kt index 604b33475..626d90783 100644 --- a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/earn/model/EarnModel.kt +++ b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/earn/model/EarnModel.kt @@ -45,6 +45,31 @@ object EarnModel : BaseModel() { api.exchange(goldNum, payPwd) } + suspend fun bound( + uid: Long, + swift: String, + bankName: String, + accountNumber: String, + accountName: String, + address: String, + city: String, + province: String, + postCode: String + ): String? = + launchRequest { + api.bound( + uid, + swift, + bankName, + accountNumber, + accountName, + address, + city, + province, + postCode + ) + } + private interface Api { /** @@ -84,6 +109,22 @@ object EarnModel : BaseModel() { @Query("payPwd") payPwd: String ): ServiceResult + /** + * @return + */ + @POST("/withdraw/bound") + suspend fun bound( + @Query("uid") uid: Long, + @Query("swift") swift: String, + @Query("bankName") bankName: String, + @Query("accountNumber") accountNumber: String, + @Query("accountName") accountName: String, + @Query("address") address: String, + @Query("city") city: String, + @Query("province") province: String, + @Query("postCode") postCode: String + ): ServiceResult + } } \ No newline at end of file