Procházet zdrojové kódy

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

王鹏鹏 před 2 roky
rodič
revize
98dfae361e

+ 4 - 4
healthconsultation/src/main/java/com/yingyang/healthconsultation/adapter/ConsultationRecordAdapter.kt

@@ -15,9 +15,9 @@ import com.yingyangfly.baselib.ext.timeFormat
 class ConsultationRecordAdapter(override val layoutId: Int = R.layout.item_consultation_record) :
     BaseDataBindingAdapter<ConsultationRecordsBean, ItemConsultationRecordBinding>() {
 
-    var onLeftClickListener: ((bean: ConsultationRecordsBean) -> Unit)? = null
+    var onLeftClickListener: ((bean: ConsultationRecordsBean, position: Int) -> Unit)? = null
 
-    var onRightClickListener: ((bean: ConsultationRecordsBean) -> Unit)? = null
+    var onRightClickListener: ((bean: ConsultationRecordsBean, position: Int) -> Unit)? = null
 
     var onClickListener: ((bean: ConsultationRecordsBean) -> Unit)? = null
 
@@ -91,11 +91,11 @@ class ConsultationRecordAdapter(override val layoutId: Int = R.layout.item_consu
         }
 
         binding.btnEvaluate.setOnSingleClickListener {
-            onLeftClickListener?.invoke(item)
+            onLeftClickListener?.invoke(item, position)
         }
 
         binding.btnRecord.setOnSingleClickListener {
-            onRightClickListener?.invoke(item)
+            onRightClickListener?.invoke(item, position)
         }
 
         binding.consultationRecordLayout.setOnSingleClickListener {

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

@@ -24,7 +24,7 @@ data class ConsultationRecordsBean(
     val reason: String,//拒诊原因
     val remark: String,//病情描述
     val sickTime: String,//患病时间
-    val status: String,//状态 0未支付 1待接诊 2接诊中 3已拒诊 4已完成 5已取消
+    var status: String,//状态 0未支付 1待接诊 2接诊中 3已拒诊 4已完成 5已取消
     val sysUserId: String,//医生id
     val sysUserName: String,//	医生姓名
     val updateBy: String,//更新人

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

@@ -0,0 +1,30 @@
+package com.yingyang.healthconsultation.entity
+
+/**
+ * 咨询订单详情
+ */
+data class MedicalConsultationDetailBean(
+    val appUserAge: String,
+    val appUserId: String,
+    val appUserName: String,
+    val appUserSex: String,
+    val createBy: String,
+    val createTime: String,
+    val finishTime: String,
+    val id: String,
+    val images: String,
+    val isConsultation: String,
+    val orgCode: String,
+    val orgName: String,
+    val payMethod: String,
+    val payOrder: String,
+    val price: String,
+    val reason: String,
+    val remark: String,
+    val sickTime: String,
+    val status: String,
+    val sysUserId: String,
+    val sysUserName: String,
+    val updateBy: String,
+    val updateTime: String
+)

+ 7 - 0
healthconsultation/src/main/java/com/yingyang/healthconsultation/net/HealthConsultationApiService.kt

@@ -2,6 +2,7 @@ package com.yingyang.healthconsultation.net
 
 import com.yingyang.healthconsultation.entity.ConsultationRecordsBean
 import com.yingyang.healthconsultation.entity.EvaluateRecordsBean
+import com.yingyang.healthconsultation.entity.MedicalConsultationDetailBean
 import com.yingyang.healthconsultation.entity.UserInfoBean
 import com.yingyangfly.baselib.bean.PayImageBean
 import com.yingyangfly.baselib.db.DoctorBean
@@ -84,4 +85,10 @@ interface HealthConsultationApiService {
      */
     @POST("medical_consultation/cancel")
     suspend fun cancelConsultation(@Body requestBody: RequestBody): BaseResp<String>
+
+    /**
+     * 咨询详情
+     */
+    @POST("medical_consultation/detail")
+    suspend fun getMedicalConsultationDetail(@Body requestBody: RequestBody): BaseResp<MedicalConsultationDetailBean>
 }

+ 28 - 13
healthconsultation/src/main/java/com/yingyang/healthconsultation/record/ConsultationRecordActivity.kt

@@ -10,7 +10,6 @@ import com.yingyang.healthconsultation.adapter.ConsultationRecordAdapter
 import com.yingyang.healthconsultation.databinding.ActivityConsultationRecordBinding
 import com.yingyang.healthconsultation.entity.ConsultationRecordsBean
 import com.yingyang.healthconsultation.entity.PurchaseConsultationBean
-import com.yingyangfly.baselib.db.DoctorBean
 import com.yingyangfly.baselib.dialog.TipsDialog
 import com.yingyangfly.baselib.ext.getEndAnimation
 import com.yingyangfly.baselib.ext.getScaleAnimation
@@ -35,11 +34,11 @@ class ConsultationRecordActivity :
         binding {
             rvRecord.adapter = adapter
             adapter.setData(records)
-            adapter.onLeftClickListener = {
-                when (it.status) {
+            adapter.onLeftClickListener = { bean, position ->
+                when (bean.status) {
                     "0" -> {
                         //0未支付
-                        showTipsDialog(it.id)
+                        showTipsDialog(bean.id, position)
                     }
                     "1" -> {
                         //1待接诊
@@ -60,15 +59,15 @@ class ConsultationRecordActivity :
                 }
             }
 
-            adapter.onRightClickListener = {
-                when (it.status) {
+            adapter.onRightClickListener = { bean, position ->
+                when (bean.status) {
                     "0" -> {
                         //0未支付
-                        payOrder(it)
+                        payOrder(bean, position)
                     }
                     "1" -> {
                         //1待接诊
-                        showTipsDialog(it.id)
+                        showTipsDialog(bean.id, position)
                     }
                     "2" -> {
                         //2接诊中
@@ -94,15 +93,31 @@ class ConsultationRecordActivity :
     /**
      * 取消订单
      */
-    private fun cancleOrder(id: String) {
+    private fun cancleOrder(id: String, position: Int) {
         viewModel.cancelConsultation(id, fail = {
             it.toast()
         }, success = {
-            loadData()
+            getMedicalConsultationDetail(id, position)
         })
     }
 
-    private fun showTipsDialog(id: String) {
+    /**
+     * 获取咨询详情
+     */
+    private fun getMedicalConsultationDetail(id: String, position: Int) {
+        viewModel.getMedicalConsultationDetail(id, fail = {
+            it.toast()
+        }, success = {
+            if (it != null) {
+                if (adapter.data.isNullOrEmpty().not()) {
+                    adapter.data[position].status = it.status
+                    adapter.notifyItemChanged(position)
+                }
+            }
+        })
+    }
+
+    private fun showTipsDialog(id: String, position: Int) {
         TipsDialog.TipDialogBuilder()
             .title("提示")
             .content("是否取消该笔订单")
@@ -111,7 +126,7 @@ class ConsultationRecordActivity :
             .leftClick({
             }, true)
             .rightClick({
-                cancleOrder(id)
+                cancleOrder(id, position)
             }, true)
             .show(supportFragmentManager)
     }
@@ -135,7 +150,7 @@ class ConsultationRecordActivity :
     /**
      * 支付订单
      */
-    private fun payOrder(bean: ConsultationRecordsBean) {
+    private fun payOrder(bean: ConsultationRecordsBean, position: Int) {
         val purchaseConsultationBean = PurchaseConsultationBean()
         purchaseConsultationBean.let {
             it.remark = bean.remark

+ 16 - 0
healthconsultation/src/main/java/com/yingyang/healthconsultation/record/ConsultationRecordViewModel.kt

@@ -2,6 +2,7 @@ package com.yingyang.healthconsultation.record
 
 import com.yingyang.healthconsultation.entity.ConsultationRecordsBean
 import com.yingyang.healthconsultation.entity.GetDoctorDetailsBean
+import com.yingyang.healthconsultation.entity.MedicalConsultationDetailBean
 import com.yingyang.healthconsultation.net.HEALTHCONSULTATION_API
 import com.yingyangfly.baselib.mvvm.BaseViewModel
 import com.yingyangfly.baselib.net.XUtils
@@ -36,4 +37,19 @@ class ConsultationRecordViewModel : BaseViewModel() {
         success,
         fail
     )
+
+    fun getMedicalConsultationDetail(
+        consultationId: String,
+        fail: ((msg: String) -> Unit)? = null,
+        success: ((success: MedicalConsultationDetailBean?) -> Unit)? = null,
+    ) = launchFlow(true) {
+        val requestBean = GetDoctorDetailsBean().apply {
+            id = consultationId
+        }
+        val body = XUtils.createJson(GsonUtil.GsonString(requestBean))
+        HEALTHCONSULTATION_API.getMedicalConsultationDetail(body)
+    }.runUI(
+        success,
+        fail
+    )
 }