Commit 689f9821 by 宁斌

1、折扣彈窗cash問題

parent 5699dacf
......@@ -4,6 +4,7 @@ import android.content.Intent;
import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.common.core.table.TableBean;
import com.gingersoft.gsa.cloud.database.bean.Discount;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.response.BaseOrderResponse;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.RegionTableFragment;
import com.jess.arms.base.DefaultAdapter;
......@@ -71,7 +72,7 @@ public interface OrderContentContract {
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends BaseOrderContract.Model {
// List<Discount> queryDB_DiscountList(byte discountScope, byte discountType);
List<Discount> queryDB_DiscountList(byte discountScope, byte discountType);
Observable<BaseOrderResponse> createOrder(RequestBody requestBody);
......
......@@ -76,12 +76,12 @@ public class OrderContentModel extends BaseModel implements OrderContentContract
.loadOrder(orderId);
}
// @Override
// public List<Discount> queryDB_DiscountList(byte discountScope, byte discountType) {
// DiscountDaoUtils discountDaoUtils = new DiscountDaoUtils(mApplication);
// List<Discount> discountList = discountDaoUtils.queryDiscountByQueryBuilder();
// return MealConditionFilterUtils.discountConditionFilter(discountList,discountScope,discountType);
// }
@Override
public List<Discount> queryDB_DiscountList(byte discountScope, byte discountType) {
DiscountDaoUtils discountDaoUtils = new DiscountDaoUtils(mApplication);
List<Discount> discountList = discountDaoUtils.queryDiscountByQueryBuilder();
return MealConditionFilterUtils.discountConditionFilter(discountList,discountScope,discountType);
}
@Override
public Observable<BaseOrderResponse> createOrder(RequestBody requestBody) {
......
......@@ -814,42 +814,12 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
}
private void showDiscountDialog() {
if (IActivity.findFragment(DiscountDialogFragment.class) == null) {
DiscountDialogFragment dialogFragment = DiscountDialogFragment.newInstance();
dialogFragment.setOnDiscountItemClickListener(new DiscountDialogFragment.OnDiscountItemClickListener() {
@Override
public void onBillDiscountClick(Discount item, int position) {
if (item.getMinBillAmount() > mShoppingCart.getWholeAmount()) {
//小於最小賬單金額
mRootView.showMessage("小於最小賬單金額" + cashStr + item.getMinBillAmount() + " 無法使用此折扣");
return;
}
mNomalDiscountAction.setNomalDiscountList(mShoppingCart.getNomalDiscoutByMultyDiscountList());
mNomalDiscountAction.action(item);
dialogFragment.dismiss();
}
@Override
public void onCouponClick(MemberCoupon item, int position) {
if (item.getBillMinAmount() > mShoppingCart.getWholeAmount()) {
//小於最小賬單金額
mRootView.showMessage("小於最小賬單金額" + cashStr + item.getBillMinAmount() + " 無法使用此優惠券");
return;
}
mNomalDiscountAction.setNomalDiscountList(mShoppingCart.getNomalDiscoutByMultyDiscountList());
mNomalDiscountAction.action(item.castDiscount());
dialogFragment.dismiss();
}
});
dialogFragment.show(IActivity.getSupportFragmentManager(), "DiscountDialogFragment");
}
// if (mDiscountDialog == null) {
// mDiscountDialog = new DiscountDialog.Builder(IActivity);
// mDiscountDialog.setCanScan(true);
// mDiscountDialog.setOnClickListener(new DiscountDialog.Builder.OnClickListener() {
// if (IActivity.findFragment(DiscountDialogFragment.class) == null) {
// DiscountDialogFragment dialogFragment = DiscountDialogFragment.newInstance();
// dialogFragment.setOnDiscountItemClickListener(new DiscountDialogFragment.OnDiscountItemClickListener() {
//
// @Override
// public void onItemClick(Discount item, int position) {
// public void onBillDiscountClick(Discount item, int position) {
// if (item.getMinBillAmount() > mShoppingCart.getWholeAmount()) {
// //小於最小賬單金額
// mRootView.showMessage("小於最小賬單金額" + cashStr + item.getMinBillAmount() + " 無法使用此折扣");
......@@ -857,23 +827,53 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
// }
// mNomalDiscountAction.setNomalDiscountList(mShoppingCart.getNomalDiscoutByMultyDiscountList());
// mNomalDiscountAction.action(item);
// dialogFragment.dismiss();
// }
//
// @Override
// public void onScan() {
// toScanActivity();
// public void onCouponClick(MemberCoupon item, int position) {
// if (item.getBillMinAmount() > mShoppingCart.getWholeAmount()) {
// //小於最小賬單金額
// mRootView.showMessage("小於最小賬單金額" + cashStr + item.getBillMinAmount() + " 無法使用此優惠券");
// return;
// }
// mNomalDiscountAction.setNomalDiscountList(mShoppingCart.getNomalDiscoutByMultyDiscountList());
// mNomalDiscountAction.action(item.castDiscount());
// dialogFragment.dismiss();
// }
// });
// dialogFragment.show(IActivity.getSupportFragmentManager(), "DiscountDialogFragment");
// }
// List<Discount> discountList;
// if (BaseOrder.isCurrentOrderType(FoodSummaryConstans.TAKEAWAY_TYPE)) {
// discountList = mModel.queryDB_DiscountList(Discount.discount_scope_bill, Discount.ORDER_TYPE_TAKEAWAY);
// } else {
// discountList = mModel.queryDB_DiscountList(Discount.discount_scope_bill, Discount.ORDER_TYPE_MEAL_STAND);
// }
//
// mDiscountDialog.addItems(discountList);
// mDiscountDialog.build().show();
if (mDiscountDialog == null) {
mDiscountDialog = new DiscountDialog.Builder(IActivity);
mDiscountDialog.setCanScan(true);
mDiscountDialog.setOnClickListener(new DiscountDialog.Builder.OnClickListener() {
@Override
public void onItemClick(Discount item, int position) {
if (item.getMinBillAmount() > mShoppingCart.getWholeAmount()) {
//小於最小賬單金額
mRootView.showMessage("小於最小賬單金額" + cashStr + item.getMinBillAmount() + " 無法使用此折扣");
return;
}
mNomalDiscountAction.setNomalDiscountList(mShoppingCart.getNomalDiscoutByMultyDiscountList());
mNomalDiscountAction.action(item);
}
@Override
public void onScan() {
toScanActivity();
}
});
}
List<Discount> discountList;
if (BaseOrder.isCurrentOrderType(FoodSummaryConstans.TAKEAWAY_TYPE)) {
discountList = mModel.queryDB_DiscountList(Discount.discount_scope_bill, Discount.ORDER_TYPE_TAKEAWAY);
} else {
discountList = mModel.queryDB_DiscountList(Discount.discount_scope_bill, Discount.ORDER_TYPE_MEAL_STAND);
}
mDiscountDialog.addItems(discountList);
mDiscountDialog.build().show();
}
/**
......
......@@ -3,41 +3,30 @@ package com.gingersoft.gsa.cloud.table.mvp.ui.widget;
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.ImageView;
import android.widget.LinearLayout;
import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager.widget.ViewPager;
import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.database.bean.Discount;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.DiscountAdapter;
import com.jess.arms.utils.ThirdViewUtil;
import com.qmuiteam.qmui.arch.QMUIFragmentPagerAdapter;
import com.gingersoft.gsa.cloud.database.bean.Discount;
import com.gingersoft.gsa.cloud.ui.recylcler.decorator.DividerItemDecoration;
import com.qmuiteam.qmui.layout.QMUILinearLayout;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.qmuiteam.qmui.widget.QMUITopBar;
import com.qmuiteam.qmui.widget.tab.QMUITab;
import com.qmuiteam.qmui.widget.tab.QMUITabBuilder;
import com.qmuiteam.qmui.widget.tab.QMUITabIndicator;
import com.qmuiteam.qmui.widget.tab.QMUITabSegment;
import java.util.ArrayList;
import java.util.List;
import butterknife.BindView;
import butterknife.Unbinder;
import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.DefaultItemAnimator;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import lombok.Builder;
/**
* 作者:ELEGANT_BIN
......@@ -58,18 +47,6 @@ public class DiscountDialog extends Dialog {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//noinspection ConstantConditions
getWindow().getDecorView().setPadding(0, 0, 0, 0);
// 在底部,宽度撑满
WindowManager.LayoutParams params = getWindow().getAttributes();
params.height = ViewGroup.LayoutParams.WRAP_CONTENT;
params.gravity = Gravity.BOTTOM | Gravity.CENTER;
int screenWidth = QMUIDisplayHelper.getScreenWidth(getContext());
int screenHeight = QMUIDisplayHelper.getScreenHeight(getContext());
params.width = screenWidth < screenHeight ? screenWidth : screenHeight;
getWindow().setAttributes(params);
setCanceledOnTouchOutside(true);
}
......@@ -85,25 +62,7 @@ public class DiscountDialog extends Dialog {
public static class Builder implements View.OnClickListener {
// @BindView(R2.id.topbar)
// QMUITopBar topbar;
// @BindView(R2.id.recycler_discount)
// RecyclerView recyclerDiscount;
// @BindView(R2.id.tv_pager_indicator)
// PagerTabStrip tvPagerIndicator;
// @BindView(R2.id.ll_container)
// QMUILinearLayout llContainer;
@BindView(R2.id.topbar)
QMUITopBar topbar;
@BindView(R2.id.tabSegment)
QMUITabSegment tabSegment;
@BindView(R2.id.contentViewPager)
ViewPager contentViewPager;
@BindView(R2.id.ll_container)
QMUILinearLayout llContainer;
private FragmentActivity mContext;
private Context mContext;
private DiscountDialog mDialog;
private int spanCount = 3;
......@@ -116,17 +75,13 @@ public class DiscountDialog extends Dialog {
private List<Discount> mItems;
private DiscountAdapter mAdapter;
private Unbinder mUnbinder;
private String[] mTabTitles = {"折扣", "優惠券"};
private QMUITopBar mTopBar;
private QMUILinearLayout ll_container;
private RecyclerView recycler_discount;
private ImageView btn_close;
private int mCurrentPageIndex = 0;
// private QMUITopBar topbar;
// private QMUILinearLayout llContainer;
// private RecyclerView recyclerDiscount;
public Builder(FragmentActivity context) {
public Builder(Context context) {
mContext = context;
mItems = new ArrayList<>();
mRadius = QMUIDisplayHelper.dp2px(mContext, 8);
......@@ -157,112 +112,45 @@ public class DiscountDialog extends Dialog {
}
mDialog = new DiscountDialog(mContext);
View contentView = buildViews();
mDialog.setContentView(contentView, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,(int) (QMUIDisplayHelper.getScreenHeight(mContext) * 0.65)));
int screenHeight = (int) (QMUIDisplayHelper.getScreenHeight(mContext) * 0.6);
mDialog.setContentView(contentView, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, screenHeight));
return mDialog;
}
private View buildViews() {
View view = View.inflate(mContext, getContentViewLayoutId(), null);
ThirdViewUtil.bindTarget(this, view);
topbar = view.findViewById(R.id.topbar);
// recyclerDiscount = view.findViewById(R.id.recycler_discount);
llContainer = view.findViewById(R.id.ll_container);
// ll_container.setRadiusAndShadow(mRadius, QMUIDisplayHelper.dp2px(mContext, mShadowElevationDp), mShadowAlpha);
mTopBar = view.findViewById(R.id.topbar);
recycler_discount = view.findViewById(R.id.recycler_discount);
ll_container = view.findViewById(R.id.ll_container);
// btn_close = view.findViewById(R.id.btn_close);
// btn_close.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View v) {
// closeDialog() ;
// }
// });
ll_container.setRadiusAndShadow(mRadius, QMUIDisplayHelper.dp2px(mContext, mShadowElevationDp), mShadowAlpha);
initTopbar();
initTabAndPager();
initDiscountRecycleView();
return view;
}
private void initTabAndPager() {
QMUIFragmentPagerAdapter pagerAdapter = new QMUIFragmentPagerAdapter(mContext.getSupportFragmentManager()) {
@Override
public Fragment createFragment(int position) {
Bundle bundle = new Bundle();
// switch (position) {
// case 1:
// if (allTableFragment != null) {
// return allTableFragment;
// }
// allTableFragment = RegionFragment.newInstance();
// bundle.putInt("currentPageIndex", FUNCTION_ALL_TABLE);
// allTableFragment.setArguments(bundle);
// return allTableFragment;
// default:
// if (inputTableFragment != null) {
// return inputTableFragment;
// }
// inputTableFragment = InputTableFragment.newInstance();
// return inputTableFragment;
// }
return null;
}
@Override
public int getCount() {
return mTabTitles.length;
}
@Override
public CharSequence getPageTitle(int position) {
return "";
}
};
QMUITabBuilder builder = tabSegment.tabBuilder();
QMUITab tab1 = builder
.setText(mTabTitles[0])
.build(mContext);
QMUITab tab2 = builder
.setText(mTabTitles[1])
.build(mContext);
tabSegment
.addTab(tab1)
.addTab(tab2);
contentViewPager.setAdapter(pagerAdapter);
contentViewPager.setCurrentItem(mCurrentPageIndex);
int space = QMUIDisplayHelper.dp2px(mContext, 16);
tabSegment.setIndicator(new QMUITabIndicator(QMUIDisplayHelper.dp2px(mContext, 2), false, true));
tabSegment.setDefaultTextSize(QMUIDisplayHelper.dp2px(mContext, 16), QMUIDisplayHelper.dp2px(mContext, 16));
tabSegment.setPadding(space, 0, space, 0);
tabSegment.setupWithViewPager(contentViewPager, false);
tabSegment.addOnTabSelectedListener(new QMUITabSegment.OnTabSelectedListener() {
@Override
public void onTabSelected(int index) {
LoganManager.w_tableMode(TAG, "當前頁面【" + mTabTitles[index] + "】");
}
@Override
public void onTabUnselected(int index) {
}
@Override
public void onTabReselected(int index) {
}
@Override
public void onDoubleTap(int index) {
}
});
}
private void initTopbar() {
if (mBagcolor != 0) {
topbar.setBackgroundColor(mBagcolor);
mTopBar.setBackgroundColor(mBagcolor);
} else {
topbar.setBackgroundColor(ContextCompat.getColor(mContext, R.color.theme_color));
mTopBar.setBackgroundColor(ContextCompat.getColor(mContext, R.color.theme_color));
}
if (canScan) {
topbar.addRightImageButton(R.mipmap.table_white_scan, R.id.topbar_right_change_button)
mTopBar.addRightImageButton(R.mipmap.table_white_scan, R.id.topbar_right_change_button)
.setOnClickListener(v -> {
if (onClickListener != null) {
onClickListener.onScan();
}
});
}
topbar.setTitle("折扣");
mTopBar.setTitle("折扣");
}
private void initDiscountRecycleView() {
......@@ -275,10 +163,10 @@ public class DiscountDialog extends Dialog {
}
closeDialog();
});
// recyclerDiscount.addItemDecoration(new DividerItemDecoration(mContext, DividerItemDecoration.HORIZONTAL_LIST));
// recyclerDiscount.setLayoutManager(createLayoutManager());
// recyclerDiscount.setItemAnimator(new DefaultItemAnimator());
// recyclerDiscount.setAdapter(mAdapter);
recycler_discount.addItemDecoration(new DividerItemDecoration(mContext, DividerItemDecoration.HORIZONTAL_LIST));
recycler_discount.setLayoutManager(createLayoutManager());
recycler_discount.setItemAnimator(new DefaultItemAnimator());
recycler_discount.setAdapter(mAdapter);
}
private RecyclerView.LayoutManager createLayoutManager() {
......
......@@ -4,23 +4,30 @@
android:id="@+id/ll_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/theme_white_color"
android:orientation="vertical">
<!-- <com.qmuiteam.qmui.widget.QMUITopBar-->
<!-- android:id="@+id/topbar"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="@dimen/head_height"-->
<!-- app:qmui_topbar_title_color="@color/theme_white_color" />-->
<com.qmuiteam.qmui.widget.tab.QMUITabSegment
android:id="@+id/tabSegment"
<com.qmuiteam.qmui.widget.QMUITopBar
android:id="@+id/topbar"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_45"
android:background="@drawable/shape_tab_panel_bg" />
android:layout_height="?attr/qmui_topbar_height"
app:qmui_topbar_title_color="@color/theme_white_color" />
<androidx.viewpager.widget.ViewPager
android:id="@+id/contentViewPager"
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_discount"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
android:layout_height="wrap_content"
android:divider="@null"
android:fadeScrollbars="false"
android:orientation="vertical"
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
app:spanCount="3" />
<!-- <ImageView-->
<!-- android:id="@+id/btn_close"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_margin="@dimen/dp_20"-->
<!-- android:src="@drawable/icon_dialog_close" />-->
</com.qmuiteam.qmui.layout.QMUILinearLayout>
\ No newline at end of file
</com.qmuiteam.qmui.layout.QMUILinearLayout>
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