|
@@ -1,10 +1,192 @@
|
|
|
package com.jld.vod.view
|
|
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.R
|
|
|
import com.jld.vod.base.BaseActivity
|
|
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() {
|
|
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 {
|
|
override fun getLayoutId(): Int {
|
|
|
return R.layout.activity_order
|
|
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()
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|