lmw
2024-07-09 b13afc751dbbce24753d008f1f87d2c5e133a4ad
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
package com.dollearn.student.ui.shop
 
import android.content.Intent
import androidx.core.os.bundleOf
import cn.sinata.xldutils.utils.myToast
import cn.sinata.xldutils.visible
import com.dollearn.student.R
import com.dollearn.student.dialog.TipDialog
import com.dollearn.student.network.HttpManager
import com.dollearn.student.network.entity.GoodsOrder
import com.dollearn.student.network.entity.Recipient
import com.dollearn.student.network.request
import com.dollearn.student.ui.TransparentStatusBarActivity
import com.dollearn.student.ui.home.PayResultActivity
import com.dollearn.student.ui.mine.AddressManageActivity
import com.dollearn.student.ui.mine.ChangeAddressActivity
import com.dollearn.student.utils.Const
import com.dollearn.student.utils.event.EmptyEvent
import kotlinx.android.synthetic.main.activity_exchange.*
import org.greenrobot.eventbus.EventBus
import org.jetbrains.anko.startActivity
import org.jetbrains.anko.startActivityForResult
 
class ExchangeActivity:TransparentStatusBarActivity() {
    override fun setContentView() = R.layout.activity_exchange
 
    private val order by lazy {
        intent.getParcelableExtra<GoodsOrder>("order")
    }
 
    private var count = 1
    private var recipient:Recipient? = null
 
    override fun initClick() {
        iv_add.setOnClickListener {
            tv_count.text = (++count).toString()
            iv_jian.setImageResource(R.mipmap.ic_j)
            tv_goods_count.text = count.toString()
            refreshScore()
        }
        iv_jian.setOnClickListener {
            if (count != 1){
                tv_count.text = (--count).toString()
                tv_goods_count.text = count.toString()
                refreshScore()
                if (count == 1)
                    iv_jian.setImageResource(R.mipmap.ic_j_hui)
            }
        }
 
        cl_address.setOnClickListener {
            startActivityForResult<AddressManageActivity>(2,"canChoose" to true)
        }
 
        tv_action.setOnClickListener {
            if (recipient?.id.isNullOrEmpty()){
                myToast("请填写收件人信息")
                return@setOnClickListener
            }
            val tipDialog = TipDialog()
            tipDialog.arguments = bundleOf("msg" to "确认兑换当前商品吗?")
            tipDialog.setCallback(object :TipDialog.OnClickCallback{
                override fun onOk() {
                    HttpManager.goodExchangeStudy(order!!.good.id,count,order!!.orderNumber,recipient?.id?:"",et_remark.text.toString()).request(this@ExchangeActivity,success = {_,_->
                        EventBus.getDefault().post(EmptyEvent(Const.EventCode.SCORE_CHANGED))
                        startActivity<PayResultActivity>("type" to PayResultActivity.TYPE_EXCHANGE_SUC)
                        finish()
                    }){_,msg->
                        startActivity<PayResultActivity>("type" to PayResultActivity.TYPE_EXCHANGE_FAILED,"msg" to msg)
                        finish()
                    }
                }
 
                override fun onCancel() {
                }
            })
            tipDialog.show(supportFragmentManager,"sure")
        }
    }
 
    private fun refreshScore(){
        tv_total_score.text = ((order?.good?.integral?:0)*count).toString()
        tv_score.text = tv_total_score.text
    }
 
    override fun initView() {
        order?.apply {
            this@ExchangeActivity.recipient = recipient
            iv_goods.setImageURI(good.coverImg)
            tv_name.text = good.name
            tv_price.text = "${good.integral}积分"
            tv_order_num.text = orderNumber
            tv_goods_count.text = "1"
            tv_total_score.text = good.integral.toString()
            tv_score.text = good.integral.toString()
            if (recipient?.id.isNullOrEmpty()){
                tv_empty.visible()
            }else{
                tv_address.text = recipient?.province+recipient?.city+recipient?.address
                tv_user.text = "%s | %s".format(recipient?.recipient,recipient?.recipientPhone)
            }
        }
    }
 
    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if (data!=null&&resultCode == RESULT_OK){
            if (requestCode == 2){
                recipient = data.getParcelableExtra("address")
                if (!recipient?.id.isNullOrEmpty()) {
                    tv_address.text = recipient?.province+recipient?.city+recipient?.address
                    tv_user.text = "%s | %s".format(recipient?.recipient,recipient?.recipientPhone)
                }
            }else{
                HttpManager.getOrderAddress().request(this){_,data->
                    recipient = data?.firstOrNull()
                    tv_address.text = recipient?.province+recipient?.city+recipient?.address
                    tv_user.text = "%s | %s".format(recipient?.recipient,recipient?.recipientPhone)
                }
            }
        }
    }
 
}