diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9849609..7807c8e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -342,6 +342,10 @@ android:launchMode="singleTop" android:screenOrientation="portrait"/> + + diff --git a/app/src/main/java/com/zj365/dc/activity/shop/CreateGoodsOrderAct.kt b/app/src/main/java/com/zj365/dc/activity/shop/CreateGoodsOrderAct.kt new file mode 100644 index 0000000..a2344ac --- /dev/null +++ b/app/src/main/java/com/zj365/dc/activity/shop/CreateGoodsOrderAct.kt @@ -0,0 +1,56 @@ +package com.zj365.dc.activity.shop + +import android.view.View +import com.xty.base.act.BaseVmAct +import com.xty.base.vm.BaseVm +import com.xty.common.arouter.ARouterUrl +import com.xty.common.arouter.RouteManager +import com.zj365.dc.BuildConfig +import com.zj365.dc.databinding.ActCreateGoodsOrderBinding +import com.zj365.dc.vm.ShopMallVm + +class CreateGoodsOrderAct : BaseVmAct() { + val binding by lazy { ActCreateGoodsOrderBinding.inflate(layoutInflater) } + override fun liveObserver() { + + } + + override fun initView() { + super.initView() + statusBar(binding.title.mView) + binding.title.mTvTitle.text = "创建订单" + binding.title.mIvBack.setOnClickListener { + finish() + } + + onClickedListener() + } + + fun onClickedListener(){ + binding.tvPay.setOnClickListener { + + } + + binding.tvChooseAddress.setOnClickListener { + bundle.clear() + bundle.putString( + "web_site_url", + "${BuildConfig.h5url}pages/index/index?pageId=address&type=order" + ) + RouteManager.goAct(ARouterUrl.H5_ACT, bundle) + + } + + binding.tvDiscounts.setOnClickListener { + bundle.clear() + bundle.putString( + "web_site_url", + "${BuildConfig.h5url}pages/index/index?pageId=coupon&type=order" + ) + RouteManager.goAct(ARouterUrl.H5_ACT, bundle) + } + } + + + override fun setLayout()=binding.root +} \ No newline at end of file diff --git a/app/src/main/java/com/zj365/dc/activity/shop/ShopCategoryActivity.kt b/app/src/main/java/com/zj365/dc/activity/shop/ShopCategoryActivity.kt index befa94d..97aad7d 100644 --- a/app/src/main/java/com/zj365/dc/activity/shop/ShopCategoryActivity.kt +++ b/app/src/main/java/com/zj365/dc/activity/shop/ShopCategoryActivity.kt @@ -10,7 +10,10 @@ import com.xty.base.act.BaseVmAct import com.xty.common.Const import com.xty.common.R import com.xty.common.arouter.ARouterUrl +import com.xty.common.arouter.RouteManager +import com.xty.network.model.GoodsRecordsBean import com.xty.network.model.ShopCategoryBean +import com.zj365.dc.BuildConfig import com.zj365.dc.adapter.shop.ShopCategoryAdapter import com.zj365.dc.adapter.shop.ShopChildCategoryAdapter import com.zj365.dc.adapter.shop.ShopGoodsTwoAdapter @@ -73,6 +76,16 @@ class ShopCategoryActivity : BaseVmAct() { binding.mRefresh.finishLoadMore(1000) } + mGoodsAdapter.setOnItemClickListener { adapter, view, position -> + var bean = adapter.data[position] as GoodsRecordsBean.GoodsBean + bundle.clear() + bundle.putString( + "web_site_url", + "${BuildConfig.h5url}pages/index/index?pageId=commodityDetail&id=${bean.id}" + ) + RouteManager.goAct(ARouterUrl.H5_ACT, bundle) + } + } fun loadData(){ diff --git a/app/src/main/java/com/zj365/dc/fragment/MineFrag.kt b/app/src/main/java/com/zj365/dc/fragment/MineFrag.kt index 0fac389..d5a9143 100644 --- a/app/src/main/java/com/zj365/dc/fragment/MineFrag.kt +++ b/app/src/main/java/com/zj365/dc/fragment/MineFrag.kt @@ -127,7 +127,13 @@ class MineFrag : BaseVmFrag() , EasyPermissions.PermissionCallbacks{ if(MMkvHelper.getLong(Const.USER_ID).toString() == "0"){ RouteManager.goAct(ARouterUrl.LOGIN_ACT) }else { - CommonToastUtils.showToast("敬请期待") + bundle.clear() + bundle.putString( + "web_site_url", + "${BuildConfig.h5url}pages/index/index?pageId=coupon" + ) + RouteManager.goAct(ARouterUrl.H5_ACT, bundle) +// CommonToastUtils.showToast("敬请期待") } } @@ -135,7 +141,13 @@ class MineFrag : BaseVmFrag() , EasyPermissions.PermissionCallbacks{ if(MMkvHelper.getLong(Const.USER_ID).toString() == "0"){ RouteManager.goAct(ARouterUrl.LOGIN_ACT) }else { - CommonToastUtils.showToast("敬请期待") + bundle.clear() + bundle.putString( + "web_site_url", + "${BuildConfig.h5url}pages/index/index?pageId=wallet" + ) + RouteManager.goAct(ARouterUrl.H5_ACT, bundle) + // CommonToastUtils.showToast("敬请期待") } } @@ -195,7 +207,13 @@ class MineFrag : BaseVmFrag() , EasyPermissions.PermissionCallbacks{ if(MMkvHelper.getLong(Const.USER_ID).toString() == "0"){ RouteManager.goAct(ARouterUrl.LOGIN_ACT) }else { - CommonToastUtils.showToast("敬请期待") + bundle.clear() + bundle.putString( + "web_site_url", + "${BuildConfig.h5url}pages/index/index?pageId=appreciation" + ) + RouteManager.goAct(ARouterUrl.H5_ACT, bundle) +// CommonToastUtils.showToast("敬请期待") } } @@ -203,7 +221,9 @@ class MineFrag : BaseVmFrag() , EasyPermissions.PermissionCallbacks{ if(MMkvHelper.getLong(Const.USER_ID).toString() == "0"){ RouteManager.goAct(ARouterUrl.LOGIN_ACT) }else { - CommonToastUtils.showToast("敬请期待") + RouteManager.goAct(ARouterUrl.FAMILY_RECORD_ACT) + +// CommonToastUtils.showToast("敬请期待") } } @@ -318,7 +338,13 @@ class MineFrag : BaseVmFrag() , EasyPermissions.PermissionCallbacks{ if(MMkvHelper.getLong(Const.USER_ID).toString() == "0"){ RouteManager.goAct(ARouterUrl.LOGIN_ACT) }else { - CommonToastUtils.showToast("敬请期待") + bundle.clear() + bundle.putString( + "web_site_url", + "${BuildConfig.h5url}pages/index/index?pageId=address" + ) + RouteManager.goAct(ARouterUrl.H5_ACT, bundle) + // CommonToastUtils.showToast("敬请期待") } } @@ -326,7 +352,11 @@ class MineFrag : BaseVmFrag() , EasyPermissions.PermissionCallbacks{ if(MMkvHelper.getLong(Const.USER_ID).toString() == "0"){ RouteManager.goAct(ARouterUrl.LOGIN_ACT) }else { - CommonToastUtils.showToast("敬请期待") + bundle.clear() + bundle.putString("title", "操作手册") + bundle.putBoolean("isAgree", false) + bundle.putString("url", "https://mp.weixin.qq.com/s?__biz=MzkxMzI0NzU3NA==&mid=2247487161&idx=1&sn=ed2fca4f04beb00b16f1b7e6c922d40a&chksm=c101d280f6765b967665df1c3e3c5cc609f1fcf7f0434c3bb26fbc13f7806cd9a2b37048f9e8#rd") + RouteManager.goAct(ARouterUrl.AGREEMNT_READ_WEB_ACT, bundle) } } @@ -334,7 +364,8 @@ class MineFrag : BaseVmFrag() , EasyPermissions.PermissionCallbacks{ if(MMkvHelper.getLong(Const.USER_ID).toString() == "0"){ RouteManager.goAct(ARouterUrl.LOGIN_ACT) }else { - CommonToastUtils.showToast("敬请期待") + RouteManager.goAct(ARouterUrl.SHOP_ORDER_LIST_ACT) + //CommonToastUtils.showToast("敬请期待") } } @@ -394,7 +425,7 @@ class MineFrag : BaseVmFrag() , EasyPermissions.PermissionCallbacks{ private fun refresh() { refresh.setRefresh(binding.mRefresh) { mViewModel.getMySetting() - + mViewModel.getUserEquity() mViewModel.getAllInfo(showIdInfo,false) mViewModel.searchInviteInfo() } @@ -412,6 +443,8 @@ class MineFrag : BaseVmFrag() , EasyPermissions.PermissionCallbacks{ mViewModel.getAllInfo(showIdInfo,false) // mViewModel.getScore(1) mViewModel.searchInviteInfo() + + mViewModel.getUserEquity() // } } @@ -419,6 +452,9 @@ class MineFrag : BaseVmFrag() , EasyPermissions.PermissionCallbacks{ /* mViewModel.familyLive.observe(this) { binding.mFamily.text = it.data.size.toString() }*/ + mViewModel.userEqualityLiveData.observe(this){ + binding.tvMemberValidity.text ="有效期至:${it.data}" + } mViewModel.scoreLive.observe(this) { binding.mIntegral.text = (if (it.data.num.isNullOrEmpty()) "0" else it.data.num!!) } diff --git a/app/src/main/java/com/zj365/dc/fragment/ShopFragment.kt b/app/src/main/java/com/zj365/dc/fragment/ShopFragment.kt index 2a5795c..57ffaad 100644 --- a/app/src/main/java/com/zj365/dc/fragment/ShopFragment.kt +++ b/app/src/main/java/com/zj365/dc/fragment/ShopFragment.kt @@ -15,7 +15,9 @@ import com.xty.base.vm.BaseVm import com.xty.common.arouter.ARouterUrl import com.xty.common.arouter.RouteManager import com.xty.common.util.CommonToastUtils +import com.xty.network.model.GoodsRecordsBean import com.xty.network.model.ShopCategoryBean +import com.zj365.dc.BuildConfig import com.zj365.dc.adapter.shop.ShopCategoryAdapter import com.zj365.dc.adapter.shop.ShopGoodsAdapter import com.zj365.dc.databinding.FragShopBinding @@ -47,6 +49,16 @@ class ShopFragment: BaseFragList() { } setRecycleRefresh(binding.recyclerView,binding.mRefresh,true) + + mGoodsAdapter.setOnItemClickListener { adapter, view, position -> + var bean = adapter.data[position] as GoodsRecordsBean.GoodsBean + bundle.clear() + bundle.putString( + "web_site_url", + "${BuildConfig.h5url}pages/index/index?pageId=commodityDetail&id=${bean.id}" + ) + RouteManager.goAct(ARouterUrl.H5_ACT, bundle) + } } override fun refresh() { diff --git a/app/src/main/java/com/zj365/dc/vm/ShopMallVm.kt b/app/src/main/java/com/zj365/dc/vm/ShopMallVm.kt index a3ccb78..a027a46 100644 --- a/app/src/main/java/com/zj365/dc/vm/ShopMallVm.kt +++ b/app/src/main/java/com/zj365/dc/vm/ShopMallVm.kt @@ -13,6 +13,8 @@ class ShopMallVm : BaseVm() { val goodsLiveData by lazy { MutableLiveData>() } + val createOrderLiveData by lazy { MutableLiveData>() } + fun getGoodsCategory(parentId:Long){ startHttp { var code = apiInterface().getGoodsCategory(parentId) @@ -34,4 +36,18 @@ class ShopMallVm : BaseVm() { code.getCodeStatus(goodsLiveData, nowData) } } + + fun createOrder(skuId:String,num:Int,addrId:String,couponsId:String){ + startHttp { + var json = JSONObject() + + json.put("skuId",skuId) + json.put("num",num) + json.put("addrId",addrId) + json.put("couponsId",couponsId) + var code = apiInterface().createOrder(retrofits.getRequestBody(json.toString())) + code.getCodeStatus(createOrderLiveData, nowData) + } + } + } \ No newline at end of file diff --git a/app/src/main/res/layout/act_create_goods_order.xml b/app/src/main/res/layout/act_create_goods_order.xml new file mode 100644 index 0000000..d3997e9 --- /dev/null +++ b/app/src/main/res/layout/act_create_goods_order.xml @@ -0,0 +1,251 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/frag_mine.xml b/app/src/main/res/layout/frag_mine.xml index c292303..9df8569 100644 --- a/app/src/main/res/layout/frag_mine.xml +++ b/app/src/main/res/layout/frag_mine.xml @@ -661,9 +661,8 @@ android:textColor="@color/col_7c7"/> - + + - + + diff --git a/health/src/main/java/com/zj365/health/act/ShopOrderDetailAct.kt b/health/src/main/java/com/zj365/health/act/ShopOrderDetailAct.kt new file mode 100644 index 0000000..5734289 --- /dev/null +++ b/health/src/main/java/com/zj365/health/act/ShopOrderDetailAct.kt @@ -0,0 +1,57 @@ +package com.zj365.health.act + +import android.content.ClipData +import android.content.ClipboardManager +import com.alibaba.android.arouter.facade.annotation.Route +import com.xty.base.act.BaseVmAct +import com.xty.common.arouter.ARouterUrl +import com.xty.common.setImage +import com.xty.network.model.ShopOrderDetailBean +import com.zj365.health.databinding.ActShopOrderDetailBinding +import com.zj365.health.vm.ShopOrderVm + +@Route(path = ARouterUrl.SHOP_ORDER_DETAIL_ACT) +class ShopOrderDetailAct: BaseVmAct() { + val binding by lazy { ActShopOrderDetailBinding.inflate(layoutInflater) } + var orderDetailBean:ShopOrderDetailBean? = null + override fun liveObserver() { + mViewModel.orderDetailLiveData.observe(this){ + it.data?.let { + orderDetailBean = it + binding.imgGoods.setImage(this@ShopOrderDetailAct,it.goods_pic) + binding.tvPrice.text = "¥ ${it.pay_price}" + binding.tvGoodsName.text = it.goods_name + binding.tvStatus.text = it.status_name + binding.tvTotalPrice.text = "商品总价:¥ ${it.pay_price}" + binding.tvOrderNo.text = "订单编号:${it.order_no}" + binding.tvPayTime.text = "支付时间:${it.pay_time}" + binding.tvCompleteTime.text = "成交时间:${it.create_time}" + binding.tvPayType.text ="支付类型:${it.pay_type_name}" + + } + + } + } + + override fun initView() { + super.initView() + statusBar(binding.title.mView) + binding.title.mTvTitle.text = "订单详情" + binding.title.mIvBack.setOnClickListener { + finish() + } + var id = intent.getLongExtra("id",0) + mViewModel.getOrderDetail(id) + binding.tvCopy.setOnClickListener { + orderDetailBean?.let { + val clipboard: ClipboardManager = + getSystemService(CLIPBOARD_SERVICE) as ClipboardManager + val clipData = ClipData.newPlainText("date", it.order_no) + clipboard.setPrimaryClip(clipData); + } + + } + } + + override fun setLayout() = binding.root +} \ No newline at end of file diff --git a/health/src/main/java/com/zj365/health/act/ShopOrderListAct.kt b/health/src/main/java/com/zj365/health/act/ShopOrderListAct.kt new file mode 100644 index 0000000..0c72df6 --- /dev/null +++ b/health/src/main/java/com/zj365/health/act/ShopOrderListAct.kt @@ -0,0 +1,152 @@ +package com.zj365.health.act + +import android.graphics.Rect +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import com.alibaba.android.arouter.facade.annotation.Route +import com.androidkun.xtablayout.XTabLayout +import com.xty.base.act.BaseListAct +import com.xty.common.arouter.ARouterUrl +import com.xty.common.arouter.RouteManager +import com.xty.network.model.ShopOrderListBean +import com.zj365.health.R +import com.zj365.health.adapter.GoodsOrderAdapter +import com.zj365.health.databinding.ActShopOrderListBinding +import com.zj365.health.vm.ShopOrderVm + +@Route(path = ARouterUrl.SHOP_ORDER_LIST_ACT) +class ShopOrderListAct : BaseListAct() { + + val binding by lazy { ActShopOrderListBinding.inflate(layoutInflater) } + + var orderType: Int = 0 + + val mAdapter by lazy { GoodsOrderAdapter() } + + private val mTitles = mutableListOf() + + override fun initAdapter() { + binding.mRecycle.adapter = mAdapter + binding.mRecycle.layoutManager = LinearLayoutManager(this) + binding.mRecycle.addItemDecoration(object : RecyclerView.ItemDecoration() { + override fun getItemOffsets(outRect: Rect, itemPosition: Int, parent: RecyclerView) { + super.getItemOffsets(outRect, itemPosition, parent) + outRect.bottom = 12 + outRect.right = 14 + outRect.left = 14 + } + }) + + setRecycleRefresh(binding.mRecycle,binding.mRefresh,true) + + mAdapter.addChildClickViewIds(R.id.tv_confirm_receive_goods,R.id.tv_logistics,R.id.tv_refund) + mAdapter.setOnItemClickListener { adapter, view, position -> + var bean = adapter.data[position] as ShopOrderListBean.ShopOrderBean + bundle.clear() + bundle.putLong("id",bean.id) + RouteManager.goAct(ARouterUrl.SHOP_ORDER_DETAIL_ACT,bundle) + + } + + mAdapter.setOnItemChildClickListener { adapter, view, position -> + + var bean = adapter.data[position] as ShopOrderListBean.ShopOrderBean + when(view.id){ + R.id.tv_confirm_receive_goods ->{ + mViewModel.receiveGoods(bean.id) + } + R.id.tv_logistics->{ + if (bean.status == 1){ + mViewModel.cancelOrder(bean.id) + } + } + R.id.tv_refund ->{ + + } + } + } + + } + + override fun loadData() { + mViewModel.getOrderList(page,orderType) + } + + override fun initView() { + super.initView() + statusBar(binding.title.mView) + binding.title.mTvTitle.text = "我的订单" + binding.title.mIvBack.setOnClickListener { + finish() + } + initTab() + } + + fun initTab() { + + mTitles.add("全部订单") + mTitles.add("待发货") + mTitles.add("待收货") + mTitles.add("已完成") + mTitles.add("已取消") + + + //设置tab + mTitles.forEach { tabData -> + val tab = binding.xTablayout.newTab() + tab.text = tabData + binding.xTablayout.addTab(tab) + } + binding.xTablayout.setOnTabSelectedListener(object : XTabLayout.OnTabSelectedListener{ + override fun onTabSelected(tab: XTabLayout.Tab?) { + when(tab!!.position){ + 0->{ + orderType = 0 + } + 1->{ + orderType = 2 + } + 2->{ + orderType = 3 + + } + 3->{ + orderType = 4 + + } + 4->{ + orderType = 5 + + } + } + page = 1 + mViewModel.getOrderList(page,orderType) + + } + + override fun onTabUnselected(tab: XTabLayout.Tab?) { + } + + override fun onTabReselected(tab: XTabLayout.Tab?) { + } + }) + } + + override fun liveObserver() { + mViewModel.shopOrderLiveDate.observe(this){ + setDate(mAdapter,it.data.list) + } + + mViewModel.cancelOrderLiveData.observe(this){ + page = 1 + mViewModel.getOrderList(page,orderType) + } + + mViewModel.receiveGoodsLiveData.observe(this){ + page = 1 + mViewModel.getOrderList(page,orderType) + } + } + + override fun setLayout() = binding.root +} \ No newline at end of file diff --git a/health/src/main/java/com/zj365/health/adapter/GoodsOrderAdapter.kt b/health/src/main/java/com/zj365/health/adapter/GoodsOrderAdapter.kt new file mode 100644 index 0000000..3927203 --- /dev/null +++ b/health/src/main/java/com/zj365/health/adapter/GoodsOrderAdapter.kt @@ -0,0 +1,78 @@ +package com.zj365.health.adapter + +import android.graphics.Color +import android.graphics.Typeface +import android.text.SpannableString +import android.widget.TextView +import androidx.core.content.ContextCompat +import com.chad.library.adapter.base.viewholder.BaseViewHolder +import com.ruffian.library.widget.RImageView +import com.xty.base.adapter.BaseAdapter +import com.xty.common.setImage +import com.xty.common.util.SpannableUtils +import com.xty.network.model.ShopOrderListBean +import com.zj365.health.R + +class GoodsOrderAdapter : BaseAdapter(R.layout.item_shop_order_list) { + override fun convert(holder: BaseViewHolder, item: ShopOrderListBean.ShopOrderBean) { + holder.setText(R.id.tv_order_no,"订单 ${item.order_no}") + holder.setText(R.id.tv_goods_name,item.goods_name) + holder.setText(R.id.tv_spec,item.goods_sku) + holder.getView(R.id.img_goods).setImage(context,item.goods_pic) + var priceTxt = holder.getView(R.id.tv_price) + var fontStr = "订单金额:" + var str = SpannableString("¥ ${item.pay_price}") + + priceTxt.text = SpannableUtils.setStrSpan( + "${fontStr}${str}", + -1, + ContextCompat.getColor( + context, R.color.col_2621 + ), + -1, + "${fontStr}${str}".length -"${str}".length, + "${fontStr}${str}".length + ) + holder.setText(R.id.tv_num,"数量:${item.goods_num}") + var status = holder.getView(R.id.tv_order_status) + + status.text = item.status_name + when(item.status){ //1待支付 2已支付(待发货) 3待收货 4已完成5已取消6退款中7退款成功8退款失败 + 1 ->{ + status.setTextColor(context.getColor(R.color.col_9BD)) + holder.setGone(R.id.tv_confirm_receive_goods,true) + holder.setText(R.id.tv_logistics,"取消订单") + holder.setText(R.id.tv_refund,"立即支付") + } + 3->{ + status.setTextColor(context.getColor(R.color.col_9BD)) + holder.setGone(R.id.tv_confirm_receive_goods,false) + holder.setText(R.id.tv_logistics,"查看物流") + holder.setText(R.id.tv_refund,"申请退款") + + } + 4->{ + status.setTextColor(context.getColor(R.color.col_02c)) + holder.setGone(R.id.tv_confirm_receive_goods,true) + holder.setGone(R.id.tv_logistics,true) + + holder.setGone(R.id.tv_refund,true) + holder.setGone(R.id.line,true) + + } + else ->{ + status.setTextColor(context.getColor(R.color.col_9BD)) + + holder.setGone(R.id.tv_confirm_receive_goods,true) + holder.setGone(R.id.tv_logistics,true) + + holder.setGone(R.id.tv_refund,true) + holder.setGone(R.id.line,true) + + + } + + } + + } +} \ No newline at end of file diff --git a/health/src/main/java/com/zj365/health/vm/ShopOrderVm.kt b/health/src/main/java/com/zj365/health/vm/ShopOrderVm.kt new file mode 100644 index 0000000..b464b37 --- /dev/null +++ b/health/src/main/java/com/zj365/health/vm/ShopOrderVm.kt @@ -0,0 +1,57 @@ +package com.zj365.health.vm + +import androidx.lifecycle.MutableLiveData +import com.xty.base.vm.BaseVm +import com.xty.network.model.RespBody +import com.xty.network.model.ShopOrderDetailBean +import com.xty.network.model.ShopOrderListBean +import org.json.JSONObject + +class ShopOrderVm : BaseVm() { + + val shopOrderLiveDate by lazy { MutableLiveData>() } + + val orderDetailLiveData by lazy { MutableLiveData>() } + + val receiveGoodsLiveData by lazy { MutableLiveData>() } + + val cancelOrderLiveData by lazy { MutableLiveData>() } + fun getOrderList(pageNum:Int,status:Int){ + + startHttp { + val json = JSONObject() + json.put("pageNum",pageNum) + json.put("pageSize", 10) + json.put("status",status) + + val response = apiInterface().getShopOrderList(retrofits.getRequestBody(json.toString())) + response.getCodeStatus(shopOrderLiveDate, nowData) + } + + } + + fun getOrderDetail(id:Long){ + startHttp { + val response = apiInterface().getOrderDetail(id) + response.getCodeStatus(orderDetailLiveData, nowData) + + } + } + + fun receiveGoods(id:Long){ + startHttp { + val response = apiInterface().receiveGoods(id) + response.getCodeStatus(receiveGoodsLiveData, nowData) + + } + } + + + fun cancelOrder(id:Long){ + startHttp { + val response = apiInterface().cancelOrder(id) + response.getCodeStatus(cancelOrderLiveData, nowData) + + } + } +} \ No newline at end of file diff --git a/health/src/main/res/layout/act_shop_order_detail.xml b/health/src/main/res/layout/act_shop_order_detail.xml new file mode 100644 index 0000000..4cf8d8e --- /dev/null +++ b/health/src/main/res/layout/act_shop_order_detail.xml @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/health/src/main/res/layout/act_shop_order_list.xml b/health/src/main/res/layout/act_shop_order_list.xml new file mode 100644 index 0000000..f6dd8db --- /dev/null +++ b/health/src/main/res/layout/act_shop_order_list.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/health/src/main/res/layout/item_shop_order_list.xml b/health/src/main/res/layout/item_shop_order_list.xml new file mode 100644 index 0000000..da9ee17 --- /dev/null +++ b/health/src/main/res/layout/item_shop_order_list.xml @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mine/src/main/java/com/zj365/mime/act/EnterpriseInformationAct.kt b/mine/src/main/java/com/zj365/mime/act/EnterpriseInformationAct.kt index 11c9d95..f4b3f23 100644 --- a/mine/src/main/java/com/zj365/mime/act/EnterpriseInformationAct.kt +++ b/mine/src/main/java/com/zj365/mime/act/EnterpriseInformationAct.kt @@ -6,6 +6,9 @@ import androidx.recyclerview.widget.RecyclerView import com.alibaba.android.arouter.facade.annotation.Route import com.xty.base.act.BaseListAct import com.xty.common.arouter.ARouterUrl +import com.xty.common.arouter.RouteManager +import com.xty.network.model.EnterpriseInfoHomeBean +import com.zj365.mime.R import com.zj365.mime.adapter.EnterpriseInformationAdapter import com.zj365.mime.databinding.ActEnterpriseInformationBinding import com.zj365.mime.vm.EnterpriseInformationVm @@ -28,6 +31,18 @@ class EnterpriseInformationAct : BaseListAct() { outRect.bottom = 12 } }) + + mAdapter.addChildClickViewIds(R.id.tv_more) + mAdapter.setOnItemChildClickListener { adapter, view, position -> + var bean = adapter.data[position] as EnterpriseInfoHomeBean + when(view.id){ + R.id.tv_more ->{ + bundle.clear() + bundle.putInt("type",bean.type) + RouteManager.goAct(ARouterUrl.ENTERPRISE_TYPE_INFO,bundle) + } + } + } } override fun loadData() { diff --git a/mine/src/main/java/com/zj365/mime/act/EnterpriseInformationForTypeAct.kt b/mine/src/main/java/com/zj365/mime/act/EnterpriseInformationForTypeAct.kt new file mode 100644 index 0000000..a84a656 --- /dev/null +++ b/mine/src/main/java/com/zj365/mime/act/EnterpriseInformationForTypeAct.kt @@ -0,0 +1,50 @@ +package com.zj365.mime.act + +import android.view.View +import androidx.recyclerview.widget.LinearLayoutManager +import com.alibaba.android.arouter.facade.annotation.Route +import com.xty.base.act.BaseListAct +import com.xty.common.arouter.ARouterUrl +import com.zj365.mime.adapter.EnterpriseInformationChildAdapter +import com.zj365.mime.databinding.ActEnterpriseInformationTypeBinding +import com.zj365.mime.vm.EnterpriseInformationVm +@Route(path = ARouterUrl.ENTERPRISE_TYPE_INFO) +class EnterpriseInformationForTypeAct : BaseListAct() { + + val binding by lazy { ActEnterpriseInformationTypeBinding.inflate(layoutInflater) } + + val mAdapter by lazy { EnterpriseInformationChildAdapter(1) } + + var type = 0 + override fun initAdapter() { + binding.mRecycle.adapter = mAdapter + binding.mRecycle.layoutManager = LinearLayoutManager(this@EnterpriseInformationForTypeAct) + + setRecycleRefresh(binding.mRecycle,binding.mRefresh,true) + } + + + override fun initView() { + super.initView() + statusBar(binding.title.mView) + binding.title.mTvTitle.text = "企业资料" + binding.title.mIvBack.setOnClickListener { + finish() + } + + + } + + override fun loadData() { + type = intent.getIntExtra("type",0) + mViewModel.getEnterpriseInformationForType(type,page) + } + + override fun liveObserver() { + mViewModel.enterpriseInfoForTypeLiveData.observe(this){ + setDate(mAdapter,it.data.list) + } + } + + override fun setLayout() = binding.root +} \ No newline at end of file diff --git a/mine/src/main/java/com/zj365/mime/adapter/EnterpriseInformationAdapter.kt b/mine/src/main/java/com/zj365/mime/adapter/EnterpriseInformationAdapter.kt index 0555db6..ac11f82 100644 --- a/mine/src/main/java/com/zj365/mime/adapter/EnterpriseInformationAdapter.kt +++ b/mine/src/main/java/com/zj365/mime/adapter/EnterpriseInformationAdapter.kt @@ -13,7 +13,7 @@ class EnterpriseInformationAdapter : BaseAdapter(R.layou holder.setText(R.id.tv_info_name,item.typeName) - var mAdapter = EnterpriseInformationChildAdapter() + var mAdapter = EnterpriseInformationChildAdapter(0) var recyclerView = holder.getView(R.id.recycler) recyclerView.layoutManager = LinearLayoutManager(context) diff --git a/mine/src/main/java/com/zj365/mime/adapter/EnterpriseInformationChildAdapter.kt b/mine/src/main/java/com/zj365/mime/adapter/EnterpriseInformationChildAdapter.kt index 87d9b5d..9e2640a 100644 --- a/mine/src/main/java/com/zj365/mime/adapter/EnterpriseInformationChildAdapter.kt +++ b/mine/src/main/java/com/zj365/mime/adapter/EnterpriseInformationChildAdapter.kt @@ -1,5 +1,7 @@ package com.zj365.mime.adapter +import android.widget.LinearLayout +import androidx.constraintlayout.widget.ConstraintLayout import com.chad.library.adapter.base.viewholder.BaseViewHolder import com.ruffian.library.widget.RImageView import com.xty.base.adapter.BaseAdapter @@ -7,8 +9,11 @@ import com.xty.common.setImage import com.xty.network.model.EnterpriseInfoHomeBean import com.zj365.mime.R -class EnterpriseInformationChildAdapter : BaseAdapter(R.layout.item_enterprise_info_child) { +class EnterpriseInformationChildAdapter (var type : Int = 0): BaseAdapter(R.layout.item_enterprise_info_child) { override fun convert(holder: BaseViewHolder, item: EnterpriseInfoHomeBean.EnterpriseInfoChildBean) { + if (type != 0){ + holder.getView(R.id.root).setPadding(16,28,16,20) + } holder.setText(R.id.tv_info_title,item.title) holder.setText(R.id.mTime,item.createTime) holder.getView(R.id.img_cover).setImage(context,item.pic) diff --git a/mine/src/main/java/com/zj365/mime/vm/EnterpriseInformationVm.kt b/mine/src/main/java/com/zj365/mime/vm/EnterpriseInformationVm.kt index 8fd4063..93c4abd 100644 --- a/mine/src/main/java/com/zj365/mime/vm/EnterpriseInformationVm.kt +++ b/mine/src/main/java/com/zj365/mime/vm/EnterpriseInformationVm.kt @@ -1,14 +1,18 @@ package com.zj365.mime.vm +import android.graphics.pdf.PdfDocument.Page import androidx.lifecycle.MutableLiveData import com.xty.base.vm.BaseVm import com.xty.network.model.EnterpriseInfoHomeBean import com.xty.network.model.RespBody +import org.json.JSONObject class EnterpriseInformationVm : BaseVm() { val enterpriseInfoHomeLiveData by lazy { MutableLiveData>>() } + val enterpriseInfoForTypeLiveData by lazy { MutableLiveData>() } + fun getEnterpriseInformationHomeList(){ startHttp { var response=apiInterface().getEnterpriseInfoHomeList() @@ -16,4 +20,16 @@ class EnterpriseInformationVm : BaseVm() { } } + + fun getEnterpriseInformationForType(type:Int,pageNum:Int){ + startHttp { + var json = JSONObject() + json.put("type",type) + json.put("pageNum",pageNum) + json.put("pageSize","10") + var response=apiInterface().getEnterpriseInfoForType(retrofits.getRequestBody(json.toString())) + response.getCodeStatus(enterpriseInfoForTypeLiveData,nowData) + } + } + } \ No newline at end of file diff --git a/mine/src/main/java/com/zj365/mime/vm/SettingVm.kt b/mine/src/main/java/com/zj365/mime/vm/SettingVm.kt index d935a8a..2fdc02e 100644 --- a/mine/src/main/java/com/zj365/mime/vm/SettingVm.kt +++ b/mine/src/main/java/com/zj365/mime/vm/SettingVm.kt @@ -34,6 +34,8 @@ class SettingVm : BaseVm() { val confirmInviteLiveData by lazy { MutableLiveData>() } + val userEqualityLiveData by lazy { MutableLiveData>() } + fun getNesProg(id: String) { startHttp { @@ -184,4 +186,11 @@ class SettingVm : BaseVm() { } } + + fun getUserEquity(){ + startHttp { + val response = apiInterface().getUserEquity() + response.getCodeStatus(userEqualityLiveData,nowData) + } + } } \ No newline at end of file diff --git a/mine/src/main/res/layout/act_enterprise_information_type.xml b/mine/src/main/res/layout/act_enterprise_information_type.xml new file mode 100644 index 0000000..1e504bd --- /dev/null +++ b/mine/src/main/res/layout/act_enterprise_information_type.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mine/src/main/res/layout/item_enterprise_info.xml b/mine/src/main/res/layout/item_enterprise_info.xml index 790dbc1..03da7ce 100644 --- a/mine/src/main/res/layout/item_enterprise_info.xml +++ b/mine/src/main/res/layout/item_enterprise_info.xml @@ -50,7 +50,6 @@ android:text="更多" android:layout_toLeftOf="@+id/img_right" android:layout_centerVertical="true" - android:textSize="@dimen/sp_13" android:textColor="@color/col_6B6"/> diff --git a/mine/src/main/res/layout/item_enterprise_info_child.xml b/mine/src/main/res/layout/item_enterprise_info_child.xml index 37638cb..a9c78b3 100644 --- a/mine/src/main/res/layout/item_enterprise_info_child.xml +++ b/mine/src/main/res/layout/item_enterprise_info_child.xml @@ -3,7 +3,9 @@ xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" - android:layout_height="wrap_content"> + android:layout_height="wrap_content" + android:id="@+id/root" + android:background="@drawable/shape_round_white"> + /** + * 获取用户权益 + */ + @POST("customer/user/getUserEquity") + suspend fun getUserEquity():RespBody /** * 获取设备型号 @@ -1847,6 +1852,12 @@ interface ApiInterface { @POST("customer/material/index") suspend fun getEnterpriseInfoHomeList():RespBody> + /** + * 企业资料列表 + */ + @POST("customer/material/list") + suspend fun getEnterpriseInfoForType(@Body rb: RequestBody):RespBody + /** * 商城分类 */ @@ -1858,4 +1869,34 @@ interface ApiInterface { */ @POST("customer/mall/prod/getProdList") suspend fun getGoodsList(@Body rb: RequestBody):RespBody + + /** + * 商城订单 + */ + @POST("customer/mall/order/orderList") + suspend fun getShopOrderList(@Body rb:RequestBody) : RespBody + + /** + * 订单详情 + */ + @GET("customer/mall/order/getOrderInfo") + suspend fun getOrderDetail(@Query("orderId") orderId:Long): RespBody + + /** + * 创建订单 + */ + @POST("customer/mall/order/createOrder") + suspend fun createOrder(@Body rb: RequestBody):RespBody + + /** + * 确认收货 + */ + @GET("customer/mall/order/receiptOrder") + suspend fun receiveGoods(@Query("orderId") orderId:Long) : RespBody + + /** + * 取消订单 + */ + @GET("customer/mall/order/cancelOrder") + suspend fun cancelOrder(@Query("orderId") orderId:Long): RespBody } \ No newline at end of file diff --git a/network/src/main/java/com/xty/network/model/EnterpriseInfoHomeBean.kt b/network/src/main/java/com/xty/network/model/EnterpriseInfoHomeBean.kt index 38f4320..5e93677 100644 --- a/network/src/main/java/com/xty/network/model/EnterpriseInfoHomeBean.kt +++ b/network/src/main/java/com/xty/network/model/EnterpriseInfoHomeBean.kt @@ -1,8 +1,11 @@ package com.xty.network.model +import com.google.gson.annotations.SerializedName + data class EnterpriseInfoHomeBean( var typeName:String, var type:Int, + @SerializedName("list", alternate = ["records"]) var list:ArrayList ) { diff --git a/network/src/main/java/com/xty/network/model/ShopOrderDetailBean.kt b/network/src/main/java/com/xty/network/model/ShopOrderDetailBean.kt new file mode 100644 index 0000000..a5f3604 --- /dev/null +++ b/network/src/main/java/com/xty/network/model/ShopOrderDetailBean.kt @@ -0,0 +1,16 @@ +package com.xty.network.model + +data class ShopOrderDetailBean( + var order_no:String, + var goods_sku:String, + var goods_name:String, + var pay_price:String, + var create_time:String, + var goods_pic:String, + var status_name:String, + var pay_type_name:String, + var goods_num:String, + var pay_type:Int, + var pay_time:String, + var status:Int +) diff --git a/network/src/main/java/com/xty/network/model/ShopOrderListBean.kt b/network/src/main/java/com/xty/network/model/ShopOrderListBean.kt new file mode 100644 index 0000000..847d550 --- /dev/null +++ b/network/src/main/java/com/xty/network/model/ShopOrderListBean.kt @@ -0,0 +1,17 @@ +package com.xty.network.model + +data class ShopOrderListBean( + var list:ArrayList +){ + data class ShopOrderBean( + var order_no:String, + var goods_sku:String, + var goods_name:String, + var pay_price:String, + var goods_pic:String, + var status_name:String, + var goods_num:Int, + var id:Long, + var status:Int //1待支付 2已支付(待发货) 3待收货 4已完成5已取消6退款中7退款成功8退款失败 + ) +}