lmw
2024-06-17 f571288a24fcf10143dcc8015ffbbf38dbc0c614
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
package com.dollearn.student.ui.course
 
import android.annotation.SuppressLint
import android.graphics.Paint
import android.view.View
import cn.sinata.xldutils.gone
import cn.sinata.xldutils.utils.*
import cn.sinata.xldutils.visible
import com.dollearn.student.R
import com.dollearn.student.WeparkApplication
import com.dollearn.student.dialog.MapTypeDialog
import com.dollearn.student.network.HttpManager
import com.dollearn.student.network.entity.Banner
import com.dollearn.student.network.entity.Course
import com.dollearn.student.network.request
import com.dollearn.student.ui.TransparentStatusBarActivity
import com.dollearn.student.ui.home.adapter.HomeBannerAdapter
import com.dollearn.student.utils.Const
import com.dollearn.student.utils.ThirdPartyMapsGuide
import com.dollearn.student.utils.event.EmptyEvent
import com.dollearn.student.utils.extention.clickDelay
import com.dollearn.student.utils.extention.loadLongImage
import com.dollearn.student.utils.interfaces.StringCallback
import kotlinx.android.synthetic.main.activity_course_deatil.*
import kotlinx.android.synthetic.main.dialog_pay.*
import org.greenrobot.eventbus.EventBus
import org.greenrobot.eventbus.Subscribe
import org.jetbrains.anko.startActivity
import org.jetbrains.anko.textColorResource
 
class CourseDetailActivity : TransparentStatusBarActivity() {
    override fun setContentView() = R.layout.activity_course_deatil
 
    private val id by lazy { intent.getStringExtra("id")?:"" }
 
    private var course: Course? = null
 
    private val bannerImg = arrayListOf<Banner>()
    private val bannerAdapter by lazy {
        HomeBannerAdapter(bannerImg, this)
    }
 
    override fun initClick() {
        tv_address.clickDelay {
            course?.let {
                if (it.lat.isNotEmpty()){
                    val mapTypeDialog = MapTypeDialog()
                    mapTypeDialog.callback = object : StringCallback {
                        override fun onResult(rst: String) {
                            if(rst == "b"){
                                ThirdPartyMapsGuide.goToBaiduActivity(this@CourseDetailActivity,it.storeName,it.lon.toDouble(),it.lat.toDouble())
                            }else if (rst == "a"){
                                ThirdPartyMapsGuide.goToGaoDeMap(this@CourseDetailActivity,it.storeName,it.lon,it.lat)
                            }else{
                                ThirdPartyMapsGuide.goToTencentMap(this@CourseDetailActivity,it.storeName,it.lon.toDouble(),it.lat.toDouble())
                            }
                        }
                    }
                    mapTypeDialog.showAllowingStateLoss(supportFragmentManager,"map")
                }
 
            }
        }
        tv_action.clickDelay {
            if (course != null)
                startActivity<JoinCourseActivity>("course" to course)
        }
    }
 
    override fun initView() {
        banner.adapter = bannerAdapter
        getDetail()
        EventBus.getDefault().register(this)
    }
 
    @Subscribe
    fun onSwitch(e: EmptyEvent) {
 
    }
 
    override fun onDestroy() {
        super.onDestroy()
        EventBus.getDefault().unregister(this)
    }
 
    @SuppressLint("SetTextI18n")
    private fun getDetail() {
        HttpManager.queryCourseInfo(id, WeparkApplication.lat, WeparkApplication.lon)
            .request(this) { _, data ->
                course = data
                data?.apply {
                    val tag = type?.let {
                        when (it) {
                            1 -> {
                                mll_class_yxq.gone()
                                "常规班"
                            }
                            2 -> {
                                //ll_bottom.gone()
                                mll_class_yxq.visible()
                                mtv_class_yxq.text = time
                                "假期班"
                            }
                            3 -> {
                                //ll_bottom.gone()
                                class_time.gone()
                                mll_class_yxq.visible()
                                mtv_class_yxq.text = "购买当天有效"
                                "体验班"
                            }
                            else -> ""
                        }
                    }
                    mtvtag.visibility = if (tag.isNullOrEmpty()) View.GONE else View.VISIBLE
                    mtvtag.text = tag
                    bannerImg.addAll(detailDrawing.split(",").map { Banner(url = it) })
                    bannerAdapter.notifyDataSetChanged()
                    banner.currentItem = 1
                    tv_name.text = name
                    tv_address.text = "${storeName}(${storeAddress})"
                    tv_distance.text = "距离我${distance}km"
                    tv_week.text = "毎${weeks.joinToString("、") { it }}"
                    times?.let {
                        tv_time.text = times.joinToString(" | ")
                    }
                    if (!introduceDrawing.isNullOrEmpty()) {
                        introduceDrawing.loadLongImage(this@CourseDetailActivity,iv_introduction)
                    }
                    list.firstOrNull()?.apply {
                        //1.是否有玩湃币价格 —— 独立判断
                        if (playPaiCoin == 0)
                            tv_coin_price.gone()
                        else
                            tv_coin_price.text = SpanBuilder("玩湃币:%d币".format(playPaiCoin))
                                .color(this@CourseDetailActivity, 0, 4, R.color.textColor)
                                .build()
                        //2.支付价 —— 独立判断
                        if (paymentPrice == 0.0||paymentPrice==null){ //没有支付价
                            tv_price.gone()
                            tv_vip_price.gone()
                        } else{ //有支付价,显示支付价,并判断是否有会员价或划线价
                            tv_price.text = "¥%s".format(paymentPrice.toString())
                            //3.会员价或划线价
                            if (paymentPrice <= vipPrice?:0.0){ //a.支付价==会员价,说明我是会员,展示划线价; b.支付价小于会员价,说明是折扣价,展示划线价
                                if (originalPrice?:0.0!=0.0&&originalPrice!=paymentPrice){ //有划线价且划线价不等于支付价,才显示划线价
                                    tv_vip_price.text = "¥%s".format(originalPrice.toString())
                                    tv_vip_price.textColorResource = R.color.textColor66
                                    tv_vip_price.paintFlags = tv_vip_price.paintFlags or Paint.STRIKE_THRU_TEXT_FLAG
                                }else //否则啥也不展示
                                    tv_vip_price.gone()
                            }else if (vipPrice?:0.0 != 0.0){
                                tv_vip_price.text =
                                    SpanBuilder("会员价:¥%s".format(vipPrice.toString())).color(
                                        this@CourseDetailActivity,
                                        0,
                                        4,
                                        R.color.textColor
                                    ).build()
                            }else
                                tv_vip_price.gone()
                        }
                    }
                }
            }
    }
 
}