ソースを参照

1.添加套餐列表支付生成二维码功能

王鹏鹏 2 年 前
コミット
6aa2731516

+ 1 - 0
.idea/misc.xml

@@ -44,6 +44,7 @@
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/drawable/bg_home_task.xml" value="0.2165" />
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/drawable/bg_item_report.xml" value="0.2265" />
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/drawable/bg_item_task.xml" value="0.2165" />
+        <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/drawable/bg_pay_success.xml" value="0.219" />
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/drawable/bg_purchase_services.xml" value="0.219" />
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/drawable/bg_purchase_services_button.xml" value="0.219" />
         <entry key="..\:/workspace/hcp-pad/workbenches/src/main/res/drawable/bg_record.xml" value="0.2265" />

+ 2 - 5
baselib/src/main/java/com/yingyangfly/baselib/utils/RxBusCodes.kt

@@ -14,11 +14,8 @@ object RxBusCodes {
     //获取训练内容
     const val GetTrainContent = 9002
 
-    //微信支付
-    const val WECHATPAY = "wechatpay"
-
-    //支付宝支付
-    const val ALIPAYPAY = "alipaypay"
+    //支付套餐包
+    const val ORDERPAY = 9003
 
 
 }

+ 2 - 1
config.gradle

@@ -115,7 +115,8 @@ ext {
             "leakcanary"             : 'com.squareup.leakcanary:leakcanary-android:2.10',
             "LiteAVSDK_Player"       : 'com.tencent.liteav:LiteAVSDK_Player:latest.release',
             "imsdk"                  : 'com.tencent.imsdk:imsdk:5.1.66',
-            "rxbus"                  : 'lib.gorden.rxbus2:rxbus:2.0.1'
+            "rxbus"                  : 'lib.gorden.rxbus2:rxbus:2.0.1',
+            "Zxing"                  : 'com.github.open-android:Zxing:v1.0.3'
 
     ]
 }

+ 1 - 0
workbenches/build.gradle

@@ -22,5 +22,6 @@ dependencies {
     implementation(rootProject.ext.androidx.appcompat)
     implementation(rootProject.ext.androidx.material)
     implementation(rootProject.ext.androidx.constraintlayout)
+    implementation(rootProject.ext.dependencies.Zxing)
 
 }

+ 42 - 7
workbenches/src/main/java/com/yingyang/workbenches/dialog/PurchaseServicesDialog.kt

@@ -1,19 +1,29 @@
 package com.yingyang.workbenches.dialog
 
 import android.annotation.SuppressLint
+import android.graphics.Bitmap
+import android.os.Binder
 import android.os.Bundle
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
+import android.widget.Button
+import android.widget.ImageView
+import android.widget.TextView
 import androidx.appcompat.widget.AppCompatImageView
 import androidx.appcompat.widget.AppCompatTextView
 import androidx.constraintlayout.widget.ConstraintLayout
 import androidx.fragment.app.DialogFragment
+import com.bumptech.glide.Glide
 import com.yingyang.workbenches.R
 import com.yingyang.workbenches.entity.GetPayImageEvent
 import com.yingyangfly.baselib.ext.setOnSingleClickListener
+import com.yingyangfly.baselib.ext.show
+import com.yingyangfly.baselib.utils.RxBusCodes
 import com.yingyangfly.baselib.utils.ViewTool
 import gorden.rxbus2.RxBus
