package com.fuban.driver.ui.main import android.os.Looper import android.view.View import cn.sinata.xldutils.utils.clickDelay import cn.sinata.xldutils.utils.doubleOne import cn.sinata.xldutils.utils.gone import cn.sinata.xldutils.utils.visible import com.fuban.driver.R import com.fuban.driver.base.BaseEvent import com.fuban.driver.base.MyApplication import com.fuban.driver.base.MyBaseActivity import com.fuban.driver.bean.OrderBean import com.fuban.driver.bean.OrderSimpleData import com.fuban.driver.netUtls.Api import com.fuban.driver.netUtls.callNet import com.fuban.driver.netUtls.getMapByAny import com.fuban.driver.ui.main.major.MajorMoneyDetailActivity import com.fuban.driver.utils.MyUtils import com.google.gson.Gson import kotlinx.android.synthetic.main.activity_order_cancel.* import kotlinx.android.synthetic.main.activity_order_over.* import kotlinx.android.synthetic.main.include_order_money.* import kotlinx.android.synthetic.main.include_order_top.* import org.greenrobot.eventbus.EventBus import org.jetbrains.anko.startActivity class OrderOverActivity : MyBaseActivity() { val orderType by lazy { intent.getStringExtra("orderType") } val orderId by lazy { intent.getStringExtra("orderId") } lateinit var orderBean: OrderBean override fun setContentView() { setContentView(R.layout.activity_order_over) ll_order_cancel.gone() MyApplication.currentOrderType = "" MyApplication.currentOrderId = "" ll_pay_result.gone() tv_show_pay_over.gone() } override fun initView() { var map = getMapByAny() map["orderId"] = orderId map["orderType"] = orderType callNet(Api.queryOrderInfo, map) { orderBean = gson.fromJson(it, OrderBean::class.java) showUi(orderBean) } } private fun showUi(orderBean: OrderBean?) { orderBean?.let { tv_name.text = it.data.nickName tv_car_num.text = it.data.historyNum.toString() + "次乘车" iv_phone.visible() iv_phone.clickDelay { MyUtils.getInstans().CallPhone(this, it.data.phone.toString()) } tv_time.text = it.data.travelTime tv_start_address.text = it.data.startAddress tv_end_address.text = it.data.endAddress tv_end_address.visibility = if (it.data.endAddress.isNullOrEmpty()) View.GONE else View.VISIBLE tv_red_money.text = it.data.tipMoney.toString() + "元红包" if(orderType == "1"){ tv_red_money.gone() } when (orderBean.data.orderState) { 10, 11 -> { ll_order_cancel.visible() setTitleText("已取消") iv_phone.gone() tv_cancel_to.text = it.data.cancelUser tv_cancel_money.text = doubleOne(it.data.cancelPayMoney) + "元" tv_cancel_result.text = it.data.cancelReason tv_cancel_s.text = it.data.cancelRemark if (it.data.cancelRemark.isNullOrEmpty()){ tv_cancel_s.text = "无" } } 6, 7 -> { if (it.data.payManner == 2) { tv_show_pay_over.visible() setTitleText("已完成") } else { addSocketLisener() showPayResultText(it, it.data.orderState) } } 8, 9 -> { if (it.data.payManner == 2) { tv_show_pay_over.visible() setTitleText("已完成") } else { showPayResultText(it, it.data.orderState) } } } } } private fun addSocketLisener() { MyApplication.addOrderView(listener) // if (handler == null) { // handler = android.os.Handler(mainLooper) // handler!!.postDelayed({ // checkOrderStatue() // }, 3000) // } } private val listener= object : MyApplication.OrderStatueView { override fun orderInfo(data: OrderSimpleData?) { data?.let { if (it.status == 8) { android.os.Handler(Looper.getMainLooper()).post { orderBean.data.orderState = 8 showUi(orderBean) } } } } } var handler: android.os.Handler? = null fun checkOrderStatue() { var map = getMapByAny() map["orderId"] = orderId map["orderType"] = orderType callNet(false, Api.orderStateSocket, map) { val orderSimpleData = Gson().fromJson( it, OrderSimpleData::class.java ) orderSimpleData?.let { if (orderSimpleData.status == 8) { orderBean.data.orderState = 8 showUi(orderBean) } } } handler?.postDelayed({ checkOrderStatue() }, 3000) } override fun onDestroy() { super.onDestroy() handler?.removeCallbacksAndMessages(null) MyApplication.removeOrderView(listener) } fun showPayResultText(it: OrderBean, statue: Int) { ll_pay_result.visible() if (statue in 6..7) { tv_pay_result_title.text = "待乘客支付" setTitleText("待支付") } else { tv_pay_result_title.text = "乘客已支付" setTitleText("已完成") } tv_pay_result_money.text = "¥" + it.data.orderMoney.toString() when (orderType) { "2" -> { tv_pay_result_small_money.text = "其中含红包费用:¥" + it.data.tipMoney.toString() } "1" -> { tv_pay_result_small_money.text = "查看收费明细" tv_pay_result_small_money.clickDelay { startActivity( "orderId" to orderId, "orderType" to orderType ) } } } } override fun onBackPressed() { super.onBackPressed() EventBus.getDefault().post(BaseEvent(BaseEvent.CALL_NUM_MAIN)) EventBus.getDefault().post(BaseEvent(BaseEvent.BACK_CAR_OVER)) } override fun setOnclick() { } }