package com.dollearn.student.ui.course
|
|
import android.annotation.SuppressLint
|
import android.graphics.Color
|
import android.os.CountDownTimer
|
import android.view.View
|
import androidx.core.os.bundleOf
|
import cn.sinata.xldutils.callPhone
|
import cn.sinata.xldutils.gone
|
import cn.sinata.xldutils.utils.myToast
|
import cn.sinata.xldutils.utils.parserTime
|
import cn.sinata.xldutils.utils.showAllowingStateLoss
|
import cn.sinata.xldutils.utils.toTime
|
import cn.sinata.xldutils.visible
|
import com.google.gson.Gson
|
import com.dollearn.student.R
|
import com.dollearn.student.dialog.PayDialog
|
import com.dollearn.student.dialog.TipDialog
|
import com.dollearn.student.network.HttpManager
|
import com.dollearn.student.network.entity.Duration
|
import com.dollearn.student.network.entity.MySite
|
import com.dollearn.student.network.entity.Place
|
import com.dollearn.student.network.entity.QrBean
|
import com.dollearn.student.network.request
|
import com.dollearn.student.ui.TransparentStatusBarActivity
|
import com.dollearn.student.utils.Const
|
import com.dollearn.student.utils.event.EmptyEvent
|
import com.dollearn.student.utils.event.InfoEvent
|
import com.dollearn.student.utils.extention.clickDelay
|
import com.dollearn.student.utils.getQRcodeImg
|
import com.dollearn.student.utils.interfaces.StringCallback
|
import com.dollearn.student.utils.pay.PayUtil
|
import kotlinx.android.synthetic.main.my_reservatiion_layout.*
|
import org.greenrobot.eventbus.EventBus
|
|
class MyReservationActivity : TransparentStatusBarActivity() {
|
private val orderId by lazy { intent.getStringExtra("id")?:"" }
|
|
private var order: MySite? = null
|
|
private var timer: CountDownTimer? = null //入场倒计时
|
|
override fun setContentView(): Int {
|
return R.layout.my_reservatiion_layout
|
}
|
|
override fun initClick() {
|
tv_cancel.clickDelay {
|
val tipDialog = TipDialog()
|
tipDialog.arguments = bundleOf("msg" to "确认取消本次预约吗?")
|
tipDialog.setCallback(object : TipDialog.OnClickCallback {
|
override fun onOk() {
|
HttpManager.cancelMySite(orderId)
|
.request(this@MyReservationActivity) { _, data ->
|
myToast("取消成功")
|
EventBus.getDefault().post(
|
InfoEvent(
|
Const.EventCode.CHANGE_CANCEL_SUCCESS,
|
orderId
|
)
|
)
|
tipDialog.dismiss()
|
finish()
|
}
|
}
|
|
override fun onCancel() {
|
}
|
})
|
tipDialog.showAllowingStateLoss(supportFragmentManager, "cancel")
|
}
|
tv_pay.clickDelay {
|
if (order!=null){
|
PayDialog.show(supportFragmentManager, false, object : StringCallback {
|
override fun onResult(rst: String) {
|
pay(orderId, rst.toInt())
|
}
|
},
|
// if (order?.data?.payType == 3) null else
|
order!!.data.payMoney,
|
// if (order?.data?.payType == 3)
|
order!!.data.payMoney.toInt()
|
// else null
|
)
|
}
|
}
|
}
|
|
private fun pay(id: String, payType: Int) {
|
HttpManager.continuePaymentMySite(id, payType).request(this, success = { _, data ->
|
if (payType == 2) {
|
PayUtil.aliPay(this@MyReservationActivity, data?.orderInfo ?: "")
|
} else if (payType == 3) {
|
EventBus.getDefault().post(EmptyEvent(Const.EventCode.CHANGE_PAY_SUCCESS))
|
finish()
|
} else {
|
PayUtil.weChatPay(data!!)
|
}
|
}) { _, msg ->
|
}
|
}
|
|
@SuppressLint("SetTextI18n")
|
override fun initView() {
|
HttpManager.queryMySiteById(orderId).request(this@MyReservationActivity) { _, data ->
|
order = data
|
data?.data?.let {
|
mtvName.text = data.name
|
mtvTag.text = data.siteType
|
mtvAdr.text = "${data.shopName}(${data.shopAddress})"
|
val duration = listOf(Duration(it.startTime/1000, it.endTime/1000))
|
val qrBean = QrBean(it.sid, it.rid, it.appUserId, duration)
|
iv_qr.setImageBitmap(
|
getQRcodeImg(
|
this@MyReservationActivity,
|
Gson().toJson(qrBean)
|
)
|
)
|
form5.setInfo(it.phone)
|
if (it.nextName.isNullOrEmpty())
|
form1.gone()
|
else
|
form1.setInfo(it.nextName ?: "")
|
form4.setInfo(it.booker)
|
form6.setInfo(if (it.payType == 3) "%d币".format(it.payMoney.toInt()) else "¥${it.payMoney}")
|
form7.setInfo(it.times)
|
|
ll_qr.visibility =
|
if (it.goType == 0) View.VISIBLE else View.GONE //goType 0默认 1手环
|
form8.setInfo(it.payTime.toTime("yyyy-MM-dd HH:mm"))
|
if (it.isHalf == 2) {
|
form2.setInfo("全场")
|
form3.gone()
|
} else {
|
form2.setInfo("半场")
|
form3.visible()
|
form3.setInfo(it.halfName ?: "")
|
}
|
vcall.clickDelay {
|
callPhone(it.storePhone)
|
}
|
when (it.status) { //0=待支付,1=待核销,2=已核销,3=已完成,4=已过期,5=已取消
|
0 -> {
|
form8.setInfo("待支付")
|
form8.setInfoColor(Color.parseColor("#F44444"))
|
form9.setInfoColor(Color.parseColor("#F44444"))
|
form9.setInfo("待支付")
|
form10.gone()
|
tv_tishi.gone()
|
ll_qr.gone()
|
}
|
1 -> {
|
form9.setInfo("待核销")
|
tv_pay.gone()
|
val offset = it.startTime - System.currentTimeMillis()
|
if (offset > 0) {
|
tv_timer.visible()
|
timer = object : CountDownTimer(offset, 1000) {
|
override fun onTick(millisUntilFinished: Long) {
|
tv_timer.text = "距可入场时间:${
|
if (millisUntilFinished>24*60*60*1000){
|
"%d天%d小时%d分%d秒".format(millisUntilFinished/(24*60*60*1000),millisUntilFinished%(24*60*60*1000)/(60*60*1000),millisUntilFinished/1000/60%60,millisUntilFinished/1000%60)
|
}else if (millisUntilFinished>60*60*1000){
|
"%d小时%d分%d秒".format(millisUntilFinished/(60*60*1000),millisUntilFinished/1000/60%60,millisUntilFinished/1000%60)
|
}else{
|
"%d分%d秒".format(millisUntilFinished/1000/60,millisUntilFinished/1000%60)
|
}
|
}"
|
}
|
|
override fun onFinish() {
|
tv_timer.gone()
|
}
|
}
|
timer?.start()
|
}
|
}
|
2 -> {
|
form9.setInfo("已核销")
|
rlbottomm.gone()
|
}
|
3 -> {
|
form9.setInfo("已完成")
|
rlbottomm.gone()
|
}
|
4 -> {
|
form9.setInfo("已过期")
|
rlbottomm.gone()
|
ll_qr.gone()
|
}
|
5 -> {
|
form9.setInfo("已取消")
|
form8.gone()
|
rlbottomm.gone()
|
ll_qr.gone()
|
}
|
|
}
|
}
|
}
|
|
}
|
|
override fun onDestroy() {
|
super.onDestroy()
|
timer?.cancel()
|
}
|
}
|