Browse Source

1.添加获取单个医生信息接口

王鹏鹏 2 years ago
parent
commit
6aa1d8cb69

+ 2 - 2
baselib/src/main/java/com/yingyangfly/baselib/db/VoicePlayerDao.kt

@@ -14,8 +14,8 @@ interface VoicePlayerDao : BaseDao<VoicePlayerBean> {
     @Query("select * from VoicePlayer")
     fun getAllVoicePlayerBean(): MutableList<VoicePlayerBean>
 
-    @Query("select * from VoicePlayer where id = :id")
-    fun getQuestion(id: Int): VoicePlayerBean
+    @Query("select * from VoicePlayer where words = :word")
+    fun getVoicePlayerBean(word: String): VoicePlayerBean
 
     @Query("select * from VoicePlayer order by id desc ")
     fun getAllByIdDesc(): MutableList<VoicePlayerBean>

+ 1 - 1
healthconsultation/src/main/java/com/yingyang/healthconsultation/entity/MedicalConsultationDetailBean.kt

@@ -20,7 +20,7 @@ data class MedicalConsultationDetailBean(
     val orgCode: String,
     val orgName: String,
     val payMethod: String,
-    val payOrder: PayOrder,
+    var payOrder: PayOrder,
     val price: String,
     val reason: String,
     val remark: String,

+ 79 - 10
healthconsultation/src/main/java/com/yingyang/healthconsultation/paid/PaidActivity.kt

@@ -7,9 +7,13 @@ import android.view.MotionEvent
 import android.view.View
 import androidx.recyclerview.widget.GridLayoutManager
 import com.alibaba.android.arouter.facade.annotation.Route
+import com.alibaba.android.arouter.launcher.ARouter
 import com.yingyang.healthconsultation.R
 import com.yingyang.healthconsultation.adapter.ConsultationDataAdapter
 import com.yingyang.healthconsultation.databinding.ActivityPaidBinding
+import com.yingyang.healthconsultation.entity.ConsultationRecordsBean
+import com.yingyang.healthconsultation.entity.PurchaseConsultationBean
+import com.yingyangfly.baselib.dialog.TipsDialog
 import com.yingyangfly.baselib.ext.*
 import com.yingyangfly.baselib.mvvm.BaseMVVMActivity
 import com.yingyangfly.baselib.router.RouterUrlCommon
@@ -27,6 +31,12 @@ class PaidActivity : BaseMVVMActivity<ActivityPaidBinding, PaidViewModel>(),
     private var imageList = mutableListOf<String>()
     private val adapter by lazy { ConsultationDataAdapter() }
 
+    private var status = ""
+    private var remark: String = ""
+    private var sickTime: String = ""
+    private var images: String = ""
+    private var isConsultation: String = ""
+
     override fun onCreate(savedInstanceState: Bundle?) {
         id = intent.getStringExtra("id") ?: ""
         doctorId = intent.getStringExtra("doctorId") ?: ""
@@ -46,6 +56,9 @@ class PaidActivity : BaseMVVMActivity<ActivityPaidBinding, PaidViewModel>(),
         binding {
             backLayout.setOnTouchListener(this@PaidActivity)
             doctorLayout.setOnTouchListener(this@PaidActivity)
+            btnCancleOrder.setOnTouchListener(this@PaidActivity)
+            btnContactDoctor.setOnTouchListener(this@PaidActivity)
+            btnConnection.setOnTouchListener(this@PaidActivity)
         }
     }
 
@@ -70,6 +83,11 @@ class PaidActivity : BaseMVVMActivity<ActivityPaidBinding, PaidViewModel>(),
                 imageList.clear()
                 if (it != null) {
                     binding.data = it
+                    status = it.status
+                    remark = it.remark
+                    sickTime = it.sickTime
+                    images = it.images
+                    isConsultation = it.isConsultation
                     setStatusInfo(it.status, it.payOrder != null)
                     if (it.payOrder != null) {
                         binding.payOrder = it.payOrder
@@ -103,14 +121,12 @@ class PaidActivity : BaseMVVMActivity<ActivityPaidBinding, PaidViewModel>(),
                 //0未支付
                 binding {
                     tvStatus.text = "订单待支付,超时将取消"
+                    orderBtnLayout.show(true)
                     btnCancleOrder.show(true)
                     btnCancleOrder.text = "取消订单"
-                    btnCancleOrder.setBackgroundResource(R.drawable.bg_record_cancel_order)
-                    btnCancleOrder.setTextColorResource(R.color.color_FFA5A5A5)
                     btnContactDoctor.show(true)
                     btnContactDoctor.text = "去支付"
-                    btnContactDoctor.setBackgroundResource(R.drawable.bg_pay_order)
-                    btnContactDoctor.setTextColorResource(R.color.color_FFFFFF)
+                    btnConnection.show(false)
                 }
             }
             "1" -> {
@@ -147,10 +163,9 @@ class PaidActivity : BaseMVVMActivity<ActivityPaidBinding, PaidViewModel>(),
                     } else {
                         "订单已取消,支付的费用会在24小内返还到您的支付账户里"
                     }
-                    btnCancleOrder.show(false)
-                    btnContactDoctor.text = "重新问诊"
-                    btnContactDoctor.setBackgroundResource(R.drawable.bg_pay_order)
-                    btnContactDoctor.setTextColorResource(R.color.color_FFFFFF)
+                    btnConnection.show(true)
+                    orderBtnLayout.show(false)
+                    btnConnection.text = "重新问诊"
                 }
             }
         }
