Pu Zhibing
2025-06-25 844fc3910b72130f79480714bcba98106d8f9177
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
package com.ziang.driver.ui.mine
 
import android.text.Editable
import android.text.TextWatcher
import androidx.recyclerview.widget.GridLayoutManager
import cn.sinata.xldutils.utils.SpanBuilder
import cn.sinata.xldutils.utils.clickDelay
import cn.sinata.xldutils.utils.getFormatTwo
import com.ziang.driver.R
import com.ziang.driver.base.MyBaseActivity
import com.ziang.driver.bean.RechargeMoneyBean
import com.ziang.driver.bean.UserBean
import com.ziang.driver.bean.WxpayBean
import com.ziang.driver.netUtls.Api
import com.ziang.driver.netUtls.callNet
import com.ziang.driver.netUtls.getMapByAny
import com.ziang.driver.ui.DialogUtil
import com.ziang.driver.ui.adapter.MoneyAdapter
import com.ziang.driver.utils.Cache.CacheKey
import com.ziang.driver.wxapi.WXPayEntryActivity
import kotlinx.android.synthetic.main.activity_recharge.*
import kotlinx.android.synthetic.main.dialog_wx_pay.view.*
import java.lang.Exception
 
class RechargeActivity : MyBaseActivity() {
    override fun setContentView() {
        setContentView(R.layout.activity_recharge)
    }
 
    private val moneyAdapter = MoneyAdapter()
 
    override fun initView() {
        setTitleText("钱包")
        rv_money.layoutManager = GridLayoutManager(this,5)
        rv_money.adapter = moneyAdapter
        getMoney()
    }
 
    override fun setOnclick() {
        moneyAdapter.setOnItemClickListener { view, position ->
            moneyAdapter.checked = moneyAdapter.data[position]
            moneyAdapter.notifyDataSetChanged()
        }
 
        et_money.addTextChangedListener(object :TextWatcher{
            override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
 
            }
 
            override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
            }
 
            override fun afterTextChanged(s: Editable?) {
                moneyAdapter.checked = 0.0
                moneyAdapter.notifyDataSetChanged()
            }
        })
 
        tv_recharge.clickDelay {
            var money = 0.0
            if (moneyAdapter.checked!=0.0)
                money = moneyAdapter.checked
            else{
                val etMoney = et_money.text.toString()
                if (etMoney.isNullOrEmpty()){
                    showToast("请选择或填写充值金额")
                }else{
                    try {
                        money = etMoney.toDouble()
                    }catch (e:Exception){
                        showToast("请选择或填写充值金额")
                    }
                }
            }
            if (money == 0.0)
                showToast("请选择或填写充值金额")
            else{
                val dialog = DialogUtil.getDialog(this, R.layout.dialog_wx_pay)
                val view = DialogUtil.getView(dialog)
                view.tv_cancel.setOnClickListener {
                    dialog.dismiss()
                }
                view.tv_wx.setOnClickListener {
                    dialog.dismiss()
                    val mapByAny = getMapByAny()
                    mapByAny["money"] = money
                    callNet(Api.recharge,mapByAny){
                        val bean = gson.fromJson(it, WxpayBean::class.java).data
                        WXPayEntryActivity.to(this,1,bean)
                    }
                }
            }
        }
    }
 
    private fun getMoney(){
        callNet(Api.getRechargeMoney, getMapByAny()){
            val fromJson = gson.fromJson(it, RechargeMoneyBean::class.java)
            val map = fromJson.data.content.split(",").map { it.toDouble() }
            moneyAdapter.data.addAll(map)
            moneyAdapter.notifyDataSetChanged()
        }
    }
 
    override fun onResume() {
        super.onResume()
        callBalance()
    }
 
    private fun callBalance() {
        var map = getMapByAny()
        callNet(Api.queryInfo,map){
            var user = gson.fromJson<UserBean>(it, UserBean::class.java)
            CacheKey.saveUserInfo(user.data)
            val s = "¥" + getFormatTwo(user.data.balance )
            tv_balance.text = SpanBuilder.content(s).sizeSpan(0,1,12).build()
        }
    }
 
}