| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192 |
- package com.jld.vod.view
- import android.widget.Button
- import android.widget.ImageView
- import android.widget.TextView
- import androidx.lifecycle.ViewModelProvider
- import androidx.lifecycle.lifecycleScope
- import androidx.lifecycle.observe
- import androidx.recyclerview.widget.GridLayoutManager
- import androidx.recyclerview.widget.LinearLayoutManager
- import androidx.recyclerview.widget.RecyclerView
- import com.jld.kotilntest.room.adapter.OrderFoodAllAdapter
- import com.jld.kotilntest.room.adapter.OrderFoodItemAdapter
- import com.jld.vod.R
- import com.jld.vod.base.BaseActivity
- import com.jld.vod.model.bean.OrderFoodAllBean
- import com.jld.vod.model.bean.OrderFoodItemBean
- import com.jld.vod.utils.AppUtil
- import com.jld.vod.utils.LogUtils
- import com.jld.vod.utils.SharedPrefUtils
- import com.jld.vod.viewmodel.OrderFoodAllViewModel
- import kotlinx.coroutines.flow.collectLatest
- class OrderActivity : BaseActivity() {
- private lateinit var orderFoodAllViewModel: OrderFoodAllViewModel
- private lateinit var mGridRecyclerView: RecyclerView
- private lateinit var mListRecyclerView: RecyclerView
- private lateinit var iv_order_back:ImageView
- private lateinit var totalprice:TextView
- private lateinit var bt_sure_shopping:Button
- private lateinit var bt_my_order:Button
- private var mOrderFoodAllBean:OrderFoodAllBean?= null
- override fun getLayoutId(): Int {
- return R.layout.activity_order
- }
- override fun initView() {
- super.initView()
- mGridRecyclerView = findViewById(R.id.rl_order_grid)
- mListRecyclerView = findViewById(R.id.rl_order_list)
- iv_order_back = findViewById(R.id.iv_order_back)
- bt_sure_shopping = findViewById(R.id.bt_sure_shopping)
- totalprice = findViewById(R.id.totalprice)
- bt_my_order = findViewById(R.id.bt_my_order)
- //初始化viewmodel
- orderFoodAllViewModel = ViewModelProvider.AndroidViewModelFactory(application).create(OrderFoodAllViewModel::class.java)
- //商品列表
- val gridlayoutManager = GridLayoutManager(this, 3)
- mGridRecyclerView!!.layoutManager = gridlayoutManager
- val gridAdapter = OrderFoodAllAdapter()
- mGridRecyclerView!!.adapter = gridAdapter
- //购物车列表
- val listAdapter = OrderFoodItemAdapter()
- mListRecyclerView.setLayoutManager(LinearLayoutManager(this));
- mListRecyclerView!!.adapter = listAdapter
- lifecycleScope.launchWhenCreated {
- orderFoodAllViewModel.orderfooditemList
- .collectLatest { pagingData ->
- listAdapter.submitData(pagingData)
- }
- }
- //获取所有商品列表
- val lid = SharedPrefUtils.getString(this,"language_lid")
- val mid = SharedPrefUtils.getString(this,"RES_ORDER")
- LogUtils.logD("lid"+lid+"mid"+mid)
- if (lid != "" && mid !="") {
- lifecycleScope.launchWhenCreated {
- orderFoodAllViewModel.findOrderFoodAll(mid.toLong(), lid.toLong())
- .collectLatest { pagingData ->
- gridAdapter.submitData(pagingData)
- }
- }
- }
- orderFoodAllViewModel.sumPrice()//总价
- /**
- * 选择商品
- */
- gridAdapter.setOnOrderClickListener(object :OrderFoodAllAdapter.IOrderItemClickListener{
- override fun onItemClickListener(food: OrderFoodAllBean?) {
- if (food != null)
- {
- orderFoodAllViewModel.isAddShopping(food.oid)
- mOrderFoodAllBean = food
- }
- }
- })
- /**
- * 添加商品至购物车
- */
- orderFoodAllViewModel.isAdd.observe(this@OrderActivity){res->
- if (res!= null)
- {
- if (res == true)
- {
- orderFoodAllViewModel.updateAddoNum(mOrderFoodAllBean!!.oid,mOrderFoodAllBean!!.price.toFloat()!!)
- }else if(res == false)
- {
- val item = OrderFoodItemBean(0,mOrderFoodAllBean!!.createTime, mOrderFoodAllBean!!.createUser, mOrderFoodAllBean!!.delState, mOrderFoodAllBean!!.imgUrl,
- mOrderFoodAllBean!!.mid, mOrderFoodAllBean!!.oName, mOrderFoodAllBean!!.oid, mOrderFoodAllBean!!.price, mOrderFoodAllBean!!.updateTime,
- mOrderFoodAllBean!!.updateUser, mOrderFoodAllBean!!.userId,1,mOrderFoodAllBean!!.price)
- orderFoodAllViewModel.insertAll(item)
- }
- }
- }
- /**
- * 增加
- */
- listAdapter.setOnAddClickListener(object :OrderFoodItemAdapter.IAddItemClickListener{
- override fun onItemClickListener(oid: Long, price: String) {
- orderFoodAllViewModel.updateAddoNum(oid,price.toFloat())
- }
- })
- /**
- * 减少
- */
- listAdapter.setOnMinusClickListener(object :OrderFoodItemAdapter.IMinusItemClickListener{
- override fun onItemClickListener(oid: Long, price: String) {
- orderFoodAllViewModel.updateoMinusNum(oid,price.toFloat())
- }
- })
- /**
- * 总价展示
- */
- orderFoodAllViewModel.sumTotalPrice.observe(this@OrderActivity){res->
- totalprice.setText(getString(R.string.totalprice)+": $"+res)
- }
- /**
- * 确认购买
- */
- bt_sure_shopping.setOnClickListener {
- orderFoodAllViewModel.getAllOrderFood()//获取全部订单
- }
- /**
- * 开始下单
- */
- orderFoodAllViewModel.allOrderFood.observe(this){res->
- if (res != null)
- {
- val sb = StringBuilder()
- for ((index,e) in res.withIndex())
- {
- if (index == 0)
- {
- sb.append("${e.oid}:"+"${e.price}:"+"${e.oNum}")
- }else{
- sb.append(",${e.oid}:"+"${e.price}:"+"${e.oNum}")
- }
- }
- orderFoodAllViewModel.orderFoodShop(sb.toString(), AppUtil.getDeviceSN())
- }
- }
- /**
- * 返回状态
- */
- orderFoodAllViewModel.ordersListliveData.observe(this){res->
- //下单成功
- if (res)
- {
- orderFoodAllViewModel.delShopping()//清空购物车
- totalprice.setText(getString(R.string.totalprice)+": $ 0")
- go<MyOrderActivity>()
- }
- }
- bt_my_order.setOnClickListener {
- go<MyOrderActivity>()
- }
- }
- override fun initEvent() {
- super.initEvent()
- iv_order_back.setOnClickListener {
- this.onBackPressed()
- }
- }
- }
|