Commit 689f9821 by 宁斌

1、折扣彈窗cash問題

parent 5699dacf
...@@ -4,6 +4,7 @@ import android.content.Intent; ...@@ -4,6 +4,7 @@ import android.content.Intent;
import com.gingersoft.gsa.cloud.common.bean.BaseResult; import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.common.core.table.TableBean; 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.model.bean.response.BaseOrderResponse;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.RegionTableFragment; import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.RegionTableFragment;
import com.jess.arms.base.DefaultAdapter; import com.jess.arms.base.DefaultAdapter;
...@@ -71,7 +72,7 @@ public interface OrderContentContract { ...@@ -71,7 +72,7 @@ public interface OrderContentContract {
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存 //Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends BaseOrderContract.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); Observable<BaseOrderResponse> createOrder(RequestBody requestBody);
......
...@@ -76,12 +76,12 @@ public class OrderContentModel extends BaseModel implements OrderContentContract ...@@ -76,12 +76,12 @@ public class OrderContentModel extends BaseModel implements OrderContentContract
.loadOrder(orderId); .loadOrder(orderId);
} }
// @Override @Override
// public List<Discount> queryDB_DiscountList(byte discountScope, byte discountType) { public List<Discount> queryDB_DiscountList(byte discountScope, byte discountType) {
// DiscountDaoUtils discountDaoUtils = new DiscountDaoUtils(mApplication); DiscountDaoUtils discountDaoUtils = new DiscountDaoUtils(mApplication);
// List<Discount> discountList = discountDaoUtils.queryDiscountByQueryBuilder(); List<Discount> discountList = discountDaoUtils.queryDiscountByQueryBuilder();
// return MealConditionFilterUtils.discountConditionFilter(discountList,discountScope,discountType); return MealConditionFilterUtils.discountConditionFilter(discountList,discountScope,discountType);
// } }
@Override @Override
public Observable<BaseOrderResponse> createOrder(RequestBody requestBody) { public Observable<BaseOrderResponse> createOrder(RequestBody requestBody) {
......
...@@ -814,42 +814,12 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -814,42 +814,12 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
} }
private void showDiscountDialog() { private void showDiscountDialog() {
if (IActivity.findFragment(DiscountDialogFragment.class) == null) { // if (IActivity.findFragment(DiscountDialogFragment.class) == null) {
DiscountDialogFragment dialogFragment = DiscountDialogFragment.newInstance(); // DiscountDialogFragment dialogFragment = DiscountDialogFragment.newInstance();
dialogFragment.setOnDiscountItemClickListener(new DiscountDialogFragment.OnDiscountItemClickListener() { // 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() {
// @Override // @Override
// public void onItemClick(Discount item, int position) { // public void onBillDiscountClick(Discount item, int position) {
// if (item.getMinBillAmount() > mShoppingCart.getWholeAmount()) { // if (item.getMinBillAmount() > mShoppingCart.getWholeAmount()) {
// //小於最小賬單金額 // //小於最小賬單金額
// mRootView.showMessage("小於最小賬單金額" + cashStr + item.getMinBillAmount() + " 無法使用此折扣"); // mRootView.showMessage("小於最小賬單金額" + cashStr + item.getMinBillAmount() + " 無法使用此折扣");
...@@ -857,23 +827,53 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -857,23 +827,53 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
// } // }
// mNomalDiscountAction.setNomalDiscountList(mShoppingCart.getNomalDiscoutByMultyDiscountList()); // mNomalDiscountAction.setNomalDiscountList(mShoppingCart.getNomalDiscoutByMultyDiscountList());
// mNomalDiscountAction.action(item); // mNomalDiscountAction.action(item);
// dialogFragment.dismiss();
// } // }
// //
// @Override // @Override
// public void onScan() { // public void onCouponClick(MemberCoupon item, int position) {
// toScanActivity(); // if (item.getBillMinAmount() > mShoppingCart.getWholeAmount()) {
// //小於最小賬單金額
// mRootView.showMessage("小於最小賬單金額" + cashStr + item.getBillMinAmount() + " 無法使用此優惠券");
// return;
// } // }
// }); // mNomalDiscountAction.setNomalDiscountList(mShoppingCart.getNomalDiscoutByMultyDiscountList());
// mNomalDiscountAction.action(item.castDiscount());
// dialogFragment.dismiss();
// } // }
// List<Discount> discountList; // });
// if (BaseOrder.isCurrentOrderType(FoodSummaryConstans.TAKEAWAY_TYPE)) { // dialogFragment.show(IActivity.getSupportFragmentManager(), "DiscountDialogFragment");
// 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);
// } // }
// if (mDiscountDialog == null) {
// mDiscountDialog.addItems(discountList); mDiscountDialog = new DiscountDialog.Builder(IActivity);
// mDiscountDialog.build().show(); 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; ...@@ -3,41 +3,30 @@ package com.gingersoft.gsa.cloud.table.mvp.ui.widget;
import android.app.Dialog; import android.app.Dialog;
import android.content.Context; import android.content.Context;
import android.os.Bundle; import android.os.Bundle;
import android.view.Gravity;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.WindowManager; import android.widget.ImageView;
import android.widget.LinearLayout; 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.R;
import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.DiscountAdapter; import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.DiscountAdapter;
import com.jess.arms.utils.ThirdViewUtil; import com.gingersoft.gsa.cloud.database.bean.Discount;
import com.qmuiteam.qmui.arch.QMUIFragmentPagerAdapter; import com.gingersoft.gsa.cloud.ui.recylcler.decorator.DividerItemDecoration;
import com.qmuiteam.qmui.layout.QMUILinearLayout; import com.qmuiteam.qmui.layout.QMUILinearLayout;
import com.qmuiteam.qmui.util.QMUIDisplayHelper; import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.qmuiteam.qmui.widget.QMUITopBar; 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.ArrayList;
import java.util.List; import java.util.List;
import butterknife.BindView; import androidx.annotation.NonNull;
import butterknife.Unbinder; 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 * 作者:ELEGANT_BIN
...@@ -58,18 +47,6 @@ public class DiscountDialog extends Dialog { ...@@ -58,18 +47,6 @@ public class DiscountDialog extends Dialog {
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(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); setCanceledOnTouchOutside(true);
} }
...@@ -85,25 +62,7 @@ public class DiscountDialog extends Dialog { ...@@ -85,25 +62,7 @@ public class DiscountDialog extends Dialog {
public static class Builder implements View.OnClickListener { public static class Builder implements View.OnClickListener {
// @BindView(R2.id.topbar) private Context mContext;
// 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 DiscountDialog mDialog; private DiscountDialog mDialog;
private int spanCount = 3; private int spanCount = 3;
...@@ -116,17 +75,13 @@ public class DiscountDialog extends Dialog { ...@@ -116,17 +75,13 @@ public class DiscountDialog extends Dialog {
private List<Discount> mItems; private List<Discount> mItems;
private DiscountAdapter mAdapter; private DiscountAdapter mAdapter;
private Unbinder mUnbinder;
private String[] mTabTitles = {"折扣", "優惠券"};
private int mCurrentPageIndex = 0;
// private QMUITopBar topbar; private QMUITopBar mTopBar;
// private QMUILinearLayout llContainer; private QMUILinearLayout ll_container;
// private RecyclerView recyclerDiscount; private RecyclerView recycler_discount;
private ImageView btn_close;
public Builder(FragmentActivity context) { public Builder(Context context) {
mContext = context; mContext = context;
mItems = new ArrayList<>(); mItems = new ArrayList<>();
mRadius = QMUIDisplayHelper.dp2px(mContext, 8); mRadius = QMUIDisplayHelper.dp2px(mContext, 8);
...@@ -157,112 +112,45 @@ public class DiscountDialog extends Dialog { ...@@ -157,112 +112,45 @@ public class DiscountDialog extends Dialog {
} }
mDialog = new DiscountDialog(mContext); mDialog = new DiscountDialog(mContext);
View contentView = buildViews(); 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; return mDialog;
} }
private View buildViews() { private View buildViews() {
View view = View.inflate(mContext, getContentViewLayoutId(), null); View view = View.inflate(mContext, getContentViewLayoutId(), null);
ThirdViewUtil.bindTarget(this, view); mTopBar = view.findViewById(R.id.topbar);
topbar = view.findViewById(R.id.topbar); recycler_discount = view.findViewById(R.id.recycler_discount);
// recyclerDiscount = view.findViewById(R.id.recycler_discount); ll_container = view.findViewById(R.id.ll_container);
llContainer = view.findViewById(R.id.ll_container); // btn_close = view.findViewById(R.id.btn_close);
// ll_container.setRadiusAndShadow(mRadius, QMUIDisplayHelper.dp2px(mContext, mShadowElevationDp), mShadowAlpha); // btn_close.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View v) {
// closeDialog() ;
// }
// });
ll_container.setRadiusAndShadow(mRadius, QMUIDisplayHelper.dp2px(mContext, mShadowElevationDp), mShadowAlpha);
initTopbar(); initTopbar();
initTabAndPager();
initDiscountRecycleView(); initDiscountRecycleView();
return view; 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() { private void initTopbar() {
if (mBagcolor != 0) { if (mBagcolor != 0) {
topbar.setBackgroundColor(mBagcolor); mTopBar.setBackgroundColor(mBagcolor);
} else { } else {
topbar.setBackgroundColor(ContextCompat.getColor(mContext, R.color.theme_color)); mTopBar.setBackgroundColor(ContextCompat.getColor(mContext, R.color.theme_color));
} }
if (canScan) { 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 -> { .setOnClickListener(v -> {
if (onClickListener != null) { if (onClickListener != null) {
onClickListener.onScan(); onClickListener.onScan();
} }
}); });
} }
topbar.setTitle("折扣"); mTopBar.setTitle("折扣");
} }
private void initDiscountRecycleView() { private void initDiscountRecycleView() {
...@@ -275,10 +163,10 @@ public class DiscountDialog extends Dialog { ...@@ -275,10 +163,10 @@ public class DiscountDialog extends Dialog {
} }
closeDialog(); closeDialog();
}); });
// recyclerDiscount.addItemDecoration(new DividerItemDecoration(mContext, DividerItemDecoration.HORIZONTAL_LIST)); recycler_discount.addItemDecoration(new DividerItemDecoration(mContext, DividerItemDecoration.HORIZONTAL_LIST));
// recyclerDiscount.setLayoutManager(createLayoutManager()); recycler_discount.setLayoutManager(createLayoutManager());
// recyclerDiscount.setItemAnimator(new DefaultItemAnimator()); recycler_discount.setItemAnimator(new DefaultItemAnimator());
// recyclerDiscount.setAdapter(mAdapter); recycler_discount.setAdapter(mAdapter);
} }
private RecyclerView.LayoutManager createLayoutManager() { private RecyclerView.LayoutManager createLayoutManager() {
......
...@@ -4,23 +4,30 @@ ...@@ -4,23 +4,30 @@
android:id="@+id/ll_container" android:id="@+id/ll_container"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@color/theme_white_color"
android:orientation="vertical"> android:orientation="vertical">
<!-- <com.qmuiteam.qmui.widget.QMUITopBar--> <com.qmuiteam.qmui.widget.QMUITopBar
<!-- android:id="@+id/topbar"--> 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"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/dp_45" android:layout_height="?attr/qmui_topbar_height"
android:background="@drawable/shape_tab_panel_bg" /> app:qmui_topbar_title_color="@color/theme_white_color" />
<androidx.viewpager.widget.ViewPager <androidx.recyclerview.widget.RecyclerView
android:id="@+id/contentViewPager" android:id="@+id/recycler_discount"
android:layout_width="match_parent" 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> </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