Bläddra i källkod

1.添加购买服务接口

王鹏鹏 2 år sedan
förälder
incheckning
2bad288d4b

+ 2 - 2
baselib/build.gradle

@@ -40,7 +40,7 @@ android {
             buildConfigField "String", "BAIDU_SECRETKEY", "\"41Fzb2ZIuKRGNtrVcQOHxEI3vFM4Rkxi\""
             buildConfigField "Boolean", "SINGLE_MODULE", "${singleModule}"
             buildConfigField "String", "BUGLY_APPID", "\"d400f20398\""
-            buildConfigField "String", "API_URL", "\"http://60.205.201.7:8110\""
+            buildConfigField "String", "API_URL", "\"http://192.168.0.117:8110\""
             proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
         }
 
@@ -54,7 +54,7 @@ android {
             buildConfigField "String", "BAIDU_SECRETKEY", "\"41Fzb2ZIuKRGNtrVcQOHxEI3vFM4Rkxi\""
             buildConfigField "Boolean", "SINGLE_MODULE", "${singleModule}"
             buildConfigField "String", "BUGLY_APPID", "\"ad3db4d529\""
-            buildConfigField "String", "API_URL", "\"http://60.205.201.7:8110\""
+            buildConfigField "String", "API_URL", "\"http://192.168.0.117:8110\""
             proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
         }
     }

+ 7 - 1
healthconsultation/src/main/java/com/yingyang/healthconsultation/consultationsheet/ConsultationRequestActivity.kt

@@ -91,7 +91,13 @@ class ConsultationRequestActivity :
                         finish()
                     }
                     R.id.btnSubmit -> {
-                        JumpUtil.jumpActivity(RouterUrlCommon.consultationSheet, mContext)
+                        if (doctorBean != null) {
+                            JumpUtil.jumpActivityWithUrl(
+                                RouterUrlCommon.consultationSheet,
+                                doctorBean!!.id,
+                                mContext
+                            )
+                        }
                     }
                 }
             }

+ 98 - 31
healthconsultation/src/main/java/com/yingyang/healthconsultation/consultationsheet/ConsultationSheetActivity.kt

@@ -3,29 +3,33 @@ package com.yingyang.healthconsultation.consultationsheet
 import android.annotation.SuppressLint
 import android.app.Activity
 import android.content.Intent
+import android.os.Bundle
 import android.os.Environment
 import android.text.TextUtils
 import android.view.MotionEvent
 import android.view.View
 import android.widget.ImageView
-import android.widget.LinearLayout
 import androidx.recyclerview.widget.GridLayoutManager
 import androidx.recyclerview.widget.LinearLayoutManager
 import androidx.recyclerview.widget.RecyclerView
 import com.alibaba.android.arouter.facade.annotation.Route
+import com.alibaba.android.arouter.launcher.ARouter
 import com.donkingliang.imageselector.utils.ImageSelector
 import com.yingyang.healthconsultation.R
 import com.yingyang.healthconsultation.adapter.SickTimeAdapter
 import com.yingyang.healthconsultation.databinding.ActivityConsultationSheetBinding
 import com.yingyang.healthconsultation.dialog.SelectPicDialog
+import com.yingyang.healthconsultation.entity.PurchaseConsultationBean
 import com.yingyang.healthconsultation.entity.UploadImgBean
 import com.yingyang.healthconsultation.utils.CommonUtils
 import com.yingyangfly.baselib.adapter.XBaseAdapter
 import com.yingyangfly.baselib.dialog.TipsDialog
-import com.yingyangfly.baselib.ext.*
+import com.yingyangfly.baselib.ext.getEndAnimation
+import com.yingyangfly.baselib.ext.getScaleAnimation
+import com.yingyangfly.baselib.ext.setOnSingleClickListener
+import com.yingyangfly.baselib.ext.toast
 import com.yingyangfly.baselib.mvvm.BaseMVVMActivity
 import com.yingyangfly.baselib.router.RouterUrlCommon
-import com.yingyangfly.baselib.utils.GlideImgUtil
 import com.yingyangfly.baselib.utils.LogUtil
 import com.yingyangfly.baselib.utils.img.ImgUtil
 import top.zibin.luban.Luban
