From 718f31c92e2029d05260810435a2c70cef6e6ce5 Mon Sep 17 00:00:00 2001
From: lmw <125975490@qq.com>
Date: 星期四, 24 四月 2025 10:45:55 +0800
Subject: [PATCH] save

---
 app/src/main/java/com/sinata/xqmuse/ui/mine/RechargeActivity.kt |   91 ++++++++++++++++++++++++++++++++-------------
 1 files changed, 65 insertions(+), 26 deletions(-)

diff --git a/app/src/main/java/com/sinata/xqmuse/ui/mine/RechargeActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/mine/RechargeActivity.kt
index b639f61..074deff 100644
--- a/app/src/main/java/com/sinata/xqmuse/ui/mine/RechargeActivity.kt
+++ b/app/src/main/java/com/sinata/xqmuse/ui/mine/RechargeActivity.kt
@@ -2,52 +2,56 @@
 
 import android.app.Activity
 import android.content.Intent
-import androidx.recyclerview.widget.GridLayoutManager
-import cn.sinata.xldutils.utils.LengthFilter
-import cn.sinata.xldutils.utils.SpanBuilder
+import android.text.Editable
+import android.text.TextWatcher
 import cn.sinata.xldutils.utils.myToast
 import com.sinata.xqmuse.R
 import com.sinata.xqmuse.dialog.PayDialog
 import com.sinata.xqmuse.network.HttpManager
-import com.sinata.xqmuse.network.entity.RechargeItem
 import com.sinata.xqmuse.network.request
-import com.sinata.xqmuse.ui.H5Activity
 import com.sinata.xqmuse.ui.TransparentStatusBarActivity
-import com.sinata.xqmuse.ui.home.PayResultActivity
-import com.sinata.xqmuse.ui.mine.adapter.RechargeAdapter
 import com.sinata.xqmuse.utils.Const
 import com.sinata.xqmuse.utils.NumberInputFilter
 import com.sinata.xqmuse.utils.event.EmptyEvent
-import com.sinata.xqmuse.utils.extention.clickDelay
 import com.sinata.xqmuse.utils.interfaces.StringCallback
 import com.sinata.xqmuse.utils.pay.PayListener
 import com.sinata.xqmuse.utils.pay.PayUtil
 import kotlinx.android.synthetic.main.activity_recharge.*
 import org.greenrobot.eventbus.EventBus
+import org.jetbrains.anko.browse
 import org.jetbrains.anko.sdk27.coroutines.onClick
 import org.jetbrains.anko.startActivity
-import org.jetbrains.anko.startActivityForResult
+import org.jetbrains.anko.toast
 import java.lang.Exception
 
 class RechargeActivity : TransparentStatusBarActivity(),PayListener {
     override fun setContentView() = R.layout.activity_recharge
 
+    private var way = 2
+    private var money = 0.0
+    private var orderId = ""
+
     override fun initClick() {
+        tv_way.setOnClickListener {
+            PayDialog.show(supportFragmentManager,object : StringCallback {
+                override fun onResult(rst: String) {
+                    way = rst.toInt()
+                    tv_way.text = if (rst == "1") "微信" else "支付宝"
+                }
+            },0.0,false)
+        }
+
         tv_action.onClick {
             val moneyS = et_money.text.toString()
             if (moneyS.isEmpty())
                 myToast("请填写充值金额")
             else{
                 try {
-                    val money = moneyS.toDouble()
+                    money = moneyS.toDouble()
                     if (money == 0.0)
                         myToast("充值金额不能为0")
                     else{
-                        PayDialog.show(supportFragmentManager,object : StringCallback {
-                            override fun onResult(rst: String) {
-                                pay(rst.toInt(),money)
-                            }
-                        },money,false)
+                        pay(way,money)
                     }
                 }catch (e:Exception){
                     myToast("充值金额有误")
@@ -59,26 +63,57 @@
     override fun initView() {
         PayUtil.addPayListener(this)
         et_money.filters = arrayOf(NumberInputFilter(Int.MAX_VALUE.toDouble()))
+        tv_action.alpha = 0.5f
+        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?) {
+                tv_action.alpha = if (s.isNullOrEmpty()) 0.5f else 1f
+            }
+        })
     }
 
     private fun pay(payType:Int,money:Double){
-        HttpManager.payCourse(null,payType,3,null,money).request(this){ _, data->
-            HttpManager.pay(data?.id?:"",payType,3).request(this,false,success = {_,data->
-                if (payType == 2){
-                    PayUtil.aliPay(this,data?.orderInfo?:"")
-                }else{
-                    PayUtil.initWeChatPay(this,Const.WX_APP_ID)
-                    PayUtil.weChatPay(data!!)
+        toast("%s充值%.2f".format(if (payType == 1) "微信" else "支付宝",money))
+        HttpManager.placeOrder(4,payType,2,money,null,null,null )
+            .request(this){_,data->
+                orderId = data?.orderId?:""
+                if (payType == 1)
+                    data?.jumpToWx(this)
+                else
+                    browse(data?.qrcodeUrl?:"")
+            }
+    }
+
+    private fun checkPayStatus(){
+        if (!orderId.isNullOrEmpty()){
+            if (!orderId.isNullOrEmpty()){
+                HttpManager.queryPayment(orderId).request(this){_,data->
+                    when(data){
+                        "pending"->{
+                            toast("未查询到支付结果,如已付款请忽略")
+                        }
+                        "succeeded"->{
+                            toast("支付成功")
+                            onPaySuccess()
+                        }
+                        "failed"->{
+                            toast("支付失败")
+                        }
+                    }
                 }
-            }){_,msg->
-                startActivityForResult<PayResultActivity>(1,"type" to PayResultActivity.TYPE_RECHARGE_FAILED,"msg" to msg)
+                orderId = ""
             }
         }
     }
 
     override fun onPaySuccess() {
         EventBus.getDefault().post(EmptyEvent(Const.EventCode.REFRESH_WALLET)) //充值成功,刷新钱包
-        startActivity<PayResultActivity>("type" to PayResultActivity.TYPE_RECHARGE_SUC)
+        startActivity<RechargeSucActivity>("money" to money,"way" to way)
         setResult(Activity.RESULT_OK)
         finish()
     }
@@ -87,7 +122,11 @@
     }
 
     override fun onPayError(msg: String) {
-        startActivityForResult<PayResultActivity>(1,"type" to PayResultActivity.TYPE_RECHARGE_FAILED)
+    }
+
+    override fun onResume() {
+        super.onResume()
+        checkPayStatus()
     }
 
     override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {

--
Gitblit v1.7.1