From 03972ad1d3ce6ffe0be0395c0a4d5dcb4474031f Mon Sep 17 00:00:00 2001
From: lmw <125975490@qq.com>
Date: 星期五, 16 六月 2023 15:54:16 +0800
Subject: [PATCH] 修改公费支付方式

---
 app/src/main/res/layout/dialog_pay.xml                             |    7 ++-
 app/src/main/java/com/kuanzhai/user/network/entity/OrderData.kt    |    1 
 app/src/main/java/com/kuanzhai/user/dialog/PayDialog.kt            |   14 ++++++-
 app/src/main/java/com/kuanzhai/user/ui/trip/OrderDetailActivity.kt |   55 +++++++++++----------------
 4 files changed, 40 insertions(+), 37 deletions(-)

diff --git a/app/src/main/java/com/kuanzhai/user/dialog/PayDialog.kt b/app/src/main/java/com/kuanzhai/user/dialog/PayDialog.kt
index f800aae..baa140a 100644
--- a/app/src/main/java/com/kuanzhai/user/dialog/PayDialog.kt
+++ b/app/src/main/java/com/kuanzhai/user/dialog/PayDialog.kt
@@ -46,6 +46,9 @@
     private val isCancel by lazy {
         arguments?.getBoolean("isCancel",false)?:false
     }
+    private val isCompany by lazy {
+        arguments?.getBoolean("isCompany",false)?:false
+    }
     private var coupon = ""
 
     private val orderId by lazy {
@@ -67,6 +70,13 @@
 //        tv_origin_money.text = String.format(if (isCancel) "%.2f元" else "¥%.2f",money)
         tv_origin_money.text = String.format("¥%.2f",money)
         tv_money.text = String.format(if (isCancel) "%.2f元" else "¥%.2f",money)
+        if (isCompany){//企业公费
+            rb_ali.gone()
+            line1.gone()
+            rb_wx.gone()
+            line2.gone()
+            rb_balance.text = "企业授信额度"
+        }
         group_coupon.visibility = if (isCancel||isLogistics) { //取消支付没有优惠券,补差价没有优惠券
             View.GONE
         } else {
@@ -83,7 +93,7 @@
             }
             tv_action.text = "立即支付%.2f元".format(payMoney)
 
-            rb_balance.text = String.format("充值余额(%.2f可用)",balance)
+            rb_balance.text = String.format("${if (isCompany) "企业授信额度" else "充值余额"}(%.2f可用)",balance)
             View.VISIBLE
         }
 //        if (isLogistics){ //物流订单没有优惠券
@@ -93,7 +103,7 @@
             rb_offline.gone()
         tv_action.setOnClickListener {
             if (payWay == 3&&!isCancel&&balance<payMoney)
-                myToast("余额不足,请选择其他支付方式")
+                myToast(if (isCompany) "额度不足,请申请企业额度" else "余额不足,请选择其他支付方式")
             else
                 callback?.onOk(payWay,if (coupon.isEmpty()) 0 else coupon.toInt(),discountType)
         }
diff --git a/app/src/main/java/com/kuanzhai/user/network/entity/OrderData.kt b/app/src/main/java/com/kuanzhai/user/network/entity/OrderData.kt
index 6567198..594d114 100644
--- a/app/src/main/java/com/kuanzhai/user/network/entity/OrderData.kt
+++ b/app/src/main/java/com/kuanzhai/user/network/entity/OrderData.kt
@@ -79,6 +79,7 @@
     val peopleNumber: Int = 0,
     val rideType: Int = 0,  //乘车类型(1=独享,2=一口价,3=拼车)
     val spellSuccess: Int = 0,  //拼车'0未成功,1成功'
+    val payWay: Int = 0,  //1自费 2企业支付
     val seatNumber: String = "",
     val fareTypeNote1: String = "",
     val fareTypeNote2: String = "",
