Commit b01803d9 by 宁斌

1、添加部分會員優惠券邏輯

parent f699e909
package com.gingersoft.gsa.cloud.table.mvp.model.bean; package com.gingersoft.gsa.cloud.table.mvp.model.bean;
import android.os.Parcel;
import android.os.Parcelable;
import android.text.TextUtils; import android.text.TextUtils;
import java.io.File; import java.io.File;
...@@ -16,7 +18,7 @@ import lombok.Setter; ...@@ -16,7 +18,7 @@ import lombok.Setter;
*/ */
@Getter @Getter
@Setter @Setter
public class SoldoutCtrFood { public class SoldoutCtrFood implements Parcelable {
private long id; private long id;
private int restaurantId; private int restaurantId;
...@@ -100,4 +102,55 @@ public class SoldoutCtrFood { ...@@ -100,4 +102,55 @@ public class SoldoutCtrFood {
} }
return ""; return "";
} }
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeLong(this.id);
dest.writeInt(this.restaurantId);
dest.writeLong(this.brandId);
dest.writeValue(this.foodId);
dest.writeValue(this.modifierId);
dest.writeByte(this.type);
dest.writeInt(this.remainingNumber);
dest.writeInt(this.useNumber);
dest.writeString(this.foodName);
dest.writeString(this.foodName1);
dest.writeString(this.foodName2);
dest.writeByte(this.isStop ? (byte) 1 : (byte) 0);
dest.writeInt(this.selected);
}
protected SoldoutCtrFood(Parcel in) {
this.id = in.readLong();
this.restaurantId = in.readInt();
this.brandId = in.readLong();
this.foodId = (Long) in.readValue(Long.class.getClassLoader());
this.modifierId = (Long) in.readValue(Long.class.getClassLoader());
this.type = in.readByte();
this.remainingNumber = in.readInt();
this.useNumber = in.readInt();
this.foodName = in.readString();
this.foodName1 = in.readString();
this.foodName2 = in.readString();
this.isStop = in.readByte() != 0;
this.selected = in.readInt();
}
public static final Creator<SoldoutCtrFood> CREATOR = new Creator<SoldoutCtrFood>() {
@Override
public SoldoutCtrFood createFromParcel(Parcel source) {
return new SoldoutCtrFood(source);
}
@Override
public SoldoutCtrFood[] newArray(int size) {
return new SoldoutCtrFood[size];
}
};
} }
package com.gingersoft.gsa.cloud.table.mvp.model.bean.event; package com.gingersoft.gsa.cloud.table.mvp.model.bean.event;
import android.os.Parcel;
import android.os.Parcelable;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.SoldoutCtrFood; import com.gingersoft.gsa.cloud.table.mvp.model.bean.SoldoutCtrFood;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import lombok.Data; import lombok.Data;
...@@ -13,11 +17,47 @@ import lombok.Data; ...@@ -13,11 +17,47 @@ import lombok.Data;
* @描述: * @描述:
*/ */
@Data @Data
public class LoadFineEvent { public class LoadFineEvent implements Parcelable {
private int currFinePage; private int currFinePage;
private long productId; private long productId;
private int selectedMode; private int selectedMode;
private List<SoldoutCtrFood> soldoutCtrFoods; private List<SoldoutCtrFood> soldoutCtrFoods;
public LoadFineEvent(){
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(this.currFinePage);
dest.writeLong(this.productId);
dest.writeInt(this.selectedMode);
dest.writeList(this.soldoutCtrFoods);
}
public LoadFineEvent(Parcel in) {
this.currFinePage = in.readInt();
this.productId = in.readLong();
this.selectedMode = in.readInt();
this.soldoutCtrFoods = new ArrayList<SoldoutCtrFood>();
in.readList(this.soldoutCtrFoods, SoldoutCtrFood.class.getClassLoader());
}
public static final Creator<LoadFineEvent> CREATOR = new Creator<LoadFineEvent>() {
@Override
public LoadFineEvent createFromParcel(Parcel source) {
return new LoadFineEvent(source);
}
@Override
public LoadFineEvent[] newArray(int size) {
return new LoadFineEvent[size];
}
};
} }
...@@ -1144,7 +1144,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex ...@@ -1144,7 +1144,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
orderItem.setPrice(item.getUnit_price()); orderItem.setPrice(item.getUnit_price());
orderItem.setCost(item.getCost()); orderItem.setCost(item.getCost());
orderItem.setType(item.getType()); orderItem.setType(item.getType());
orderItem.setPrintSetIng(item.getPrintseting()); orderItem.setPrintSetIng(item.getPrintSeting());
orderItem.setAblediscount(item.getAblediscount()); orderItem.setAblediscount(item.getAblediscount());
orderItem.setScAble(item.getScAble()); orderItem.setScAble(item.getScAble());
if (item.canAbleDiscount()) { if (item.canAbleDiscount()) {
......
...@@ -20,6 +20,7 @@ import com.gingersoft.gsa.cloud.common.utils.time.TimeUtils; ...@@ -20,6 +20,7 @@ import com.gingersoft.gsa.cloud.common.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.component.ComponentName; import com.gingersoft.gsa.cloud.component.ComponentName;
import com.gingersoft.gsa.cloud.database.bean.Discount; import com.gingersoft.gsa.cloud.database.bean.Discount;
import com.gingersoft.gsa.cloud.order.bean.discount.CouponDiscountBean; import com.gingersoft.gsa.cloud.order.bean.discount.CouponDiscountBean;
import com.gingersoft.gsa.cloud.order.bean.discount.MemberWalletCoupon;
import com.gingersoft.gsa.cloud.order.bean.request.OrderDiscountRequest; import com.gingersoft.gsa.cloud.order.bean.request.OrderDiscountRequest;
import com.gingersoft.gsa.cloud.order.bean.response.OrderDiscountResponse; import com.gingersoft.gsa.cloud.order.bean.response.OrderDiscountResponse;
import com.gingersoft.gsa.cloud.order.bean.response.OrderResponse; import com.gingersoft.gsa.cloud.order.bean.response.OrderResponse;
...@@ -346,7 +347,19 @@ public abstract class BaseOrderPresenter2<M extends BaseOrderContract.Model, V e ...@@ -346,7 +347,19 @@ public abstract class BaseOrderPresenter2<M extends BaseOrderContract.Model, V e
couponDiscount.setSpend(orderDiscount.getSpend()); couponDiscount.setSpend(orderDiscount.getSpend());
couponDiscount.setDiscount(orderDiscount.getDiscountValue()); couponDiscount.setDiscount(orderDiscount.getDiscountValue());
couponDiscount.setAmount(orderDiscount.getDiscountAmount()); couponDiscount.setAmount(orderDiscount.getDiscountAmount());
mShoppingCart.addMultyDiscount(mShoppingCart.createCouponDiscount(couponDiscount, BillItem.BILL_ITEM_ORDER_SENT_STATUS)); mShoppingCart.addMultyDiscount(mShoppingCart.createCouponDiscount(couponDiscount, BillItem.BILL_ITEM_ORDER_SENT_STATUS));
// MemberWalletCoupon memberWalletCoupon = new MemberWalletCoupon();
// memberWalletCoupon.setDiscountRecordId(orderDiscount.getId());
// memberWalletCoupon.setCouponTypeName1(orderDiscount.getRemark());
// memberWalletCoupon.setCouponTypeName2(orderDiscount.getRemark2());
// memberWalletCoupon.setCouponTypeName3(orderDiscount.getRemark3());
// memberWalletCoupon.setAccumulate(orderDiscount.getAccumulate());
// memberWalletCoupon.setSpend(orderDiscount.getSpend());
// memberWalletCoupon.setDiscount(orderDiscount.getDiscountValue());
// memberWalletCoupon.setAmount(orderDiscount.getDiscountAmount());
// mShoppingCart.addMultyDiscount(mShoppingCart.createMemberWalletCoupon(couponDiscount, BillItem.BILL_ITEM_ORDER_SENT_STATUS));
} }
} }
} }
...@@ -1146,7 +1159,7 @@ public abstract class BaseOrderPresenter2<M extends BaseOrderContract.Model, V e ...@@ -1146,7 +1159,7 @@ public abstract class BaseOrderPresenter2<M extends BaseOrderContract.Model, V e
orderItem.setPrice(item.getUnit_price()); orderItem.setPrice(item.getUnit_price());
orderItem.setCost(item.getCost()); orderItem.setCost(item.getCost());
orderItem.setType(item.getType()); orderItem.setType(item.getType());
orderItem.setPrintSetIng(item.getPrintseting()); orderItem.setPrintSetIng(item.getPrintSeting());
orderItem.setAblediscount(item.getAblediscount()); orderItem.setAblediscount(item.getAblediscount());
orderItem.setScAble(item.getScAble()); orderItem.setScAble(item.getScAble());
if (item.canAbleDiscount()) { if (item.canAbleDiscount()) {
......
...@@ -117,7 +117,6 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -117,7 +117,6 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
* 分檯弹窗 * 分檯弹窗
*/ */
private SplitTableDialog mSplitTableDialog; private SplitTableDialog mSplitTableDialog;
private DiscountDialog.Builder mDiscountDialog;
/** /**
* 整單折扣 * 整單折扣
*/ */
...@@ -138,6 +137,10 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -138,6 +137,10 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
//转移食品可多选 //转移食品可多选
mSelectMealAdapter.setSelectedMode(SelectMealAdapter.MULTIPLE_SELECTED); mSelectMealAdapter.setSelectedMode(SelectMealAdapter.MULTIPLE_SELECTED);
} }
initAction();
}
private void initAction() {
mNomalDiscountAction = BillDiscountAction.builder() mNomalDiscountAction = BillDiscountAction.builder()
.cashStr(cashStr) .cashStr(cashStr)
.context(IActivity) .context(IActivity)
...@@ -156,17 +159,13 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -156,17 +159,13 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
} }
}) })
.build(); .build();
mBillCouponAction = BillCouponAction.builder() mBillCouponAction = BillCouponAction.builder()
.context(IActivity) .context(IActivity)
.cashStr(cashStr) .cashStr(cashStr)
.listener(new BillCouponAction.OnCallBackListener() { .listener((coupon) -> {
@Override mShoppingCart.addMultyDiscount(mShoppingCart.createMemberWalletCoupon(coupon, BillItem.BILL_ITEM_NO_ORDER_STATUS));
public void preformAddCoupon(MemberWalletCoupon coupon) { DoshokuOrder.getInstance().setBillItemStatus(DoshokuOrder.DISCOUNT_ITEM_TAG);
mShoppingCart.addMultyDiscount(mShoppingCart.createMemberWalletCoupon(coupon, BillItem.BILL_ITEM_NO_ORDER_STATUS)); updateBillInfo();
DoshokuOrder.getInstance().setBillItemStatus(DoshokuOrder.DISCOUNT_ITEM_TAG);
updateBillInfo();
}
}) })
.build(); .build();
} }
...@@ -1035,9 +1034,4 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -1035,9 +1034,4 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
return mFunctionList; return mFunctionList;
} }
public void closeDiscountDialog() {
if (mDiscountDialog != null) {
mDiscountDialog.closeDialog();
}
}
} }
...@@ -6,7 +6,9 @@ import com.gingersoft.gsa.cloud.common.bean.BaseResult; ...@@ -6,7 +6,9 @@ import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.common.constans.FoodSummaryConstans; import com.gingersoft.gsa.cloud.common.constans.FoodSummaryConstans;
import com.gingersoft.gsa.cloud.common.rxjava.ErrorHandleSingleSubscriber; import com.gingersoft.gsa.cloud.common.rxjava.ErrorHandleSingleSubscriber;
import com.gingersoft.gsa.cloud.database.bean.Discount; import com.gingersoft.gsa.cloud.database.bean.Discount;
import com.gingersoft.gsa.cloud.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.order.order.BaseOrder; import com.gingersoft.gsa.cloud.order.order.BaseOrder;
import com.gingersoft.gsa.cloud.table.mvp.action.discount.MealDiscountAction;
import com.gingersoft.gsa.cloud.table.mvp.contract.NomalDiscountContract; import com.gingersoft.gsa.cloud.table.mvp.contract.NomalDiscountContract;
import com.jess.arms.integration.AppManager; import com.jess.arms.integration.AppManager;
import com.jess.arms.di.scope.FragmentScope; import com.jess.arms.di.scope.FragmentScope;
......
...@@ -219,41 +219,9 @@ public class FineChildAllPresenter extends BasePresenter<FineChildAllContract.Mo ...@@ -219,41 +219,9 @@ public class FineChildAllPresenter extends BasePresenter<FineChildAllContract.Mo
//获取数据 //获取数据
mModel.queryDB_ModifierByModModTasteVisibleQueryBuilder() mModel.queryDB_ModifierByModModTasteVisibleQueryBuilder()
.doOnError(new Consumer<Throwable>() {
@Override
public void accept(Throwable throwable) throws Exception {
mFineItemOneList.clear();
}
})
.compose(RxLifecycleUtils.bindToLifecycle(mRootView)) .compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSingleSubscriber<List<Modifier>>(mErrorHandler) { .subscribe(new ErrorHandleSingleSubscriber<List<Modifier>>(mErrorHandler) {
// @Override
// public void onError(Throwable t) {
// super.onError(t);
// }
//
// @Override
// public void onComplete() {
// super.onComplete();
// }
//
// @Override
// public void onNext(List<Modifier> modifierList) {
// if (modifierList == null || modifierList.size() == 0) {
// mFineItemOneList.clear();
// mFineItemAllAdapter.notifyDataSetChanged();
// return;
// }
//
// setFid(modifierList, fid);
//
// mFineItemOneList.clear();
// mFineItemOneList.addAll(modifierList);
// mRootView.setFineItemAllRecycleSpanCount(mFineItemOneList.size());
// mFineItemAllAdapter.notifyDataSetChanged();
// }
@Override @Override
public void onSuccess(List<Modifier> modifierList) { public void onSuccess(List<Modifier> modifierList) {
if (modifierList == null || modifierList.size() == 0) { if (modifierList == null || modifierList.size() == 0) {
......
...@@ -625,8 +625,6 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese ...@@ -625,8 +625,6 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese
} }
} else if (requestCode == ScanHelper.CALL_BACK_QR_RESULT) { } else if (requestCode == ScanHelper.CALL_BACK_QR_RESULT) {
mPresenter.closeDiscountDialog();
String qrCodeResult = data.getStringExtra("qrCodeResult"); String qrCodeResult = data.getStringExtra("qrCodeResult");
String encryptQRCode; String encryptQRCode;
try { try {
......
...@@ -62,9 +62,6 @@ public class DiscountDialogFragment extends BaseDialogFragment<BasePresenter> { ...@@ -62,9 +62,6 @@ public class DiscountDialogFragment extends BaseDialogFragment<BasePresenter> {
@BindView(R2.id.ll_container) @BindView(R2.id.ll_container)
QMUILinearLayout llContainer; QMUILinearLayout llContainer;
private CouponFragment couponFragment;
private NomalDiscountFragment billDiscountFragment;
private List<String> mTabList = new ArrayList<>(); private List<String> mTabList = new ArrayList<>();
private int mCurrentPageIndex = 0; private int mCurrentPageIndex = 0;
...@@ -154,7 +151,7 @@ public class DiscountDialogFragment extends BaseDialogFragment<BasePresenter> { ...@@ -154,7 +151,7 @@ public class DiscountDialogFragment extends BaseDialogFragment<BasePresenter> {
private List<Fragment> createFragments() { private List<Fragment> createFragments() {
List<Fragment> fragments = new ArrayList<>(); List<Fragment> fragments = new ArrayList<>();
couponFragment = CouponFragment.newInstance(CouponFragment.BILL_LIMIT_DISCOUNT); CouponFragment couponFragment = CouponFragment.newInstance(CouponFragment.BILL_LIMIT_DISCOUNT);
couponFragment.setOnCouponItemClickListener(new CouponFragment.OnCouponItemClickListener() { couponFragment.setOnCouponItemClickListener(new CouponFragment.OnCouponItemClickListener() {
@Override @Override
public void onItemClick(MemberWalletCoupon item, int position) { public void onItemClick(MemberWalletCoupon item, int position) {
...@@ -163,7 +160,7 @@ public class DiscountDialogFragment extends BaseDialogFragment<BasePresenter> { ...@@ -163,7 +160,7 @@ public class DiscountDialogFragment extends BaseDialogFragment<BasePresenter> {
} }
} }
}); });
billDiscountFragment = NomalDiscountFragment.newInstance(); NomalDiscountFragment billDiscountFragment = NomalDiscountFragment.newInstance();
billDiscountFragment.setOnDiscountItemClickListener(new NomalDiscountFragment.OnBillDiscountItemClickListener() { billDiscountFragment.setOnDiscountItemClickListener(new NomalDiscountFragment.OnBillDiscountItemClickListener() {
@Override @Override
public void onItemClick(Discount item, int position) { public void onItemClick(Discount item, int position) {
......
...@@ -118,25 +118,28 @@ public class DiscountFragment extends BaseFragment<BasePresenter> { ...@@ -118,25 +118,28 @@ public class DiscountFragment extends BaseFragment<BasePresenter> {
public void onDoubleTap(int index) { public void onDoubleTap(int index) {
} }
}); });
QMUITabSegmentUtils.setNomalTabSegmentStyle(tabSegment,viewPager); QMUITabSegmentUtils.setNomalTabSegmentStyle(tabSegment, viewPager);
} }
private List<Fragment> createFragments() { private List<Fragment> createFragments() {
List<Fragment> fragments = new ArrayList<>(); List<Fragment> fragments = new ArrayList<>();
CouponFragment couponFragment = CouponFragment.newInstance(CouponFragment.FOOD_LIMIT_DISCOUNT);
couponFragment.setOnCouponItemClickListener((item, position) -> {
if (onDiscountItemClickListener != null) {
onDiscountItemClickListener.onCouponClick(item, position);
}
});
NomalDiscountFragment billDiscountFragment = NomalDiscountFragment.newInstance(); NomalDiscountFragment billDiscountFragment = NomalDiscountFragment.newInstance();
billDiscountFragment.setOnDiscountItemClickListener((item, position) -> { billDiscountFragment.setOnDiscountItemClickListener((item, position) -> {
if (onDiscountItemClickListener != null) { if (onDiscountItemClickListener != null) {
onDiscountItemClickListener.onBillDiscountClick(item, position); onDiscountItemClickListener.onBillDiscountClick(item, position);
} }
}); });
fragments.add(couponFragment); CouponFragment couponFragment = CouponFragment.newInstance(CouponFragment.FOOD_LIMIT_DISCOUNT);
couponFragment.setOnCouponItemClickListener((item, position) -> {
if (onDiscountItemClickListener != null) {
onDiscountItemClickListener.onCouponClick(item, position);
}
});
fragments.add(billDiscountFragment); fragments.add(billDiscountFragment);
MemberInfo memberInfo = DoshokuOrder.getInstance().getMemberInfo();
if (memberInfo != null) {
fragments.add(couponFragment);
}
return fragments; return fragments;
} }
......
...@@ -3,6 +3,7 @@ package com.gingersoft.gsa.cloud.table.mvp.ui.fragment.mealstand; ...@@ -3,6 +3,7 @@ package com.gingersoft.gsa.cloud.table.mvp.ui.fragment.mealstand;
import android.app.Activity; import android.app.Activity;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.os.Message;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
...@@ -59,15 +60,22 @@ public class FineChildAllFragment extends BaseFragment<FineChildAllPresenter> im ...@@ -59,15 +60,22 @@ public class FineChildAllFragment extends BaseFragment<FineChildAllPresenter> im
@BindView(R2.id.recycle_fine_item_kind_item) @BindView(R2.id.recycle_fine_item_kind_item)
RecyclerView recycle_fine_item_kind_item; RecyclerView recycle_fine_item_kind_item;
private int modCol; private LoadFineEvent mLoadFineEvent;
public final static String LOAD_FINE_DATA_EVENT = "loadFineDataEvent"; private int modCol;
public final static String UPDATE_FINE_DATA_EVENT = "updateFineDataEvent"; public final static String UPDATE_FINE_DATA_EVENT = "updateFineSoldoutEvent";
public static FineChildAllFragment newInstance() { public static FineChildAllFragment newInstance() {
FineChildAllFragment fragment = new FineChildAllFragment(); FineChildAllFragment fragment = new FineChildAllFragment();
return fragment; return fragment;
} }
public static FineChildAllFragment newInstance(LoadFineEvent loadFineEvent) {
FineChildAllFragment fragment = new FineChildAllFragment();
Bundle bundle = new Bundle();
bundle.putParcelable("loadFineEvent", loadFineEvent);
fragment.setArguments(bundle);
return fragment;
}
@Override @Override
public void setupFragmentComponent(@NonNull AppComponent appComponent) { public void setupFragmentComponent(@NonNull AppComponent appComponent) {
...@@ -86,14 +94,20 @@ public class FineChildAllFragment extends BaseFragment<FineChildAllPresenter> im ...@@ -86,14 +94,20 @@ public class FineChildAllFragment extends BaseFragment<FineChildAllPresenter> im
@Override @Override
public void initData(@Nullable Bundle savedInstanceState) { public void initData(@Nullable Bundle savedInstanceState) {
final Bundle arguments = getArguments();
if (arguments != null) {
mLoadFineEvent = arguments.getParcelable("loadFineEvent");
}
modCol = GsaCloudApplication.uiStyleConfiguration.getModColumnValue(); modCol = GsaCloudApplication.uiStyleConfiguration.getModColumnValue();
mPresenter.initAdapter(); mPresenter.initAdapter();
mPresenter.initItemListener(mContext); mPresenter.initItemListener(mContext);
if (mLoadFineEvent != null) {
loadFineData(mLoadFineEvent);
}
} }
@Subscriber(tag = LOAD_FINE_DATA_EVENT, mode = ThreadMode.MAIN)
public void loadFineData(LoadFineEvent fineEvent) { public void loadFineData(LoadFineEvent fineEvent) {
final int currFinePage = fineEvent.getCurrFinePage(); final int currFinePage = fineEvent.getCurrFinePage();
final long productId = fineEvent.getProductId(); final long productId = fineEvent.getProductId();
...@@ -120,7 +134,7 @@ public class FineChildAllFragment extends BaseFragment<FineChildAllPresenter> im ...@@ -120,7 +134,7 @@ public class FineChildAllFragment extends BaseFragment<FineChildAllPresenter> im
} }
} }
@Subscriber(tag = UPDATE_FINE_DATA_EVENT, mode = ThreadMode.MAIN) @Subscriber(tag = FineChildAllFragment.UPDATE_FINE_DATA_EVENT, mode = ThreadMode.MAIN)
public void updateFineItemSoldoutListFull(List<SoldoutCtrFood> soldoutListFull) { public void updateFineItemSoldoutListFull(List<SoldoutCtrFood> soldoutListFull) {
setModifierSoldoutFoodList_Full(soldoutListFull); setModifierSoldoutFoodList_Full(soldoutListFull);
updateParentModifierSlodoutFoodList_Full(); updateParentModifierSlodoutFoodList_Full();
...@@ -128,7 +142,6 @@ public class FineChildAllFragment extends BaseFragment<FineChildAllPresenter> im ...@@ -128,7 +142,6 @@ public class FineChildAllFragment extends BaseFragment<FineChildAllPresenter> im
@Override @Override
public void setData(@Nullable Object data) { public void setData(@Nullable Object data) {
} }
public void setModifierSoldoutFoodList_Full(List<SoldoutCtrFood> soldoutCtrFoodList) { public void setModifierSoldoutFoodList_Full(List<SoldoutCtrFood> soldoutCtrFoodList) {
......
...@@ -107,10 +107,11 @@ public class RiceponMemberDialogFragment extends BaseDialogFragment<RiceponMembe ...@@ -107,10 +107,11 @@ public class RiceponMemberDialogFragment extends BaseDialogFragment<RiceponMembe
private TableBean.DataBean mCurrTableBean; private TableBean.DataBean mCurrTableBean;
private MemberInfo mMemberInfo; private MemberInfo mMemberInfo;
public static RiceponMemberDialogFragment newInstance(TableBean.DataBean currTableBean) { public static RiceponMemberDialogFragment newInstance(TableBean.DataBean currTableBean, MemberInfo memberInfo) {
RiceponMemberDialogFragment fragment = new RiceponMemberDialogFragment(); RiceponMemberDialogFragment fragment = new RiceponMemberDialogFragment();
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putParcelable("currTableBean", currTableBean); bundle.putParcelable("currTableBean", currTableBean);
bundle.putParcelable("memberInfo", memberInfo);
fragment.setArguments(bundle); fragment.setArguments(bundle);
return fragment; return fragment;
} }
...@@ -134,6 +135,7 @@ public class RiceponMemberDialogFragment extends BaseDialogFragment<RiceponMembe ...@@ -134,6 +135,7 @@ public class RiceponMemberDialogFragment extends BaseDialogFragment<RiceponMembe
public void onCreate(@Nullable Bundle savedInstanceState) { public void onCreate(@Nullable Bundle savedInstanceState) {
Bundle arguments = getArguments(); Bundle arguments = getArguments();
mCurrTableBean = arguments.getParcelable("currTableBean"); mCurrTableBean = arguments.getParcelable("currTableBean");
mMemberInfo = arguments.getParcelable("memberInfo");
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
} }
...@@ -142,6 +144,7 @@ public class RiceponMemberDialogFragment extends BaseDialogFragment<RiceponMembe ...@@ -142,6 +144,7 @@ public class RiceponMemberDialogFragment extends BaseDialogFragment<RiceponMembe
initTopbar(); initTopbar();
initAdapter(); initAdapter();
returnMemberInfo(mMemberInfo);
} }
@Override @Override
...@@ -265,6 +268,9 @@ public class RiceponMemberDialogFragment extends BaseDialogFragment<RiceponMembe ...@@ -265,6 +268,9 @@ public class RiceponMemberDialogFragment extends BaseDialogFragment<RiceponMembe
@Override @Override
public void returnMemberInfo(MemberInfo memberInfo) { public void returnMemberInfo(MemberInfo memberInfo) {
if (memberInfo == null) {
return;
}
this.mMemberInfo = memberInfo; this.mMemberInfo = memberInfo;
final List<SectionTextItem> memberInfoItems = getMemberInfoItem(memberInfo); final List<SectionTextItem> memberInfoItems = getMemberInfoItem(memberInfo);
if (mMemberInfoList.size() > 0) { if (mMemberInfoList.size() > 0) {
......
...@@ -2,13 +2,12 @@ ...@@ -2,13 +2,12 @@
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="match_parent">
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_bill_discount" android:id="@+id/rv_bill_discount"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="match_parent"
android:orientation="horizontal" android:orientation="horizontal" />
/>
</FrameLayout> </FrameLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="match_parent">
<com.scwang.smartrefresh.layout.SmartRefreshLayout <com.scwang.smartrefresh.layout.SmartRefreshLayout
android:id="@+id/refreshLayout" android:id="@+id/refreshLayout"
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_coupon" android:id="@+id/rv_coupon"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="match_parent"
android:layout_alignParentBottom="true" android:layout_alignParentBottom="true"
android:layout_gravity="bottom" android:layout_gravity="bottom"
android:orientation="horizontal" /> android:orientation="horizontal" />
......
...@@ -57,23 +57,9 @@ ...@@ -57,23 +57,9 @@
android:layout_above="@+id/ll_modify" android:layout_above="@+id/ll_modify"
android:visibility="gone"> android:visibility="gone">
<!-- <fragment-->
<!-- android:id="@+id/fragment_discount"-->
<!-- android:name="com.gingersoft.gsa.cloud.table.mvp.ui.fragment.discount.DiscountFragment"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content" />-->
</FrameLayout>
<FrameLayout
android:id="@+id/fl_fine_fragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/ll_modify"
android:visibility="gone">
<fragment <fragment
android:id="@+id/fragment_fine" android:id="@+id/fragment_discount"
android:name="com.gingersoft.gsa.cloud.table.mvp.ui.fragment.mealstand.FineFragment" android:name="com.gingersoft.gsa.cloud.table.mvp.ui.fragment.discount.DiscountFragment"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" /> android:layout_height="wrap_content" />
</FrameLayout> </FrameLayout>
......
...@@ -4,17 +4,30 @@ ...@@ -4,17 +4,30 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/ll_fine" android:id="@+id/ll_fine"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content"
android:orientation="vertical">
<com.qmuiteam.qmui.widget.tab.QMUITabSegment2 <FrameLayout
android:id="@+id/tabs_fine"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/dp_45" android:layout_height="wrap_content"
android:background="@drawable/shape_tab_panel_bg" /> android:background="@drawable/shape_tab_panel_bg">
<com.qmuiteam.qmui.widget.tab.QMUITabSegment2
android:id="@+id/tabs_fine"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_45" />
<ImageView
android:id="@+id/iv_fine_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:padding="@dimen/dp_10"
android:src="@drawable/ic_black_back" />
</FrameLayout>
<androidx.viewpager2.widget.ViewPager2 <androidx.viewpager2.widget.ViewPager2
android:id="@+id/pager_fine" android:id="@+id/pager_fine"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"/> android:layout_height="match_parent"/>
</LinearLayout> </LinearLayout>
\ No newline at end of file
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
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="match_parent"
android:orientation="vertical"> android:orientation="vertical">
<com.qmuiteam.qmui.widget.tab.QMUITabSegment2 <com.qmuiteam.qmui.widget.tab.QMUITabSegment2
......
...@@ -185,15 +185,13 @@ public class ShoppingCart { ...@@ -185,15 +185,13 @@ public class ShoppingCart {
public void delAllMultyDiscount() { public void delAllMultyDiscount() {
List<MultyDiscount> multyDiscountList = getMultyDiscountList(); List<MultyDiscount> multyDiscountList = getMultyDiscountList();
boolean result = multyDiscountList.removeAll(multyDiscountList); boolean result = multyDiscountList.removeAll(multyDiscountList);
int i = 100;
} }
/** /**
* 刪除所有單折扣 * 刪除所有單折扣
*/ */
public void delAllNomalDiscountList(List<NomalDiscount> nomalDiscountList) { public boolean delAllNomalDiscountList(List<NomalDiscount> nomalDiscountList) {
boolean result = getMultyDiscountList().removeAll(nomalDiscountList); return getMultyDiscountList().removeAll(nomalDiscountList);
int i = 100;
} }
/** /**
...@@ -232,17 +230,17 @@ public class ShoppingCart { ...@@ -232,17 +230,17 @@ public class ShoppingCart {
MultyDiscount memberLevelDiscount = new MemberLevelDiscount(discount.getMemberName(), status, multyDiscounts, discount); MultyDiscount memberLevelDiscount = new MemberLevelDiscount(discount.getMemberName(), status, multyDiscounts, discount);
return memberLevelDiscount; return memberLevelDiscount;
} }
//
/** // /**
* 將會員優惠券折扣添加到鏈條中 // * 將會員優惠券折扣添加到鏈條中
* // *
* @param discount // * @param discount
* @return // * @return
*/ // */
public MultyDiscount addMemberCouponDiscountToLinked(MultyDiscount multyDiscounts, CouponDiscountBean discount, int status) { // public MultyDiscount addMemberCouponDiscountToLinked(MultyDiscount multyDiscounts, CouponDiscountBean discount, int status) {
MultyDiscount couponDiscount = new MemberCouponDiscount(discount.getName(), status, multyDiscounts, discount); // MultyDiscount couponDiscount = new MemberCouponDiscount(discount.getName(), status, multyDiscounts, discount);
return couponDiscount; // return couponDiscount;
} // }
/** /**
* 將會員錢包折扣添加到鏈條中 * 將會員錢包折扣添加到鏈條中
...@@ -289,9 +287,11 @@ public class ShoppingCart { ...@@ -289,9 +287,11 @@ public class ShoppingCart {
multyDiscounts = addNomalDiscountToLinked(multyDiscounts, ((NomalDiscount) discount).getDiscount(), discount.getStatus()); multyDiscounts = addNomalDiscountToLinked(multyDiscounts, ((NomalDiscount) discount).getDiscount(), discount.getStatus());
} else if (discount instanceof MemberLevelDiscount) { } else if (discount instanceof MemberLevelDiscount) {
multyDiscounts = addMemberLevelDiscountToLinked(multyDiscounts, ((MemberLevelDiscount) discount).getMemberDiscount(), discount.getStatus()); multyDiscounts = addMemberLevelDiscountToLinked(multyDiscounts, ((MemberLevelDiscount) discount).getMemberDiscount(), discount.getStatus());
} else if (discount instanceof MemberCouponDiscount) { }
multyDiscounts = addMemberCouponDiscountToLinked(multyDiscounts, ((MemberCouponDiscount) discount).getCouponDiscount(), discount.getStatus()); // else if (discount instanceof MemberCouponDiscount) {
}else if (discount instanceof MemberWalletCouponDiscount) { // multyDiscounts = addMemberCouponDiscountToLinked(multyDiscounts, ((MemberCouponDiscount) discount).getCouponDiscount(), discount.getStatus());
// }
else if (discount instanceof MemberWalletCouponDiscount) {
multyDiscounts = addMemberWalletCouponDiscountToLinked(multyDiscounts, ((MemberWalletCouponDiscount) discount).getWalletCoupon(), discount.getStatus()); multyDiscounts = addMemberWalletCouponDiscountToLinked(multyDiscounts, ((MemberWalletCouponDiscount) discount).getWalletCoupon(), discount.getStatus());
} }
multyDiscountArrays.add(multyDiscounts); multyDiscountArrays.add(multyDiscounts);
...@@ -360,12 +360,12 @@ public class ShoppingCart { ...@@ -360,12 +360,12 @@ public class ShoppingCart {
multyDiscounts = shoppingCart.addNomalDiscountToLinked(multyDiscounts, discount, 0); multyDiscounts = shoppingCart.addNomalDiscountToLinked(multyDiscounts, discount, 0);
shoppingCart.addMultyDiscount(multyDiscounts); shoppingCart.addMultyDiscount(multyDiscounts);
CouponDiscountBean couponDiscountBean = new CouponDiscountBean(); // CouponDiscountBean couponDiscountBean = new CouponDiscountBean();
couponDiscountBean.setCouponTypeName1("魚屋立減50元券"); // couponDiscountBean.setCouponTypeName1("魚屋立減50元券");
couponDiscountBean.setAmount(50); // couponDiscountBean.setAmount(50);
couponDiscountBean.setCouponType((byte) 2); // couponDiscountBean.setCouponType((byte) 2);
multyDiscounts = shoppingCart.addMemberCouponDiscountToLinked(multyDiscounts, couponDiscountBean, 0); // multyDiscounts = shoppingCart.addMemberWalletCouponDiscountToLinked(multyDiscounts, couponDiscountBean, 0);
shoppingCart.addMultyDiscount(multyDiscounts); // shoppingCart.addMultyDiscount(multyDiscounts);
MemberInfo memberInfo2 = new MemberInfo(); MemberInfo memberInfo2 = new MemberInfo();
memberInfo2.setMemberName("白金會員20%"); memberInfo2.setMemberName("白金會員20%");
......
...@@ -2,8 +2,10 @@ package com.gingersoft.gsa.cloud.pay; ...@@ -2,8 +2,10 @@ package com.gingersoft.gsa.cloud.pay;
import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentActivity;
import com.gingersoft.gsa.cloud.pay.device.pos.yedpay.lifecycle.contract.YedpayContract;
import com.gingersoft.gsa.cloud.pay.lifecycle.fragment.PayFlowFragment; import com.gingersoft.gsa.cloud.pay.lifecycle.fragment.PayFlowFragment;
import com.gingersoft.gsa.cloud.pay.device.pos.PosPayAction; import com.gingersoft.gsa.cloud.pay.device.pos.PosPayAction;
import com.jess.arms.mvp.BasePresenter;
import com.jess.arms.utils.Preconditions; import com.jess.arms.utils.Preconditions;
import lombok.Getter; import lombok.Getter;
...@@ -71,7 +73,7 @@ public class PaymentControl { ...@@ -71,7 +73,7 @@ public class PaymentControl {
} }
public void showPayFlowFragment(FragmentActivity fragmentActivity,RequestParms requestParms){ public void showPayFlowFragment(FragmentActivity fragmentActivity,RequestParms requestParms){
PayFlowFragment payFlowFragment = PayFlowFragment.newInstance(requestParms); PayFlowFragment<BasePresenter<YedpayContract.Model, YedpayContract.View>> payFlowFragment = PayFlowFragment.newInstance(requestParms);
payFlowFragment.show(fragmentActivity.getSupportFragmentManager(), "PayFlowDialogFragment"); payFlowFragment.show(fragmentActivity.getSupportFragmentManager(), "PayFlowDialogFragment");
} }
......
...@@ -7,7 +7,6 @@ import androidx.fragment.app.Fragment; ...@@ -7,7 +7,6 @@ import androidx.fragment.app.Fragment;
import com.gingersoft.gsa.cloud.pay.RequestParms; import com.gingersoft.gsa.cloud.pay.RequestParms;
import com.gingersoft.gsa.cloud.pay.device.pos.yedpay.constant.YedpayConstant; import com.gingersoft.gsa.cloud.pay.device.pos.yedpay.constant.YedpayConstant;
import com.gingersoft.gsa.cloud.pay.lifecycle.presenter.PayFlowPresenter;
/** /**
* @作者: bin * @作者: bin
......
package com.gingersoft.gsa.cloud.pay.device.pos.yedpay.lifecycle.contract;
import android.content.Intent;
import androidx.fragment.app.Fragment;
import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.pay.PayStep;
import com.jess.arms.mvp.IView;
import com.jess.arms.mvp.IModel;
import io.reactivex.Single;
import okhttp3.RequestBody;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 04/30/2021 16:23
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
public interface YedpayContract {
//对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
interface View extends IView {
void showStatusLoadingDialog(PayStep status);
void startActivityForResult(Intent intent);
Fragment getFragment();
}
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends IModel {
Single<BaseResult> findSaleStatus(RequestBody body);
Single<BaseResult> refundOrder(RequestBody body);
}
}
package com.gingersoft.gsa.cloud.pay.device.pos.yedpay.lifecycle.di.component;
import dagger.BindsInstance;
import dagger.Component;
import com.jess.arms.di.component.AppComponent;
import com.gingersoft.gsa.cloud.pay.device.pos.yedpay.lifecycle.di.module.YedpayModule;
import com.gingersoft.gsa.cloud.pay.device.pos.yedpay.lifecycle.contract.YedpayContract;
import com.jess.arms.di.scope.FragmentScope;
import com.gingersoft.gsa.cloud.pay.device.pos.yedpay.lifecycle.fragment.YedpayFragment;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 04/30/2021 16:23
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
@FragmentScope
@Component(modules = YedpayModule.class, dependencies = AppComponent.class)
public interface YedpayComponent {
void inject(YedpayFragment fragment);
@Component.Builder
interface Builder {
@BindsInstance
YedpayComponent.Builder view(YedpayContract.View view);
YedpayComponent.Builder appComponent(AppComponent appComponent);
YedpayComponent build();
}
}
\ No newline at end of file
package com.gingersoft.gsa.cloud.pay.device.pos.yedpay.lifecycle.di.module;
import com.jess.arms.di.scope.FragmentScope;
import dagger.Binds;
import dagger.Module;
import dagger.Provides;
import com.gingersoft.gsa.cloud.pay.device.pos.yedpay.lifecycle.contract.YedpayContract;
import com.gingersoft.gsa.cloud.pay.device.pos.yedpay.lifecycle.model.YedpayModel;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 04/30/2021 16:23
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
@Module
public abstract class YedpayModule {
@Binds
abstract YedpayContract.Model bindYedpayModel(YedpayModel model);
}
\ No newline at end of file
package com.gingersoft.gsa.cloud.pay.device.pos.yedpay.lifecycle.fragment;
import android.content.Intent;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import com.gingersoft.gsa.cloud.order.R;
import com.gingersoft.gsa.cloud.order.R2;
import com.gingersoft.gsa.cloud.pay.device.pos.yedpay.constant.YedpayConstant;
import com.gingersoft.gsa.cloud.pay.lifecycle.fragment.PayFlowFragment;
import com.gingersoft.gsa.cloud.pay.view.customstatus.CustomStatusView;
import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils;
import com.gingersoft.gsa.cloud.pay.device.pos.yedpay.lifecycle.contract.YedpayContract;
import com.gingersoft.gsa.cloud.pay.device.pos.yedpay.lifecycle.presenter.YedpayPresenter;
import butterknife.BindView;
import static com.jess.arms.utils.Preconditions.checkNotNull;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 04/30/2021 16:23
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
public class YedpayFragment extends PayFlowFragment<YedpayPresenter> implements YedpayContract.View {
@BindView(R2.id.ll_container)
LinearLayout ll_container;
@BindView(R2.id.as_status)
CustomStatusView as_status;
@BindView(R2.id.tv_status)
TextView tv_status;
// public static PayFlowFragment newInstance(RequestParms parms) {
// PayFlowFragment fragment = new PayFlowFragment();
// Bundle bundle = new Bundle();
// bundle.putParcelable("requestParms", parms);
// fragment.setArguments(bundle);
// return fragment;
// }
@Override
public void setupFragmentComponent(@NonNull AppComponent appComponent) {
DaggerYedpayComponent //如找不到该类,请编译一下项目
.builder()
.appComponent(appComponent)
.view(this)
.build()
.inject(this);
}
@Override
public View initView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE);
getDialog().setCancelable(false);
return inflater.inflate(R.layout.dialog_pay_loading, container, false);
}
@Override
public void onStart() {
super.onStart();
mWindow.setBackgroundDrawable(new ColorDrawable(ArmsUtils.getColor(mContext, R.color.trans)));
}
@Override
public void initData(@Nullable Bundle savedInstanceState) {
// mPresenter.excutePayFlow(requestParms);
}
@Override
public void setData(@Nullable Object data) {
}
@Override
public void showLoading(String message) {
}
@Override
public void hideLoading() {
}
@Override
public void showMessage(@NonNull String message) {
checkNotNull(message);
ArmsUtils.makeText(mContext, message);
}
@Override
public void launchActivity(@NonNull Intent intent) {
checkNotNull(intent);
ArmsUtils.startActivity(intent);
}
@Override
public void killMyself() {
super.killMyself();
}
// @Override
// public void onActivityResult(int requestCode, int resultCode, @Nullable Intent intent) {
// super.onActivityResult(requestCode, resultCode, intent);
// LoganManager.w_code(TAG, "onActivityResult->" + "resultCode=" + resultCode + " requestCode=" + requestCode);
// if (resultCode == android.app.Activity.RESULT_OK) {
// switch (requestCode) {
// case YedpayConstant.CallRequestCode.SALE_REQUEST_CODE: {
// if (intent.getExtras() != null) {
// String status = (String) intent.getExtras().get("status");
// String transaction_id = (String) intent.getExtras().get("transaction_id");
// LoganManager.w_code(TAG, "onActivityResult-》" + "status=" + status + " transaction_id=" + transaction_id);
// mPresenter.yedPayUpdateStatus(transaction_id, requestParms.getOrderId(), requestParms.getPayType(), requestParms.getResturantId());
// }
// break;
// }
// default:
// showStatusLoadingDialog(PayStep.FAILURE);
// break;
// }
// } else {
// showStatusLoadingDialog(PayStep.FAILURE);
// }
// }
@Override
public void startActivityForResult(Intent intent) {
startActivityForResult(intent, YedpayConstant.CallRequestCode.SALE_REQUEST_CODE);
}
@Override
public Fragment getFragment() {
return this;
}
}
package com.gingersoft.gsa.cloud.pay.lifecycle.model; package com.gingersoft.gsa.cloud.pay.device.pos.yedpay.lifecycle.model;
import android.app.Application; import android.app.Application;
import com.gingersoft.gsa.cloud.common.bean.BaseResult; import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.pay.device.pos.yedpay.lifecycle.model.service.YedpayService;
import com.gingersoft.gsa.cloud.pay.lifecycle.model.service.PayFlowService; import com.gingersoft.gsa.cloud.pay.lifecycle.model.service.PayFlowService;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.jess.arms.integration.IRepositoryManager; import com.jess.arms.integration.IRepositoryManager;
...@@ -12,7 +13,7 @@ import com.jess.arms.di.scope.FragmentScope; ...@@ -12,7 +13,7 @@ import com.jess.arms.di.scope.FragmentScope;
import javax.inject.Inject; import javax.inject.Inject;
import com.gingersoft.gsa.cloud.pay.lifecycle.contract.PayFlowContract; import com.gingersoft.gsa.cloud.pay.device.pos.yedpay.lifecycle.contract.YedpayContract;
import io.reactivex.Single; import io.reactivex.Single;
import okhttp3.RequestBody; import okhttp3.RequestBody;
...@@ -22,7 +23,7 @@ import okhttp3.RequestBody; ...@@ -22,7 +23,7 @@ import okhttp3.RequestBody;
* ================================================ * ================================================
* Description: * Description:
* <p> * <p>
* Created by MVPArmsTemplate on 04/15/2021 14:44 * Created by MVPArmsTemplate on 04/30/2021 16:23
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a> * <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a> * <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a> * <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
...@@ -31,14 +32,14 @@ import okhttp3.RequestBody; ...@@ -31,14 +32,14 @@ import okhttp3.RequestBody;
* ================================================ * ================================================
*/ */
@FragmentScope @FragmentScope
public class PayFlowModel extends BaseModel implements PayFlowContract.Model { public class YedpayModel extends BaseModel implements YedpayContract.Model {
@Inject @Inject
Gson mGson; Gson mGson;
@Inject @Inject
Application mApplication; Application mApplication;
@Inject @Inject
public PayFlowModel(IRepositoryManager repositoryManager) { public YedpayModel(IRepositoryManager repositoryManager) {
super(repositoryManager); super(repositoryManager);
} }
...@@ -49,16 +50,15 @@ public class PayFlowModel extends BaseModel implements PayFlowContract.Model { ...@@ -49,16 +50,15 @@ public class PayFlowModel extends BaseModel implements PayFlowContract.Model {
this.mApplication = null; this.mApplication = null;
} }
@Override @Override
public Single<BaseResult> yedPayFindSaleStatus(RequestBody body) { public Single<BaseResult> findSaleStatus(RequestBody body) {
return mRepositoryManager.obtainRetrofitService(PayFlowService.class) return mRepositoryManager.obtainRetrofitService(YedpayService.class)
.yedPayFindSaleStatus(body); .findSaleStatus(body);
} }
@Override @Override
public Single<BaseResult> yedPayRefundOrder(RequestBody body) { public Single<BaseResult> refundOrder(RequestBody body) {
return mRepositoryManager.obtainRetrofitService(PayFlowService.class) return mRepositoryManager.obtainRetrofitService(YedpayService.class)
.yedPayRefundOrder(body); .refundOrder(body);
} }
} }
\ No newline at end of file
package com.gingersoft.gsa.cloud.pay.device.pos.yedpay.lifecycle.model.service;
import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import io.reactivex.Single;
import me.jessyan.retrofiturlmanager.RetrofitUrlManager;
import okhttp3.RequestBody;
import retrofit2.http.Body;
import retrofit2.http.Headers;
import retrofit2.http.POST;
/**
* @作者: bin
* @創建時間: 2021-04-30 16:27
* @更新時間: 2021-04-30 16:27
* @描述:
*/
public interface YedpayService {
@Headers({"Domain-Name: ricepon_pay"})
@POST("gsaYedPay/updatePayStatus" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Single<BaseResult> findSaleStatus(@Body RequestBody requestBody);
@Headers({"Domain-Name: ricepon_pay"})
@POST("gsaYedPay/refund" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Single<BaseResult> refundOrder(@Body RequestBody requestBody);
}
package com.gingersoft.gsa.cloud.pay.lifecycle.presenter; package com.gingersoft.gsa.cloud.pay.device.pos.yedpay.lifecycle.presenter;
import android.app.Application; import android.app.Application;
import android.content.Intent;
import android.net.Uri;
import com.gingersoft.gsa.cloud.common.bean.BaseResult; import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.common.rxjava.ErrorHandleSingleSubscriber; import com.gingersoft.gsa.cloud.common.rxjava.ErrorHandleSingleSubscriber;
import com.gingersoft.gsa.cloud.common.utils.AppDevices;
import com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils; import com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.pay.PayStep; import com.gingersoft.gsa.cloud.pay.PayStep;
import com.gingersoft.gsa.cloud.pay.PaymentControl; import com.gingersoft.gsa.cloud.pay.PaymentControl;
import com.gingersoft.gsa.cloud.pay.RequestParms; import com.gingersoft.gsa.cloud.pay.RequestParms;
import com.gingersoft.gsa.cloud.pay.ResultCallback; import com.gingersoft.gsa.cloud.pay.ResultCallback;
import com.gingersoft.gsa.cloud.pay.device.pos.bbpos.BBposCommandImp; import com.gingersoft.gsa.cloud.pay.device.pos.yedpay.YedpayCommand;
import com.gingersoft.gsa.cloud.pay.device.pos.hyweb.HywebCommandImp;
import com.gingersoft.gsa.cloud.pay.device.pos.yedpay.YedpayCommandImp;
import com.gingersoft.gsa.cloud.pay.lifecycle.model.bean.YedpayFindSaleStatusBean;
import com.gingersoft.gsa.cloud.pay.device.pos.yedpay.constant.YedpayConstant; import com.gingersoft.gsa.cloud.pay.device.pos.yedpay.constant.YedpayConstant;
import com.gingersoft.gsa.cloud.pay.lifecycle.model.bean.YedpayFindSaleStatusBean;
import com.jess.arms.integration.AppManager; import com.jess.arms.integration.AppManager;
import com.jess.arms.di.scope.FragmentScope; import com.jess.arms.di.scope.FragmentScope;
import com.jess.arms.mvp.BasePresenter; import com.jess.arms.mvp.BasePresenter;
...@@ -28,7 +27,7 @@ import okhttp3.RequestBody; ...@@ -28,7 +27,7 @@ import okhttp3.RequestBody;
import javax.inject.Inject; import javax.inject.Inject;
import com.gingersoft.gsa.cloud.pay.lifecycle.contract.PayFlowContract; import com.gingersoft.gsa.cloud.pay.device.pos.yedpay.lifecycle.contract.YedpayContract;
import com.jess.arms.utils.RxLifecycleUtils; import com.jess.arms.utils.RxLifecycleUtils;
...@@ -36,7 +35,7 @@ import com.jess.arms.utils.RxLifecycleUtils; ...@@ -36,7 +35,7 @@ import com.jess.arms.utils.RxLifecycleUtils;
* ================================================ * ================================================
* Description: * Description:
* <p> * <p>
* Created by MVPArmsTemplate on 04/15/2021 14:44 * Created by MVPArmsTemplate on 04/30/2021 16:23
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a> * <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a> * <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a> * <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
...@@ -45,7 +44,7 @@ import com.jess.arms.utils.RxLifecycleUtils; ...@@ -45,7 +44,7 @@ import com.jess.arms.utils.RxLifecycleUtils;
* ================================================ * ================================================
*/ */
@FragmentScope @FragmentScope
public class PayFlowPresenter extends BasePresenter<PayFlowContract.Model, PayFlowContract.View> { public class YedpayPresenter extends BasePresenter<YedpayContract.Model, YedpayContract.View> {
@Inject @Inject
RxErrorHandler mErrorHandler; RxErrorHandler mErrorHandler;
@Inject @Inject
...@@ -59,7 +58,7 @@ public class PayFlowPresenter extends BasePresenter<PayFlowContract.Model, PayFl ...@@ -59,7 +58,7 @@ public class PayFlowPresenter extends BasePresenter<PayFlowContract.Model, PayFl
private ResultCallback mResultCallback; private ResultCallback mResultCallback;
@Inject @Inject
public PayFlowPresenter(PayFlowContract.Model model, PayFlowContract.View rootView) { public YedpayPresenter(YedpayContract.Model model, YedpayContract.View rootView) {
super(model, rootView); super(model, rootView);
} }
...@@ -72,7 +71,8 @@ public class PayFlowPresenter extends BasePresenter<PayFlowContract.Model, PayFl ...@@ -72,7 +71,8 @@ public class PayFlowPresenter extends BasePresenter<PayFlowContract.Model, PayFl
this.mApplication = null; this.mApplication = null;
} }
public void yedPayUpdateStatus(String transactionId, long orderId, int payType, int restaurantId) {
public void findSaleStatus(String transactionId, long orderId, int payType, int restaurantId) {
RequestBody requestBody = new FormBody.Builder() RequestBody requestBody = new FormBody.Builder()
.add("transactionId", transactionId) .add("transactionId", transactionId)
.add("orderId", orderId + "") .add("orderId", orderId + "")
...@@ -80,7 +80,7 @@ public class PayFlowPresenter extends BasePresenter<PayFlowContract.Model, PayFl ...@@ -80,7 +80,7 @@ public class PayFlowPresenter extends BasePresenter<PayFlowContract.Model, PayFl
.add("restaurantId", restaurantId + "") .add("restaurantId", restaurantId + "")
.build(); .build();
mModel.yedPayFindSaleStatus(requestBody) mModel.findSaleStatus(requestBody)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.subscribeOn(AndroidSchedulers.mainThread()) .subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
...@@ -129,14 +129,14 @@ public class PayFlowPresenter extends BasePresenter<PayFlowContract.Model, PayFl ...@@ -129,14 +129,14 @@ public class PayFlowPresenter extends BasePresenter<PayFlowContract.Model, PayFl
}); });
} }
public void yedPayRefundOrder(String refundReason, long orderId, int payType, int restaurantId) { public void refundOrder(String refundReason, long orderId, int payType, int restaurantId) {
RequestBody requestBody = new FormBody.Builder() RequestBody requestBody = new FormBody.Builder()
.add("refundReason", refundReason) .add("refundReason", refundReason)
.add("orderId", String.valueOf(orderId)) .add("orderId", String.valueOf(orderId))
.add("payType", String.valueOf(payType)) .add("payType", String.valueOf(payType))
.add("restaurantId", String.valueOf(restaurantId)) .add("restaurantId", String.valueOf(restaurantId))
.build(); .build();
mModel.yedPayRefundOrder(requestBody) mModel.refundOrder(requestBody)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.subscribeOn(AndroidSchedulers.mainThread()) .subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
...@@ -173,7 +173,7 @@ public class PayFlowPresenter extends BasePresenter<PayFlowContract.Model, PayFl ...@@ -173,7 +173,7 @@ public class PayFlowPresenter extends BasePresenter<PayFlowContract.Model, PayFl
this.mRequestParms = requestParms; this.mRequestParms = requestParms;
this.mResultCallback = mRequestParms.getResultCallback(); this.mResultCallback = mRequestParms.getResultCallback();
setCallbackBy(requestParms); mRequestParms.setCallback(yedpayCommand);
switch (requestParms.getAction()) { switch (requestParms.getAction()) {
case SALE: case SALE:
...@@ -185,16 +185,19 @@ public class PayFlowPresenter extends BasePresenter<PayFlowContract.Model, PayFl ...@@ -185,16 +185,19 @@ public class PayFlowPresenter extends BasePresenter<PayFlowContract.Model, PayFl
} }
} }
private void setCallbackBy(RequestParms requestParms) { private YedpayCommand yedpayCommand = new YedpayCommand() {
if (AppDevices.isHywebPos()) {
requestParms.setCallback(new HywebCommandImp()); @Override
} else if (AppDevices.isBBPos()) { public void callSaleUri(String uri) {
requestParms.setCallback(new BBposCommandImp()); Uri uri2 = Uri.parse(uri);
} else if (AppDevices.isYedpay()) { Intent intent = new Intent(Intent.ACTION_VIEW, uri2);
requestParms.setCallback(new YedpayCommandImp(mRootView.getFragment(), this, mRequestParms)); mRootView.getFragment().startActivityForResult(intent, YedpayConstant.CallRequestCode.SALE_REQUEST_CODE);
} else {
requestParms.setCallback(new YedpayCommandImp(mRootView.getFragment(), this, mRequestParms));
} }
}
@Override
public void refundResult(boolean result) {
refundOrder(mRequestParms.getRefundReason(), mRequestParms.getOrderId(), mRequestParms.getPayType(), mRequestParms.getResturantId());
}
};
} }
...@@ -32,17 +32,11 @@ public interface PayFlowContract { ...@@ -32,17 +32,11 @@ public interface PayFlowContract {
void showStatusLoadingDialog(PayStep status); void showStatusLoadingDialog(PayStep status);
void startActivityForResult(Intent intent);
Fragment getFragment(); Fragment getFragment();
} }
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存 //Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends IModel { interface Model extends IModel {
Single<BaseResult> yedPayFindSaleStatus(RequestBody body);
Single<BaseResult> yedPayRefundOrder(RequestBody body);
} }
} }
...@@ -3,6 +3,7 @@ package com.gingersoft.gsa.cloud.pay.lifecycle.di.component; ...@@ -3,6 +3,7 @@ package com.gingersoft.gsa.cloud.pay.lifecycle.di.component;
import dagger.BindsInstance; import dagger.BindsInstance;
import dagger.Component; import dagger.Component;
import com.gingersoft.gsa.cloud.pay.device.pos.yedpay.lifecycle.contract.YedpayContract;
import com.jess.arms.di.component.AppComponent; import com.jess.arms.di.component.AppComponent;
import com.gingersoft.gsa.cloud.pay.lifecycle.di.module.PayFlowModule; import com.gingersoft.gsa.cloud.pay.lifecycle.di.module.PayFlowModule;
...@@ -10,6 +11,7 @@ import com.gingersoft.gsa.cloud.pay.lifecycle.contract.PayFlowContract; ...@@ -10,6 +11,7 @@ import com.gingersoft.gsa.cloud.pay.lifecycle.contract.PayFlowContract;
import com.jess.arms.di.scope.FragmentScope; import com.jess.arms.di.scope.FragmentScope;
import com.gingersoft.gsa.cloud.pay.lifecycle.fragment.PayFlowFragment; import com.gingersoft.gsa.cloud.pay.lifecycle.fragment.PayFlowFragment;
import com.jess.arms.mvp.BasePresenter;
/** /**
......
package com.gingersoft.gsa.cloud.pay.lifecycle.di.module; package com.gingersoft.gsa.cloud.pay.lifecycle.di.module;
import com.jess.arms.di.scope.FragmentScope;
import dagger.Binds; import dagger.Binds;
import dagger.Module; import dagger.Module;
import dagger.Provides; import dagger.Provides;
import com.gingersoft.gsa.cloud.pay.lifecycle.contract.PayFlowContract; import com.gingersoft.gsa.cloud.pay.lifecycle.contract.PayFlowContract;
import com.gingersoft.gsa.cloud.pay.lifecycle.model.PayFlowModel; import com.jess.arms.mvp.BaseModel;
/** /**
...@@ -26,5 +23,5 @@ import com.gingersoft.gsa.cloud.pay.lifecycle.model.PayFlowModel; ...@@ -26,5 +23,5 @@ import com.gingersoft.gsa.cloud.pay.lifecycle.model.PayFlowModel;
public abstract class PayFlowModule { public abstract class PayFlowModule {
@Binds @Binds
abstract PayFlowContract.Model bindPayFlowModel(PayFlowModel model); abstract PayFlowContract.Model bindPayFlowModel(BaseModel model);
} }
\ No newline at end of file
package com.gingersoft.gsa.cloud.pay.lifecycle.fragment; package com.gingersoft.gsa.cloud.pay.lifecycle.fragment;
import android.content.Intent; import android.content.Intent;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.ColorDrawable;
import android.os.Bundle; import android.os.Bundle;
import android.view.Gravity;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.Window; import android.view.Window;
import android.view.WindowManager;
import android.widget.FrameLayout; import android.widget.FrameLayout;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
...@@ -18,23 +15,19 @@ import androidx.annotation.NonNull; ...@@ -18,23 +15,19 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.order.R; import com.gingersoft.gsa.cloud.order.R;
import com.gingersoft.gsa.cloud.order.R2; import com.gingersoft.gsa.cloud.order.R2;
import com.gingersoft.gsa.cloud.pay.PayAction; import com.gingersoft.gsa.cloud.pay.PayAction;
import com.gingersoft.gsa.cloud.pay.PayStep; import com.gingersoft.gsa.cloud.pay.PayStep;
import com.gingersoft.gsa.cloud.pay.device.pos.yedpay.constant.YedpayConstant; import com.gingersoft.gsa.cloud.pay.device.pos.yedpay.lifecycle.contract.YedpayContract;
import com.gingersoft.gsa.cloud.pay.lifecycle.di.component.DaggerPayFlowComponent; import com.gingersoft.gsa.cloud.pay.lifecycle.di.component.DaggerPayFlowComponent;
import com.gingersoft.gsa.cloud.pay.RequestParms; import com.gingersoft.gsa.cloud.pay.RequestParms;
import com.gingersoft.gsa.cloud.pay.view.customstatus.CustomStatusView; import com.gingersoft.gsa.cloud.pay.view.customstatus.CustomStatusView;
import com.gingersoft.gsa.cloud.pay.widget.StatusLoadingDialog;
import com.jess.arms.base.BaseDialogFragment; import com.jess.arms.base.BaseDialogFragment;
import com.jess.arms.base.BaseFragment;
import com.jess.arms.di.component.AppComponent; import com.jess.arms.di.component.AppComponent;
import com.jess.arms.mvp.BasePresenter;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
import com.gingersoft.gsa.cloud.pay.lifecycle.contract.PayFlowContract; import com.gingersoft.gsa.cloud.pay.lifecycle.contract.PayFlowContract;
import com.gingersoft.gsa.cloud.pay.lifecycle.presenter.PayFlowPresenter;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import butterknife.BindView; import butterknife.BindView;
...@@ -53,7 +46,7 @@ import static com.jess.arms.utils.Preconditions.checkNotNull; ...@@ -53,7 +46,7 @@ import static com.jess.arms.utils.Preconditions.checkNotNull;
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a> * <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================ * ================================================
*/ */
public class PayFlowFragment extends BaseDialogFragment<PayFlowPresenter> implements PayFlowContract.View { public class PayFlowFragment<P extends BasePresenter> extends BaseDialogFragment implements PayFlowContract.View {
@BindView(R2.id.ll_container) @BindView(R2.id.ll_container)
LinearLayout ll_container; LinearLayout ll_container;
...@@ -102,15 +95,13 @@ public class PayFlowFragment extends BaseDialogFragment<PayFlowPresenter> implem ...@@ -102,15 +95,13 @@ public class PayFlowFragment extends BaseDialogFragment<PayFlowPresenter> implem
@Override @Override
public void initData(@Nullable Bundle savedInstanceState) { public void initData(@Nullable Bundle savedInstanceState) {
Bundle arguments = getArguments(); Bundle arguments = getArguments();
requestParms = (RequestParms) arguments.getParcelable("requestParms"); requestParms = arguments.getParcelable("requestParms");
action = requestParms.getAction(); action = requestParms.getAction();
tv_status.setText(mLoadingText); tv_status.setText(mLoadingText);
ll_container.setLayoutParams(new FrameLayout.LayoutParams((int) (ArmsUtils.getScreenWidth(mContext) * 0.4), (int) (ArmsUtils.getScreenWidth(mContext) * 0.4))); ll_container.setLayoutParams(new FrameLayout.LayoutParams((int) (ArmsUtils.getScreenWidth(mContext) * 0.4), (int) (ArmsUtils.getScreenWidth(mContext) * 0.4)));
showStatusLoadingDialog(PayStep.LOADING); showStatusLoadingDialog(PayStep.LOADING);
mPresenter.excutePayFlow(requestParms);
} }
@Override @Override
...@@ -190,34 +181,6 @@ public class PayFlowFragment extends BaseDialogFragment<PayFlowPresenter> implem ...@@ -190,34 +181,6 @@ public class PayFlowFragment extends BaseDialogFragment<PayFlowPresenter> implem
}, mCancelDelayMillis); }, mCancelDelayMillis);
} }
@Override
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
LoganManager.w_code(TAG, "onActivityResult->" + "resultCode=" + resultCode + " requestCode=" + requestCode);
if (resultCode == android.app.Activity.RESULT_OK) {
switch (requestCode) {
case YedpayConstant.CallRequestCode.SALE_REQUEST_CODE: {
if (intent.getExtras() != null) {
String status = (String) intent.getExtras().get("status");
String transaction_id = (String) intent.getExtras().get("transaction_id");
LoganManager.w_code(TAG, "onActivityResult-》" + "status=" + status + " transaction_id=" + transaction_id);
mPresenter.yedPayUpdateStatus(transaction_id, requestParms.getOrderId(), requestParms.getPayType(), requestParms.getResturantId());
}
break;
}
default:
showStatusLoadingDialog(PayStep.FAILURE);
break;
}
} else {
showStatusLoadingDialog(PayStep.FAILURE);
}
}
@Override
public void startActivityForResult(Intent intent) {
startActivityForResult(intent, YedpayConstant.CallRequestCode.SALE_REQUEST_CODE);
}
@Override @Override
public Fragment getFragment() { public Fragment getFragment() {
......
package com.gingersoft.gsa.cloud.pay.lifecycle.model.bean;
/**
* @作者: bin
* @創建時間: 2021-04-15 18:46
* @更新時間: 2021-04-15 18:46
* @描述:
*/
public class YedPayRefundBean {
}
package com.gingersoft.gsa.cloud.pay.lifecycle.model.bean;
import lombok.Data;
/**
* @作者: bin
* @創建時間: 2021-04-15 18:46
* @更新時間: 2021-04-15 18:46
* @描述:
*/
@Data
public class YedpayFindSaleStatusBean {
/**
* 訂單id
*/
private long orderId = -1L;
/**
* 支付状态:0 未支付 1 支付失败 2 支持成功 3 已支付未到账 4.支付中 5.已退款 6.廢棄(第二次結賬)
*/
private Integer status;
/**
* 交易id
*/
private String transactionId;
/**
* 退款id
*/
private String refundId;
}
package com.gingersoft.gsa.cloud.pay.lifecycle.model.service;
import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import io.reactivex.Single;
import io.reactivex.Single;
import me.jessyan.retrofiturlmanager.RetrofitUrlManager;
import okhttp3.RequestBody;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.Headers;
import retrofit2.http.POST;
import retrofit2.http.Query;
/**
* Created by Wyh on 2020/1/17.
*/
public interface PayFlowService {
@Headers({"Domain-Name: ricepon_pay"})
@POST("posPay/getTxnId" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Single<BaseResult> getTxnId(@Query("type") int type, @Query("parm") String parm, @Query("gsposShopId") String shopName, @Query("tableId") int tableId, @Query("tableNumber") String tableNumber);
@Headers({"Domain-Name: ricepon_pay"})
@POST("posPay/getRefundTxnId" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Single<BaseResult> getRefundTxnId(@Query("tableId") int tableId, @Query("tableNumber") String tableNumber, @Query("memberId") long memberId);
@Headers({"Domain-Name: ricepon_pay"})
@POST("posPay/getCancelTxnId" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Single<BaseResult> getCancelTxnId(@Query("tableId") int tableId, @Query("tableNumber") String tableNumber, @Query("memberId") long memberId);
@Headers({"Domain-Name: ricepon_pay"})
@POST("orderPay/updatePosRefund" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Single<BaseResult> updatePosRefund(@Query("tableId") int tableId, @Query("memberId") Long memberId, @Query("couponMemberId") long couponMemberId, @Query("couponNo") String couponNo, @Query("restaurantId") int restaurantId);
@Headers({"Domain-Name: ricepon_pay"})
@POST("member/getMemberWalletList" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Single<BaseResult> getMemberWalletList(@Query("brandId") int brandId, @Query("memberId") long memberId, @Query("limitType") long limitType, @Query("pageIndex") long pageIndex, @Query("pageSize") long pageSize);
@Headers({"Domain-Name: ricepon_pay"})
@POST("orderPay/add" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Single<BaseResult> add(@Query("tableId") int tableId, @Query("tableNumber") String tableNumber, @Query("memberId") long memberId);
@Headers({"Domain-Name: ricepon_pay"})
@POST("posPay/updatePosCancel" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Single<BaseResult> updatePosCancel(@Query("tableId") int tableId, @Query("tableNumber") String tableNumber, @Query("memberId") long memberId);
@Headers({"Domain-Name: ricepon_pay"})
@POST("gsaYedPay/updatePayStatus" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Single<BaseResult> yedPayFindSaleStatus(@Body RequestBody requestBody);
@Headers({"Domain-Name: ricepon_pay"})
@POST("gsaYedPay/refund" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Single<BaseResult> yedPayRefundOrder(@Body RequestBody requestBody);
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
</LinearLayout>
\ No newline at end of file
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