lmw
2024-11-12 610a2aedd505bb4d8fb29f0bc6741ced74218bb0
app/src/main/java/com/sinata/xqmuse/ui/home/BuyVoiceActivity.kt
@@ -1,10 +1,12 @@
package com.sinata.xqmuse.ui.home
import android.view.View
import androidx.core.os.bundleOf
import cn.sinata.xldutils.utils.SpanBuilder
import cn.sinata.xldutils.utils.showAllowingStateLoss
import com.sinata.xqmuse.R
import com.sinata.xqmuse.dialog.BuyRuleDialog
import com.sinata.xqmuse.dialog.TipDialog
import com.sinata.xqmuse.network.HttpManager
import com.sinata.xqmuse.network.entity.ConfirmOrder
import com.sinata.xqmuse.network.request
@@ -40,15 +42,18 @@
        tv_action.setOnClickListener {
            if (cb_rule.isChecked){
                if (rb_ali.isChecked){
                    pay(2)
                }else if (rb_wx.isChecked){
                    pay(1)
                } else if (rb_balance.isChecked&&((data?.balance?:"0.0").toDouble()>(data?.generalPrice?:"0.0").toDouble())){
                    payBalance()
                }else{
                }
                if (cb_rule.isChecked){
                    if (rb_balance.isChecked&&((data?.balance?:"0.0").toDouble()>=(data?.generalPrice?:"0.0").toDouble())){//余额勾选,并且可用余额大于课程价格,直接扣余额
                        payBalance()
                    }else if (rb_ali.isChecked){
                        pay(2)
                    }else if (rb_wx.isChecked){
                        pay(1)
                    }else{
                        toast("请选择支付方式")
                    }
                }else
                    toast("请阅读并同意《购买协议》")
            }else
                toast("请阅读并同意《购买协议》")
        }
@@ -57,9 +62,8 @@
    private fun pay(way:Int) {
        tv_action.isEnabled = false
        showDialog()
        HttpManager.placeOrder(1,way,2,null,null,data?.id?:"",null).request(this,success = {_,data->
        HttpManager.placeOrder(1,way,if (rb_balance.isChecked) 1 else 2,null,null,data?.id?:"",null).request(this,success = {_,data->
            onPaySuccess()
        }){_,_->
            tv_action.isEnabled = true
        }
@@ -76,7 +80,38 @@
    }
    override fun initView() {
        getData()
        val parcelableExtra = intent.getParcelableExtra<ConfirmOrder>("data")
        if (parcelableExtra == null)
            getData()
        else{
            data = parcelableExtra
            data?.apply {
                generalPrice = amount
                if (!orderId.isNullOrEmpty()){
                    titleBar.addRightButton("取消订单",onClickListener = View.OnClickListener {
                        TipDialog.show(supportFragmentManager,"是否确认取消该订单?",object : TipDialog.OnClickCallback{
                            override fun onOk() {
                                HttpManager.cancel(orderId).request(this@BuyVoiceActivity){_,_->
                                    toast("取消成功")
                                    setResult(RESULT_OK)
                                    finish()
                                }
                            }
                            override fun onCancel() {
                            }
                        })
                    })
                }
                iv_cover.setImageURI(coverUrl.split(",").firstOrNull())
                tv_title.text = title
                tv_price.text = SpanBuilder("¥$generalPrice").size(0,1,11).build()
                tv_money.text = SpanBuilder("¥$generalPrice").size(0,1,11).build()
                tv_total.text = generalPrice
                val s = "余额抵扣 当前可用 ¥$balance"
                rb_balance.text = SpanBuilder(s).size(4,s.length,11).color(this@BuyVoiceActivity,4,s.length,R.color.textColor99).build()
            }
        }
    }
    private fun getData() {