diff --git a/app/src/main/java/com/kuanzhai/user/ui/trip/OrderDetailActivity.kt b/app/src/main/java/com/kuanzhai/user/ui/trip/OrderDetailActivity.kt
index 9622feb..7ffaf63 100644
--- a/app/src/main/java/com/kuanzhai/user/ui/trip/OrderDetailActivity.kt
+++ b/app/src/main/java/com/kuanzhai/user/ui/trip/OrderDetailActivity.kt
@@ -66,7 +66,7 @@
             callPhone(order?.driverPhone)
         }
         tv_action.setOnClickListener {
-            if (order?.state == 7||order?.state == 12){
+            if (order?.state == 7||order?.state == 12&&mPayDialog.arguments!=null){
                 mPayDialog.show(supportFragmentManager,"pay")
             }else if (order?.state == 8){
                 HttpManager.orderEvaluate(id,score,type,checkList.joinToString (","){ it }).request(this){_,_->
@@ -377,7 +377,9 @@
     private fun queryBalance(){
         HttpManager.queryBalance(id,type).request(this){_,data->
             data?.let {
-                mPayDialog.arguments = bundleOf("isCancel" to (order?.state == 12),"balance" to it.optDouble("balance"),
+                mPayDialog.arguments = bundleOf("isCancel" to (order?.state == 12),
+                    "balance" to if (order?.payWay == 2) it.optDouble("companyLimit") else it.optDouble("balance"),
+                    "isCompany" to (order?.payWay == 2),
                     "discount" to it.optDouble("discountAmount"), "coupon" to it.optString("objectId"),
                     "discountType" to it.optInt("type"), "money" to payMoney,"id" to id,"type" to type)
             }
@@ -415,37 +417,24 @@
      * @param way 1=微信,2=支付宝,3=余额
      */
     private fun pay(way:Int,couponId:Int,couponType: Int){
-//        if (way == 1){ //微信支付,跳转微信小程序
-//            val api = WXAPIFactory.createWXAPI(this, Const.WX_APP_ID)
-//            val req = WXLaunchMiniProgram.Req()
-//            req.userName = "gh_a6c22560b6be" // 填小程序原始id
-//            val content = if (order!!.state == 12)"{\"cancleId\":${order!!.cancelId}}"
-//                else if (couponId!=0) "{\"couponId\":${couponId}}"
-//                else ""
-//            req.path = "/pages/appPay/appPay?orderId=${id}&orderType=${type}&type=${if (order!!.state == 12) 2 else 1}" +
-//                    "&userType=1&uid=${SPUtils.instance().getInt(Const.User.USER_ID)}&content=${content}"
-//            req.miniprogramType = WXLaunchMiniProgram.Req.MINIPTOGRAM_TYPE_RELEASE// 可选打开 开发版,体验版和正式版
-//            isGotoWx = true
-//            api.sendReq(req)
-//        }else{
-            if (order!!.state == 12)
-                HttpManager.cancleOrderTaxi(id,way,order!!.cancelId,type).request(this){_,data->
-                    if (way == 3)
-                        onPaySuccess()
-                    else if (way == 2)
-                        PayUtil.aliPay(this,data!!.orderInfo)
-                    else
-                        PayUtil.weChatPay(data!!)
-                } else
-                    HttpManager.payTaxiOrder(id,way,type,if (couponId == 0) null else couponId,if (couponType == 0) null else couponType).request(this){_,data->
-                        if (way == 3)
-                            onPaySuccess()
-                        else if (way == 2)
-                            PayUtil.aliPay(this,data!!.orderInfo)
-                        else
-                            PayUtil.weChatPay(data!!)
-                    }
-//        }
+        if (order!!.state == 12)
+            HttpManager.cancleOrderTaxi(id,if (order?.payWay == 2) 4 else way,order!!.cancelId,type).request(this){_,data->
+                if (way == 3)
+                    onPaySuccess()
+                else if (way == 2)
+                    PayUtil.aliPay(this,data!!.orderInfo)
+                else
+                    PayUtil.weChatPay(data!!)
+            }
+        else
+            HttpManager.payTaxiOrder(id,if (order?.payWay == 2) 4 else way,type,if (couponId == 0) null else couponId,if (couponType == 0) null else couponType).request(this){_,data->
+                if (way == 3)
+                    onPaySuccess()
+                else if (way == 2)
+                    PayUtil.aliPay(this,data!!.orderInfo)
+                else
+                    PayUtil.weChatPay(data!!)
+            }
     }
 
     /**
diff --git a/app/src/main/res/layout/dialog_pay.xml b/app/src/main/res/layout/dialog_pay.xml
index 2438c03..a71969e 100644
--- a/app/src/main/res/layout/dialog_pay.xml
+++ b/app/src/main/res/layout/dialog_pay.xml
@@ -105,7 +105,9 @@
             android:drawableEnd="@drawable/selector_radio"
             android:text="支付宝" />
 
-        <View style="@style/style_form_divider_line" />
+        <View
+            android:id="@+id/line1"
+            style="@style/style_form_divider_line" />
 
         <RadioButton
             android:id="@+id/rb_wx"
@@ -115,7 +117,8 @@
             android:drawableEnd="@drawable/selector_radio"
             android:text="微信支付" />
 
-        <View style="@style/style_form_divider_line" />
+        <View style="@style/style_form_divider_line"
+            android:id="@+id/line2" />
 
         <RadioButton
             android:id="@+id/rb_balance"

--
Gitblit v1.7.1