@@ -175,7 +190,9 @@ class PaidActivity : BaseMVVMActivity<ActivityPaidBinding, PaidViewModel>(),
     override fun onTouch(v: View, event: MotionEvent): Boolean {
         when (event.action) {
             MotionEvent.ACTION_DOWN -> {
-                if (v.id == R.id.backLayout || v.id == R.id.doctorLayout) {
+                if (v.id == R.id.backLayout || v.id == R.id.doctorLayout || v.id == R.id.btnCancleOrder ||
+                    v.id == R.id.btnContactDoctor || v.id == R.id.btnConnection
+                ) {
                     v.startAnimation(getScaleAnimation())
                 }
             }
@@ -191,14 +208,66 @@ class PaidActivity : BaseMVVMActivity<ActivityPaidBinding, PaidViewModel>(),
                             mContext
                         )
                     }
+                } else if (v.id == R.id.btnCancleOrder) {
+                    showTipsDialog(id)
+                } else if (v.id == R.id.btnContactDoctor) {
+                    payOrder()
+                } else if (v.id == R.id.btnConnection) {
+
                 }
             }
             MotionEvent.ACTION_CANCEL -> {
-                if (v.id == R.id.backLayout || v.id == R.id.doctorLayout) {
+                if (v.id == R.id.backLayout || v.id == R.id.doctorLayout || v.id == R.id.btnCancleOrder ||
+                    v.id == R.id.btnContactDoctor || v.id == R.id.btnConnection
+                ) {
                     v.startAnimation(getEndAnimation())
                 }
             }
         }
         return true
     }
+
+    /**
+     * 取消订单
+     */
+    private fun cancelConsultation(id: String) {
+        viewModel.cancelConsultation(id, fail = {
+            it.toast()
+        }, success = {
+            getMedicalConsultationDetail()
+        })
+    }
+
+    private fun showTipsDialog(id: String) {
+        TipsDialog.TipDialogBuilder()
+            .title("提示")
+            .content("是否取消该笔订单")
+            .leftBtnText("取消")
+            .rightBtnText("确定")
+            .leftClick({
+            }, true)
+            .rightClick({
+                cancelConsultation(id)
+            }, true)
+            .show(supportFragmentManager)
+    }
+
+    /**
+     * 支付订单
+     */
+    private fun payOrder() {
+        val purchaseConsultationBean = PurchaseConsultationBean()
+        purchaseConsultationBean.let {
+            it.remark = remark
+            it.sysUserId = doctorId
+            it.sickTime = sickTime
+            it.images = images
+            it.isConsultation = isConsultation
+        }
+        ARouter.getInstance().build(RouterUrlCommon.payment)
+            .withString("id", doctorId)
+            .withSerializable("purchaseConsultationBean", purchaseConsultationBean)
+            .withTransition(R.anim.leftin, R.anim.leftout)
+            .navigation(mContext)
+    }
 }

+ 15 - 0
healthconsultation/src/main/java/com/yingyang/healthconsultation/paid/PaidViewModel.kt

@@ -42,4 +42,19 @@ class PaidViewModel : BaseViewModel() {
         success,
         fail
     )
+
+    fun cancelConsultation(
+        consultationId: String,
+        fail: ((msg: String) -> Unit)? = null,
+        success: ((success: String?) -> Unit)? = null,
+    ) = launchFlow(true) {
+        val requestBean = GetDoctorDetailsBean().apply {
+            id = consultationId
+        }
+        val body = XUtils.createJson(GsonUtil.GsonString(requestBean))
+        HEALTHCONSULTATION_API.cancelConsultation(body)
+    }.runUI(
+        success,
+        fail
+    )
 }