+import gorden.rxbus2.Subscribe
+import gorden.rxbus2.ThreadMode
 
 /**
  * 购买服务弹窗l
@@ -24,6 +34,13 @@ class PurchaseServicesDialog : DialogFragment() {
     private var payMoney = ""
     private var packageName = ""
 
+    private var tvPackageMoney: TextView? = null
+    private var tvPay: TextView? = null
+    private var weChatLayout: ConstraintLayout? = null
+    private var alipayLayout: ConstraintLayout? = null
+    private var payImage: AppCompatImageView? = null
+    private var paySuccessBtn: Button? = null
+
     fun setPackageBean(packageId: String, payMoney: String, packageName: String) {
         this.packageId = packageId
         this.payMoney = payMoney
@@ -33,7 +50,7 @@ class PurchaseServicesDialog : DialogFragment() {
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         RxBus.get().register(this)
-        isCancelable = true
+        isCancelable = false
         dialog?.setCanceledOnTouchOutside(true)
     }
 
@@ -61,15 +78,20 @@ class PurchaseServicesDialog : DialogFragment() {
 
     @SuppressLint("SetTextI18n")
     private fun findId(rootView: View) {
-        val tvPackageMoney = rootView.findViewById<AppCompatTextView>(R.id.tvPackageMoney)
-        tvPackageMoney.text = "您购买的是" + payMoney + "元" + packageName
-        val weChatLayout = rootView.findViewById<ConstraintLayout>(R.id.weChatLayout)
+        tvPackageMoney = rootView.findViewById(R.id.tvPackageMoney)
+        tvPay = rootView.findViewById(R.id.tvPay)
+        weChatLayout = rootView.findViewById(R.id.weChatLayout)
+        alipayLayout = rootView.findViewById(R.id.alipayLayout)
+        payImage = rootView.findViewById(R.id.payImage)
+        paySuccessBtn = rootView.findViewById(R.id.paySuccessBtn)
+        payImage?.show(false)
+        paySuccessBtn?.show(false)
+        tvPackageMoney?.text = "您购买的是" + payMoney + "元" + packageName
         weChatLayout?.setOnSingleClickListener {
-            RxBus.get().send(GetPayImageEvent(packageId, "1", payMoney))
+            RxBus.get().send(GetPayImageEvent(packageId, "1", payMoney, packageName))
         }
-        val alipayLayout = rootView.findViewById<ConstraintLayout>(R.id.alipayLayout)
         alipayLayout?.setOnSingleClickListener {
-            RxBus.get().send(GetPayImageEvent(packageId, "2", payMoney))
+            RxBus.get().send(GetPayImageEvent(packageId, "2", payMoney, packageName))
         }
         val imageClose = rootView.findViewById<AppCompatImageView>(R.id.imageClose)
         imageClose.setOnSingleClickListener {
@@ -86,4 +108,17 @@ class PurchaseServicesDialog : DialogFragment() {
         RxBus.get().unRegister(this)
     }
 
+    @Subscribe(code = RxBusCodes.ORDERPAY, threadMode = ThreadMode.MAIN)
+    fun getPayImage(image: Bitmap) {
+        if (image != null) {
+            tvPackageMoney?.show(false)
+            tvPay?.show(false)
+            weChatLayout?.show(false)
+            alipayLayout?.show(false)
+            payImage?.show(false)
+            payImage?.show(true)
+            paySuccessBtn?.show(true)
+            Glide.with(this).load(image).into(payImage!!)
+        }
+    }
 }

+ 7 - 1
workbenches/src/main/java/com/yingyang/workbenches/entity/GetPayImageEvent.java

@@ -9,11 +9,13 @@ public class GetPayImageEvent {
     private String relationId;
     private String payMethod;
     private String payMoney;
+    private String description;
 
-    public GetPayImageEvent(String relationId, String payMethod, String payMoney) {
+    public GetPayImageEvent(String relationId, String payMethod, String payMoney, String description) {
         this.relationId = relationId;
         this.payMethod = payMethod;
         this.payMoney = payMoney;
+        this.description = description;
     }
 
     public String getRelationId() {
@@ -27,4 +29,8 @@ public class GetPayImageEvent {
     public String getPayMoney() {
         return payMoney;
     }
+
+    public String getDescription() {
+        return description;
+    }
 }

+ 4 - 1
workbenches/src/main/java/com/yingyang/workbenches/servicepackage/ServicePackageActivity.kt

@@ -2,6 +2,7 @@ package com.yingyang.workbenches.servicepackage
 
 import androidx.recyclerview.widget.GridLayoutManager
 import com.alibaba.android.arouter.facade.annotation.Route
+import com.google.zxing.common.BitmapUtils
 import com.yingyang.workbenches.adapter.ServicePackageListAdapter
 import com.yingyang.workbenches.adapter.ServicePackageTypeAdapter
 import com.yingyang.workbenches.databinding.ActivityServicePackageBinding
@@ -16,6 +17,7 @@ import com.yingyangfly.baselib.router.RouterUrlCommon
 import com.yingyangfly.baselib.utils.JumpUtil
 import com.yingyangfly.baselib.utils.LiveEventBusUtil
 import com.yingyangfly.baselib.utils.RxBusCodes
+import gorden.rxbus2.RxBus
 import gorden.rxbus2.Subscribe
 import gorden.rxbus2.ThreadMode
 
@@ -69,7 +71,8 @@ class ServicePackageActivity :
             it.toast()
         }, success = {
             if (it != null) {
-
+                val bitmap = BitmapUtils.create2DCode(it.qrCode)
+                RxBus.get().send(RxBusCodes.ORDERPAY, bitmap)
             }
         })
     }

+ 2 - 1
workbenches/src/main/res/layout/activity_service_package.xml

@@ -19,7 +19,8 @@
             android:layout_height="wrap_content"
             android:orientation="horizontal"
             app:layout_constraintLeft_toLeftOf="parent"
-            app:layout_constraintTop_toTopOf="parent">
+            app:layout_constraintTop_toTopOf="parent"
+            tools:ignore="UseCompoundDrawables">
 
             <ImageView
                 android:layout_width="@dimen/divider_48px"

+ 28 - 4
workbenches/src/main/res/layout/dialog_purchase_services.xml

@@ -32,7 +32,7 @@
                 android:layout_width="match_parent"
                 android:layout_height="@dimen/divider_120px"
                 android:background="@drawable/bg_purchase_services_button"
-                android:text="订单支付"
+                android:text="@string/order_payment"
                 android:textColor="@android:color/white"
                 android:textSize="@dimen/divider_34px"
                 app:layout_constraintLeft_toLeftOf="parent"
@@ -56,7 +56,7 @@
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="@dimen/divider_12px"
-                android:text="请选择支付渠道支付"
+                android:text="@string/please_select_payment"
                 android:textColor="@color/color_FF333333"
                 android:textSize="@dimen/divider_32px"
                 android:textStyle="bold"
@@ -88,7 +88,7 @@
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:layout_marginTop="@dimen/divider_25px"
-                    android:text="微信支付"
+                    android:text="@string/wechat_payment"
                     android:textColor="@color/color_FF333333"
                     android:textSize="@dimen/divider_28px"
                     app:layout_constraintLeft_toLeftOf="parent"
@@ -121,7 +121,7 @@
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:layout_marginTop="@dimen/divider_23px"
-                    android:text="支付宝支付"
+                    android:text="@string/alipay_payment"
                     android:textColor="@color/color_FF333333"
                     android:textSize="@dimen/divider_28px"
                     app:layout_constraintLeft_toLeftOf="parent"
@@ -130,6 +130,30 @@
 
             </androidx.constraintlayout.widget.ConstraintLayout>
 
+            <androidx.appcompat.widget.AppCompatImageView
+                android:id="@+id/payImage"
+                android:layout_width="@dimen/divider_230px"
+                android:layout_height="@dimen/divider_230px"
+                android:visibility="gone"
+                app:layout_constraintLeft_toLeftOf="parent"
+                app:layout_constraintRight_toRightOf="parent"
+                app:layout_constraintTop_toBottomOf="@+id/purchaseServicesBtn" />
+
+            <Button
+                android:id="@+id/paySuccessBtn"
+                android:layout_width="match_parent"
+                android:layout_height="@dimen/divider_68px"
+                android:layout_marginStart="@dimen/divider_214px"
+                android:layout_marginTop="@dimen/divider_34px"
+                android:layout_marginEnd="@dimen/divider_213px"
+                android:background="@drawable/bg_work_benches_btn"
+                android:text="@string/payment_completed"
+                android:textColor="@android:color/white"
+                android:textSize="@dimen/divider_28px"
+                app:layout_constraintLeft_toLeftOf="parent"
+                app:layout_constraintRight_toRightOf="parent"
+                app:layout_constraintTop_toBottomOf="@+id/payImage" />
+
         </androidx.constraintlayout.widget.ConstraintLayout>
 
     </androidx.constraintlayout.widget.ConstraintLayout>

+ 1 - 1
workbenches/src/main/res/layout/fragment_task.xml

@@ -47,7 +47,7 @@
             android:layout_marginBottom="@dimen/divider_27px"
             android:background="@drawable/bg_dialog_task"
             android:gravity="center"
-            android:text="好的"
+            android:text="@string/good"
             android:textColor="@android:color/white"
             android:textSize="@dimen/divider_32px"
             android:textStyle="bold" />

+ 2 - 1
workbenches/src/main/res/layout/fragment_train_report.xml

@@ -57,7 +57,8 @@
                 style="@style/text_report_item"
                 android:paddingStart="@dimen/divider_88px"
                 android:text="@string/report_number"
-                android:textColor="@android:color/white" />
+                android:textColor="@android:color/white"
+                tools:ignore="RtlSymmetry" />
 
             <TextView
                 style="@style/text_report_item"

+ 2 - 1
workbenches/src/main/res/layout/item_game_list.xml

@@ -34,7 +34,8 @@
             android:paddingEnd="@dimen/divider_8px"
             android:text='@{data.currentLevel+"/10"}'
             android:textColor="@color/color_FF821EFF"
-            android:textSize="@dimen/divider_24px" />
+            android:textSize="@dimen/divider_24px"
+            tools:ignore="RtlSymmetry" />
 
         <TextView
             android:layout_width="match_parent"

+ 1 - 1
workbenches/src/main/res/layout/item_service_package_list.xml

@@ -54,7 +54,7 @@
                 android:layout_marginEnd="@dimen/divider_54px"
                 android:layout_marginBottom="@dimen/divider_48px"
                 android:background="@drawable/bg_work_benches_btn"
-                android:text="购买"
+                android:text="@string/purchase"
                 android:textColor="@android:color/white"
                 android:textSize="@dimen/divider_24px"
                 app:layout_constraintBottom_toBottomOf="parent"

+ 2 - 1
workbenches/src/main/res/layout/item_train_report.xml

@@ -23,7 +23,8 @@
             android:id="@+id/tvNum"
             style="@style/text_report_item"
             android:paddingStart="@dimen/divider_88px"
-            android:text="01" />
+            android:text="01"
+            tools:ignore="RtlSymmetry" />
 
         <TextView
             android:id="@+id/tvDate"

+ 2 - 1
workbenches/src/main/res/layout/item_training_content.xml

@@ -1,7 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
 <layout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools">
+    xmlns:tools="http://schemas.android.com/tools"
+    tools:ignore="ResourceName">
 
     <data>
 

+ 2 - 0
workbenches/src/main/res/values/dimens.xml

@@ -34,6 +34,8 @@
     <dimen name="divider_237px" tools:ignore="PxUsage">237px</dimen>
     <dimen name="divider_230px" tools:ignore="PxUsage">230px</dimen>
     <dimen name="divider_229px" tools:ignore="PxUsage">229px</dimen>
+    <dimen name="divider_214px" tools:ignore="PxUsage">214px</dimen>
+    <dimen name="divider_213px" tools:ignore="PxUsage">213px</dimen>
     <dimen name="divider_203px" tools:ignore="PxUsage">203px</dimen>
     <dimen name="divider_195px" tools:ignore="PxUsage">195px</dimen>
     <dimen name="divider_190px" tools:ignore="PxUsage">190px</dimen>

+ 7 - 0
workbenches/src/main/res/values/strings.xml

@@ -30,4 +30,11 @@
     <string name="exercise_therapy" tools:ignore="ResourceName">运动疗法</string>
     <string name="detail" tools:ignore="ResourceName">查看详情</string>
     <string name="select_training_package" tools:ignore="ResourceName">请根据您的需要选择训练的套餐</string>
+    <string name="payment_completed" tools:ignore="ResourceName">已完成支付</string>
+    <string name="wechat_payment" tools:ignore="ResourceName">微信支付</string>
+    <string name="please_select_payment" tools:ignore="ResourceName">请选择支付渠道支付</string>
+    <string name="order_payment" tools:ignore="ResourceName">订单支付</string>
+    <string name="alipay_payment" tools:ignore="ResourceName">支付宝支付</string>
+    <string name="purchase" tools:ignore="ResourceName">购买</string>
+    <string name="good" tools:ignore="ResourceName">好的</string>
 </resources>