@@ -40,15 +44,21 @@ class ConsultationSheetActivity :
     BaseMVVMActivity<ActivityConsultationSheetBinding, ConsultationSheetViewModel>(),
     View.OnTouchListener {
 
-    private val REQUEST_MEDICALRECORDS_CAMERA = 1
-    private val REQUEST_MEDICALRECORDS_IMG = 2
-    var imageList = mutableListOf<UploadImgBean>()
+    private var id: String = ""
+    private val requestMedicalRecordsCamera = 1
+    private val requestMedicalRecordsImg = 2
+    private var imageList = mutableListOf<UploadImgBean>()
     private lateinit var emptyUploadImgBean: UploadImgBean
     private lateinit var imageAdapter: XBaseAdapter<UploadImgBean>
-
+    private val purchaseConsultationBean = PurchaseConsultationBean()
     private val sickTimes = mutableListOf<String>()
     private val sickTimeAdapter by lazy { SickTimeAdapter() }
 
+    override fun onCreate(savedInstanceState: Bundle?) {
+        id = intent.getStringExtra("url") ?: ""
+        super.onCreate(savedInstanceState)
+    }
+
     override fun initViews() {
         binding {
             sickTimes.clear()
@@ -59,6 +69,9 @@ class ConsultationSheetActivity :
             val layoutManager = LinearLayoutManager(mContext, RecyclerView.HORIZONTAL, false)
             rvSickTime.layoutManager = layoutManager
             rvSickTime.adapter = sickTimeAdapter
+            sickTimeAdapter.onClickListener = {
+                purchaseConsultationBean.sickTime = it
+            }
             sickTimeAdapter.setData(sickTimes)
         }
         initImageRv()
@@ -67,7 +80,6 @@ class ConsultationSheetActivity :
     /**
      * 初始化问诊单图片
      */
-    @SuppressLint("NotifyDataSetChanged")
     private fun initImageRv() {
         emptyUploadImgBean = UploadImgBean()
         imageList.add(emptyUploadImgBean)
@@ -96,7 +108,7 @@ class ConsultationSheetActivity :
                 imgDelete.visibility = View.VISIBLE
                 val params = img.layoutParams
                 params.height = params.width
-                if (bean.remotePath.isNullOrEmpty()) {
+                if (bean.remotePath.isEmpty()) {
                     upLoadImg(i, img)
                 } else {
                     if (bean.localPaht.isEmpty()) {
@@ -126,6 +138,7 @@ class ConsultationSheetActivity :
     /**
      * 删除图片
      */
+    @SuppressLint("NotifyDataSetChanged")
     private fun delect(i: Int) {
         TipsDialog.TipDialogBuilder()
             .title("提示")
@@ -156,14 +169,14 @@ class ConsultationSheetActivity :
                     .setSingle(false) //设置是否单选
                     .canPreview(true) //是否点击放大图片查看,,默认为true
                     .setMaxSelectCount(if (getImgLocalPaths().size > 0) 9 - getImgLocalPaths().size else 9) // 图片的最大选择数量,小于等于0时,不限数量
-                    .start(this, REQUEST_MEDICALRECORDS_IMG) // 打开相册
+                    .start(this, requestMedicalRecordsImg) // 打开相册
             } else {
                 ImageSelector.builder()
                     .useCamera(true)
                     .onlyTakePhoto(true)
                     .setCrop(false)
                     .setSelected(getImgLocalPaths())
-                    .start(this, REQUEST_MEDICALRECORDS_CAMERA)
+                    .start(this, requestMedicalRecordsCamera)
             }
         }
         dialog.show(supportFragmentManager, "SelectPicDialog")
@@ -172,7 +185,7 @@ class ConsultationSheetActivity :
     private fun getImgLocalPaths(): ArrayList<String> {
         val localList = arrayListOf<String>()
         imageList.forEach {
-            if (it.localPaht.isNullOrEmpty().not())
+            if (it.localPaht.isEmpty().not())
                 localList.add(it.localPaht)
         }
         return localList
@@ -184,11 +197,18 @@ class ConsultationSheetActivity :
         binding {
             backLayout.setOnTouchListener(this@ConsultationSheetActivity)
             btnSubmit.setOnTouchListener(this@ConsultationSheetActivity)
+            radioBeenHospital.setOnCheckedChangeListener { group, checkedId ->
+                if (checkedId == R.id.radioYes) {
+                    purchaseConsultationBean.isConsultation = "0"
+                } else if (checkedId == R.id.radioNo) {
+                    purchaseConsultationBean.isConsultation = "1"
+                }
+            }
         }
     }
 
     override fun initData() {
-        getUserInfo()
+
     }
 
     @SuppressLint("ClickableViewAccessibility")
@@ -206,7 +226,9 @@ class ConsultationSheetActivity :
                         finish()
                     }
                     R.id.btnSubmit -> {
-
+                        if (judge()) {
+                            saveData()
+                        }
                     }
                 }
             }
@@ -219,28 +241,15 @@ class ConsultationSheetActivity :
         return true
     }
 
-    /**
-     * 获取患者信息
-     */
-    private fun getUserInfo() {
-        viewModel.getUserInfo(fail = {
-            it.toast()
-        }, success = {
-            if (it != null) {
-
-            }
-        })
-    }
-
     override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
         super.onActivityResult(requestCode, resultCode, data)
         if (resultCode == Activity.RESULT_OK) {
-            if (requestCode == REQUEST_MEDICALRECORDS_CAMERA) {//拍照
+            if (requestCode == requestMedicalRecordsCamera) {//拍照
                 val images = data?.getStringArrayListExtra(ImageSelector.SELECT_RESULT)
                 images?.let {
                     withLs(it)
                 }
-            } else if (requestCode == REQUEST_MEDICALRECORDS_IMG) {//选择图片
+            } else if (requestCode == requestMedicalRecordsImg) {//选择图片
                 val images = data?.getStringArrayListExtra(ImageSelector.SELECT_RESULT)
                 images?.let {
                     withLs(it)
@@ -258,7 +267,7 @@ class ConsultationSheetActivity :
             .ignoreBy(100)
             .setTargetDir(getPath())
             .setFocusAlpha(false)
-            .filter { path -> !(TextUtils.isEmpty(path) || path.toLowerCase().endsWith(".gif")) }
+            .filter { path -> !(TextUtils.isEmpty(path) || path.lowercase().endsWith(".gif")) }
             .setCompressListener(
                 object : OnCompressListener {
                     override fun onStart() {
@@ -303,7 +312,7 @@ class ConsultationSheetActivity :
 
     override fun onDestroy() {
         val path = getPath()
-        if (path.isNullOrEmpty().not()) {
+        if (path.isEmpty().not()) {
             CommonUtils.deleteDirectory(path)
         }
         super.onDestroy()
@@ -348,4 +357,62 @@ class ConsultationSheetActivity :
             }
         }
     }
+
+    /**
+     * 购买问诊服务
+     */
+    private fun saveData() {
+        val stringBuffer = StringBuffer()
+        getImgRemotePathPaths().forEach {
+            stringBuffer.append(it).append(",")
+        }
+        purchaseConsultationBean.let {
+            it.remark = binding.editCondition.text.toString()
+            it.sysUserId = id
+            it.images = stringBuffer.toString()
+        }
+        ARouter.getInstance().build(RouterUrlCommon.payment)
+            .withString("id", id)
+            .withSerializable("purchaseConsultationBean", purchaseConsultationBean)
+            .withTransition(R.anim.leftin, R.anim.leftout)
+            .navigation(mContext)
+    }
+
+    /**
+     * 非空判断
+     */
+    private fun judge(): Boolean {
+        if (binding.editCondition.text.toString().isEmpty()) {
+            "请输入病情描述".toast()
+            return false
+        }
+        if (purchaseConsultationBean.sickTime.isNullOrEmpty()) {
+            "请选择患病多久了".toast()
+            return false
+        }
+        if (purchaseConsultationBean.isConsultation.isNullOrEmpty()) {
+            "请选择此次病情是否去医院就诊过".toast()
+            return false
+        }
+        if (getImgRemotePathPaths().isEmpty()) {
+            "请上传病历资料".toast()
+            return false
+        }
+        if (binding.agreementBox.isChecked.not()) {
+            "请您阅读相关协议及隐私政策".toast()
+            return false
+        }
+        return true
+    }
+
+    /**
+     * 问诊图片地址
+     */
+    private fun getImgRemotePathPaths(): ArrayList<String> {
+        val localList = arrayListOf<String>()
+        imageList.forEach {
+            if (it.remotePath.isEmpty().not()) localList.add(it.remotePath)
+        }
+        return localList
+    }
 }

+ 0 - 11
healthconsultation/src/main/java/com/yingyang/healthconsultation/consultationsheet/ConsultationSheetViewModel.kt

@@ -1,6 +1,5 @@
 package com.yingyang.healthconsultation.consultationsheet
 
-import com.yingyang.healthconsultation.entity.UserInfoBean
 import com.yingyang.healthconsultation.net.HEALTHCONSULTATION_API
 import com.yingyangfly.baselib.mvvm.BaseViewModel
 import com.yingyangfly.baselib.utils.FileMultipartBuilder
@@ -11,16 +10,6 @@ import java.io.File
  */
 class ConsultationSheetViewModel : BaseViewModel() {
 
-    fun getUserInfo(
-        fail: ((msg: String) -> Unit)? = null,
-        success: ((success: UserInfoBean?) -> Unit)? = null,
-    ) = launchFlow(false) {
-        HEALTHCONSULTATION_API.getUserInfo()
-    }.runUI(
-        success,
-        fail
-    )
-
     fun uploadFile(
         listFile: List<File>,
         position: Int,

+ 15 - 0
healthconsultation/src/main/java/com/yingyang/healthconsultation/entity/PurchaseConsultationBean.kt

@@ -0,0 +1,15 @@
+package com.yingyang.healthconsultation.entity
+
+import java.io.Serializable
+
+/**
+ * 购买问诊服务
+ */
+class PurchaseConsultationBean : Serializable {
+    var images: String = ""//病例资料
+    var isConsultation: String = ""//是否就诊 0是 1否
+    var payMethod: String = ""//支付方式:1微信,2支付宝
+    var remark: String = ""//病情描述
+    var sickTime: String = ""//患病时间
+    var sysUserId: String = ""//医生id
+}

+ 10 - 1
healthconsultation/src/main/java/com/yingyang/healthconsultation/net/HealthConsultationApiService.kt

@@ -34,7 +34,10 @@ interface HealthConsultationApiService {
      * 上传文件接口
      */
     @POST("common/upload")
-    suspend fun uploadFile( @Query("dirName") dirName: String, @Body multipartBody: MultipartBody): BaseResp<String>
+    suspend fun uploadFile(
+        @Query("dirName") dirName: String,
+        @Body multipartBody: MultipartBody
+    ): BaseResp<String>
 
     /**
      * 评价列表
@@ -42,4 +45,10 @@ interface HealthConsultationApiService {
     @POST("patient_review/list")
     suspend fun getPatientReview(@Body requestBody: RequestBody): BaseResp<EvaluateRecordListBean>
 
+    /**
+     * 购买医疗咨询
+     */
+    @POST("medical_consultation/save")
+    suspend fun saveConsultation(@Body requestBody: RequestBody): BaseResp<Unit>
+
 }

+ 71 - 3
healthconsultation/src/main/java/com/yingyang/healthconsultation/payment/PaymentActivity.kt

@@ -1,13 +1,18 @@
 package com.yingyang.healthconsultation.payment
 
 import android.annotation.SuppressLint
+import android.os.Bundle
 import android.view.MotionEvent
 import android.view.View
 import com.alibaba.android.arouter.facade.annotation.Route
 import com.yingyang.healthconsultation.R
 import com.yingyang.healthconsultation.databinding.ActivityPaymentBinding
+import com.yingyang.healthconsultation.entity.PurchaseConsultationBean
+import com.yingyangfly.baselib.db.DoctorBean
 import com.yingyangfly.baselib.ext.getEndAnimation
 import com.yingyangfly.baselib.ext.getScaleAnimation
+import com.yingyangfly.baselib.ext.show
+import com.yingyangfly.baselib.ext.toast
 import com.yingyangfly.baselib.mvvm.BaseMVVMActivity
 import com.yingyangfly.baselib.router.RouterUrlCommon
 import com.yingyangfly.baselib.utils.RxTimer
@@ -21,14 +26,35 @@ class PaymentActivity : BaseMVVMActivity<ActivityPaymentBinding, PaymentViewMode
 
     private lateinit var rxTimer: RxTimer
     var time: Long = 0
+    private var id: String = ""
+    private var doctorBean: DoctorBean? = null
+    private var purchaseConsultationBean: PurchaseConsultationBean? = null
+
+    override fun onCreate(savedInstanceState: Bundle?) {
+        id = intent.getStringExtra("id") ?: ""
+        purchaseConsultationBean =
+            intent.getSerializableExtra("purchaseConsultationBean") as PurchaseConsultationBean
+        super.onCreate(savedInstanceState)
+    }
 
     override fun initViews() {
         rxTimer = RxTimer()
+        if (daocorDao != null) {
+            doctorBean = daocorDao?.getDoctor(id)
+            if (doctorBean != null) {
+                binding.data = doctorBean
+            }
+        }
     }
 
     @SuppressLint("ClickableViewAccessibility")
     override fun initListener() {
-        binding.backLayout.setOnTouchListener(this)
+        binding {
+            backLayout.setOnTouchListener(this@PaymentActivity)
+            wechatLayout.setOnTouchListener(this@PaymentActivity)
+            alipayLayout.setOnTouchListener(this@PaymentActivity)
+            btnSubmit.setOnTouchListener(this@PaymentActivity)
+        }
     }
 
     override fun initData() {
@@ -57,7 +83,7 @@ class PaymentActivity : BaseMVVMActivity<ActivityPaymentBinding, PaymentViewMode
     override fun onTouch(v: View, event: MotionEvent): Boolean {
         when (event.action) {
             MotionEvent.ACTION_DOWN -> {
-                if (v.id == R.id.backLayout) {
+                if (v.id == R.id.backLayout || v.id == R.id.wechatLayout || v.id == R.id.alipayLayout || v.id == R.id.btnSubmit) {
                     v.startAnimation(getScaleAnimation())
                 }
             }
@@ -67,14 +93,56 @@ class PaymentActivity : BaseMVVMActivity<ActivityPaymentBinding, PaymentViewMode
                     R.id.backLayout -> {
                         finish()
                     }
+                    R.id.wechatLayout -> {
+                        if (purchaseConsultationBean != null) {
+                            purchaseConsultationBean?.payMethod = "1"
+                        }
+                        binding {
+                            wechatLayout.setBackgroundResource(R.drawable.bg_payment_selected)
+                            alipayLayout.setBackgroundResource(R.drawable.bg_payment_unselected)
+                            imageWechatSelected.show(true)
+                            imageAlipaySelected.show(false)
+                        }
+                    }
+                    R.id.alipayLayout -> {
+                        if (purchaseConsultationBean != null) {
+                            purchaseConsultationBean?.payMethod = "2"
+                        }
+                        binding {
+                            wechatLayout.setBackgroundResource(R.drawable.bg_payment_unselected)
+                            alipayLayout.setBackgroundResource(R.drawable.bg_payment_selected)
+                            imageWechatSelected.show(false)
+                            imageAlipaySelected.show(true)
+                        }
+                    }
+                    R.id.btnSubmit -> {
+                        submit()
+                    }
                 }
             }
             MotionEvent.ACTION_CANCEL -> {
-                if (v.id == R.id.backLayout) {
+                if (v.id == R.id.backLayout || v.id == R.id.wechatLayout || v.id == R.id.alipayLayout || v.id == R.id.btnSubmit) {
                     v.startAnimation(getEndAnimation())
                 }
             }
         }
         return true
     }
+
+    /**
+     * 购买问诊服务
+     */
+    private fun submit() {
+        if (purchaseConsultationBean != null) {
+            if (purchaseConsultationBean?.payMethod.isNullOrEmpty()) {
+                "请选择支付方式".toast()
+            } else {
+                viewModel.saveConsultation(purchaseConsultationBean!!, fail = {
+                    it.toast()
+                }, success = {
+                    "购买成功".toast()
+                })
+            }
+        }
+    }
 }

+ 17 - 1
healthconsultation/src/main/java/com/yingyang/healthconsultation/payment/PaymentViewModel.kt

@@ -1,11 +1,27 @@
 package com.yingyang.healthconsultation.payment
 
+import android.util.Log
+import com.yingyang.healthconsultation.entity.PurchaseConsultationBean
+import com.yingyang.healthconsultation.net.HEALTHCONSULTATION_API
 import com.yingyangfly.baselib.mvvm.BaseViewModel
+import com.yingyangfly.baselib.net.XUtils
+import com.yingyangfly.baselib.utils.GsonUtil
 
 /**
  * @author 王鹏鹏
  */
 class PaymentViewModel : BaseViewModel() {
 
-
+    fun saveConsultation(
+        requestBean: PurchaseConsultationBean,
+        fail: ((msg: String) -> Unit)? = null,
+        success: ((success: Unit?) -> Unit)? = null,
+    ) = launchFlow(false) {
+        Log.e("wpp", GsonUtil.GsonString(requestBean))
+        val body = XUtils.createJson(GsonUtil.GsonString(requestBean))
+        HEALTHCONSULTATION_API.saveConsultation(body)
+    }.runUI(
+        success,
+        fail
+    )
 }

+ 2 - 0
healthconsultation/src/main/res/layout/activity_consultation_sheet.xml

@@ -155,6 +155,7 @@
                         app:layout_constraintTop_toBottomOf="@+id/tvBeenHospital">
 
                         <RadioButton
+                            android:id="@+id/radioYes"
                             android:layout_width="@dimen/divider_196px"
                             android:layout_height="@dimen/divider_58px"
                             android:background="@drawable/selector_bean_hospital"
@@ -165,6 +166,7 @@
                             android:textSize="@dimen/divider_24px" />
 
                         <RadioButton
+                            android:id="@+id/radioNo"
                             android:layout_width="@dimen/divider_196px"
                             android:layout_height="@dimen/divider_58px"
                             android:layout_marginStart="@dimen/divider_25px"

+ 15 - 1
healthconsultation/src/main/res/layout/activity_payment.xml

@@ -4,6 +4,13 @@
     xmlns:tools="http://schemas.android.com/tools"
     tools:ignore="ResourceName">
 
+    <data>
+
+        <variable
+            name="data"
+            type="com.yingyangfly.baselib.db.DoctorBean" />
+    </data>
+
     <androidx.constraintlayout.widget.ConstraintLayout
         android:layout_width="match_parent"
         android:layout_height="match_parent"
@@ -103,6 +110,7 @@
                     android:layout_height="wrap_content"
                     android:layout_marginStart="@dimen/divider_36px"
                     android:layout_marginTop="@dimen/divider_15px"
+                    android:text="@{data.userName}"
                     android:textColor="@color/color_FF333333"
                     android:textSize="@dimen/divider_28px"
                     app:layout_constraintStart_toStartOf="parent"
@@ -115,6 +123,7 @@
                     android:layout_height="wrap_content"
                     android:layout_marginTop="@dimen/divider_67px"
                     android:layout_marginEnd="@dimen/divider_36px"
+                    android:text='@{"¥ "+data.price}'
                     android:textColor="@color/color_FF333333"
                     android:textSize="@dimen/divider_28px"
                     android:textStyle="bold"
@@ -152,7 +161,7 @@
                     android:layout_height="@dimen/divider_90px"
                     android:layout_marginStart="@dimen/divider_37px"
                     android:layout_marginTop="@dimen/divider_16px"
-                    android:background="@drawable/bg_payment_selected"
+                    android:background="@drawable/bg_payment_unselected"
                     app:layout_constraintStart_toStartOf="parent"
                     app:layout_constraintTop_toBottomOf="@+id/tvPayment">
 
@@ -179,9 +188,11 @@
                         app:layout_constraintTop_toTopOf="parent" />
 
                     <androidx.appcompat.widget.AppCompatImageView
+                        android:id="@+id/imageWechatSelected"
                         android:layout_width="@dimen/divider_57px"
                         android:layout_height="@dimen/divider_48px"
                         android:background="@mipmap/icon_payment_selected"
+                        android:visibility="gone"
                         app:layout_constraintBottom_toBottomOf="parent"
                         app:layout_constraintEnd_toEndOf="parent" />
                 </androidx.constraintlayout.widget.ConstraintLayout>
@@ -219,14 +230,17 @@
                         app:layout_constraintTop_toTopOf="parent" />
 
                     <androidx.appcompat.widget.AppCompatImageView
+                        android:id="@+id/imageAlipaySelected"
                         android:layout_width="@dimen/divider_57px"
                         android:layout_height="@dimen/divider_48px"
                         android:background="@mipmap/icon_payment_selected"
+                        android:visibility="gone"
                         app:layout_constraintBottom_toBottomOf="parent"
                         app:layout_constraintEnd_toEndOf="parent" />
                 </androidx.constraintlayout.widget.ConstraintLayout>
 
                 <androidx.appcompat.widget.AppCompatButton
+                    android:id="@+id/btnSubmit"
                     android:layout_width="@dimen/divider_290px"
                     android:layout_height="@dimen/divider_75px"
                     android:layout_marginBottom="@dimen/divider_36px"