+ 38 - 28
healthconsultation/src/main/res/layout/activity_paid.xml

@@ -396,47 +396,57 @@
 
                     </androidx.constraintlayout.widget.ConstraintLayout>
 
-                    <androidx.appcompat.widget.AppCompatButton
-                        android:id="@+id/btnCancleOrder"
-                        android:layout_width="@dimen/divider_240px"
-                        android:layout_height="@dimen/divider_68px"
-                        android:layout_marginStart="@dimen/divider_328px"
-                        android:layout_marginTop="@dimen/divider_78px"
-                        android:background="@drawable/bg_cancel_order"
-                        android:gravity="center"
-                        android:text="@string/cancellation_of_order"
-                        android:textColor="@color/color_FF4A76FF"
-                        android:textSize="@dimen/divider_28px"
+                    <androidx.constraintlayout.widget.ConstraintLayout
+                        android:id="@+id/orderBtnLayout"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        app:layout_constraintEnd_toEndOf="parent"
                         app:layout_constraintStart_toStartOf="parent"
-                        app:layout_constraintTop_toBottomOf="@+id/orderLayout" />
+                        app:layout_constraintTop_toBottomOf="@+id/orderLayout">
+
+                        <androidx.appcompat.widget.AppCompatButton
+                            android:id="@+id/btnCancleOrder"
+                            android:layout_width="@dimen/divider_240px"
+                            android:layout_height="@dimen/divider_68px"
+                            android:layout_marginStart="@dimen/divider_328px"
+                            android:layout_marginTop="@dimen/divider_78px"
+                            android:background="@drawable/bg_cancel_order"
+                            android:gravity="center"
+                            android:text="@string/cancellation_of_order"
+                            android:textColor="@color/color_FF4A76FF"
+                            android:textSize="@dimen/divider_28px"
+                            app:layout_constraintStart_toStartOf="parent"
+                            app:layout_constraintTop_toTopOf="parent" />
+
+                        <androidx.appcompat.widget.AppCompatButton
+                            android:id="@+id/btnContactDoctor"
+                            android:layout_width="@dimen/divider_240px"
+                            android:layout_height="@dimen/divider_68px"
+                            android:layout_marginStart="@dimen/divider_58px"
+                            android:layout_marginTop="@dimen/divider_78px"
+                            android:background="@drawable/bg_contact_doctor"
+                            android:gravity="center"
+                            android:text="@string/contact_doctor"
+                            android:textColor="@android:color/white"
+                            android:textSize="@dimen/divider_28px"
+                            app:layout_constraintStart_toEndOf="@+id/btnCancleOrder"
+                            app:layout_constraintTop_toTopOf="parent" />
+
+                    </androidx.constraintlayout.widget.ConstraintLayout>
 
                     <androidx.appcompat.widget.AppCompatButton
-                        android:id="@+id/btnContactDoctor"
+                        android:id="@+id/btnConnection"
                         android:layout_width="@dimen/divider_240px"
                         android:layout_height="@dimen/divider_68px"
-                        android:layout_marginStart="@dimen/divider_58px"
                         android:layout_marginTop="@dimen/divider_78px"
                         android:background="@drawable/bg_contact_doctor"
                         android:gravity="center"
                         android:text="@string/contact_doctor"
                         android:textColor="@android:color/white"
                         android:textSize="@dimen/divider_28px"
-                        app:layout_constraintStart_toEndOf="@+id/btnCancleOrder"
-                        app:layout_constraintTop_toBottomOf="@+id/orderLayout" />
-
-                    <androidx.appcompat.widget.AppCompatButton
-                        android:id="@+id/btnConnection"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:background="@drawable/bg_contact_doctor"
-                        android:gravity="center"
-                        android:text="@string/contact_doctor"
-                        android:layout_marginTop="@dimen/divider_78px"
-                        android:textColor="@android:color/white"
-                        android:textSize="@dimen/divider_28px"
                         app:layout_constraintEnd_toEndOf="parent"
                         app:layout_constraintStart_toStartOf="parent"
-                        app:layout_constraintTop_toBottomOf="@+id/btnCancleOrder" />
+                        app:layout_constraintTop_toBottomOf="@+id/orderBtnLayout" />
 
                 </androidx.constraintlayout.widget.ConstraintLayout>
             </com.google.android.material.card.MaterialCardView>