lmw
2024-10-25 314b67e56f24f7bce040ae2b5d57c7eac7b197a9
app/src/main/java/com/sinata/xqmuse/ui/mine/BindCardActivity.kt
@@ -1,33 +1,39 @@
package com.sinata.xqmuse.ui.mine
import android.app.Activity
import android.content.Intent
import cn.sinata.xldutils.activity.SelectPhotoDialog
import android.os.CountDownTimer
import cn.sinata.xldutils.utils.isValidIdCard
import cn.sinata.xldutils.utils.isValidPhone
import cn.sinata.xldutils.utils.myToast
import com.sinata.xqmuse.R
import com.sinata.xqmuse.network.HttpManager
import com.sinata.xqmuse.network.request
import com.sinata.xqmuse.ui.TransparentStatusBarActivity
import com.sinata.xqmuse.utils.extention.uploadWithCompress
import com.sinata.xqmuse.utils.interfaces.StringCallback
import kotlinx.android.synthetic.main.activity_bind_card.*
import org.jetbrains.anko.startActivityForResult
class BindCardActivity : TransparentStatusBarActivity() {
    override fun setContentView() = R.layout.activity_bind_card
    private var cardImg = ""
    private lateinit var timer: CountDownTimer
    override fun initClick() {
        iv_photo.setOnClickListener {
            startActivityForResult<SelectPhotoDialog>(1)
        tv_code.setOnClickListener {
            val phone = et_phone.text.toString()
            if (!phone.isValidPhone())
                myToast("请输入正确的手机号")
            else {
                tv_code.isEnabled = false
                HttpManager.getCode(phone, 6).request(this@BindCardActivity, success = { _, _ ->
                    timer.start()
                }) { _, _ ->
                    tv_code.isEnabled = true
                }
            }
        }
        tv_action.setOnClickListener {
            val name = et_name.text.toString()
            if (name.isNullOrEmpty()){
                myToast("请输入开户名")
            val bank = et_bank.text.toString()
            if (bank.isNullOrEmpty()){
                myToast("请输入开户行")
                return@setOnClickListener
            }
            val num = et_num.text.toString()
@@ -35,9 +41,14 @@
                myToast("请输入卡号")
                return@setOnClickListener
            }
            val bank = et_bank.text.toString()
            if (bank.isNullOrEmpty()){
                myToast("请输入开户行")
            val name = et_name.text.toString()
            if (name.isNullOrEmpty()){
                myToast("请输入持卡人姓名")
                return@setOnClickListener
            }
            val idCard = et_id_card.text.toString()
            if (!idCard.isValidIdCard()){
                myToast("请输入正确的身份证号")
                return@setOnClickListener
            }
            val phone = et_phone.text.toString()
@@ -45,13 +56,15 @@
                myToast("请输入正确的手机号")
                return@setOnClickListener
            }
            if (cardImg.isEmpty()){
                myToast("请上传银行卡正面照")
            val code = et_code.text.toString()
            if (code.length!=6){
                myToast("请输入正确的验证码")
                return@setOnClickListener
            }
            tv_action.isEnabled = false
            HttpManager.updateBankCard(name,phone,num,bank,cardImg).request(this,success = {_,_->
                myToast("绑定成功")
            HttpManager.addBank(bank, name, phone, idCard, num).request(this,success = {_,_->
                setResult(RESULT_OK)
                myToast("添加成功")
                finish()
            }){_,_->
                tv_action.isEnabled = true
@@ -60,31 +73,15 @@
    }
    override fun initView() {
        getData()
    }
    private fun getData() {
        HttpManager.getBankInfo().request(this){_,data->
            if (!data?.bankCard.isNullOrEmpty()){
                et_name.setText(data!!.accountName)
                et_num.setText(data.bankCard)
                et_bank.setText(data.bankName)
                et_phone.setText(data.bankPhone)
                cardImg = data.bankCardImg
                iv_photo.setImageURI(cardImg)
        timer = object : CountDownTimer(60000, 1000) {
            override fun onFinish() {
                tv_code.isEnabled = true
                tv_code.text = "重新获取"
            }
        }
    }
    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if (resultCode == Activity.RESULT_OK&&data!=null){
            data.getStringExtra("path")!!.uploadWithCompress(this, object : StringCallback {
                override fun onResult(rst: String) {
                    cardImg = rst
                    iv_photo.setImageURI(rst)
                }
            })
            override fun onTick(millisUntilFinished: Long) {
                tv_code.text = "${millisUntilFinished / 1000}s123"
            }
        }
    }
}