Commit 57b9dc33 authored by zhang_z's avatar zhang_z

换购商品;

parent 713251dd
......@@ -327,6 +327,7 @@ public class C {
*/
public static final String getMarketing = PKG + "/merchant/getMarketing";
}
public final class TICKET {
private static final String ROOT_URL = PKG + "ticket/";
......
......@@ -34,7 +34,7 @@ public abstract class BaseMultiSelectAdapter<T, B extends ViewDataBinding> exten
*
* @return 选中的数据
*/
public List<T> getSelectedDatas() {
public List<T> getSelectedData() {
List<T> tList = new ArrayList<>();
for (int i = 0; i < getData().size(); i++) {
if (mSelectedPositionList.contains(i)) {
......@@ -52,6 +52,7 @@ public abstract class BaseMultiSelectAdapter<T, B extends ViewDataBinding> exten
for (int i = 0; i < getData().size(); i++) {
mSelectedPositionList.add(i);
}
notifyDataSetChanged();
}
/**
......@@ -61,6 +62,7 @@ public abstract class BaseMultiSelectAdapter<T, B extends ViewDataBinding> exten
*/
public void select(int position) {
mSelectedPositionList.add(position);
this.notifyItemChanged(position);
}
/**
......@@ -70,6 +72,7 @@ public abstract class BaseMultiSelectAdapter<T, B extends ViewDataBinding> exten
*/
public void deselect(int position) {
mSelectedPositionList.remove((Integer) position);
this.notifyItemChanged(position);
}
/**
......@@ -80,6 +83,7 @@ public abstract class BaseMultiSelectAdapter<T, B extends ViewDataBinding> exten
public void invert(int position) {
if (mSelectedPositionList.contains(position)) deselect(position);
else select(position);
this.notifyItemChanged(position);
}
@Override
......
......@@ -2,11 +2,9 @@ package com.xingdata.zzdpos.ui.settle;
import com.alibaba.fastjson.JSON;
import com.blankj.utilcode.util.LogUtils;
import com.blankj.utilcode.util.StringUtils;
import com.blankj.utilcode.util.ToastUtils;
import com.xingdata.api.print.ZX_PrintPOS;
import com.xingdata.zxpay.PayCenter;
import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.api.ApiFactory;
import com.xingdata.zzdpos.api.JniFactory;
......@@ -94,13 +92,12 @@ public class SettlePresenter extends SettleContract.Presenter {
};
// ApiFactory.Pay.getPayKey().subscribe(LogUtils::d, throwable -> LogUtils.e(throwable.getMessage()));
PayCenter.getInstance().init();
PayCenter.getInstance().pay().subscribe(response -> {
LogUtils.e(response.getMsg());
}, throwable -> {
LogUtils.e(throwable.getMessage());
});
// PayCenter.getInstance().init();
// PayCenter.getInstance().pay().subscribe(response -> {
// LogUtils.e(response.getMsg());
// }, throwable -> {
// LogUtils.e(throwable.getMessage());
// });
}
/**
......
......@@ -58,12 +58,22 @@ public class StoreActivity extends BaseActivity<StorePresenter, ActivityStoreBin
return R.layout.activity_store;
}
@Override
public void onBackPressedSupport() {
}
@Override
public void initView() {
loadRootFragment(R.id.f_store, mStoreFragment);
mViewBinding.ivCart.setOnClickListener(view -> mPresenter.clickCartLogo());
mViewBinding.tvSettle.setOnClickListener(view -> mPresenter.clickSettle());
mViewBinding.btnBack.setOnClickListener(view -> onBackPressedSupport());
mViewBinding.tvSettle.setOnClickListener(view -> {
if (mGiftFragment.isAdded()) {
mGiftFragment.clickSettleInGift();
} else {
mPresenter.clickSettle();
}
});
mViewBinding.btnBack.setOnClickListener(view -> getTopFragment().onBackPressedSupport());
mViewBinding.vSearch.setOnSearchListener(keyword -> mPresenter.searchSku(keyword));
......@@ -86,6 +96,11 @@ public class StoreActivity extends BaseActivity<StorePresenter, ActivityStoreBin
ActivityUtils.startActivity(intent);
});
mViewBinding.tvSelectAll.setOnClickListener(view -> {
mGiftFragment.selectAll();
});
mScanFragment.setOnScanCompletedListener(barcode -> mPresenter.scanComplete(barcode));
}
......@@ -170,8 +185,13 @@ public class StoreActivity extends BaseActivity<StorePresenter, ActivityStoreBin
@Override
public void showGiftFragment(List<Gift> gifts) {
if (!mGiftFragment.isAdded()) {
mCartDialog.dismiss();
mViewBinding.setTitleMode(C.TITLE_MODE.GIFT);
mViewBinding.tvTitle.setText(R.string.gift_title);
this.start(mGiftFragment);
}
}
@Override
public void showSearchFragment() {
......@@ -199,7 +219,6 @@ public class StoreActivity extends BaseActivity<StorePresenter, ActivityStoreBin
@Override
public void resetSearchBar() {
mViewBinding.clTitle.requestFocus();
mViewBinding.setTitleMode(C.TITLE_MODE.TEXT);
}
......@@ -221,6 +240,23 @@ public class StoreActivity extends BaseActivity<StorePresenter, ActivityStoreBin
mGiftFragment.loadGifts(gifts);
}
@Override
public void backToMainActivity() {
this.finish();
}
@Override
public void backToStoreFragment() {
mViewBinding.setTitleMode(C.TITLE_MODE.TEXT);
mViewBinding.tvTitle.setText(R.string.store_title);
mViewBinding.clTitle.requestFocus();
this.pop();
}
@Override
public void loadGiftPayAmt(Long giftPayAmt) {
mViewBinding.setGiftPayAmt(giftPayAmt);
}
/**
* 执行抖动动画
......
......@@ -152,6 +152,23 @@ interface StoreContract {
* 加载换购信息
*/
void loadGifts(List<Gift> gifts);
/**
* 返回主页面
*/
void backToMainActivity();
/**
* 返回商店主页面
*/
void backToStoreFragment();
/**
* 加载换购商品换购价格
*
* @param giftPayAmt 换购价格
*/
void loadGiftPayAmt(Long giftPayAmt);
}
abstract class Presenter extends BasePresenter<View> {
......@@ -161,6 +178,13 @@ interface StoreContract {
*/
public abstract void clickSettle();
/**
* 总体 - 在礼物界面点击结算按钮
*
* @param gifts 选择的换购商品
*/
public abstract void clickSettleInGift(List<Gift> gifts);
/**
* 总体 - 点击购物车logo
*/
......@@ -265,6 +289,7 @@ interface StoreContract {
*/
public abstract void initGift();
}
}
......@@ -65,6 +65,11 @@ public class StorePresenter extends StoreContract.Presenter {
@Override
public void addGift(Long msId, Long skuId, long addAmt, long dateEnd) {
for (int i = 0; i < mGiftList.size(); i++) {
if (mGiftList.get(i).getMsId().longValue() == msId) {
return;
}
}
mGiftList.add(new Gift(msId, skuId, addAmt, dateEnd));
}
......@@ -90,6 +95,17 @@ public class StorePresenter extends StoreContract.Presenter {
}
}
@Override
public void clickSettleInGift(List<Gift> gifts) {
List<Saledetail> saledetails = new ArrayList<>();
saledetails.addAll(mSaledetails);
for (int i = 0; i < gifts.size(); i++) {
Saledetail saledetail = Saledetail.create(gifts.get(i), mVip);
saledetails.add(0, saledetail);
}
mView.showSettle(saledetails);
}
@Override
public void clickCartLogo() {
if (mSaledetails.size() == 0) return;
......
......@@ -8,6 +8,7 @@ import com.xingdata.zzdpos.model.Gift;
import com.xingdata.zzdpos.util.ConvertUtil;
import java.util.ArrayList;
import java.util.List;
public class GiftAdapter extends BaseMultiSelectAdapter<Gift, ItemStoreGiftBinding> {
......@@ -31,4 +32,19 @@ public class GiftAdapter extends BaseMultiSelectAdapter<Gift, ItemStoreGiftBindi
mViewBinding.ivChecked.setImageResource(isSelected ? R.mipmap.radio_select_bg : R.mipmap.radio_normal_bg);
}
/**
* 获取所有选中的换购商品的换购价格总和
*
* @return 换购价格总和
*/
public Long getGiftPayAmt() {
Long payAmt = 0L;
List<Gift> gifts = new ArrayList<>();
gifts.addAll(getSelectedData());
for (int i = 0; i < gifts.size(); i++) {
payAmt += gifts.get(i).getAddAmt();
}
return payAmt;
}
}
......@@ -6,6 +6,7 @@ import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentStoreGiftBinding;
import com.xingdata.zzdpos.model.Gift;
import com.xingdata.zzdpos.ui.store.StoreActivity;
import com.xingdata.zzdpos.ui.store.StorePresenter;
import com.xingdata.zzdpos.ui.store.adapter.GiftAdapter;
......@@ -30,9 +31,9 @@ public class GiftFragment extends BaseFragment<StorePresenter, FragmentStoreGift
mGiftAdapter.setOnItemClickListener((adapter, view, position) -> {
mGiftAdapter.invert(position);
mGiftAdapter.notifyItemChanged(position);
((StoreActivity) getActivity()).loadGiftPayAmt(mGiftAdapter.getGiftPayAmt());
});
// init data
mPresenter.initGift();
}
......@@ -46,4 +47,25 @@ public class GiftFragment extends BaseFragment<StorePresenter, FragmentStoreGift
mGiftAdapter.setNewData(gifts);
}
/**
* 点击结算按钮
*/
public void clickSettleInGift() {
mPresenter.clickSettleInGift(mGiftAdapter.getSelectedData());
}
/**
* 全选
*/
public void selectAll() {
mGiftAdapter.selectAll();
((StoreActivity) getActivity()).loadGiftPayAmt(mGiftAdapter.getGiftPayAmt());
}
@Override
public boolean onBackPressedSupport() {
((StoreActivity) getActivity()).backToStoreFragment();
return super.onBackPressedSupport();
}
}
......@@ -20,6 +20,7 @@ import com.xingdata.zzdpos.base.BaseSku;
import com.xingdata.zzdpos.databinding.FragmentStoreSearchBinding;
import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.model.Saledetail;
import com.xingdata.zzdpos.ui.store.StoreActivity;
import com.xingdata.zzdpos.ui.store.StorePresenter;
import com.xingdata.zzdpos.ui.store.adapter.SkuAdapter;
......@@ -63,12 +64,6 @@ public class SearchFragment extends BaseFragment<StorePresenter, FragmentStoreSe
}
@Override
public void onDestroyView() {
mPresenter.exitSearchFragment();
super.onDestroyView();
}
/**
* 加载更多商品
*/
......@@ -218,4 +213,12 @@ public class SearchFragment extends BaseFragment<StorePresenter, FragmentStoreSe
}
});
}
@Override
public boolean onBackPressedSupport() {
((StoreActivity) getActivity()).backToStoreFragment();
mPresenter.exitSearchFragment();
return super.onBackPressedSupport();
}
}
......@@ -24,6 +24,7 @@ import com.xingdata.zzdpos.model.Ms;
import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.model.Saledetail;
import com.xingdata.zzdpos.model.Sskugrp;
import com.xingdata.zzdpos.ui.store.StoreActivity;
import com.xingdata.zzdpos.ui.store.StorePresenter;
import com.xingdata.zzdpos.ui.store.adapter.SkuAdapter;
import com.xingdata.zzdpos.ui.store.adapter.SkugrpAdapter;
......@@ -40,6 +41,11 @@ public class StoreFragment extends BaseFragment<StorePresenter, FragmentStoreBin
void onCountChange(View view, BaseSku sku, int value);
}
@Override
public boolean onBackPressedSupport() {
((StoreActivity) getActivity()).backToMainActivity();
return super.onBackPressedSupport();
}
@Override
public int getLayoutId() {
......
......@@ -18,6 +18,10 @@
name="orderPayAmt"
type="long" />
<variable
name="giftPayAmt"
type="long" />
<variable
name="msDisAmt"
type="long" />
......@@ -59,7 +63,7 @@
android:id="@+id/v_search"
android:layout_width="0dp"
android:layout_height="0dp"
android:visibility="@{titleMode>1?View.VISIBLE:View.INVISIBLE}"
android:visibility="@{titleMode==3?View.VISIBLE:View.INVISIBLE}"
app:hint="@string/store_search_hint"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toRightOf="@id/btn_back"
......@@ -74,7 +78,7 @@
android:text="@string/store_title"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_sub_title_size"
android:visibility="@{titleMode>1?View.GONE:View.VISIBLE}"
android:visibility="@{titleMode==1||titleMode==4?View.VISIBLE:View.GONE}"
app:layout_constraintLeft_toRightOf="parent"
app:layout_constraintRight_toLeftOf="parent" />
......@@ -181,9 +185,11 @@
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/all_spacing"
android:animateLayoutChanges="true"
android:visibility="@{titleMode==4?View.GONE:View.VISIBLE}"
app:layout_constraintBottom_toTopOf="@id/fl_cart"
app:layout_constraintLeft_toRightOf="@id/fl_logo"
app:layout_constraintTop_toBottomOf="@id/fl_cart">
app:layout_constraintTop_toBottomOf="@id/fl_cart"
app:layout_goneMarginStart="@dimen/all_margin">
<TextView
android:layout_width="wrap_content"
......@@ -208,7 +214,6 @@
android:textColor="@color/red_guanyu"
android:textSize="@dimen/all_sub_title_size"
android:textStyle="bold" />
</LinearLayout>
<TextView
......@@ -233,10 +238,10 @@
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/all_margin"
android:animateLayoutChanges="true"
android:visibility="@{titleMode==4?View.GONE:View.VISIBLE}"
app:layout_constraintBottom_toBottomOf="@id/tv_settle"
app:layout_constraintLeft_toLeftOf="@id/fl_cart">
<ImageView
android:id="@+id/iv_cart"
android:layout_width="wrap_content"
......@@ -259,6 +264,70 @@
android:visibility="@{cartCount>0?View.VISIBLE:View.GONE}" />
</FrameLayout>
<TextView
android:id="@+id/tv_select_all"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:background="?attr/selectableItemBackground"
android:drawablePadding="@dimen/all_spacing"
android:drawableStart="@mipmap/radio_select_bg"
android:gravity="center_vertical"
android:paddingEnd="@dimen/all_spacing"
android:paddingStart="@dimen/all_spacing"
android:text="@string/gift_select_all"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size"
android:visibility="@{titleMode==4?View.VISIBLE:View.GONE}"
app:layout_constraintBottom_toBottomOf="@id/fl_cart"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="@id/fl_cart" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:animateLayoutChanges="true"
android:visibility="@{titleMode==4?View.VISIBLE:View.GONE}"
app:layout_constraintBottom_toTopOf="@id/fl_cart"
app:layout_constraintLeft_toRightOf="@id/tv_select_all"
app:layout_constraintTop_toBottomOf="@id/fl_cart">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/money_rmb"
android:textColor="@color/red_guanyu"
android:textSize="@dimen/all_text_size" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{ConvertUtil.fenToYuan(orderPayAmt)}"
android:textColor="@color/red_guanyu"
android:textSize="@dimen/all_sub_title_size"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/all_spacing"
android:layout_marginStart="@dimen/all_spacing"
android:text="@string/inputer_add"
android:textColor="@color/red_guanyu"
android:textSize="@dimen/all_text_size"
android:visibility="@{giftPayAmt>0?View.VISIBLE:View.GONE}" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{ConvertUtil.fenToYuan(giftPayAmt)}"
android:textColor="@color/red_guanyu"
android:textSize="@dimen/all_sub_title_size"
android:textStyle="bold"
android:visibility="@{giftPayAmt>0?View.VISIBLE:View.GONE}" />
</LinearLayout>
</android.support.constraint.ConstraintLayout>
</layout>
\ No newline at end of file
......@@ -193,6 +193,7 @@
<string name="store_empty_hint">没有搜到此商品\n请重新搜索,或前往商品维护进行添加~</string>
<string name="store_scan_empty_hint">没有找到此商品</string>
<!--商店界面的商品详情-->
<string name="store_product_title">商品详情</string>
......@@ -749,4 +750,10 @@
<string name="paid_up_vip_model3">营销计划</string>
<string name="paid_up_vip_model4_detail">提前设置打折、促销、满减、换购等优惠活动,不错过每一个节日</string>
<string name="paid_up_pay_hint">请选择支付方式</string>
<!--换购页面-->
<string name="gift_title">换购</string>
<string name="gift_select_all">全选</string>
</resources>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment