Commit 29e0b2b3 by 宁斌

1、餐牌頁結構調整 2、支付類名調整

parent bb53a46a
......@@ -168,6 +168,9 @@ public class DownloadPresenter extends BasePresenter<DownloadContract.Model, Dow
mRootView.showMessage("Can not connect server, retry?");
}
if (mRequestObservables.size() > 0) {
mRequestObservables.clear();
}
requestCount = urlList.length;
saveSuccessCount = 0;
responseSuccessCount = 0;
......@@ -208,7 +211,7 @@ public class DownloadPresenter extends BasePresenter<DownloadContract.Model, Dow
private void downDataRequest(Observable observable, int downIndex) {
observable
.subscribeOn(Schedulers.io())
.retryWhen(new RetryWithDelay(5, 2))
// .retryWhen(new RetryWithDelay(5, 2))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
......@@ -263,206 +266,210 @@ public class DownloadPresenter extends BasePresenter<DownloadContract.Model, Dow
}
private boolean saveToDatabase(int downIndex, OnSaveDownDataListener saveDownDataListener) {
Object data = responseDataMaps.get(downIndex);
if (data == null) {
return true;
}
int nextIndex = downIndex + 1;
switch (downIndex) {
case 0:
List<Function> functionList = GsonUtils.jsonToList(data, Function.class);
if (functionList != null) {
Observable.just(0)
.observeOn(Schedulers.io())
.subscribe(new Consumer<Integer>() {
@Override
public void accept(@NonNull Integer integer) throws Exception {
FunctionDaoUtils functionDao = new FunctionDaoUtils(IActivity);
functionDao.deleteAll();
functionDao.insertMultFunction(functionList);
saveSuccessCount++;
if (saveDownDataListener != null) {
saveDownDataListener.onComplete(nextIndex);
try {
Object data = responseDataMaps.get(downIndex);
if (data == null) {
return true;
}
int nextIndex = downIndex + 1;
switch (downIndex) {
case 0:
List<Function> functionList = GsonUtils.jsonToList(data, Function.class);
if (functionList != null) {
Observable.just(0)
.observeOn(Schedulers.io())
.subscribe(new Consumer<Integer>() {
@Override
public void accept(@NonNull Integer integer) throws Exception {
FunctionDaoUtils functionDao = new FunctionDaoUtils(IActivity);
functionDao.deleteAll();
functionDao.insertMultFunction(functionList);
saveSuccessCount++;
if (saveDownDataListener != null) {
saveDownDataListener.onComplete(nextIndex);
}
}
}
});
XFunctionManager.newInstance().updateFunctions(functionList);
}
break;
case 1:
List<Food> foodList = GsonUtils.jsonToList(data, Food.class);
if (foodList != null) {
Observable.just(0)
.observeOn(Schedulers.io())
.subscribe(new Consumer<Integer>() {
@Override
public void accept(@NonNull Integer integer) throws Exception {
FoodDaoUtils foodDao = new FoodDaoUtils(IActivity);
foodDao.deleteAll();
foodDao.insertMultFood(foodList);
saveSuccessCount++;
if (saveDownDataListener != null) {
saveDownDataListener.onComplete(nextIndex);
});
XFunctionManager.newInstance().updateFunctions(functionList);
}
break;
case 1:
List<Food> foodList = GsonUtils.jsonToList(data, Food.class);
if (foodList != null) {
Observable.just(0)
.observeOn(Schedulers.io())
.subscribe(new Consumer<Integer>() {
@Override
public void accept(@NonNull Integer integer) throws Exception {
FoodDaoUtils foodDao = new FoodDaoUtils(IActivity);
foodDao.deleteAll();
foodDao.insertMultFood(foodList);
saveSuccessCount++;
if (saveDownDataListener != null) {
saveDownDataListener.onComplete(nextIndex);
}
}
}
});
}
break;
case 2:
List<Modifier> modifierList = GsonUtils.jsonToList(data, Modifier.class);
if (modifierList != null) {
Observable.just(0)
.observeOn(Schedulers.io())
.subscribe(new Consumer<Integer>() {
@Override
public void accept(@NonNull Integer integer) throws Exception {
ModifierDaoUtils modifierDao = new ModifierDaoUtils(IActivity);
modifierDao.deleteAll();
modifierDao.insertMultModifier(modifierList);
CommonConfiguration.getInstance().saveModifierTopIdConfiguration(modifierList);
saveSuccessCount++;
if (saveDownDataListener != null) {
saveDownDataListener.onComplete(nextIndex);
});
}
break;
case 2:
List<Modifier> modifierList = GsonUtils.jsonToList(data, Modifier.class);
if (modifierList != null) {
Observable.just(0)
.observeOn(Schedulers.io())
.subscribe(new Consumer<Integer>() {
@Override
public void accept(@NonNull Integer integer) throws Exception {
ModifierDaoUtils modifierDao = new ModifierDaoUtils(IActivity);
modifierDao.deleteAll();
modifierDao.insertMultModifier(modifierList);
CommonConfiguration.getInstance().saveModifierTopIdConfiguration(modifierList);
saveSuccessCount++;
if (saveDownDataListener != null) {
saveDownDataListener.onComplete(nextIndex);
}
}
}
});
}
break;
case 3:
List<FoodCombo> foodComboList = GsonUtils.jsonToList(data, FoodCombo.class);
if (foodComboList != null) {
Observable.just(0)
.observeOn(Schedulers.io())
.subscribe(new Consumer<Integer>() {
@Override
public void accept(@NonNull Integer integer) throws Exception {
FoodComboDaoUtils comboDao = new FoodComboDaoUtils(IActivity);
comboDao.deleteAll();
comboDao.insertMultCombo(foodComboList);
CommonConfiguration.getInstance().saveComboIdConfiguration(foodComboList);
saveSuccessCount++;
if (saveDownDataListener != null) {
saveDownDataListener.onComplete(nextIndex);
});
}
break;
case 3:
List<FoodCombo> foodComboList = GsonUtils.jsonToList(data, FoodCombo.class);
if (foodComboList != null) {
Observable.just(0)
.observeOn(Schedulers.io())
.subscribe(new Consumer<Integer>() {
@Override
public void accept(@NonNull Integer integer) throws Exception {
FoodComboDaoUtils comboDao = new FoodComboDaoUtils(IActivity);
comboDao.deleteAll();
comboDao.insertMultCombo(foodComboList);
CommonConfiguration.getInstance().saveComboIdConfiguration(foodComboList);
saveSuccessCount++;
if (saveDownDataListener != null) {
saveDownDataListener.onComplete(nextIndex);
}
}
}
});
}
break;
case 4:
List<ComboItem> comboItemList = GsonUtils.jsonToList(data, ComboItem.class);
if (comboItemList != null) {
Observable.just(0)
.observeOn(Schedulers.io())
.subscribe(new Consumer<Integer>() {
@Override
public void accept(@NonNull Integer integer) throws Exception {
ComboItemDaoUtils comboDao = new ComboItemDaoUtils(IActivity);
comboDao.deleteAll();
comboDao.insertMultCombo(comboItemList);
saveSuccessCount++;
if (saveDownDataListener != null) {
saveDownDataListener.onComplete(nextIndex);
});
}
break;
case 4:
List<ComboItem> comboItemList = GsonUtils.jsonToList(data, ComboItem.class);
if (comboItemList != null) {
Observable.just(0)
.observeOn(Schedulers.io())
.subscribe(new Consumer<Integer>() {
@Override
public void accept(@NonNull Integer integer) throws Exception {
ComboItemDaoUtils comboDao = new ComboItemDaoUtils(IActivity);
comboDao.deleteAll();
comboDao.insertMultCombo(comboItemList);
saveSuccessCount++;
if (saveDownDataListener != null) {
saveDownDataListener.onComplete(nextIndex);
}
}
}
});
}
break;
case 5:
List<FoodModifier> foodModifierList = GsonUtils.jsonToList(data, FoodModifier.class);
if (foodModifierList != null) {
Observable.just(0)
.observeOn(Schedulers.io())
.subscribe(new Consumer<Integer>() {
@Override
public void accept(@NonNull Integer integer) throws Exception {
FoodModifierDaoUtils foodModifierDao = new FoodModifierDaoUtils(IActivity);
foodModifierDao.deleteAll();
foodModifierDao.insertMultFoodModifier(foodModifierList);
saveSuccessCount++;
if (saveDownDataListener != null) {
saveDownDataListener.onComplete(nextIndex);
});
}
break;
case 5:
List<FoodModifier> foodModifierList = GsonUtils.jsonToList(data, FoodModifier.class);
if (foodModifierList != null) {
Observable.just(0)
.observeOn(Schedulers.io())
.subscribe(new Consumer<Integer>() {
@Override
public void accept(@NonNull Integer integer) throws Exception {
FoodModifierDaoUtils foodModifierDao = new FoodModifierDaoUtils(IActivity);
foodModifierDao.deleteAll();
foodModifierDao.insertMultFoodModifier(foodModifierList);
saveSuccessCount++;
if (saveDownDataListener != null) {
saveDownDataListener.onComplete(nextIndex);
}
}
}
});
}
break;
case 6:
List<Discount> discountList = GsonUtils.jsonToList(data, Discount.class);
if (discountList != null) {
Observable.just(0)
.observeOn(Schedulers.io())
.subscribe(new Consumer<Integer>() {
@Override
public void accept(@NonNull Integer integer) throws Exception {
DiscountDaoUtils discountDaoUtils = new DiscountDaoUtils(IActivity);
discountDaoUtils.deleteAll();
discountDaoUtils.insertMultDiscount(discountList);
saveSuccessCount++;
if (saveDownDataListener != null) {
saveDownDataListener.onComplete(nextIndex);
});
}
break;
case 6:
List<Discount> discountList = GsonUtils.jsonToList(data, Discount.class);
if (discountList != null) {
Observable.just(0)
.observeOn(Schedulers.io())
.subscribe(new Consumer<Integer>() {
@Override
public void accept(@NonNull Integer integer) throws Exception {
DiscountDaoUtils discountDaoUtils = new DiscountDaoUtils(IActivity);
discountDaoUtils.deleteAll();
discountDaoUtils.insertMultDiscount(discountList);
saveSuccessCount++;
if (saveDownDataListener != null) {
saveDownDataListener.onComplete(nextIndex);
}
}
}
});
}
break;
case 7:
List<ExpandInfo> expandInfoList = GsonUtils.jsonToList(data, ExpandInfo.class);
if (expandInfoList != null) {
Observable.just(0)
.observeOn(Schedulers.io())
.subscribe(new Consumer<Integer>() {
@Override
public void accept(@NonNull Integer integer) throws Exception {
ExpandInfoDaoUtils expandInfoDaoUtils = new ExpandInfoDaoUtils(IActivity);
expandInfoDaoUtils.deleteAll();
expandInfoDaoUtils.insertMultExpandInfo(expandInfoList);
RestaurantExpandInfoUtils.setCommonExpandInfo(expandInfoList);
saveSuccessCount++;
if (saveDownDataListener != null) {
saveDownDataListener.onComplete(nextIndex);
});
}
break;
case 7:
List<ExpandInfo> expandInfoList = GsonUtils.jsonToList(data, ExpandInfo.class);
if (expandInfoList != null) {
Observable.just(0)
.observeOn(Schedulers.io())
.subscribe(new Consumer<Integer>() {
@Override
public void accept(@NonNull Integer integer) throws Exception {
ExpandInfoDaoUtils expandInfoDaoUtils = new ExpandInfoDaoUtils(IActivity);
expandInfoDaoUtils.deleteAll();
expandInfoDaoUtils.insertMultExpandInfo(expandInfoList);
RestaurantExpandInfoUtils.setCommonExpandInfo(expandInfoList);
saveSuccessCount++;
if (saveDownDataListener != null) {
saveDownDataListener.onComplete(nextIndex);
}
}
}
});
}
break;
case 8:
PrinterListBean printerListBean = JsonUtils.parseObject(data, PrinterListBean.class);
if (printerListBean != null) {
Observable.just(0)
.observeOn(Schedulers.io())
.subscribe(new Consumer<Integer>() {
@Override
public void accept(@NonNull Integer integer) throws Exception {
PrinterDeviceDaoUtils printerDeviceDaoUtils = new PrinterDeviceDaoUtils(IActivity);
printerDeviceDaoUtils.deleteAll();
printerDeviceDaoUtils.insertMultPrinterDeviceBean(printerListBean.getList());
saveSuccessCount++;
if (saveDownDataListener != null) {
saveDownDataListener.onComplete(nextIndex);
});
}
break;
case 8:
PrinterListBean printerListBean = JsonUtils.parseObject(data, PrinterListBean.class);
if (printerListBean != null) {
Observable.just(0)
.observeOn(Schedulers.io())
.subscribe(new Consumer<Integer>() {
@Override
public void accept(@NonNull Integer integer) throws Exception {
PrinterDeviceDaoUtils printerDeviceDaoUtils = new PrinterDeviceDaoUtils(IActivity);
printerDeviceDaoUtils.deleteAll();
printerDeviceDaoUtils.insertMultPrinterDeviceBean(printerListBean.getList());
saveSuccessCount++;
if (saveDownDataListener != null) {
saveDownDataListener.onComplete(nextIndex);
}
}
}
});
}
break;
case 9:
List<ColorBean> colorBeanList = GsonUtils.jsonToList(data, ColorBean.class);
if (colorBeanList != null) {
Observable.just(0)
.observeOn(Schedulers.io())
.subscribe(new Consumer<Integer>() {
@Override
public void accept(@NonNull Integer integer) throws Exception {
ColorDaoUtils colorDaoUtils = new ColorDaoUtils(IActivity);
colorDaoUtils.deleteAll();
colorDaoUtils.insertMultColorBean(colorBeanList);
saveSuccessCount++;
if (saveDownDataListener != null) {
saveDownDataListener.onComplete(nextIndex);
});
}
break;
case 9:
List<ColorBean> colorBeanList = GsonUtils.jsonToList(data, ColorBean.class);
if (colorBeanList != null) {
Observable.just(0)
.observeOn(Schedulers.io())
.subscribe(new Consumer<Integer>() {
@Override
public void accept(@NonNull Integer integer) throws Exception {
ColorDaoUtils colorDaoUtils = new ColorDaoUtils(IActivity);
colorDaoUtils.deleteAll();
colorDaoUtils.insertMultColorBean(colorBeanList);
saveSuccessCount++;
if (saveDownDataListener != null) {
saveDownDataListener.onComplete(nextIndex);
}
}
}
});
}
break;
});
}
break;
}
} catch (Exception e) {
endDownReturn();
}
return false;
}
......
......@@ -124,7 +124,7 @@ dependencies {
addComponent 'component-delivery-pick'
addComponent 'component-manager'
addComponent 'component-coldchain'
addComponent 'component-supply-chain'
// addComponent 'component-supply-chain'
addComponent 'component-webview'
addComponent 'component-scan'
addComponent 'component-pay'
......
......@@ -17,15 +17,12 @@ import android.view.animation.ScaleAnimation;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.viewpager2.widget.ViewPager2;
import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.common.bean.BaseResultOld;
import com.gingersoft.gsa.cloud.common.core.login.LoginBean;
import com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager;
import com.gingersoft.gsa.cloud.common.core.user.UserConstans;
......
......@@ -3,6 +3,8 @@ package com.gingersoft.gsa.cloud.main.mvp.model.bean;
import java.io.Serializable;
import java.util.List;
import lombok.Data;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
......@@ -10,9 +12,9 @@ import java.util.List;
* 修订历史:2020-03-05
* 描述:
*/
@Data
public class SendSettlement {
/**
* success : true
* sysTime : 1583402463139
......@@ -25,139 +27,26 @@ public class SendSettlement {
private long sysTime;
private DataBean data;
public boolean isSuccess() {
return success;
}
public void setSuccess(boolean success) {
this.success = success;
}
public String getErrCode() {
return errCode;
}
public void setErrCode(String errCode) {
this.errCode = errCode;
}
public String getErrMsg() {
return errMsg;
}
public void setErrMsg(String errMsg) {
this.errMsg = errMsg;
}
public long getSysTime() {
return sysTime;
}
public void setSysTime(long sysTime) {
this.sysTime = sysTime;
}
public DataBean getData() {
return data;
}
public void setData(DataBean data) {
this.data = data;
}
@Data
public static class DataBean {
/**
* msg : 仍有臺號未結賬,請先結賬;
* table : ["外4","外2","外1","ceshitai1*","51533","51536","外5","外賣台2","509","510","511","51512","外賣台","102","51534","51531","51529","107","103","21","11A","10A","10","9","8","7","4"]
*/
private String msg;
private List<String> table;
//未完結的外賣自取訂單號
private String orderNo;
private String type1;
private String type2;
private String type3;
private List<DateNumBean> dateNum;
private String errCode;
public String getType1() {
return type1;
}
public void setType1(String type1) {
this.type1 = type1;
}
public String getType2() {
return type2;
}
public void setType2(String type2) {
this.type2 = type2;
}
public String getType3() {
return type3;
}
public void setType3(String type3) {
this.type3 = type3;
}
public List<DateNumBean> getDateNum() {
return dateNum;
}
public void setDateNum(List<DateNumBean> dateNum) {
this.dateNum = dateNum;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public List<String> getTable() {
return table;
}
public void setTable(List<String> table) {
this.table = table;
}
public String getErrCode() {
return errCode;
}
public void setErrCode(String errCode) {
this.errCode = errCode;
}
@Data
public static class DateNumBean implements Serializable {
private String date;
private int num;
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
}
}
}
......@@ -3,6 +3,7 @@ package com.gingersoft.gsa.cloud.main.mvp.presenter;
import android.app.Activity;
import android.app.Application;
import android.text.TextUtils;
import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager;
import com.gingersoft.gsa.cloud.common.core.settlement.SettlementReport;
......@@ -198,6 +199,11 @@ public class SettlementReportPresenter extends BasePresenter<SettlementReportCon
// CommonTipDialog.showDoubtDialog(IActivity, "今天已清機過,是否合併清機", SettlementReportPresenter.class, SettlementReportPresenter.this,
// "sendSettlement", parameterTypes, parameters);
showMergeSettlementDialog(IActivity, "今天已清機過,是否合併清機");
} else if (info.getErrCode().equals("restaurant.operation.0007")) {
SendSettlement.DataBean data = info.getData();
if (data != null) {
showSettlementErrorDialog(info.getErrMsg() + ",清機失敗,仍有訂單未完結,請先結賬\n" + data.getOrderNo());
}
} else {
if (!TextUtils.isEmpty(info.getErrMsg())) {
showSettlementErrorDialog(info.getErrMsg() + ",清機失敗");
......
package com.joe.print.mvp.print;
import android.util.SparseArray;
import com.gingersoft.gsa.cloud.common.constans.PrintConstans;
/**
* @作者: bin
* @創建時間: 2021-03-26 18:23
* @更新時間: 2021-03-26 18:23
* @描述:
*/
public class PrinterFactory {
private static SparseArray<PrinterRoot> mPrinters = new SparseArray<>();
static {
mPrinters.put(PrintConstans.PRINT_TEST, new PrintTest());
mPrinters.put(PrintConstans.PRINT_SERVE, new PrintServe());
mPrinters.put(PrintConstans.PRINT_SLIP, new PrintSlip());
mPrinters.put(PrintConstans.PRINT_BILL, new PrintBill());
mPrinters.put(PrintConstans.PRINT_KITCHEN, new PrintPrjKitchen());
mPrinters.put(PrintConstans.PRINT_CLEAN_MACHINE, new PrintCleanMachine());
mPrinters.put(PrintConstans.PRINT_OTHER_ORDER, new PrintOtherOrder());
mPrinters.put(PrintConstans.PRINT_INSTRUCTION, new PrintInstruction());
mPrinters.put(PrintConstans.PRINT_OTHER_CLOSING, new PrintOtherOrderClosing());
mPrinters.put(PrintConstans.PRINT_SKYORDER_QRCODE, new PrintQRCode());
}
public static PrinterRoot create(int type){
PrinterRoot printerRoot = mPrinters.get(type);
return printerRoot;
}
}
......@@ -108,24 +108,9 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintExecut
final static String DELIMITER = "/";//將打印位置區分開來。。。。,暫時只有廚房單用到
private static SparseArray<PrinterRoot> mPrinterStrategy = new SparseArray<>();
static {
mPrinterStrategy.put(PrintConstans.PRINT_TEST, new PrintTest());
mPrinterStrategy.put(PrintConstans.PRINT_SERVE, new PrintServe());
mPrinterStrategy.put(PrintConstans.PRINT_SLIP, new PrintSlip());
mPrinterStrategy.put(PrintConstans.PRINT_BILL, new PrintBill());
mPrinterStrategy.put(PrintConstans.PRINT_KITCHEN, new PrintPrjKitchen());
mPrinterStrategy.put(PrintConstans.PRINT_CLEAN_MACHINE, new PrintCleanMachine());
mPrinterStrategy.put(PrintConstans.PRINT_OTHER_ORDER, new PrintOtherOrder());
mPrinterStrategy.put(PrintConstans.PRINT_INSTRUCTION, new PrintInstruction());
mPrinterStrategy.put(PrintConstans.PRINT_OTHER_CLOSING, new PrintOtherOrderClosing());
mPrinterStrategy.put(PrintConstans.PRINT_SKYORDER_QRCODE, new PrintQRCode());
}
public static PrinterRoot getPrinterByType(int type, PrintContent content) {
if (mPrinterStrategy.indexOfKey(type) >= 0) {
PrinterRoot printerRoot = mPrinterStrategy.get(type);
PrinterRoot printerRoot = PrinterFactory.create(type);
if (printerRoot != null) {
printerRoot.setPrintContent(content);
return printerRoot;
}
......@@ -708,6 +693,7 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintExecut
if (data.getPHONE() != null && data.getPHONE().length() > 0) {
tvMemberPhone.setText("會員電話:" + getReplaceAfter(data.getPHONE()));
}
// tvMemberNum.setText("會員號碼: "+data.get());
ll_member_info.setVisibility(View.VISIBLE);
} else {
ll_member_info.setVisibility(View.GONE);
......
......@@ -32,9 +32,9 @@ public abstract class MealDiscountModule {
@Binds
abstract MealDiscountContract.Model bindMealDiscountModel(MealDiscountModel model);
@FragmentScope
@Provides
static List<String> provideTabTitleList(){
return new ArrayList<>();
}
// @FragmentScope
// @Provides
// static List<String> provideTabTitleList(){
// return new ArrayList<>();
// }
}
\ No newline at end of file
......@@ -144,12 +144,12 @@ public abstract class SetMealModule {
return new ModifierAdapter(IView.getActivity2(), modifierList);
}
@FragmentScope
@Provides
@Named("foodGridLayoutManager")
static GridLayoutManager provideFoodRecycleLayoutManager(SetMealContract.View IView) {
return new GridLayoutManager(IView.getActivity2(), 1, LinearLayoutManager.HORIZONTAL, false);
}
// @FragmentScope
// @Provides
// @Named("foodGridLayoutManager")
// static GridLayoutManager provideFoodRecycleLayoutManager(SetMealContract.View IView) {
// return new GridLayoutManager(IView.getActivity2(), 1, LinearLayoutManager.HORIZONTAL, false);
// }
@FragmentScope
@Provides
......
package com.gingersoft.gsa.cloud.table.mvp.action.meal;
/**
* @作者: bin
* @創建時間: 2021-04-27 16:31
* @更新時間: 2021-04-27 16:31
* @描述:
*/
public class PrinterAction {
}
......@@ -90,7 +90,7 @@ public class CancelOrder implements Strategy<OrderManagerResponse> {
}
}
RequestParms build = RequestParms.builder()
RequestParms build = RequestParms.builder()
.action(PayAction.REFUND)
.orderId(DoshokuOrder.getInstance().getOrderId())
.resturantId(RestaurantInfoManager.newInstance().getRestaurantId())
......
......@@ -6,7 +6,7 @@ import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.mvp.IModel;
import com.jess.arms.mvp.IView;
import io.reactivex.Observable;
import io.reactivex.Single;
import okhttp3.RequestBody;
......@@ -36,11 +36,11 @@ public interface BaseOrderContract {
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends IModel {
Observable<BaseResult> toOrderPay(RequestBody requestBody);
Single<BaseResult> toOrderPay(RequestBody requestBody);
Observable<BaseResult> updateOrder(RequestBody formBody);
Single<BaseResult> updateOrder(RequestBody formBody);
Observable<BaseOrderResponse> calculationPrice(long orderId);
Single<BaseOrderResponse> calculationPrice(long orderId);
}
}
......@@ -11,6 +11,8 @@ import androidx.recyclerview.widget.RecyclerView;
import java.util.List;
import io.reactivex.Single;
/**
* ================================================
......@@ -46,13 +48,13 @@ public interface FineChildAllContract {
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends IModel {
List<Modifier> queryDB_ModifierByModMsgAndVisibleQueryBuilder();
Single<List<Modifier>> queryDB_ModifierByModMsgAndVisibleQueryBuilder();
List<Modifier> queryDB_ModifierByModModTasteVisibleQueryBuilder();
Single<List<Modifier>> queryDB_ModifierByModModTasteVisibleQueryBuilder();
List<Modifier> queryDB_ModifierByModModCommVisibleQueryBuilder();
Single<List<Modifier>> queryDB_ModifierByModModCommVisibleQueryBuilder();
List<Modifier> queryDB_ModifierByTopidAndVisibleQueryBuilder(long fid);
Single<List<Modifier>> queryDB_ModifierByTopidAndVisibleQueryBuilder(long fid);
}
}
......@@ -10,6 +10,8 @@ import com.jess.arms.mvp.IModel;
import java.util.List;
import io.reactivex.Single;
/**
* ================================================
......@@ -40,8 +42,8 @@ public interface FineChildOneselfContract {
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends IModel {
List<Modifier> queryDB_ModifierList(long fid, int mode);
Single<List<Modifier>> queryDB_ModifierList(long fid, int mode);
List<ComboItem> queryDB_ComboList(long fid);
Single<List<ComboItem>> queryDB_ComboList(long fid);
}
}
......@@ -19,7 +19,7 @@ import com.jess.arms.base.DefaultAdapter;
import java.util.List;
import androidx.recyclerview.widget.RecyclerView;
import io.reactivex.Observable;
import io.reactivex.Single;
import io.reactivex.Single;
import okhttp3.RequestBody;
......@@ -120,25 +120,25 @@ public interface MealStandContract {
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends BaseOrderContract.Model {
Observable<BaseResult> getCurrentSoldoutFood(RequestBody requestBody);
Single<BaseResult> getCurrentSoldoutFood(RequestBody requestBody);
Observable<BaseResult> createOrder(RequestBody requestBody);
Single<BaseResult> createOrder(RequestBody requestBody);
Observable<BaseResult> addFood(RequestBody requestBody);
Single<BaseResult> addOrderFood(RequestBody requestBody);
Observable<BaseOrderResponse> loadOrder(long orderId);
Single<BaseOrderResponse> loadOrder(long orderId);
Observable<BaseOrderResponse> deleteFood(RequestBody requestBody);
Single<BaseOrderResponse> deleteFood(RequestBody requestBody);
Observable<BaseOrderResponse> printOrder(RequestBody requestBody);
Single<BaseOrderResponse> printOrder(RequestBody requestBody);
Observable<BaseResult> getRestaurantFoodReason(int brandId, int restaurantId, int type);
Single<BaseResult> getRestaurantFoodReason(int brandId, int restaurantId, int type);
Single<BaseResult> queryMember(int type, String parm, String shopName, int tableId, String tableNumber);
Observable<BaseResult> memberUse(int tableId, String tableNumber, long memberId);
Single<BaseResult> memberUse(int tableId, String tableNumber, long memberId);
Observable<BaseResult> memberUseCancel(int tableId, String tableNumber, long memberId);
Single<BaseResult> memberUseCancel(int tableId, String tableNumber, long memberId);
List<Food> queryDB_AllFoodList();
......
......@@ -19,7 +19,7 @@ import com.jess.arms.base.DefaultAdapter;
import java.util.List;
import io.reactivex.Observable;
import io.reactivex.Single;
import io.reactivex.Single;
import okhttp3.RequestBody;
......@@ -54,25 +54,25 @@ public interface MealStandContract2 {
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends BaseOrderContract.Model {
Observable<BaseResult> getCurrentSoldoutFood(RequestBody requestBody);
Single<BaseResult> getCurrentSoldoutFood(RequestBody requestBody);
Observable<BaseResult> createOrder(RequestBody requestBody);
Single<BaseResult> createOrder(RequestBody requestBody);
Observable<BaseResult> addFood(RequestBody requestBody);
Single<BaseResult> addOrderFood(RequestBody requestBody);
Observable<BaseOrderResponse> loadOrder(long orderId);
Single<BaseOrderResponse> loadOrder(long orderId);
Observable<BaseOrderResponse> deleteFood(RequestBody requestBody);
Single<BaseOrderResponse> deleteFood(RequestBody requestBody);
Observable<BaseOrderResponse> printOrder(RequestBody requestBody);
Single<BaseOrderResponse> printOrder(RequestBody requestBody);
Observable<BaseResult> getRestaurantFoodReason(int brandId, int restaurantId, int type);
Single<BaseResult> getRestaurantFoodReason(int brandId, int restaurantId, int type);
Single<BaseResult> queryMember(int type, String parm, String shopName, int tableId, String tableNumber);
Observable<BaseResult> memberUse(int tableId, String tableNumber, long memberId);
Single<BaseResult> memberUse(int tableId, String tableNumber, long memberId);
Observable<BaseResult> memberUseCancel(int tableId, String tableNumber, long memberId);
Single<BaseResult> memberUseCancel(int tableId, String tableNumber, long memberId);
List<Food> queryDB_AllFoodList();
......
......@@ -9,6 +9,8 @@ import com.kingja.loadsir.callback.Callback;
import java.util.List;
import io.reactivex.Single;
/**
* ================================================
......@@ -30,6 +32,6 @@ public interface NomalDiscountContract {
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends IModel {
List<Discount> queryDB_DiscountList(byte discountScope, byte discountType);
Single<List<Discount>> queryDB_DiscountList(byte discountScope, byte discountType);
}
}
......@@ -8,7 +8,7 @@ import com.jess.arms.mvp.IModel;
import java.util.List;
import io.reactivex.Observable;
import io.reactivex.Single;
/**
......@@ -47,9 +47,9 @@ public interface OrderCenterContract {
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends IModel {
Observable<BaseResult> loadOrderList(int restaurantId, String orderType,String status, int pageIndex, int pageSize);
Single<BaseResult> loadOrderList(int restaurantId, String orderType,String status, int pageIndex, int pageSize);
Observable<BaseResult> cancelOrder(long orderId, int restaurantId, String orderType,String status);
Single<BaseResult> cancelOrder(long orderId, int restaurantId, String orderType,String status);
}
}
......@@ -10,7 +10,8 @@ import com.jess.arms.base.DefaultAdapter;
import java.util.List;
import io.reactivex.Observable;
import io.reactivex.Single;
import io.reactivex.Single;
import okhttp3.RequestBody;
......@@ -73,22 +74,22 @@ public interface OrderContentContract {
// List<Discount> queryDB_DiscountList(byte discountScope, byte discountType);
Observable<BaseOrderResponse> createOrder(RequestBody requestBody);
Single<BaseOrderResponse> createOrder(RequestBody requestBody);
Observable<BaseOrderResponse> addFood(RequestBody requestBody);
Single<BaseOrderResponse> addOrderFood(RequestBody requestBody);
Observable<BaseOrderResponse> loadOrder(long orderId);
Single<BaseOrderResponse> loadOrder(long orderId);
Observable<BaseOrderResponse> printOrder(RequestBody request);
Single<BaseOrderResponse> printOrder(RequestBody request);
Observable<TableBean> getTables(int restaurantId);
Single<TableBean> getTables(int restaurantId);
Observable<BaseResult> getTable(int tableId, String tableNumber);
Single<BaseResult> getTable(int tableId, String tableNumber);
Observable<BaseOrderResponse> transferFood(RequestBody requestBody);
Single<BaseOrderResponse> transferFood(RequestBody requestBody);
Observable<BaseResult> getSplitTables(int tableId);
Single<BaseResult> getSplitTables(int tableId);
Observable<BaseResult> queryCoupon(int tableId,Long memberId,long couponMemberId ,String couponNo, int restaurantId);
Single<BaseResult> queryCoupon(int tableId,Long memberId,long couponMemberId ,String couponNo, int restaurantId);
}
}
......@@ -4,7 +4,7 @@ import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.response.OrderManagerResponse;
import com.jess.arms.mvp.IView;
import com.jess.arms.mvp.IModel;
import io.reactivex.Observable;
import io.reactivex.Single;
/**
......@@ -40,8 +40,8 @@ public interface OrderDetailContract {
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends IModel {
Observable<BaseResult> getOrderDetailItem(long orderId);
Single<BaseResult> getOrderDetailItem(long orderId);
Observable<BaseResult> cancelOrder(long orderId);
Single<BaseResult> cancelOrder(long orderId);
}
}
......@@ -6,7 +6,7 @@ import com.gingersoft.gsa.cloud.pay.bean.PayMethod;
import java.util.List;
import io.reactivex.Observable;
import io.reactivex.Single;
import okhttp3.RequestBody;
/**
......@@ -36,12 +36,12 @@ public interface OrderPayContract {
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends BaseOrderContract.Model {
Observable<BaseResult> getPayMethods(int brandId,int restaurantId,int payType);
Single<BaseResult> getPayMethods(int brandId,int restaurantId,int payType);
Observable<BaseResult> updateOrderPay(RequestBody requestBody);
Single<BaseResult> updateOrderPay(RequestBody requestBody);
// Observable<Object> getN5SaleTxnId(String url);
// Single<Object> getN5SaleTxnId(String url);
//
// Observable<BaseResult> updateOrderStatus( RequestBody formBody);
// Single<BaseResult> updateOrderStatus( RequestBody formBody);
}
}
package com.gingersoft.gsa.cloud.table.mvp.contract;
import android.app.Activity;
import android.app.Dialog;
import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.database.bean.ComboItem;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.bean.FoodCombo;
......@@ -14,6 +16,7 @@ import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.ComboAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.FoodAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.FoodGroupAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.ModifierAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.widget.CancelFoodDialog;
import com.jess.arms.mvp.IView;
import com.jess.arms.mvp.IModel;
......@@ -23,7 +26,9 @@ import javax.inject.Inject;
import javax.inject.Named;
import dagger.Lazy;
import io.reactivex.Observable;
import io.reactivex.Single;
import okhttp3.RequestBody;
/**
......@@ -42,10 +47,16 @@ public interface SetMealContract {
//对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
interface View extends BaseOrderContract.View {
void setCurrLayout(byte layout);
void setCurrViewMode(int... viewMode);
void showChoosePeopleNumDialog(boolean isNeedCancel);
void showCancelFoodDialog(OrderDetail deleteFood);
void setCustomFoodDialog(int customType, OrderDetail foodItem);
CancelFoodDialog getCancelFoodDialog();
void setFoodGroupRecycleSpanCount(int size);
void setFoodRecycleSpanCount(int size);
......@@ -85,15 +96,29 @@ public interface SetMealContract {
MealStandActivity2 getActivity2();
int getFromType();
void clearKeyBoardInput();
void returnBeforeActivity(boolean initTable);
}
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends BaseOrderContract.Model {
Single<BaseResult> getCurrentSoldoutFood(RequestBody requestBody);
Single<BaseResult> createOrder(RequestBody requestBody);
Single<BaseResult> addOrderFood(RequestBody requestBody);
Single<BaseResult> getRestaurantFoodReason(int brandId, int restaurantId, int type);
Single<List<Food>> queryDB_FoodGroupList(int foodSummary);
Single<List<Food>> queryDB_FoodList(long parentId, int foodSummary);
Single<Food> queryFoodByFlu(String plu);
List<Modifier> queryDB_ModifierList(long fid, int mode);
List<ComboItem> queryDB_ComboList(long fid, int foodSummary);
......@@ -104,6 +129,4 @@ public interface SetMealContract {
}
}
......@@ -7,7 +7,8 @@ import com.jess.arms.mvp.IModel;
import com.jess.arms.mvp.IView;
import java.util.List;
import androidx.recyclerview.widget.RecyclerView;
import io.reactivex.Observable;
import io.reactivex.Single;
import io.reactivex.Single;
import okhttp3.RequestBody;
......@@ -71,18 +72,18 @@ public interface SoldoutCtrlContract {
List<Food> queryDB_FoodListByIds(String [] ids);
Observable<BaseResult> getCurrentSoldoutFood(RequestBody requestBody);
Single<BaseResult> getCurrentSoldoutFood(RequestBody requestBody);
Observable<BaseResult> insertSoldoutCtrl(RequestBody requestBody, int operatTtpe, int type);
Single<BaseResult> insertSoldoutCtrl(RequestBody requestBody, int operatTtpe, int type);
Observable<BaseResult> restoreSoldoutCtrl( RequestBody requestBody);
Single<BaseResult> restoreSoldoutCtrl( RequestBody requestBody);
Observable<BaseResult> batchRestoreSoldoutCtrl( RequestBody requestBody);
Single<BaseResult> batchRestoreSoldoutCtrl( RequestBody requestBody);
Observable<BaseResult> updateInvisible( RequestBody requestBody);
Single<BaseResult> updateInvisible( RequestBody requestBody);
Observable<BaseResult> downFoodList(int restaurantId);
Single<BaseResult> downFoodList(int restaurantId);
Observable<BaseResult> downFoodModifier(int restaurantId);
Single<BaseResult> downFoodModifier(int restaurantId);
}
}
......@@ -13,7 +13,7 @@ import com.jess.arms.mvp.IView;
import java.util.List;
import io.reactivex.Observable;
import io.reactivex.Single;
import okhttp3.RequestBody;
......@@ -75,26 +75,26 @@ public interface TableContract {
List<Modifier> queryDB_ModifierList(long fid, int mode);
Observable<TableBean> getTables(int restaurantId, boolean update);
Single<TableBean> getTables(int restaurantId, boolean update);
Observable<BaseResult> getTable(int tableId, String tableNumber);
Single<BaseResult> getTable(int tableId, String tableNumber);
Observable<BaseOrderResponse> getOrderById(long orderId);
Single<BaseOrderResponse> getOrderById(long orderId);
Observable<BaseOrderResponse> openTable(RequestBody requestBody);
Single<BaseOrderResponse> openTable(RequestBody requestBody);
Observable<BaseOrderResponse> turnTable(RequestBody requestBody);
Single<BaseOrderResponse> turnTable(RequestBody requestBody);
Observable<BaseOrderResponse> initTable(RequestBody requestBody);
Single<BaseOrderResponse> initTable(RequestBody requestBody);
Observable<BaseResult> resetSkyorder(RequestBody requestBody);
Single<BaseResult> resetSkyorder(RequestBody requestBody);
Observable<BaseResult> getSplitTables(int tableId);
Single<BaseResult> getSplitTables(int tableId);
Observable<BaseResult> splitTable(int tableId);
Single<BaseResult> splitTable(int tableId);
Observable<BaseResult> getFoodSummarys(int restaurantId,boolean isDefault, byte businessType, boolean update);
Single<BaseResult> getFoodSummarys(int restaurantId,boolean isDefault, byte businessType, boolean update);
Observable<BaseResult> addScan(RequestBody requestBody);
Single<BaseResult> addScan(RequestBody requestBody);
}
}
......@@ -3,6 +3,7 @@ package com.gingersoft.gsa.cloud.table.mvp.model;
import android.app.Application;
import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.common.rxjava.MyRxSchedulerUtils;
import com.gingersoft.gsa.cloud.order.bean.discount.MemberWalletCoupon;
import com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.table.mvp.model.service.MemberService;
......@@ -58,6 +59,7 @@ public class CouponModel extends BaseModel implements CouponContract.Model {
public Single<List<MemberWalletCoupon>> getMemberWalletList(int brandId, long memberId, long limitType, long pageIndex, long pageSize) {
return mRepositoryManager.obtainRetrofitService(MemberService.class)
.getMemberWalletList(brandId, memberId, limitType, pageIndex, pageSize)
.compose(MyRxSchedulerUtils._io_main_f())
.map(new Function<BaseResult, List<MemberWalletCoupon>>() {
@Override
public List<MemberWalletCoupon> apply(BaseResult result) throws Exception {
......
......@@ -2,6 +2,8 @@ package com.gingersoft.gsa.cloud.table.mvp.model;
import android.app.Application;
import com.gingersoft.gsa.cloud.common.rxjava.MyRxSchedulerUtils;
import com.gingersoft.gsa.cloud.common.rxjava.MyRxUtils;
import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.gingersoft.gsa.cloud.database.utils.ModifierDaoUtils;
import com.gingersoft.gsa.cloud.table.mvp.contract.FineChildAllContract;
......@@ -15,6 +17,8 @@ import java.util.List;
import javax.inject.Inject;
import io.reactivex.Single;
/**
* ================================================
......@@ -48,31 +52,31 @@ public class FineChildAllModel extends BaseModel implements FineChildAllContract
}
@Override
public List<Modifier> queryDB_ModifierByModMsgAndVisibleQueryBuilder() {
public Single<List<Modifier>> queryDB_ModifierByModMsgAndVisibleQueryBuilder() {
//获取数据
ModifierDaoUtils modifierDaoUtils = new ModifierDaoUtils(mApplication);
List<Modifier> modifierList = modifierDaoUtils.queryModifierByModMsgAndVisibleQueryBuilder();
return MealStyleUtils.assemblyModifiersColor(modifierList);
return MyRxUtils.si_just_io_main(MealStyleUtils.assemblyModifiersColor(modifierList));
}
@Override
public List<Modifier> queryDB_ModifierByModModTasteVisibleQueryBuilder() {
public Single<List<Modifier>> queryDB_ModifierByModModTasteVisibleQueryBuilder() {
ModifierDaoUtils modifierDaoUtils = new ModifierDaoUtils(mApplication);
List<Modifier> modifierList = modifierDaoUtils.queryModifierByModModTasteVisibleQueryBuilder();
return MealStyleUtils.assemblyModifiersColor(modifierList);
return MyRxUtils.si_just_io_main(MealStyleUtils.assemblyModifiersColor(modifierList));
}
@Override
public List<Modifier> queryDB_ModifierByModModCommVisibleQueryBuilder() {
public Single<List<Modifier>> queryDB_ModifierByModModCommVisibleQueryBuilder() {
ModifierDaoUtils modifierDaoUtils = new ModifierDaoUtils(mApplication);
List<Modifier> modifierList = modifierDaoUtils.queryModifierByModModCommVisibleQueryBuilder();
return MealStyleUtils.assemblyModifiersColor(modifierList);
return MyRxUtils.si_just_io_main(MealStyleUtils.assemblyModifiersColor(modifierList));
}
@Override
public List<Modifier> queryDB_ModifierByTopidAndVisibleQueryBuilder(long fid) {
public Single<List<Modifier>> queryDB_ModifierByTopidAndVisibleQueryBuilder(long fid) {
ModifierDaoUtils modifierDaoUtils = new ModifierDaoUtils(mApplication);
List<Modifier> modifierList = modifierDaoUtils.queryModifierByTopidAndVisibleQueryBuilder(fid);
return MealStyleUtils.assemblyModifiersColor(modifierList);
return MyRxUtils.si_just_io_main(MealStyleUtils.assemblyModifiersColor(modifierList));
}
}
\ No newline at end of file
......@@ -2,6 +2,8 @@ package com.gingersoft.gsa.cloud.table.mvp.model;
import android.app.Application;
import com.gingersoft.gsa.cloud.common.rxjava.MyRxSchedulerUtils;
import com.gingersoft.gsa.cloud.common.rxjava.MyRxUtils;
import com.gingersoft.gsa.cloud.database.bean.ComboItem;
import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.gingersoft.gsa.cloud.database.utils.ComboItemDaoUtils;
......@@ -18,6 +20,8 @@ import java.util.List;
import javax.inject.Inject;
import io.reactivex.Single;
/**
* ================================================
......@@ -51,15 +55,14 @@ public class FineChildOneselfModel extends BaseModel implements FineChildOneself
}
@Override
public List<Modifier> queryDB_ModifierList(long fid, int mode) {
public Single<List<Modifier>> queryDB_ModifierList(long fid, int mode) {
ModifierDaoUtils daoUtils = new ModifierDaoUtils(mApplication);
return MealStyleUtils.assemblyModifiersColor(daoUtils.queryModifiersByFid(fid, mode));
return MyRxUtils.si_just_io_main(MealStyleUtils.assemblyModifiersColor(daoUtils.queryModifiersByFid(fid, mode)));
}
@Override
public List<ComboItem> queryDB_ComboList(long fid) {
public Single<List<ComboItem>> queryDB_ComboList(long fid) {
ComboItemDaoUtils comboItemDao = new ComboItemDaoUtils(mApplication);
List<ComboItem> foodCombo = comboItemDao.queryComboItemsByFidQueryBuilder(fid,null);
return foodCombo;
return MyRxUtils.si_just_io_main(comboItemDao.queryComboItemsByFidQueryBuilder(fid, null));
}
}
\ No newline at end of file
......@@ -4,6 +4,7 @@ import android.app.Application;
import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.common.rxjava.MyRxSchedulerUtils;
import com.gingersoft.gsa.cloud.database.bean.ComboItem;
import com.gingersoft.gsa.cloud.database.bean.Discount;
import com.gingersoft.gsa.cloud.database.bean.Food;
......@@ -33,7 +34,7 @@ import java.util.List;
import javax.inject.Inject;
import io.reactivex.Observable;
import io.reactivex.Single;
import io.reactivex.Observer;
import io.reactivex.Single;
import io.reactivex.disposables.Disposable;
......@@ -128,62 +129,64 @@ public class MealStandModel extends BaseModel implements MealStandContract.Model
}
@Override
public Observable<BaseResult> getCurrentSoldoutFood(RequestBody requestBody) {
public Single<BaseResult> getCurrentSoldoutFood(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.getCurrentSoldoutFood(requestBody);
}
@Override
public Observable<BaseOrderResponse> loadOrder(long orderId) {
public Single<BaseOrderResponse> loadOrder(long orderId) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.loadOrder(orderId);
}
@Override
public Observable<BaseResult> createOrder(RequestBody requestBody) {
public Single<BaseResult> createOrder(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.createOrder(requestBody);
.createOrder(requestBody)
.compose(MyRxSchedulerUtils._io_main_f());
}
@Override
public Observable<BaseResult> addFood(RequestBody requestBody) {
public Single<BaseResult> addOrderFood(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.addFood(requestBody);
.addOrderFood(requestBody)
.compose(MyRxSchedulerUtils._io_main_f());
}
@Override
public Observable<BaseOrderResponse> deleteFood(RequestBody requestBody) {
Observable ob = mRepositoryManager.obtainRetrofitService(MealService.class)
public Single<BaseOrderResponse> deleteFood(RequestBody requestBody) {
Single ob = mRepositoryManager.obtainRetrofitService(MealService.class)
.deleteFood(requestBody)
.flatMap(new Function<BaseResult, Observable<BaseOrderResponse>>() {
.flatMap(new Function<BaseResult, Single<BaseOrderResponse>>() {
@Override
public Observable<BaseOrderResponse> apply(BaseResult info) throws Exception {
public Single<BaseOrderResponse> apply(BaseResult info) throws Exception {
if (info != null && info.isSuccess()) {
return loadOrder(DoshokuOrder.getInstance().getOrderId());
}
BaseOrderResponse baseOrderRespose = new BaseOrderResponse();
baseOrderRespose.setSuccess(info.isSuccess());
baseOrderRespose.setErrMsg(info.getErrMsg());
return Observable.just(baseOrderRespose);
return Single.just(baseOrderRespose);
}
});
return ob;
}
@Override
public Observable<BaseOrderResponse> calculationPrice(long orderId) {
public Single<BaseOrderResponse> calculationPrice(long orderId) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.calculationPrice(orderId);
}
@Override
public Observable<BaseOrderResponse> printOrder(RequestBody requestBody) {
public Single<BaseOrderResponse> printOrder(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.printOrder(requestBody);
}
@Override
public Observable<BaseResult> getRestaurantFoodReason(int brandId, int restaurantId, int type) {
public Single<BaseResult> getRestaurantFoodReason(int brandId, int restaurantId, int type) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.getRestaurantFoodReason(brandId, restaurantId, type);
}
......@@ -195,25 +198,25 @@ public class MealStandModel extends BaseModel implements MealStandContract.Model
}
@Override
public Observable<BaseResult> memberUse(int tableId, String tableNumber, long memberId) {
public Single<BaseResult> memberUse(int tableId, String tableNumber, long memberId) {
return mRepositoryManager.obtainRetrofitService(MemberService.class)
.memberUse(tableId, tableNumber, memberId);
}
@Override
public Observable<BaseResult> memberUseCancel(int tableId, String tableNumber, long memberId) {
public Single<BaseResult> memberUseCancel(int tableId, String tableNumber, long memberId) {
return mRepositoryManager.obtainRetrofitService(MemberService.class)
.memberUseCancel(tableId, tableNumber, memberId);
}
@Override
public Observable<BaseResult> toOrderPay(RequestBody requestBody) {
public Single<BaseResult> toOrderPay(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(OrderPayService.class)
.toOrderPay(requestBody);
}
@Override
public Observable<BaseResult> updateOrder(RequestBody formBody) {
public Single<BaseResult> updateOrder(RequestBody formBody) {
return mRepositoryManager.obtainRetrofitService(OrderPayService.class)
.updateOrder(formBody);
}
......
......@@ -32,7 +32,7 @@ import java.util.List;
import javax.inject.Inject;
import io.reactivex.Observable;
import io.reactivex.Single;
import io.reactivex.Single;
import io.reactivex.functions.Function;
import okhttp3.RequestBody;
......@@ -122,62 +122,62 @@ public class MealStandModel2 extends BaseModel implements MealStandContract2.Mod
}
@Override
public Observable<BaseResult> getCurrentSoldoutFood(RequestBody requestBody) {
public Single<BaseResult> getCurrentSoldoutFood(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.getCurrentSoldoutFood(requestBody);
}
@Override
public Observable<BaseOrderResponse> loadOrder(long orderId) {
public Single<BaseOrderResponse> loadOrder(long orderId) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.loadOrder(orderId);
}
@Override
public Observable<BaseResult> createOrder(RequestBody requestBody) {
public Single<BaseResult> createOrder(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.createOrder(requestBody);
}
@Override
public Observable<BaseResult> addFood(RequestBody requestBody) {
public Single<BaseResult> addOrderFood(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.addFood(requestBody);
.addOrderFood(requestBody);
}
@Override
public Observable<BaseOrderResponse> deleteFood(RequestBody requestBody) {
Observable ob = mRepositoryManager.obtainRetrofitService(MealService.class)
public Single<BaseOrderResponse> deleteFood(RequestBody requestBody) {
Single ob = mRepositoryManager.obtainRetrofitService(MealService.class)
.deleteFood(requestBody)
.flatMap(new Function<BaseResult, Observable<BaseOrderResponse>>() {
.flatMap(new Function<BaseResult, Single<BaseOrderResponse>>() {
@Override
public Observable<BaseOrderResponse> apply(BaseResult info) throws Exception {
public Single<BaseOrderResponse> apply(BaseResult info) throws Exception {
if (info != null && info.isSuccess()) {
return loadOrder(DoshokuOrder.getInstance().getOrderId());
}
BaseOrderResponse baseOrderRespose = new BaseOrderResponse();
baseOrderRespose.setSuccess(info.isSuccess());
baseOrderRespose.setErrMsg(info.getErrMsg());
return Observable.just(baseOrderRespose);
return Single.just(baseOrderRespose);
}
});
return ob;
}
@Override
public Observable<BaseOrderResponse> calculationPrice(long orderId) {
public Single<BaseOrderResponse> calculationPrice(long orderId) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.calculationPrice(orderId);
}
@Override
public Observable<BaseOrderResponse> printOrder(RequestBody requestBody) {
public Single<BaseOrderResponse> printOrder(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.printOrder(requestBody);
}
@Override
public Observable<BaseResult> getRestaurantFoodReason(int brandId, int restaurantId, int type) {
public Single<BaseResult> getRestaurantFoodReason(int brandId, int restaurantId, int type) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.getRestaurantFoodReason(brandId, restaurantId, type);
}
......@@ -189,25 +189,25 @@ public class MealStandModel2 extends BaseModel implements MealStandContract2.Mod
}
@Override
public Observable<BaseResult> memberUse(int tableId, String tableNumber, long memberId) {
public Single<BaseResult> memberUse(int tableId, String tableNumber, long memberId) {
return mRepositoryManager.obtainRetrofitService(MemberService.class)
.memberUse(tableId, tableNumber, memberId);
}
@Override
public Observable<BaseResult> memberUseCancel(int tableId, String tableNumber, long memberId) {
public Single<BaseResult> memberUseCancel(int tableId, String tableNumber, long memberId) {
return mRepositoryManager.obtainRetrofitService(MemberService.class)
.memberUseCancel(tableId, tableNumber, memberId);
}
@Override
public Observable<BaseResult> toOrderPay(RequestBody requestBody) {
public Single<BaseResult> toOrderPay(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(OrderPayService.class)
.toOrderPay(requestBody);
}
@Override
public Observable<BaseResult> updateOrder(RequestBody formBody) {
public Single<BaseResult> updateOrder(RequestBody formBody) {
return mRepositoryManager.obtainRetrofitService(OrderPayService.class)
.updateOrder(formBody);
}
......
......@@ -2,6 +2,7 @@ package com.gingersoft.gsa.cloud.table.mvp.model;
import android.app.Application;
import com.gingersoft.gsa.cloud.common.rxjava.MyRxUtils;
import com.gingersoft.gsa.cloud.database.bean.Discount;
import com.gingersoft.gsa.cloud.database.utils.DiscountDaoUtils;
import com.gingersoft.gsa.cloud.table.mvp.model.utils.MealConditionFilterUtils;
......@@ -17,6 +18,8 @@ import com.gingersoft.gsa.cloud.table.mvp.contract.NomalDiscountContract;
import java.util.List;
import io.reactivex.Single;
/**
* ================================================
......@@ -50,9 +53,9 @@ public class NomalDiscountModel extends BaseModel implements NomalDiscountContra
}
@Override
public List<Discount> queryDB_DiscountList(byte discountScope, byte discountType) {
public Single<List<Discount>> queryDB_DiscountList(byte discountScope, byte discountType) {
DiscountDaoUtils discountDaoUtils = new DiscountDaoUtils(mApplication);
List<Discount> discountList = discountDaoUtils.queryDiscountByQueryBuilder();
return MealConditionFilterUtils.discountConditionFilter(discountList,discountScope,discountType);
return MyRxUtils.si_just_io_main(MealConditionFilterUtils.discountConditionFilter(discountList,discountScope,discountType)) ;
}
}
\ No newline at end of file
......@@ -3,6 +3,7 @@ package com.gingersoft.gsa.cloud.table.mvp.model;
import android.app.Application;
import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.common.rxjava.MyRxSchedulerUtils;
import com.gingersoft.gsa.cloud.table.mvp.model.service.OrderService;
import com.google.gson.Gson;
import com.jess.arms.integration.IRepositoryManager;
......@@ -14,7 +15,7 @@ import javax.inject.Inject;
import com.gingersoft.gsa.cloud.table.mvp.contract.OrderCenterContract;
import io.reactivex.Observable;
import io.reactivex.Single;
import io.reactivex.functions.Function;
......@@ -50,22 +51,24 @@ public class OrderCenterModel extends BaseModel implements OrderCenterContract.M
}
@Override
public Observable<BaseResult> loadOrderList(int restaurantId,String orderType,String status, int pageIndex, int pageSize) {
public Single<BaseResult> loadOrderList(int restaurantId,String orderType,String status, int pageIndex, int pageSize) {
return mRepositoryManager.obtainRetrofitService(OrderService.class)
.loadOrderList(restaurantId, orderType,status,pageIndex, pageSize);
.loadOrderList(restaurantId, orderType,status,pageIndex, pageSize)
.compose(MyRxSchedulerUtils._io_main_f());
}
@Override
public Observable<BaseResult> cancelOrder(long orderId, int restaurantId,String orderType,String status) {
public Single<BaseResult> cancelOrder(long orderId, int restaurantId,String orderType,String status) {
return mRepositoryManager.obtainRetrofitService(OrderService.class)
.cancelOrder(orderId)
.flatMap(new Function<BaseResult, Observable<BaseResult>>() {
.compose(MyRxSchedulerUtils._io_main_f())
.flatMap(new Function<BaseResult, Single<BaseResult>>() {
@Override
public Observable<BaseResult> apply(BaseResult info) throws Exception {
public Single<BaseResult> apply(BaseResult info) throws Exception {
if (info != null && info.isSuccess()) {
return loadOrderList(restaurantId, orderType,status,0, 10);
}
return Observable.just(info);
return Single.just(info);
}
});
}
......
......@@ -4,6 +4,7 @@ import android.app.Application;
import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.common.core.table.TableBean;
import com.gingersoft.gsa.cloud.common.rxjava.MyRxSchedulerUtils;
import com.gingersoft.gsa.cloud.database.bean.Discount;
import com.gingersoft.gsa.cloud.database.utils.DiscountDaoUtils;
import com.gingersoft.gsa.cloud.order.order.DoshokuOrder;
......@@ -25,7 +26,8 @@ import java.util.List;
import javax.inject.Inject;
import io.reactivex.Observable;
import io.reactivex.Single;
import io.reactivex.Single;
import io.reactivex.functions.Function;
import okhttp3.RequestBody;
......@@ -71,9 +73,10 @@ public class OrderContentModel extends BaseModel implements OrderContentContract
}
@Override
public Observable<BaseOrderResponse> loadOrder(long orderId) {
public Single<BaseOrderResponse> loadOrder(long orderId) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.loadOrder(orderId);
.loadOrder(orderId)
.compose(MyRxSchedulerUtils._io_main_f());
}
// @Override
......@@ -84,12 +87,13 @@ public class OrderContentModel extends BaseModel implements OrderContentContract
// }
@Override
public Observable<BaseOrderResponse> createOrder(RequestBody requestBody) {
Observable ob = mRepositoryManager.obtainRetrofitService(MealService.class)
public Single<BaseOrderResponse> createOrder(RequestBody requestBody) {
Single ob = mRepositoryManager.obtainRetrofitService(MealService.class)
.createOrder(requestBody)
.flatMap(new Function<BaseResult, Observable<BaseOrderResponse>>() {
.compose(MyRxSchedulerUtils._io_main_f())
.flatMap(new Function<BaseResult, Single<BaseOrderResponse>>() {
@Override
public Observable<BaseOrderResponse> apply(BaseResult info) throws Exception {
public Single<BaseOrderResponse> apply(BaseResult info) throws Exception {
if (info != null && info.isSuccess()) {
saveCreateTime(info.getSysTime());
if (info.getData() != null) {
......@@ -115,19 +119,20 @@ public class OrderContentModel extends BaseModel implements OrderContentContract
BaseOrderResponse baseOrderRespose = new BaseOrderResponse();
baseOrderRespose.setSuccess(info.isSuccess());
baseOrderRespose.setErrMsg(info.getErrMsg());
return Observable.just(baseOrderRespose);
return Single.just(baseOrderRespose);
}
});
return ob;
}
@Override
public Observable<BaseOrderResponse> addFood(RequestBody requestBody) {
Observable ob = mRepositoryManager.obtainRetrofitService(MealService.class)
.addFood(requestBody)
.flatMap(new Function<BaseResult, Observable<BaseOrderResponse>>() {
public Single<BaseOrderResponse> addOrderFood(RequestBody requestBody) {
Single ob = mRepositoryManager.obtainRetrofitService(MealService.class)
.addOrderFood(requestBody)
.compose(MyRxSchedulerUtils._io_main_f())
.flatMap(new Function<BaseResult, Single<BaseOrderResponse>>() {
@Override
public Observable<BaseOrderResponse> apply(BaseResult info) throws Exception {
public Single<BaseOrderResponse> apply(BaseResult info) throws Exception {
if (info != null && info.isSuccess()) {
saveCreateTime(info.getSysTime());
return loadOrder(DoshokuOrder.getInstance().getOrderId());
......@@ -135,72 +140,76 @@ public class OrderContentModel extends BaseModel implements OrderContentContract
BaseOrderResponse baseOrderRespose = new BaseOrderResponse();
baseOrderRespose.setSuccess(info.isSuccess());
baseOrderRespose.setErrMsg(info.getErrMsg());
return Observable.just(baseOrderRespose);
return Single.just(baseOrderRespose);
}
});
return ob;
}
@Override
public Observable<BaseOrderResponse> printOrder(RequestBody request) {
public Single<BaseOrderResponse> printOrder(RequestBody request) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.printOrder(request);
.printOrder(request)
.compose(MyRxSchedulerUtils._io_main_f());
}
@Override
public Observable<TableBean> getTables(int restaurantId) {
public Single<TableBean> getTables(int restaurantId) {
return mRepositoryManager.obtainRetrofitService(TableService.class)
.getTables(restaurantId);
.getTables(restaurantId)
.compose(MyRxSchedulerUtils._io_main_f());
}
@Override
public Observable<BaseResult> getTable(int tableId, String tableNumber) {
public Single<BaseResult> getTable(int tableId, String tableNumber) {
return mRepositoryManager.obtainRetrofitService(TableService.class)
.getTable(tableId, tableNumber);
.getTable(tableId, tableNumber)
.compose(MyRxSchedulerUtils._io_main_f());
}
@Override
public Observable<BaseOrderResponse> transferFood(RequestBody requestBody) {
Observable ob = mRepositoryManager.obtainRetrofitService(MealService.class)
public Single<BaseOrderResponse> transferFood(RequestBody requestBody) {
Single ob = mRepositoryManager.obtainRetrofitService(MealService.class)
.transferFood(requestBody)
.flatMap(new Function<BaseOrderResponse, Observable<BaseOrderResponse>>() {
.compose(MyRxSchedulerUtils._io_main_f())
.flatMap(new Function<BaseOrderResponse, Single<BaseOrderResponse>>() {
@Override
public Observable<BaseOrderResponse> apply(BaseOrderResponse info) throws Exception {
public Single<BaseOrderResponse> apply(BaseOrderResponse info) throws Exception {
if (info != null && info.isSuccess()) {
return loadOrder(DoshokuOrder.getInstance().getOrderId());
}
return Observable.just(info);
return Single.just(info);
}
});
return ob;
}
@Override
public Observable<BaseResult> getSplitTables(int tableId) {
public Single<BaseResult> getSplitTables(int tableId) {
return mRepositoryManager.obtainRetrofitService(TableService.class)
.getSplitTables(tableId);
}
@Override
public Observable<BaseResult> toOrderPay(RequestBody requestBody) {
public Single<BaseResult> toOrderPay(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(OrderPayService.class)
.toOrderPay(requestBody);
}
@Override
public Observable<BaseResult> updateOrder(RequestBody formBody) {
public Single<BaseResult> updateOrder(RequestBody formBody) {
return mRepositoryManager.obtainRetrofitService(OrderPayService.class)
.updateOrder(formBody);
}
@Override
public Observable<BaseResult> queryCoupon(int tableId,Long memberId, long couponMemberId, String couponNo, int restaurantId) {
public Single<BaseResult> queryCoupon(int tableId,Long memberId, long couponMemberId, String couponNo, int restaurantId) {
return mRepositoryManager.obtainRetrofitService(MemberService.class)
.queryCoupon(tableId,memberId, couponMemberId, couponNo, restaurantId);
}
@Override
public Observable<BaseOrderResponse> calculationPrice(long orderId) {
public Single<BaseOrderResponse> calculationPrice(long orderId) {
return null;
}
}
\ No newline at end of file
......@@ -3,6 +3,7 @@ package com.gingersoft.gsa.cloud.table.mvp.model;
import android.app.Application;
import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.common.rxjava.MyRxSchedulerUtils;
import com.gingersoft.gsa.cloud.table.mvp.contract.OrderDetailContract;
import com.gingersoft.gsa.cloud.table.mvp.model.service.OrderService;
import com.google.gson.Gson;
......@@ -12,7 +13,7 @@ import com.jess.arms.mvp.BaseModel;
import javax.inject.Inject;
import io.reactivex.Observable;
import io.reactivex.Single;
import io.reactivex.functions.Function;
......@@ -48,22 +49,24 @@ public class OrderDetailModel extends BaseModel implements OrderDetailContract.M
}
@Override
public Observable<BaseResult> getOrderDetailItem(long orderId) {
public Single<BaseResult> getOrderDetailItem(long orderId) {
return mRepositoryManager.obtainRetrofitService(OrderService.class)
.getOrderDetail(orderId);
.getOrderDetail(orderId)
.compose(MyRxSchedulerUtils._io_main_f());
}
@Override
public Observable<BaseResult> cancelOrder(long orderId) {
public Single<BaseResult> cancelOrder(long orderId) {
return mRepositoryManager.obtainRetrofitService(OrderService.class)
.cancelOrder(orderId)
.flatMap(new Function<BaseResult, Observable<BaseResult>>() {
.compose(MyRxSchedulerUtils._io_main_f())
.flatMap(new Function<BaseResult, Single<BaseResult>>() {
@Override
public Observable<BaseResult> apply(BaseResult info) throws Exception {
public Single<BaseResult> apply(BaseResult info) throws Exception {
if (info != null && info.isSuccess()) {
return getOrderDetailItem(orderId);
}
return Observable.just(info);
return Single.just(info);
}
});
}
......
......@@ -3,6 +3,7 @@ package com.gingersoft.gsa.cloud.table.mvp.model;
import android.app.Application;
import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.common.rxjava.MyRxSchedulerUtils;
import com.gingersoft.gsa.cloud.table.mvp.contract.OrderPayContract;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.response.BaseOrderResponse;
import com.gingersoft.gsa.cloud.table.mvp.model.service.MealService;
......@@ -14,7 +15,7 @@ import com.jess.arms.mvp.BaseModel;
import javax.inject.Inject;
import io.reactivex.Observable;
import io.reactivex.Single;
import okhttp3.RequestBody;
......@@ -50,33 +51,38 @@ public class OrderPayModel extends BaseModel implements OrderPayContract.Model {
}
@Override
public Observable<BaseResult> getPayMethods(int brandId,int restaurantId,int payType) {
public Single<BaseResult> getPayMethods(int brandId,int restaurantId,int payType) {
return mRepositoryManager.obtainRetrofitService(OrderPayService.class)
.getPayMethods(brandId,restaurantId,payType);
.getPayMethods(brandId,restaurantId,payType)
.compose(MyRxSchedulerUtils._io_main_f());
}
@Override
public Observable<BaseResult> updateOrderPay( RequestBody requestBody) {
public Single<BaseResult> updateOrderPay( RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(OrderPayService.class)
.updateOrderPay(requestBody);
.updateOrderPay(requestBody)
.compose(MyRxSchedulerUtils._io_main_f());
}
@Override
public Observable<BaseOrderResponse> calculationPrice(long orderId) {
public Single<BaseOrderResponse> calculationPrice(long orderId) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.calculationPrice(orderId);
.calculationPrice(orderId)
.compose(MyRxSchedulerUtils._io_main_f());
}
@Override
public Observable<BaseResult> toOrderPay(RequestBody requestBody) {
public Single<BaseResult> toOrderPay(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(OrderPayService.class)
.toOrderPay(requestBody);
.toOrderPay(requestBody)
.compose(MyRxSchedulerUtils._io_main_f());
}
@Override
public Observable<BaseResult> updateOrder(RequestBody formBody) {
public Single<BaseResult> updateOrder(RequestBody formBody) {
return mRepositoryManager.obtainRetrofitService(OrderPayService.class)
.updateOrder(formBody);
.updateOrder(formBody)
.compose(MyRxSchedulerUtils._io_main_f());
}
}
\ No newline at end of file
......@@ -3,6 +3,7 @@ package com.gingersoft.gsa.cloud.table.mvp.model;
import android.app.Application;
import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.common.rxjava.MyRxSchedulerUtils;
import com.gingersoft.gsa.cloud.table.mvp.model.service.MemberService;
import com.google.gson.Gson;
import com.jess.arms.integration.IRepositoryManager;
......@@ -52,7 +53,8 @@ public class RiceponMemberDialogModel extends BaseModel implements RiceponMember
@Override
public Single<BaseResult> queryMember(int type, String parm, String shopName, int tableId, String tableNumber) {
return mRepositoryManager.obtainRetrofitService(MemberService.class)
.queryMember(type, parm, shopName, tableId, tableNumber);
.queryMember(type, parm, shopName, tableId, tableNumber)
.compose(MyRxSchedulerUtils._io_main_f());
}
}
\ No newline at end of file
......@@ -4,6 +4,7 @@ import android.app.Application;
import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.common.rxjava.MyRxSchedulerUtils;
import com.gingersoft.gsa.cloud.common.rxjava.MyRxUtils;
import com.gingersoft.gsa.cloud.database.bean.ComboItem;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.bean.FoodCombo;
......@@ -14,6 +15,7 @@ import com.gingersoft.gsa.cloud.database.utils.FoodComboDaoUtils;
import com.gingersoft.gsa.cloud.database.utils.FoodDaoUtils;
import com.gingersoft.gsa.cloud.database.utils.ModifierDaoUtils;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.response.BaseOrderResponse;
import com.gingersoft.gsa.cloud.table.mvp.model.service.MealService;
import com.gingersoft.gsa.cloud.table.mvp.model.utils.MealConditionFilterUtils;
import com.gingersoft.gsa.cloud.table.mvp.model.utils.MealStyleUtils;
import com.google.gson.Gson;
......@@ -28,7 +30,7 @@ import com.gingersoft.gsa.cloud.table.mvp.contract.SetMealContract;
import java.util.List;
import io.reactivex.Observable;
import io.reactivex.Single;
import io.reactivex.Single;
import okhttp3.RequestBody;
......@@ -65,21 +67,54 @@ public class SetMealModel extends BaseModel implements SetMealContract.Model {
}
@Override
public Single<BaseResult> getCurrentSoldoutFood(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.getCurrentSoldoutFood(requestBody)
.compose(MyRxSchedulerUtils._io_main_f());
}
@Override
public Single<BaseResult> createOrder(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.createOrder(requestBody)
.compose(MyRxSchedulerUtils._io_main_f());
}
@Override
public Single<BaseResult> addOrderFood(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.addOrderFood(requestBody)
.compose(MyRxSchedulerUtils._io_main_f());
}
@Override
public Single<BaseResult> getRestaurantFoodReason(int brandId, int restaurantId, int type) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.getRestaurantFoodReason(brandId,restaurantId,type)
.compose(MyRxSchedulerUtils._io_main_f());
}
@Override
public Single<List<Food>> queryDB_FoodGroupList(int foodSummary) {
FoodDaoUtils foodDaoUtils = new FoodDaoUtils(mApplication);
List<Food> foods = foodDaoUtils.queryFoodGroupByQueryBuilder(foodSummary);
return Single.just(
return MyRxUtils.si_just_io_main(
MealStyleUtils.assemblyFoodsColor(
MealConditionFilterUtils.foodConditionFilter(foods, foodSummary)))
.compose(MyRxSchedulerUtils._io_main_f());
MealConditionFilterUtils.foodConditionFilter(foods, foodSummary)));
}
@Override
public Single<List<Food>> queryDB_FoodList(long parentId, int foodSummary) {
FoodDaoUtils foodDaoUtils = new FoodDaoUtils(mApplication);
List<Food> foods = foodDaoUtils.queryFoodByQueryBuilder(parentId, foodSummary);
return Single.just(MealStyleUtils.assemblyFoodsColor(MealConditionFilterUtils.foodConditionFilter(foods, foodSummary)))
.compose(MyRxSchedulerUtils._io_main_f());
return MyRxUtils.si_just_io_main(MealStyleUtils.assemblyFoodsColor(MealConditionFilterUtils.foodConditionFilter(foods, foodSummary)));
}
@Override
public Single<Food> queryFoodByFlu(String plu) {
FoodDaoUtils foodDaoUtils = new FoodDaoUtils(mApplication);
Food food = foodDaoUtils.queryFoodByQueryBuilder(plu);
return MyRxUtils.si_just_io_main(food);
}
@Override
......@@ -99,8 +134,7 @@ public class SetMealModel extends BaseModel implements SetMealContract.Model {
@Override
public Single<List<FoodCombo>> isComboFood(long fid) {
FoodComboDaoUtils foodComboDaoUtils = new FoodComboDaoUtils(mApplication);
return Single.just(foodComboDaoUtils.queryCombosFoodsByQueryBuilder(fid))
.compose(MyRxSchedulerUtils._io_main_f());
return MyRxUtils.si_just_io_main(foodComboDaoUtils.queryCombosFoodsByQueryBuilder(fid));
}
@Override
......@@ -109,17 +143,17 @@ public class SetMealModel extends BaseModel implements SetMealContract.Model {
}
@Override
public Observable<BaseResult> toOrderPay(RequestBody requestBody) {
public Single<BaseResult> toOrderPay(RequestBody requestBody) {
return null;
}
@Override
public Observable<BaseResult> updateOrder(RequestBody formBody) {
public Single<BaseResult> updateOrder(RequestBody formBody) {
return null;
}
@Override
public Observable<BaseOrderResponse> calculationPrice(long orderId) {
public Single<BaseOrderResponse> calculationPrice(long orderId) {
return null;
}
}
\ No newline at end of file
......@@ -3,6 +3,7 @@ package com.gingersoft.gsa.cloud.table.mvp.model;
import android.app.Application;
import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.common.rxjava.MyRxSchedulerUtils;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.utils.FoodDaoUtils;
import com.gingersoft.gsa.cloud.table.mvp.contract.SoldoutCtrlContract;
......@@ -17,7 +18,8 @@ import java.util.List;
import javax.inject.Inject;
import io.reactivex.Observable;
import io.reactivex.Single;
import io.reactivex.Single;
import okhttp3.RequestBody;
......@@ -82,18 +84,20 @@ public class SoldoutCtrlModel extends BaseModel implements SoldoutCtrlContract.M
}
@Override
public Observable<BaseResult> getCurrentSoldoutFood(RequestBody requestBody) {
public Single<BaseResult> getCurrentSoldoutFood(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.getCurrentSoldoutFood(requestBody);
.getCurrentSoldoutFood(requestBody)
.compose(MyRxSchedulerUtils._io_main_f());
}
@Override
public Observable<BaseResult> insertSoldoutCtrl(RequestBody requestBody, int operatTtpe, int type) {
public Single<BaseResult> insertSoldoutCtrl(RequestBody requestBody, int operatTtpe, int type) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.insertSoldoutCtrl(requestBody);
// .flatMap(new Function<BaseResult, Observable<BaseResult>>() {
.insertSoldoutCtrl(requestBody)
.compose(MyRxSchedulerUtils._io_main_f());
// .flatMap(new Function<BaseResult, Single<BaseResult>>() {
// @Override
// public Observable<BaseResult> apply(BaseResult info) throws Exception {
// public Single<BaseResult> apply(BaseResult info) throws Exception {
// if (info != null && info.isSuccess()) {
// if (operatTtpe == 0) {
// int restaurantId = ResturantInfoManager.newInstance().getRestaurantId();
......@@ -108,39 +112,44 @@ public class SoldoutCtrlModel extends BaseModel implements SoldoutCtrlContract.M
// }
// }
// }
// return Observable.just(info);
// return Single.just(info);
// }
// });
}
@Override
public Observable<BaseResult> restoreSoldoutCtrl(RequestBody requestBody) {
public Single<BaseResult> restoreSoldoutCtrl(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.restoreSoldoutCtrl(requestBody);
.restoreSoldoutCtrl(requestBody)
.compose(MyRxSchedulerUtils._io_main_f());
}
@Override
public Observable<BaseResult> batchRestoreSoldoutCtrl(RequestBody requestBody) {
public Single<BaseResult> batchRestoreSoldoutCtrl(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.batchRestoreSoldoutCtrl(requestBody);
.batchRestoreSoldoutCtrl(requestBody)
.compose(MyRxSchedulerUtils._io_main_f());
}
@Override
public Observable<BaseResult> updateInvisible(RequestBody requestBody) {
public Single<BaseResult> updateInvisible(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.updateInvisible(requestBody);
.updateInvisible(requestBody)
.compose(MyRxSchedulerUtils._io_main_f());
}
@Override
public Observable<BaseResult> downFoodList(int restaurantId) {
public Single<BaseResult> downFoodList(int restaurantId) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.downFoodList(restaurantId);
.downFoodList(restaurantId)
.compose(MyRxSchedulerUtils._io_main_f());
}
@Override
public Observable<BaseResult> downFoodModifier(int restaurantId) {
public Single<BaseResult> downFoodModifier(int restaurantId) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.downFoodModifier(restaurantId);
.downFoodModifier(restaurantId)
.compose(MyRxSchedulerUtils._io_main_f());
}
}
\ No newline at end of file
......@@ -4,6 +4,7 @@ import android.app.Application;
import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.common.core.table.TableBean;
import com.gingersoft.gsa.cloud.common.rxjava.MyRxSchedulerUtils;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.gingersoft.gsa.cloud.database.utils.FoodDaoUtils;
......@@ -22,8 +23,8 @@ import java.util.List;
import javax.inject.Inject;
import io.reactivex.Observable;
import io.reactivex.ObservableSource;
import io.reactivex.Single;
import io.reactivex.SingleSource;
import io.reactivex.functions.Function;
import io.rx_cache2.DynamicKey;
import io.rx_cache2.EvictDynamicKey;
......@@ -76,16 +77,17 @@ public class TableModel extends BaseModel implements TableContract.Model {
}
@Override
public Observable<TableBean> getTables(int restaurantId, boolean update) {
public Single<TableBean> getTables(int restaurantId, boolean update) {
return mRepositoryManager
.obtainRetrofitService(TableService.class)
.getTables(restaurantId);
// return Observable.just(mRepositoryManager
.getTables(restaurantId)
.compose(MyRxSchedulerUtils._io_main_f());
// return Single.just(mRepositoryManager
// .obtainRetrofitService(TableService.class)
// .getTables(restaurantId))
// .flatMap((Function<Observable<TableBean>, ObservableSource<TableBean>>) listObservable ->
// .flatMap((Function<Single<TableBean>, SingleSource<TableBean>>) listSingle ->
// mRepositoryManager.obtainCacheService(TableCache.class)
// .getTables(listObservable,
// .getTables(listSingle,
// new DynamicKey(1),
// new EvictDynamicKey(update))
// .map(listReply -> listReply.getData()));
......@@ -93,64 +95,72 @@ public class TableModel extends BaseModel implements TableContract.Model {
@Override
public Observable<BaseResult> getTable(int tableId, String tableNumber) {
public Single<BaseResult> getTable(int tableId, String tableNumber) {
return mRepositoryManager.obtainRetrofitService(TableService.class)
.getTable(tableId, tableNumber);
.getTable(tableId, tableNumber)
.compose(MyRxSchedulerUtils._io_main_f());
}
@Override
public Observable<BaseOrderResponse> getOrderById(long orderId) {
public Single<BaseOrderResponse> getOrderById(long orderId) {
return mRepositoryManager.obtainRetrofitService(OrderService.class)
.getOrderById(orderId);
.getOrderById(orderId)
.compose(MyRxSchedulerUtils._io_main_f());
}
@Override
public Observable<BaseOrderResponse> openTable(RequestBody requestBody) {
public Single<BaseOrderResponse> openTable(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(TableService.class)
.openTable(requestBody);
.openTable(requestBody)
.compose(MyRxSchedulerUtils._io_main_f());
}
@Override
public Observable<BaseOrderResponse> turnTable(RequestBody requestBody) {
public Single<BaseOrderResponse> turnTable(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(TableService.class)
.turnTable(requestBody);
.turnTable(requestBody)
.compose(MyRxSchedulerUtils._io_main_f());
}
@Override
public Observable<BaseOrderResponse> initTable(RequestBody requestBody) {
public Single<BaseOrderResponse> initTable(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(TableService.class)
.initTable(requestBody);
.initTable(requestBody)
.compose(MyRxSchedulerUtils._io_main_f());
}
@Override
public Observable<BaseResult> resetSkyorder(RequestBody requestBody) {
public Single<BaseResult> resetSkyorder(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(TableService.class)
.resetSkyorder(requestBody);
.resetSkyorder(requestBody)
.compose(MyRxSchedulerUtils._io_main_f());
}
@Override
public Observable<BaseResult> getSplitTables(int tableId) {
public Single<BaseResult> getSplitTables(int tableId) {
return mRepositoryManager.obtainRetrofitService(TableService.class)
.getSplitTables(tableId);
.getSplitTables(tableId)
.compose(MyRxSchedulerUtils._io_main_f());
}
@Override
public Observable<BaseResult> splitTable(int tableId) {
public Single<BaseResult> splitTable(int tableId) {
return mRepositoryManager.obtainRetrofitService(TableService.class)
.splitTable(tableId);
.splitTable(tableId)
.compose(MyRxSchedulerUtils._io_main_f());
}
@Override
public Observable<BaseResult> getFoodSummarys(int restaurantId, boolean isDefault, byte businessType, boolean update) {
public Single<BaseResult> getFoodSummarys(int restaurantId, boolean isDefault, byte businessType, boolean update) {
return mRepositoryManager
.obtainRetrofitService(TableService.class)
.getFoodSummarys(restaurantId, isDefault, businessType);
// return Observable.just(mRepositoryManager
.getFoodSummarys(restaurantId, isDefault, businessType)
.compose(MyRxSchedulerUtils._io_main_f());
// return Single.just(mRepositoryManager
// .obtainRetrofitService(TableService.class)
// .getFoodSummarys(restaurantId, isDefault, businessType))
// .flatMap((Function<Observable<BaseResult>, ObservableSource<BaseResult>>) listObservable -> mRepositoryManager.obtainCacheService(TableCache.class)
// .getFoodSummarys(listObservable,
// .flatMap((Function<Single<BaseResult>, SingleSource<BaseResult>>) listSingle -> mRepositoryManager.obtainCacheService(TableCache.class)
// .getFoodSummarys(listSingle,
// new DynamicKey(1),
// new EvictDynamicKey(update))
// .map(listReply -> listReply.getData()));
......@@ -158,9 +168,10 @@ public class TableModel extends BaseModel implements TableContract.Model {
}
@Override
public Observable<BaseResult> addScan(RequestBody requestBody) {
public Single<BaseResult> addScan(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(TableService.class)
.addScan(requestBody);
.addScan(requestBody)
.compose(MyRxSchedulerUtils._io_main_f());
}
......
package com.gingersoft.gsa.cloud.table.mvp.model.bean.event;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.SoldoutCtrFood;
import java.util.List;
import lombok.Data;
/**
* @作者: bin
* @創建時間: 2021-04-27 14:26
* @更新時間: 2021-04-27 14:26
* @描述:
*/
@Data
public class LoadFineEvent {
private int currFinePage;
private long productId;
private int selectedMode;
private List<SoldoutCtrFood> soldoutCtrFoods;
}
......@@ -3,7 +3,8 @@ package com.gingersoft.gsa.cloud.table.mvp.model.service;
import com.gingersoft.gsa.cloud.common.Api;
import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.response.BaseOrderResponse;
import io.reactivex.Observable;
import io.reactivex.Single;
import io.reactivex.Single;
import me.jessyan.retrofiturlmanager.RetrofitUrlManager;
import okhttp3.RequestBody;
import retrofit2.http.Body;
......@@ -25,56 +26,56 @@ public interface MealService {
@Headers({"Domain-Name: soldoutctrl"})
@POST("foodChecklist/list" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> getCurrentSoldoutFood(@Body RequestBody requestBody);
Single<BaseResult> getCurrentSoldoutFood(@Body RequestBody requestBody);
@Headers({"Domain-Name: soldoutctrl"})
@POST("foodChecklist/insert" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> insertSoldoutCtrl(@Body RequestBody requestBody);
Single<BaseResult> insertSoldoutCtrl(@Body RequestBody requestBody);
@Headers({"Domain-Name: soldoutctrl"})
@POST("foodChecklist/updatePrg" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> restoreSoldoutCtrl(@Body RequestBody requestBody);
Single<BaseResult> restoreSoldoutCtrl(@Body RequestBody requestBody);
@Headers({"Domain-Name: soldoutctrl"})
@POST("foodChecklist/batchUpdatePrg" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> batchRestoreSoldoutCtrl(@Body RequestBody requestBody);
Single<BaseResult> batchRestoreSoldoutCtrl(@Body RequestBody requestBody);
@POST("food/updateInvisible" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> updateInvisible(@Body RequestBody requestBody);
Single<BaseResult> updateInvisible(@Body RequestBody requestBody);
// @Headers({"Domain-Name: yc_location"})
@POST("order/send" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> createOrder(@Body RequestBody requestBody);
Single<BaseResult> createOrder(@Body RequestBody requestBody);
// @Headers({"Domain-Name: yc_location"})
@POST("orderDetails/add" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> addFood(@Body RequestBody requestBody);
Single<BaseResult> addOrderFood(@Body RequestBody requestBody);
@FormUrlEncoded
@POST("order/get" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseOrderResponse> loadOrder(@Field("orderId") long orderId);
Single<BaseOrderResponse> loadOrder(@Field("orderId") long orderId);
// @FormUrlEncoded
@POST("orderDetails/delete" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> deleteFood(@Body RequestBody requestBody);
Single<BaseResult> deleteFood(@Body RequestBody requestBody);
@FormUrlEncoded
@POST("order/calculation/price" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseOrderResponse> calculationPrice(@Field("orderId") long orderId);
Single<BaseOrderResponse> calculationPrice(@Field("orderId") long orderId);
@POST("restaurantTable/print" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseOrderResponse> printOrder(@Body RequestBody requestBody);
Single<BaseOrderResponse> printOrder(@Body RequestBody requestBody);
@GET("restaurantFoodReason/config/list" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> getRestaurantFoodReason(@Query("brandId") int brandId , @Query("restaurantId") int restaurantId, @Query("type") int type);
Single<BaseResult> getRestaurantFoodReason(@Query("brandId") int brandId , @Query("restaurantId") int restaurantId, @Query("type") int type);
@POST("restaurantTable/transfer" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseOrderResponse> transferFood(@Body RequestBody requestBody);
Single<BaseOrderResponse> transferFood(@Body RequestBody requestBody);
@GET(Api.food_list + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> downFoodList(@Query("restaurantId") int restaurantId);
Single<BaseResult> downFoodList(@Query("restaurantId") int restaurantId);
@GET(Api.food_modifiere_relation + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> downFoodModifier(@Query("restaurantId") int restaurantId);
Single<BaseResult> downFoodModifier(@Query("restaurantId") int restaurantId);
}
......@@ -2,7 +2,7 @@ package com.gingersoft.gsa.cloud.table.mvp.model.service;
import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import io.reactivex.Observable;
import io.reactivex.Single;
import io.reactivex.Single;
import me.jessyan.retrofiturlmanager.RetrofitUrlManager;
import retrofit2.http.GET;
......@@ -20,13 +20,13 @@ public interface MemberService {
Single<BaseResult> queryMember(@Query("type") int type, @Query("parm") String parm, @Query("gsposShopId") String shopName,@Query("tableId") int tableId, @Query("tableNumber") String tableNumber);
@GET("restaurantTable/memberUse" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> memberUse(@Query("tableId") int tableId, @Query("tableNumber") String tableNumber, @Query("memberId") long memberId);
Single<BaseResult> memberUse(@Query("tableId") int tableId, @Query("tableNumber") String tableNumber, @Query("memberId") long memberId);
@GET("restaurantTable/memberUseCancel" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> memberUseCancel(@Query("tableId") int tableId, @Query("tableNumber") String tableNumber, @Query("memberId") long memberId);
Single<BaseResult> memberUseCancel(@Query("tableId") int tableId, @Query("tableNumber") String tableNumber, @Query("memberId") long memberId);
@GET("coupon/queryCoupon" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> queryCoupon(@Query("tableId") int tableId,@Query("memberId") Long memberId, @Query("couponMemberId") long couponMemberId,@Query("couponNo") String couponNo,@Query("restaurantId") int restaurantId);
Single<BaseResult> queryCoupon(@Query("tableId") int tableId,@Query("memberId") Long memberId, @Query("couponMemberId") long couponMemberId,@Query("couponNo") String couponNo,@Query("restaurantId") int restaurantId);
@Headers({"Domain-Name: ricepon_member"})
@GET("member/getMemberWalletList" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
......
......@@ -2,7 +2,7 @@ package com.gingersoft.gsa.cloud.table.mvp.model.service;
import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import io.reactivex.Observable;
import io.reactivex.Single;
import me.jessyan.retrofiturlmanager.RetrofitUrlManager;
import okhttp3.RequestBody;
import retrofit2.http.Body;
......@@ -16,14 +16,14 @@ import retrofit2.http.Query;
public interface OrderPayService {
@POST("order/update" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> updateOrder(@Body RequestBody requestBody);
Single<BaseResult> updateOrder(@Body RequestBody requestBody);
@POST("orderPay/update" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> updateOrderPay(@Body RequestBody requestBody);
Single<BaseResult> updateOrderPay(@Body RequestBody requestBody);
@POST("orderPay/add" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> toOrderPay(@Body RequestBody requestBody);
Single<BaseResult> toOrderPay(@Body RequestBody requestBody);
@GET("restaurant/pay/get" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> getPayMethods(@Query("brandId") int brandId,@Query("restaurantId") int restaurantId,@Query("payType") int payType);
Single<BaseResult> getPayMethods(@Query("brandId") int brandId,@Query("restaurantId") int restaurantId,@Query("payType") int payType);
}
......@@ -3,7 +3,7 @@ package com.gingersoft.gsa.cloud.table.mvp.model.service;
import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.response.BaseOrderResponse;
import io.reactivex.Observable;
import io.reactivex.Single;
import me.jessyan.retrofiturlmanager.RetrofitUrlManager;
import okhttp3.RequestBody;
import retrofit2.http.Body;
......@@ -20,18 +20,18 @@ public interface OrderService {
@FormUrlEncoded
@POST("order/list" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> loadOrderList(@Field("restaurantId") int restaurantId, @Field("orderType") String orderType,@Field("status") String status ,@Field("pageIndex") int pageIndex, @Field("pageSize") int pageSize);
Single<BaseResult> loadOrderList(@Field("restaurantId") int restaurantId, @Field("orderType") String orderType,@Field("status") String status ,@Field("pageIndex") int pageIndex, @Field("pageSize") int pageSize);
@GET("order/pay/success" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> getOrderDetail(@Query("orderId") long orderId);
Single<BaseResult> getOrderDetail(@Query("orderId") long orderId);
@GET("order/findOrderById" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseOrderResponse> getOrderById(@Query("orderId") long orderId);
Single<BaseOrderResponse> getOrderById(@Query("orderId") long orderId);
@FormUrlEncoded
@POST("order/cancel" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> cancelOrder(@Field("orderId") long orderId);
Single<BaseResult> cancelOrder(@Field("orderId") long orderId);
@POST("posPay/getTxnId" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> getTxnId(@Body RequestBody requestBody);
Single<BaseResult> getTxnId(@Body RequestBody requestBody);
}
......@@ -3,7 +3,8 @@ package com.gingersoft.gsa.cloud.table.mvp.model.service;
import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.common.core.table.TableBean;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.response.BaseOrderResponse;
import io.reactivex.Observable;
import io.reactivex.Single;
import io.reactivex.Single;
import me.jessyan.retrofiturlmanager.RetrofitUrlManager;
import okhttp3.RequestBody;
import retrofit2.http.Body;
......@@ -22,34 +23,34 @@ import retrofit2.http.Query;
public interface TableService {
@GET("restaurantTable/list" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<TableBean> getTables(@Query("restaurantId") int restaurantId);
Single<TableBean> getTables(@Query("restaurantId") int restaurantId);
@GET("restaurantTable/get" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> getTable(@Query("id") int table, @Query("tableNumber") String tableNumber);
Single<BaseResult> getTable(@Query("id") int table, @Query("tableNumber") String tableNumber);
@POST("restaurantTable/kickOff" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseOrderResponse> openTable(@Body RequestBody requestBody);
Single<BaseOrderResponse> openTable(@Body RequestBody requestBody);
@POST("restaurantTable/update/table" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseOrderResponse> turnTable(@Body RequestBody requestBody);
Single<BaseOrderResponse> turnTable(@Body RequestBody requestBody);
@POST("restaurantTable/set/status" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseOrderResponse> initTable(@Body RequestBody requestBody);
Single<BaseOrderResponse> initTable(@Body RequestBody requestBody);
@POST("restaurantTable/skyOrderReset" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> resetSkyorder(@Body RequestBody requestBody);
Single<BaseResult> resetSkyorder(@Body RequestBody requestBody);
@GET("restaurantTable/getSplitTableAvailable" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> getSplitTables(@Query("tableId") int tableId);
Single<BaseResult> getSplitTables(@Query("tableId") int tableId);
@GET("restaurantTable/getSplitTable" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> splitTable(@Query("tableId") int tableId);
Single<BaseResult> splitTable(@Query("tableId") int tableId);
@Headers({"Domain-Name: ricepon_restaurant"})
@GET("summary/getSummaryBusinessList" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> getFoodSummarys(@Query("restaurantId") int restaurantId, @Query("isDefault") boolean isDefault, @Query("businessType") byte businessType);
Single<BaseResult> getFoodSummarys(@Query("restaurantId") int restaurantId, @Query("isDefault") boolean isDefault, @Query("businessType") byte businessType);
@Headers({"Domain-Name: ricepon_restaurant"})
@POST("scan/addScanCloudGsa" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> addScan(@Body RequestBody requestBody);
Single<BaseResult> addScan(@Body RequestBody requestBody);
}
......@@ -14,7 +14,6 @@ import java.util.List;
*/
public class MealStyleUtils {
public static List<Food> assemblyFoodsColor(List<Food> foodList) {
for (Food food : foodList) {
food.getColorBean();
......
......@@ -13,6 +13,7 @@ import com.gingersoft.gsa.cloud.common.core.restaurant.utils.RestaurantExpandInf
import com.gingersoft.gsa.cloud.common.core.table.TableBean;
import com.gingersoft.gsa.cloud.common.core.user.UserContext;
import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.common.rxjava.ErrorHandleSingleSubscriber;
import com.gingersoft.gsa.cloud.common.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.common.utils.MoneyUtil;
import com.gingersoft.gsa.cloud.common.utils.time.TimeUtils;
......@@ -61,6 +62,7 @@ import javax.inject.Inject;
import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.annotations.NonNull;
import io.reactivex.disposables.Disposable;
import io.reactivex.functions.Consumer;
import io.reactivex.functions.Function;
......@@ -1417,15 +1419,13 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
.add("person", String.valueOf(peopleNumber))
.build();
mModel.updateOrder(requestBody)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
.subscribe(new ErrorHandleSingleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(BaseResult baseResult) {
public void onSuccess(@NonNull BaseResult baseResult) {
if (baseResult.isSuccess()) {
if (mOrderContentActivity != null) {
textView.setText(peopleNumber);
......
......@@ -13,6 +13,7 @@ import com.gingersoft.gsa.cloud.common.core.restaurant.utils.RestaurantExpandInf
import com.gingersoft.gsa.cloud.common.core.table.TableBean;
import com.gingersoft.gsa.cloud.common.core.user.UserContext;
import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.common.rxjava.ErrorHandleSingleSubscriber;
import com.gingersoft.gsa.cloud.common.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.common.utils.MoneyUtil;
import com.gingersoft.gsa.cloud.common.utils.time.TimeUtils;
......@@ -63,6 +64,7 @@ import javax.inject.Inject;
import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.annotations.NonNull;
import io.reactivex.disposables.Disposable;
import io.reactivex.functions.Consumer;
import io.reactivex.functions.Function;
......@@ -147,7 +149,7 @@ public abstract class BaseOrderPresenter2<M extends BaseOrderContract.Model, V e
protected String serviceChargeStr = "服務費";
protected String roundingStr = "賬單小數";
private final String noFoodDeliveryTip = "賬單沒有食品,是否開台?";
protected final String printError = "打印失敗";
public abstract void createOrder(boolean isPrint, Class<?> afterToActivity);
......@@ -1220,7 +1222,7 @@ public abstract class BaseOrderPresenter2<M extends BaseOrderContract.Model, V e
*
* @param foodList
*/
protected void mergeMainFoodNumber(List<OrderDetail> foodList) {
public void mergeMainFoodNumber(List<OrderDetail> foodList) {
List<Integer> removeIndexs = new ArrayList<>();
for (int i = 0; i < foodList.size(); i++) {
OrderDetail orderFood = foodList.get(i);
......@@ -1419,15 +1421,13 @@ public abstract class BaseOrderPresenter2<M extends BaseOrderContract.Model, V e
.add("person", String.valueOf(peopleNumber))
.build();
mModel.updateOrder(requestBody)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
.subscribe(new ErrorHandleSingleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(BaseResult baseResult) {
public void onSuccess(@NonNull BaseResult baseResult) {
if (baseResult.isSuccess()) {
if (mOrderContentActivity != null) {
textView.setText(peopleNumber);
......@@ -1444,7 +1444,7 @@ public abstract class BaseOrderPresenter2<M extends BaseOrderContract.Model, V e
return mShoppingCart;
}
public SelectMealAdapter2 getSelectMealAdapter(){
public SelectMealAdapter2 getSelectMealAdapter() {
return mSelectMealAdapter;
}
......
......@@ -12,6 +12,7 @@ import com.gingersoft.gsa.cloud.common.constans.ExpandConstant;
import com.gingersoft.gsa.cloud.common.constans.FoodSummaryConstans;
import com.gingersoft.gsa.cloud.common.constans.GoldConstants;
import com.gingersoft.gsa.cloud.common.constans.PrintConstans;
import com.gingersoft.gsa.cloud.common.rxjava.ErrorHandleSingleSubscriber;
import com.gingersoft.gsa.cloud.order.bean.discount.MemberWalletCoupon;
import com.gingersoft.gsa.cloud.common.core.member.MemberInfo;
import com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager;
......@@ -354,16 +355,13 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(request));
String json = GsonUtils.GsonString(request);
mModel.createOrder(requestBody)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseOrderResponse>(mErrorHandler) {
.subscribe(new ErrorHandleSingleSubscriber<BaseOrderResponse>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseOrderResponse info) {
public void onSuccess(@NonNull BaseOrderResponse info) {
sendOrderRespose(info, isPrint, afterToActivity);
}
});
......@@ -378,16 +376,14 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
AddOrderRequest addOrderRequest = getAddOrderRequest(foodLists);
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(addOrderRequest));
String json = GsonUtils.GsonString(addOrderRequest);
mModel.addFood(requestBody)
.subscribeOn(Schedulers.io())
mModel.addOrderFood(requestBody)
.doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseOrderResponse>(mErrorHandler) {
.subscribe(new ErrorHandleSingleSubscriber<BaseOrderResponse>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseOrderResponse info) {
public void onSuccess(@NonNull BaseOrderResponse info) {
sendOrderRespose(info, isPrint, afterToActivity);
}
});
......@@ -474,16 +470,13 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
.add("tableNumber", mTableInfo.getTableNumber())
.build();
mModel.printOrder(requestBody)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseOrderResponse>(mErrorHandler) {
.subscribe(new ErrorHandleSingleSubscriber<BaseOrderResponse>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseOrderResponse info) {
public void onSuccess(@NonNull BaseOrderResponse info) {
if (info != null && info.isSuccess()) {
if (RestaurantExpandInfoUtils.getValue(ExpandConstant.MergeSendFood, true)) {
//合并主食品
......@@ -527,16 +520,13 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
}
int tableId = mDoshokuOrder.getOpenTableInfo().getId();
mModel.queryCoupon(tableId, memberId, couponMemberId, couponNo, restaurantId)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
.subscribe(new ErrorHandleSingleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseResult info) {
public void onSuccess(@NonNull BaseResult info) {
if (info != null && info.isSuccess()) {
if (info.getData() != null) {
CouponDiscountResponse couponResult = JsonUtils.parseObject(info.getData(), CouponDiscountResponse.class);
......@@ -580,16 +570,13 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
public void loadOrder(long orderId) {
mModel.loadOrder(orderId)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseOrderResponse>(mErrorHandler) {
.subscribe(new ErrorHandleSingleSubscriber<BaseOrderResponse>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseOrderResponse info) {
public void onSuccess(@NonNull BaseOrderResponse info) {
updateOrderDetails(info);
}
});
......@@ -598,17 +585,14 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
public void getTables(boolean show, RefreshLayout refreshLayout) {
int restaurantId = RestaurantInfoManager.newInstance().getRestaurantId();
mModel.getTables(restaurantId)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> {
if (show && refreshLayout == null) {
mRootView.showLoading(null);
}
})
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<TableBean>(mErrorHandler) {
.subscribe(new ErrorHandleSingleSubscriber<TableBean>(mErrorHandler) {
@Override
public void onSubscribe(Disposable d) {
......@@ -617,7 +601,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
}
@Override
public void onNext(@NonNull TableBean tableBean) {
public void onSuccess(@NonNull TableBean tableBean) {
if (!IActivity.isRefreshData()) {
return;
}
......@@ -668,16 +652,13 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
public void getTable(TableBean.DataBean dataBean) {
mModel.getTable(dataBean.getId(), dataBean.getTableNumber())
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
.subscribe(new ErrorHandleSingleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseResult result) {
public void onSuccess(@NonNull BaseResult result) {
if (result.isSuccess()) {
TableBean.DataBean tableBean = JsonUtils.parseObject(result.getData(), TableBean.DataBean.class);
if (tableBean != null) {
......@@ -716,16 +697,13 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
.build();
mModel.transferFood(requestBody)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseOrderResponse>(mErrorHandler) {
.subscribe(new ErrorHandleSingleSubscriber<BaseOrderResponse>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseOrderResponse info) {
public void onSuccess(@NonNull BaseOrderResponse info) {
if (info == null) {
mRootView.showMessage("轉移失敗");
......@@ -749,13 +727,10 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
public void getSplitTables(int tableId) {
mModel.getSplitTables(tableId)
.subscribeOn(Schedulers.io())
// .doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
// .doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
.subscribe(new ErrorHandleSingleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onSubscribe(Disposable d) {
......@@ -765,7 +740,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
}
@Override
public void onNext(@NonNull BaseResult info) {
public void onSuccess(@NonNull BaseResult info) {
if (info != null && info.isSuccess()) {
if (info.getData() != null) {
......
......@@ -9,6 +9,7 @@ import com.gingersoft.gsa.cloud.common.constans.HttpsConstans;
import com.gingersoft.gsa.cloud.common.core.member.MemberInfo;
import com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager;
import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.common.rxjava.ErrorHandleSingleSubscriber;
import com.gingersoft.gsa.cloud.common.utils.JsonUtils;
import com.gingersoft.gsa.cloud.common.utils.MoneyUtil;
import com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils;
......@@ -30,6 +31,7 @@ import java.util.List;
import javax.inject.Inject;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.annotations.NonNull;
import io.reactivex.schedulers.Schedulers;
import me.jessyan.rxerrorhandler.core.RxErrorHandler;
import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber;
......@@ -107,15 +109,13 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
int brandId = RestaurantInfoManager.newInstance().getBrandId();
int restaurantId = RestaurantInfoManager.newInstance().getRestaurantId();
mModel.getPayMethods(brandId, restaurantId, FoodSummaryConstans.RESTAURANT_MODE)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
.subscribe(new ErrorHandleSingleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(BaseResult baseResult) {
public void onSuccess(@NonNull BaseResult baseResult) {
if (baseResult.isSuccess()) {
List<PayMethod> payMethods = JsonUtils.parseArray(baseResult.getData(), PayMethod.class);
for (int i = 0; i < payMethods.size(); i++) {
......@@ -164,10 +164,10 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
.subscribe(new ErrorHandleSingleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(BaseResult baseResult) {
public void onSuccess(@NonNull BaseResult baseResult) {
mRootView.hideLoading();
if (baseResult.isSuccess()) {
OrderPayResponse orderPayRespose = JsonUtils.parseObject(baseResult.getData(), OrderPayResponse.class);
......@@ -269,10 +269,10 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
.subscribe(new ErrorHandleSingleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(BaseResult baseResult) {
public void onSuccess(@NonNull BaseResult baseResult) {
if (baseResult.isSuccess()) {
LoganManager.w_pay(TAG, "修改訂單支付成功");
//結賬成功
......
......@@ -2,10 +2,12 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter;
import android.app.Application;
import android.text.TextUtils;
import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.common.constans.MealConstant;
import com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager;
import com.gingersoft.gsa.cloud.common.core.user.UserContext;
import com.gingersoft.gsa.cloud.common.rxjava.ErrorHandleSingleSubscriber;
import com.gingersoft.gsa.cloud.common.utils.JsonUtils;
import com.gingersoft.gsa.cloud.common.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.common.utils.VibratorUtils;
......@@ -523,13 +525,10 @@ public class SoldoutCtrlPresenter extends BasePresenter<SoldoutCtrlContract.Mode
.add("restaurantId", String.valueOf(restaurantId))
.build();
mModel.getCurrentSoldoutFood(requestBody)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
.subscribe(new ErrorHandleSingleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onError(Throwable t) {
......@@ -537,8 +536,9 @@ public class SoldoutCtrlPresenter extends BasePresenter<SoldoutCtrlContract.Mode
// updateFoodSoldoutCtrData(mCurrentSlodoutFoodList_Full);
}
@Override
public void onNext(@NonNull BaseResult info) {
public void onSuccess(@NonNull BaseResult info) {
if (info != null && info.isSuccess() && info.getData() != null) {
List<SoldoutCtrFood> soldoutCtrFoods = JsonUtils.parseArray(info.getData(), SoldoutCtrFood.class);
......@@ -587,16 +587,13 @@ public class SoldoutCtrlPresenter extends BasePresenter<SoldoutCtrlContract.Mode
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(request));
String json = GsonUtils.GsonString(request);
mModel.insertSoldoutCtrl(requestBody, operatTtpe, type)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
.subscribe(new ErrorHandleSingleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseResult info) {
public void onSuccess(@NonNull BaseResult info) {
if (info != null && info.isSuccess()) {
//记录操作类型
mOperatTtpe = operatTtpe;
......@@ -606,10 +603,11 @@ public class SoldoutCtrlPresenter extends BasePresenter<SoldoutCtrlContract.Mode
//重新获取沽清数据
getCurrentSoldoutFood();
} else {
if (operatTtpe == 0)
if (operatTtpe == 0) {
mRootView.showMessage(LanguageUtils.get_language_system(mApplication, "pause.failed", "暫停失敗!"));
else
} else {
mRootView.showMessage(LanguageUtils.get_language_system(mApplication, "soldout.failure", "沽清失敗!"));
}
}
}
});
......@@ -625,16 +623,13 @@ public class SoldoutCtrlPresenter extends BasePresenter<SoldoutCtrlContract.Mode
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(request));
String json = GsonUtils.GsonString(request);
mModel.restoreSoldoutCtrl(requestBody)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
.subscribe(new ErrorHandleSingleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseResult info) {
public void onSuccess(@NonNull BaseResult info) {
if (info != null && info.isSuccess()) {
//记录恢复操作类型
mOperatTtpe = 2;
......@@ -662,16 +657,13 @@ public class SoldoutCtrlPresenter extends BasePresenter<SoldoutCtrlContract.Mode
.build();
mModel.batchRestoreSoldoutCtrl(requestBody)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
.subscribe(new ErrorHandleSingleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseResult info) {
public void onSuccess(@NonNull BaseResult info) {
if (info != null && info.isSuccess()) {
//记录恢复操作类型
mOperatTtpe = 2;
......@@ -712,16 +704,13 @@ public class SoldoutCtrlPresenter extends BasePresenter<SoldoutCtrlContract.Mode
String json = GsonUtils.GsonString(request);
mModel.updateInvisible(requestBody)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
.subscribe(new ErrorHandleSingleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseResult info) {
public void onSuccess(@NonNull BaseResult info) {
if (info != null && info.isSuccess()) {
//记录恢复操作类型
mOperatTtpe = 2;
......@@ -800,16 +789,13 @@ public class SoldoutCtrlPresenter extends BasePresenter<SoldoutCtrlContract.Mode
.build();
mModel.batchRestoreSoldoutCtrl(requestBody)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
.subscribe(new ErrorHandleSingleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseResult info) {
public void onSuccess(@NonNull BaseResult info) {
if (info != null && info.isSuccess()) {
//记录恢复操作类型
mOperatTtpe = 2;
......@@ -853,7 +839,7 @@ public class SoldoutCtrlPresenter extends BasePresenter<SoldoutCtrlContract.Mode
modifierinsertResult = modifierDao.insertMultModifier(modifierList);
}
if(modifierDeleteResult && modifierDeleteResult){
if (modifierDeleteResult && modifierDeleteResult) {
//更新細項沽清數據
IActivity.setFineItemSoldoutListFull(null, mCurrentSlodoutFoodList_Full);
}
......
......@@ -15,6 +15,7 @@ import com.gingersoft.gsa.cloud.common.core.table.TableExtBean;
import com.gingersoft.gsa.cloud.common.function.XFunctionManager;
import com.gingersoft.gsa.cloud.common.function.XFunctionViews;
import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.common.rxjava.ErrorHandleSingleSubscriber;
import com.gingersoft.gsa.cloud.common.utils.JsonUtils;
import com.gingersoft.gsa.cloud.common.utils.other.SPUtils;
import com.gingersoft.gsa.cloud.database.bean.Food;
......@@ -347,22 +348,19 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
isEvictCache = true;
}
mModel.getTables(restaurantId, isEvictCache)
.subscribeOn(Schedulers.io())
// .retryWhen(new RetryWithDelay(3, 2))
.doOnSubscribe(disposable -> {
if (show && refreshLayout == null) {
mRootView.showLoading(null);
}
})
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> {
if (show && refreshLayout == null) {
mRootView.hideLoading();
}
})
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<TableBean>(mErrorHandler) {
.subscribe(new ErrorHandleSingleSubscriber<TableBean>(mErrorHandler) {
@Override
public void onSubscribe(Disposable d) {
......@@ -371,7 +369,7 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
}
@Override
public void onNext(@NonNull TableBean tableBean) {
public void onSuccess(@NonNull TableBean tableBean) {
if (!TableActivity.isRefreshData) {
return;
}
......@@ -433,16 +431,13 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
return;
}
mModel.getOrderById(tableBean.getOrderId())
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseOrderResponse>(mErrorHandler) {
.subscribe(new ErrorHandleSingleSubscriber<BaseOrderResponse>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseOrderResponse respose) {
public void onSuccess(@NonNull BaseOrderResponse respose) {
if (networkCallBackListener != null) {
networkCallBackListener.onResult(respose);
}
......@@ -467,16 +462,13 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
.add("tableNumber", tableNumber)
.build();
mModel.openTable(requestBody)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseOrderResponse>(mErrorHandler) {
.subscribe(new ErrorHandleSingleSubscriber<BaseOrderResponse>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseOrderResponse respose) {
public void onSuccess(@NonNull BaseOrderResponse respose) {
if (respose.isSuccess()) {
//設置當前開台數據
TableBean.DataBean openTableBean;
......@@ -625,16 +617,13 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
public void getTableToMove(TableBean.DataBean dataBean) {
mModel.getTable(dataBean.getId(), dataBean.getTableNumber())
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
.subscribe(new ErrorHandleSingleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseResult result) {
public void onSuccess(@NonNull BaseResult result) {
if (result.isSuccess()) {
TableBean.DataBean tableBean = JsonUtils.parseObject(result.getData(), TableBean.DataBean.class);
if (tableBean != null) {
......@@ -692,16 +681,13 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
.build();
mModel.turnTable(requestBody)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseOrderResponse>(mErrorHandler) {
.subscribe(new ErrorHandleSingleSubscriber<BaseOrderResponse>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseOrderResponse respose) {
public void onSuccess(@NonNull BaseOrderResponse respose) {
if (respose.isSuccess()) {
if (isMergeTable) {
mRootView.showMessage("合併成功");
......@@ -726,24 +712,21 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
.build();
mModel.initTable(requestBody)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> {
if (showMessage) {
mRootView.showLoading(null);
}
})
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> {
if (showMessage) {
mRootView.hideLoading();
}
})
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseOrderResponse>(mErrorHandler) {
.subscribe(new ErrorHandleSingleSubscriber<BaseOrderResponse>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseOrderResponse respose) {
public void onSuccess(@NonNull BaseOrderResponse respose) {
if (respose.isSuccess()) {
......@@ -772,20 +755,17 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
.build();
mModel.resetSkyorder(requestBody)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> {
mRootView.showLoading(null);
})
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> {
mRootView.hideLoading();
})
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
.subscribe(new ErrorHandleSingleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseResult respose) {
public void onSuccess(@NonNull BaseResult respose) {
if (respose.isSuccess()) {
......@@ -801,13 +781,10 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
public void getSplitTables(int tableId) {
mModel.getSplitTables(tableId)
.subscribeOn(Schedulers.io())
// .doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
// .doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
.subscribe(new ErrorHandleSingleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onSubscribe(Disposable d) {
......@@ -817,7 +794,7 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
}
@Override
public void onNext(@NonNull BaseResult info) {
public void onSuccess(@NonNull BaseResult info) {
if (info != null && info.isSuccess()) {
if (info.getData() != null) {
......@@ -858,16 +835,13 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
public void splitTable(TableBean.DataBean tableBean) {
mModel.splitTable(tableBean.getId())
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
.subscribe(new ErrorHandleSingleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseResult result) {
public void onSuccess(@NonNull BaseResult result) {
if (result.isSuccess()) {
if (result.getData() != null) {
TableExtBean.DataBean tableExtBean = JsonUtils.parseObject(result.getData(), TableExtBean.DataBean.class);
......@@ -901,15 +875,12 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
isEvictCache = false;
}
mModel.getFoodSummarys(restaurantId, false, businessType, isEvictCache)
.subscribeOn(Schedulers.io())
// .retryWhen(new RetryWithDelay(3, 2))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
.subscribe(new ErrorHandleSingleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseResult result) {
public void onSuccess(@NonNull BaseResult result) {
if (networkCallBackListener != null) {
networkCallBackListener.onResult(result);
}
......@@ -939,14 +910,11 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
.build();
mModel.addScan(requestBody)
.subscribeOn(Schedulers.io())
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
.subscribe(new ErrorHandleSingleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseResult result) {
public void onSuccess(@NonNull BaseResult result) {
if (networkCallBackListener != null) {
networkCallBackListener.onResult(result);
}
......
......@@ -84,15 +84,12 @@ public class CouponPresenter extends BasePresenter<CouponContract.Model, CouponC
pageIndex = pageIndex * pageSize;
}
mModel.getMemberWalletList(brandId, memberId, limitType, pageIndex, pageSize)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> {
if (refreshLayout == null) {
mRootView.showLoading(null);
}
}
)
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSingleSubscriber<List<MemberWalletCoupon>>(mErrorHandler, mRootView.getLoadService()) {
......
......@@ -2,7 +2,9 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter.discount;
import android.app.Application;
import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.common.constans.FoodSummaryConstans;
import com.gingersoft.gsa.cloud.common.rxjava.ErrorHandleSingleSubscriber;
import com.gingersoft.gsa.cloud.database.bean.Discount;
import com.gingersoft.gsa.cloud.order.order.BaseOrder;
import com.gingersoft.gsa.cloud.table.mvp.contract.NomalDiscountContract;
......@@ -10,6 +12,7 @@ import com.jess.arms.integration.AppManager;
import com.jess.arms.di.scope.FragmentScope;
import com.jess.arms.mvp.BasePresenter;
import com.jess.arms.http.imageloader.ImageLoader;
import com.jess.arms.utils.RxLifecycleUtils;
import me.jessyan.rxerrorhandler.core.RxErrorHandler;
......@@ -56,13 +59,21 @@ public class NomalDiscountPresenter extends BasePresenter<NomalDiscountContract.
}
public void queryBillDiscountList() {
List<Discount> discountList;
byte discountType;
if (BaseOrder.isCurrentOrderType(FoodSummaryConstans.TAKEAWAY_TYPE)) {
discountList = mModel.queryDB_DiscountList(Discount.discount_scope_bill, Discount.ORDER_TYPE_TAKEAWAY);
discountType = Discount.ORDER_TYPE_TAKEAWAY;
} else {
discountList = mModel.queryDB_DiscountList(Discount.discount_scope_bill, Discount.ORDER_TYPE_MEAL_STAND);
discountType = Discount.ORDER_TYPE_MEAL_STAND;
}
mRootView.returnBillCoupon(discountList);
mModel.queryDB_DiscountList(Discount.discount_scope_bill,discountType)
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSingleSubscriber<List<Discount>>(mErrorHandler) {
@Override
public void onSuccess(List<Discount> discountList) {
mRootView.returnBillCoupon(discountList);
}
});
}
}
......@@ -7,6 +7,7 @@ import android.text.TextUtils;
import android.view.View;
import com.gingersoft.gsa.cloud.common.constans.MealConstant;
import com.gingersoft.gsa.cloud.common.rxjava.ErrorHandleSingleSubscriber;
import com.gingersoft.gsa.cloud.common.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.common.utils.VibratorUtils;
import com.gingersoft.gsa.cloud.database.bean.Modifier;
......@@ -16,6 +17,7 @@ import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.mvp.contract.FineChildAllContract;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.SoldoutCtrFood;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.MealStandActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.MealStandActivity2;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.FineItemOneAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.FineItemTwoAdapter;
import com.gingersoft.gsa.cloud.ui.widget.dialog.CommonTipDialog;
......@@ -24,6 +26,7 @@ import com.jess.arms.http.imageloader.ImageLoader;
import com.jess.arms.integration.AppManager;
import com.jess.arms.mvp.BasePresenter;
import com.jess.arms.utils.ArmsUtils;
import com.jess.arms.utils.RxLifecycleUtils;
import org.simple.eventbus.EventBus;
......@@ -32,6 +35,7 @@ import java.util.List;
import javax.inject.Inject;
import io.reactivex.disposables.Disposable;
import me.jessyan.rxerrorhandler.core.RxErrorHandler;
import static com.gingersoft.gsa.cloud.table.mvp.ui.activity.SoldoutCtrlActivity.MODIFIER_TYPE;
......@@ -110,7 +114,7 @@ public class FineChildAllPresenter extends BasePresenter<FineChildAllContract.Mo
VibratorUtils.pressButtonSound(mApplication);
if (context instanceof MealStandActivity) {
if (context instanceof MealStandActivity || context instanceof MealStandActivity2) {
operartPage = 2;
......@@ -176,7 +180,7 @@ public class FineChildAllPresenter extends BasePresenter<FineChildAllContract.Mo
// if (!isStopOpeart(datasBean)) {
// showInputNumberDialog(datasBean, context);
// }
EventBus.getDefault().post(datasBean, MealConstant.SOLDOUT_MODIFIER);
EventBus.getDefault().post(datasBean, MealConstant.SOLDOUT_MODIFIER);
// }
}
......@@ -185,20 +189,26 @@ public class FineChildAllPresenter extends BasePresenter<FineChildAllContract.Mo
mFineItemOneLastPosition = -1;
//获取数据
List<Modifier> modifierList = mModel.queryDB_ModifierByModMsgAndVisibleQueryBuilder();
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();
mModel.queryDB_ModifierByModMsgAndVisibleQueryBuilder()
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSingleSubscriber<List<Modifier>>(mErrorHandler) {
@Override
public void onSuccess(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();
}
});
}
public void initModSasteFineItemKindData(long fid) {
......@@ -206,71 +216,87 @@ public class FineChildAllPresenter extends BasePresenter<FineChildAllContract.Mo
mFineItemOneLastPosition = -1;
//获取数据
List<Modifier> modifierList = mModel.queryDB_ModifierByModModTasteVisibleQueryBuilder();
if (modifierList == null || modifierList.size() == 0) {
mFineItemOneList.clear();
mFineItemAllAdapter.notifyDataSetChanged();
return;
}
setFid(modifierList, fid);
mModel.queryDB_ModifierByModModTasteVisibleQueryBuilder()
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSingleSubscriber<List<Modifier>>(mErrorHandler) {
@Override
public void onSuccess(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();
}
});
mFineItemOneList.clear();
mFineItemOneList.addAll(modifierList);
mRootView.setFineItemAllRecycleSpanCount(mFineItemOneList.size());
mFineItemAllAdapter.notifyDataSetChanged();
}
public void initModCommFineItemKindData(long fid) {
mFineItemOneLastPosition = -1;
//获取数据
List<Modifier> modifierList = mModel.queryDB_ModifierByModModCommVisibleQueryBuilder();
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();
mModel.queryDB_ModifierByModModCommVisibleQueryBuilder()
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSingleSubscriber<List<Modifier>>(mErrorHandler) {
@Override
public void onSuccess(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();
}
});
}
public void initChildFineItemItemData(long fid) {
//获取数据
List<Modifier> modifierList = mModel.queryDB_ModifierByTopidAndVisibleQueryBuilder(fid);
mModel.queryDB_ModifierByTopidAndVisibleQueryBuilder(fid)
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSingleSubscriber<List<Modifier>>(mErrorHandler) {
if (modifierList == null || modifierList.size() == 0) {
return;
}
@Override
public void onSuccess(List<Modifier> modifierList) {
if (modifierList == null || modifierList.size() == 0) {
return;
}
//添加返回按鈕
Modifier datasBean = new Modifier();
datasBean.setModifierName("返回");
datasBean.setReturn(true);
datasBean.setBgColor(ArmsUtils.getColor(mApplication, R.color.theme_red_color));
modifierList.add(0, datasBean);
//添加返回按鈕
Modifier datasBean = new Modifier();
datasBean.setModifierName("返回");
datasBean.setReturn(true);
datasBean.setBgColor(ArmsUtils.getColor(mApplication, R.color.theme_red_color));
modifierList.add(0, datasBean);
setFid(modifierList, fid);
setFid(modifierList, fid);
mFineItemTwoList.clear();
mFineItemTwoList.addAll(modifierList);
mRootView.setFineItemKindItemRecycleSpanCount(mFineItemTwoList.size());
mFineItemTwoList.clear();
mFineItemTwoList.addAll(modifierList);
mRootView.setFineItemKindItemRecycleSpanCount(mFineItemTwoList.size());
updateChildModifierSlodoutFoodList_Full();
updateChildModifierSlodoutFoodList_Full();
mFineItemTwoAdapter.notifyDataSetChanged();
mFineItemTwoAdapter.notifyDataSetChanged();
mRootView.getRecycle_fine_item_kind_item().setVisibility(View.VISIBLE);
mRootView.getRecycle_fine_adll().setVisibility(View.INVISIBLE);
mRootView.getRecycle_fine_item_kind_item().setVisibility(View.VISIBLE);
mRootView.getRecycle_fine_adll().setVisibility(View.INVISIBLE);
}
});
}
/**
......@@ -449,7 +475,7 @@ public class FineChildAllPresenter extends BasePresenter<FineChildAllContract.Mo
*/
protected List<OrderDetail> getNewOrderFoodLists() {
List<OrderDetail> orderDetails = new ArrayList<>();
List<OrderDetail> orderCommodityList = DoshokuOrder.getInstance().getShoppingCart().getOrderCommodityList();
List<OrderDetail> orderCommodityList = DoshokuOrder.getInstance().getShoppingCart().getOrderCommodityList();
for (int i = 0; i < orderCommodityList.size(); i++) {
OrderDetail orderDetail = orderCommodityList.get(i);
if (orderDetail.isNew()) {
......
......@@ -4,8 +4,10 @@ import android.app.Application;
import android.content.Context;
import android.text.TextUtils;
import com.gingersoft.gsa.cloud.common.rxjava.ErrorHandleSingleSubscriber;
import com.gingersoft.gsa.cloud.common.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.database.bean.ComboItem;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.gingersoft.gsa.cloud.database.utils.ModifierDaoUtils;
import com.gingersoft.gsa.cloud.table.mvp.contract.FineChildOneselfContract;
......@@ -19,12 +21,14 @@ import com.jess.arms.di.scope.FragmentScope;
import com.jess.arms.http.imageloader.ImageLoader;
import com.jess.arms.integration.AppManager;
import com.jess.arms.mvp.BasePresenter;
import com.jess.arms.utils.RxLifecycleUtils;
import java.util.ArrayList;
import java.util.List;
import javax.inject.Inject;
import io.reactivex.disposables.Disposable;
import me.jessyan.rxerrorhandler.core.RxErrorHandler;
import static com.gingersoft.gsa.cloud.table.mvp.ui.activity.SoldoutCtrlActivity.FOOD_TYPE;
......@@ -111,13 +115,23 @@ public class FineChildOneselfPresenter extends BasePresenter<FineChildOneselfCon
}
public void loadComboData(long fid) {
mModel.queryDB_ModifierList(fid, ModifierDaoUtils.modifierMode_All)
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSingleSubscriber<List<Modifier>>(mErrorHandler) {
if (mModifierList.size() > 0) {
mModifierList.clear();
}
@Override
public void onSubscribe(Disposable d) {
super.onSubscribe(d);
if (mModifierList.size() > 0) {
mModifierList.clear();
}
}
List<Modifier> modifierList = mModel.queryDB_ModifierList(fid, ModifierDaoUtils.modifierMode_All);
mModifierList.addAll(modifierList);
@Override
public void onSuccess(List<Modifier> modifierList) {
mModifierList.addAll(modifierList);
}
});
}
......
......@@ -818,24 +818,14 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
return -1;
}
public void getCurrentSoldoutFood() {
long restaurantId = RestaurantInfoManager.newInstance().getRestaurantId();
RequestBody requestBody = new FormBody.Builder()
.add("restaurantId", String.valueOf(restaurantId))
.build();
mModel.getCurrentSoldoutFood(requestBody)
.subscribeOn(Schedulers.io())
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onComplete() {
super.onComplete();
updateFoodSoldoutCtrData();
}
.subscribe(new ErrorHandleSingleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onError(Throwable t) {
......@@ -844,7 +834,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
}
@Override
public void onNext(@NonNull BaseResult info) {
public void onSuccess(BaseResult info) {
if (info != null && info.isSuccess() && info.getData() != null) {
List<SoldoutCtrFood> soldoutCtrFoods = JsonUtils.parseArray(info.getData(), SoldoutCtrFood.class);
if (soldoutCtrFoods != null && soldoutCtrFoods.size() > 0) {
......@@ -866,6 +856,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
mSoldoutCtrList.clear();
}
}
updateFoodSoldoutCtrData();
}
});
}
......@@ -876,16 +867,13 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(request));
String json = GsonUtils.GsonString(request);
mModel.createOrder(requestBody)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
.subscribe(new ErrorHandleSingleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseResult info) {
public void onSuccess(BaseResult info) {
if (info != null && info.isSuccess()) {
saveCreateTime(info.getSysTime());
if (info.getData() != null) {
......@@ -930,16 +918,14 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
AddOrderRequest addOrderRequest = getAddOrderRequest(foodLists);
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(addOrderRequest));
String json = GsonUtils.GsonString(addOrderRequest);
mModel.addFood(requestBody)
.subscribeOn(Schedulers.io())
mModel.addOrderFood(requestBody)
.doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
.subscribe(new ErrorHandleSingleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseResult info) {
public void onSuccess(BaseResult info) {
if (info != null && info.isSuccess()) {
mRootView.showMessage("送單成功");
printSendOrder(true);
......@@ -1097,11 +1083,8 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
int restaurantId = RestaurantInfoManager.newInstance().getRestaurantId();
int type = 1;
mModel.getRestaurantFoodReason(brandId, restaurantId, type)
.subscribeOn(Schedulers.io())
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
.subscribe(new ErrorHandleSingleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onSubscribe(Disposable d) {
......@@ -1110,7 +1093,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
}
@Override
public void onNext(@NonNull BaseResult info) {
public void onSuccess(@NonNull BaseResult info) {
if (info != null && info.isSuccess()) {
List<FoodReason> foodReasonList = JsonUtils.parseArray(info.getData(), FoodReason.class);
if (info.getData() != null && foodReasonList.size() > 0) {
......
......@@ -73,10 +73,7 @@ public class RiceponMemberDialogPresenter extends BasePresenter<RiceponMemberDia
public void queryMember(int type, String parm, String shopName, int tableId, String tableNumber) {
mModel.queryMember(type, parm, shopName, tableId, tableNumber)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSingleSubscriber<BaseResult>(mErrorHandler) {
......
......@@ -7,22 +7,40 @@ import android.util.SparseArray;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.common.constans.ExpandConstant;
import com.gingersoft.gsa.cloud.common.constans.MealConstant;
import com.gingersoft.gsa.cloud.common.constans.PrintConstans;
import com.gingersoft.gsa.cloud.common.core.member.MemberInfo;
import com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager;
import com.gingersoft.gsa.cloud.common.core.restaurant.utils.RestaurantExpandInfoUtils;
import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.common.rxjava.ErrorHandleSingleSubscriber;
import com.gingersoft.gsa.cloud.common.rxjava.MyRxSchedulerUtils;
import com.gingersoft.gsa.cloud.common.utils.JsonUtils;
import com.gingersoft.gsa.cloud.common.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.common.utils.MoneyUtil;
import com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.component.ComponentName;
import com.gingersoft.gsa.cloud.database.bean.ComboItem;
import com.gingersoft.gsa.cloud.database.bean.Discount;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.bean.FoodCombo;
import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.gingersoft.gsa.cloud.database.utils.FoodDaoUtils;
import com.gingersoft.gsa.cloud.database.utils.ModifierDaoUtils;
import com.gingersoft.gsa.cloud.order.bean.request.DeleteOrderRequest;
import com.gingersoft.gsa.cloud.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.order.order.BaseOrder;
import com.gingersoft.gsa.cloud.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.print.bean.PrintContent;
import com.gingersoft.gsa.cloud.print.bean.adapter.PrintContentAdapter;
import com.gingersoft.gsa.cloud.table.mvp.action.meal.PrinterAction;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.FoodReason;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.SoldoutCtrFood;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.request.AddOrderRequest;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.request.CreateOrderRequest;
import com.gingersoft.gsa.cloud.table.mvp.presenter.BaseOrderPresenter;
import com.gingersoft.gsa.cloud.table.mvp.presenter.BaseOrderPresenter2;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.ComboAdapter;
......@@ -31,8 +49,12 @@ import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.FoodGroupAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.ModifierAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.SelectMealAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.SelectMealAdapter2;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.mealstand.FineChildAllFragment;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.mealstand.SetMealFragment;
import com.gingersoft.gsa.cloud.table.mvp.ui.widget.CancelFoodDialog;
import com.gingersoft.gsa.cloud.ui.widget.dialog.BaseRetryDialog;
import com.gingersoft.gsa.cloud.ui.widget.dialog.CommonTipDialog;
import com.google.gson.internal.LinkedTreeMap;
import com.jess.arms.base.delegate.IActivity;
import com.jess.arms.integration.AppManager;
import com.jess.arms.di.scope.FragmentScope;
......@@ -50,6 +72,9 @@ import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
import me.jessyan.rxerrorhandler.core.RxErrorHandler;
import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber;
import okhttp3.FormBody;
import okhttp3.MediaType;
import okhttp3.RequestBody;
import javax.inject.Inject;
import javax.inject.Named;
......@@ -107,8 +132,9 @@ public class SetMealPresenter extends BaseOrderPresenter2<SetMealContract.Model,
@Inject
List<SoldoutCtrFood> mSoldoutCtrList;//沽清食品數據
private OrderDetail mCurrentOrderDetailBean;
private PrinterAction mPrinterAction;
private OrderDetail mCurrentOrderDetailBean;
private boolean RvMealClicked;
@Inject
......@@ -117,22 +143,166 @@ public class SetMealPresenter extends BaseOrderPresenter2<SetMealContract.Model,
}
@Override
public void onDestroy() {
super.onDestroy();
this.mErrorHandler = null;
this.mAppManager = null;
this.mImageLoader = null;
this.mApplication = null;
}
@Override
public void createOrder(boolean isPrint, Class<?> afterToActivity) {
CreateOrderRequest request = getCreateOrderRequest(getOrderFoodLists());
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(request));
String json = GsonUtils.GsonString(request);
mModel.createOrder(requestBody)
.doOnSubscribe(disposable -> mRootView.showLoading(null))
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSingleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onSuccess(BaseResult info) {
if (info != null && info.isSuccess()) {
saveCreateTime(info.getSysTime());
if (info.getData() != null) {
if (info.getData() instanceof Double) {
//未上線,避免正式版閃退
setOrderId((double) info.getData());
setOrderNo(((Double) info.getData()).longValue() + "");
} else {
LinkedTreeMap tm = (LinkedTreeMap) info.getData();
for (Object o : tm.keySet()) {
String key = (String) o;
if (key.equals("id")) {
setOrderId((double) tm.get(key));
} else if (key.equals("orderNo")) {
setOrderNo((String) tm.get(key));
}
}
}
}
mRootView.showMessage("送單成功");
mDoshokuOrder.setNewFoodList(getOrderFoodLists());
printSendOrder();
} else {
mRootView.showMessage(info.getErrMsg());
}
}
});
}
@Override
public void addOrderFood(boolean isPrint, Class<?> afterToActivity) {
List<OrderDetail> foodLists = getOrderFoodLists();
for (OrderDetail food : foodLists) {
food.setOrderId(mDoshokuOrder.getOrderId());
}
AddOrderRequest addOrderRequest = getAddOrderRequest(foodLists);
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(addOrderRequest));
String json = GsonUtils.GsonString(addOrderRequest);
mModel.addOrderFood(requestBody)
.doOnSubscribe(disposable -> mRootView.showLoading(null))
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSingleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onSuccess(BaseResult info) {
if (info != null && info.isSuccess()) {
mRootView.showMessage("送單成功");
printSendOrder();
} else {
if (!hasNesOrderFoods()) {
//TODO 未新增食品點擊送單 後台不讓過直接提示即可
mRootView.showMessage("送單成功");
printSendOrder();
} else {
mRootView.showMessage(info.getErrMsg());
}
}
}
});
}
@Override
public void onDestroy() {
super.onDestroy();
this.mErrorHandler = null;
this.mAppManager = null;
this.mImageLoader = null;
this.mApplication = null;
public void getCurrentSoldoutFood() {
long restaurantId = RestaurantInfoManager.newInstance().getRestaurantId();
RequestBody requestBody = new FormBody.Builder()
.add("restaurantId", String.valueOf(restaurantId))
.build();
mModel.getCurrentSoldoutFood(requestBody)
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSingleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onError(Throwable t) {
super.onError(t);
updateFoodSoldoutCtrData();
}
@Override
public void onSuccess(BaseResult info) {
if (info != null && info.isSuccess() && info.getData() != null) {
List<SoldoutCtrFood> soldoutCtrFoods = JsonUtils.parseArray(info.getData(), SoldoutCtrFood.class);
if (soldoutCtrFoods != null && soldoutCtrFoods.size() > 0) {
if (mSoldoutCtrList.size() > 0) {
mSoldoutCtrList.clear();
}
mSoldoutCtrList.addAll(soldoutCtrFoods);
} else {
if (mSoldoutCtrList.size() > 0) {
mSoldoutCtrList.clear();
}
}
} else {
if (mSoldoutCtrList.size() > 0) {
mSoldoutCtrList.clear();
}
}
updateFoodSoldoutCtrData();
}
});
}
public void getRestaurantFoodReason() {
int brandId = RestaurantInfoManager.newInstance().getBrandId();
int restaurantId = RestaurantInfoManager.newInstance().getRestaurantId();
int type = 1;
CancelFoodDialog cancelFoodDialog = mRootView.getCancelFoodDialog();
mModel.getRestaurantFoodReason(brandId, restaurantId, type)
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSingleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onSubscribe(Disposable d) {
super.onSubscribe(d);
cancelFoodDialog.setProgressVisibility(true);
}
@Override
public void onSuccess(@io.reactivex.annotations.NonNull BaseResult info) {
if (info != null && info.isSuccess()) {
List<FoodReason> foodReasonList = JsonUtils.parseArray(info.getData(), FoodReason.class);
if (info.getData() != null && foodReasonList.size() > 0) {
cancelFoodDialog.addItems(foodReasonList);
cancelFoodDialog.notifyDataSetChanged();
} else {
cancelFoodDialog.showEmptyView(true, 0, null);
}
} else {
cancelFoodDialog.showEmptyView(false, 0, null);
}
cancelFoodDialog.setProgressVisibility(false);
}
@Override
public void onError(Throwable t) {
super.onError(t);
cancelFoodDialog.setProgressVisibility(false);
cancelFoodDialog.showEmptyView(false, 0, t);
}
});
}
public void initSelectMealAdapter(RecyclerView rvSelectMeal) {
......@@ -145,7 +315,7 @@ public class SetMealPresenter extends BaseOrderPresenter2<SetMealContract.Model,
@Override
public void onItemClick(OrderDetail datasBean, int position) {
mRootView.recordOperat(true);
selectMealItemClick(datasBean);
mealCartItemClick(datasBean);
}
@Override
......@@ -174,8 +344,8 @@ public class SetMealPresenter extends BaseOrderPresenter2<SetMealContract.Model,
if (foodGroupList.size() > 0) {
mFoodGroupList.addAll(foodGroupList);
setDefalutFoodGroup(foodGroupList);
updateFoodSoldoutCtrData();
mRootView.initFoodGroupAdapter(foodGroupList);
updateFoodSoldoutCtrData();
}
}
......@@ -203,12 +373,12 @@ public class SetMealPresenter extends BaseOrderPresenter2<SetMealContract.Model,
if (foodList != null) {
updateFoodData(foodList, parentId);
}
mRootView.setCurrLayout(SetMealFragment.FOOD_LAYOUT);
mRootView.setCurrViewMode(MealConstant.food_group_ViewMode, MealConstant.food_ViewMode);
}
});
}
private void selectMealItemClick(OrderDetail datasBean) {
private void mealCartItemClick(OrderDetail datasBean) {
LoganManager.w_tableMode(TAG, LoganManager.EVENT_SELECTED, "食品【" + datasBean.getProductName() + "】");
//有取消的食品不能操作
OrderDetail currentOrderDetail = mSelectMealAdapter.getCurrentOrderDetail();
......@@ -267,7 +437,7 @@ public class SetMealPresenter extends BaseOrderPresenter2<SetMealContract.Model,
//已送單數量已等於最大數,不能繼續添加
return;
}
addModifierItem(datasBean);
fineItemClick(datasBean);
//更新賬單數
updateOrderFoodNumber();
//沽清細項沽清數
......@@ -296,6 +466,59 @@ public class SetMealPresenter extends BaseOrderPresenter2<SetMealContract.Model,
updateOrderFoodNumber();
}
@Subscriber(tag = MealConstant.ADD_FOOD_MODIFIER)
private void fineItemClick(Modifier datasBean) {
int addPosition = mOrderMealList.size();
if (mSelectMealAdapter.getSelectedMode() == SelectMealAdapter.MULTIPLE_SELECTED) {
addPosition = addMultipleModifierItems(datasBean, addPosition);
} else {
long id = mCurrentOrderDetailBean.isNew() ? mCurrentOrderDetailBean.getProductId() : mCurrentOrderDetailBean.getId();
mCurrentOrderDetailBean = OrderDetail.modifierTransOrderDetail(datasBean, id, mCurrentOrderDetailBean.getProductId(), 1);
addPosition = mSelectMealAdapter.addFoodItem(mCurrentOrderDetailBean);
}
//更新賬單金額
updateBillInfo();
// IActivity.setFineItemSlodoutListFull(mSoldoutCtrList);
mRootView.setMealRvScrollToPosition(addPosition);
}
/**
* 按键入的食品号查找食品
* meal_uid:即可以是食品的fid也可以是PLU码。
* 未有此商品,弹出提示框并且清除录入
* 有此商品,把商品上屏并且清除录入
*
* @param plu
*/
public void toFindMeal(String plu) {
mModel.queryFoodByFlu(plu)
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSingleSubscriber<Food>(mErrorHandler) {
@Override
public void onSuccess(@NonNull Food food) {
if (food == null) {
mRootView.showMessage("未找到該食品!");
return;
}
//查找成功清除输入框
mRootView.clearKeyBoardInput();
setFoodComboStatus(food);
//添加食品到購物車
int addPosition = mSelectMealAdapter.addFoodItem(OrderDetail.foodTransOrderDetails(food, 1));
mRootView.setMealRvScrollToPosition(addPosition);
updateOrderFoodNumber();
}
});
}
private void addFoodItemBefore(OrderDetail datasBean) {
int addPosition = addFoodItem(datasBean);
//这里主食品作为选中主体
......@@ -350,26 +573,6 @@ public class SetMealPresenter extends BaseOrderPresenter2<SetMealContract.Model,
return addPosition;
}
@Subscriber(tag = MealConstant.ADD_FOOD_MODIFIER)
private void addModifierItem(Modifier datasBean) {
int addPosition = mOrderMealList.size();
if (mSelectMealAdapter.getSelectedMode() == SelectMealAdapter.MULTIPLE_SELECTED) {
addPosition = addMultipleModifierItems(datasBean, addPosition);
} else {
long id = mCurrentOrderDetailBean.isNew() ? mCurrentOrderDetailBean.getProductId() : mCurrentOrderDetailBean.getId();
mCurrentOrderDetailBean = OrderDetail.modifierTransOrderDetail(datasBean, id, mCurrentOrderDetailBean.getProductId(), 1);
addPosition = mSelectMealAdapter.addFoodItem(mCurrentOrderDetailBean);
}
//更新賬單金額
updateBillInfo();
// IActivity.setFineItemSlodoutListFull(mSoldoutCtrList);
mRootView.setMealRvScrollToPosition(addPosition);
}
private void loadComboData(OrderDetail food, boolean isSelectedMeal) {
Observable.create(new ObservableOnSubscribe<List>() {
@Override
......@@ -436,7 +639,7 @@ public class SetMealPresenter extends BaseOrderPresenter2<SetMealContract.Model,
}
}
if (mRootView.getCurrentViewMode() != MealConstant.fine_ViewMode && isSelectedMeal || autoMod) {
mRootView.setCurrLayout(SetMealFragment.COMBO_LAYOUT);
mRootView.setCurrViewMode(MealConstant.combo_ViewMode);
}
toAddFoodItem(mCurrentOrderDetailBean);
}
......@@ -456,6 +659,193 @@ public class SetMealPresenter extends BaseOrderPresenter2<SetMealContract.Model,
}
/**
* 刪除食品
*
* @param deleteStyle 1=點擊刪除、2=長按刪除
*/
public void deleteFoodItem(int deleteStyle) {
if (mSelectMealAdapter.getSelectedMode() == SelectMealAdapter.MULTIPLE_SELECTED) {
//只有單選操作的時候可以刪除子項
return;
}
if (!mSelectMealAdapter.canDeleteFood()) {
return;
}
//未選擇食品時,設置默認選擇最後一個
if (mSelectMealAdapter.getSelect_position() == -1) {
if (getOrderFoodLists().size() > 0) {
mSelectMealAdapter.setSelectPosition(getOrderFoodLists().size() - 1);
}
}
OrderDetail deleteFood = getOrderFoodLists().get(mSelectMealAdapter.getSelect_position());
if (!deleteFood.isNew()) {
//TODO 刪除已下單食品
if (!deleteFood.isModify()) {
LoganManager.w_tableMode(TAG, LoganManager.EVENT_CLICK + "已下單食品【" + deleteFood.getProductName() + "】");
mRootView.showCancelFoodDialog(deleteFood);
}
} else {
if (deleteStyle == 2) {
LoganManager.w_tableMode(TAG, LoganManager.EVENT_DELETE + "食品【" + deleteFood.getProductName() + "】");
mSelectMealAdapter.removeAllNewFoodItem();
} else {
LoganManager.w_tableMode(TAG, LoganManager.EVENT_DELETE + "食品【" + deleteFood.getProductName() + "】");
int deletePosition = mSelectMealAdapter.removeFoodItem();
mRootView.setMealRvScrollToPosition(deletePosition);
//更新最大可選數
if (deleteFood != null) {
}
}
updateMealSoldoutCtrData();
}
updateOrderFoodNumber();
}
/**
* 刪除子項
*/
public void deleteChildItem() {
if (mSelectMealAdapter.getSelectedMode() != SelectMealAdapter.SINGLE_SELECTED) {
//只有單選操作的時候可以刪除子項
return;
}
if (getOrderFoodLists().size() == 0) {
mRootView.showViewModeVisibility(MealConstant.food_group_ViewMode, MealConstant.food_ViewMode);
return;
}
if (mRootView.getCurrentViewMode() == MealConstant.discount_ViewMode && getOrderFoodLists().get(mSelectMealAdapter.getSelect_position()).getProp() == OrderDetail.DISCOUNT_PROP) {
//當點選折扣操作 不可删除食品
return;
}
if (!mSelectMealAdapter.canDeleteChildItem()) {
return;
}
if (getOrderFoodLists().get(mSelectMealAdapter.getSelect_position()) == null) {
return;
}
//刪除子項
mSelectMealAdapter.removeChildItem();
//更新細項沽清數
updateFineFragmentSoldoutList();
updateComboItemSoldoutCtrData();
updateModifierSoldoutCtrData();
//更新賬單金額
updateBillInfo();
//更新選中數量
updateOrderFoodNumber();
}
/**
* 標記需刪除食品
*
* @param maxNumber
* @param deleteNumber
* @param reasonId
*/
public void markDeleteFood(int maxNumber, int deleteNumber, int reasonId, String reason) {
String ids = getSelectedOldFoodIds();
if (TextUtils.isEmpty(ids)) {
return;
}
List<OrderDetail> oldOrders = getSelectedOldFoodAndDiscount();
for (OrderDetail item : oldOrders) {
//保存取消前的數量
item.setModifyBeforeNumber(item.getNumber());
//將數量標記成已刪除
int afterDeleteNumber = item.getNumber() - deleteNumber;
if (afterDeleteNumber > 0) {
item.setNumber(afterDeleteNumber);
} else {
item.setNumber(0);
}
if (item.getNumber() != 0) {
//更新食品金额
item.setPrice(item.getNumber() * item.getUnit_price());
}
item.setCancelReason(reason);
item.setReasonId(reasonId);
item.setCancelNumber(deleteNumber);
}
mSelectMealAdapter.notifyDataSetChanged();
//將取消信息保存到訂單信息類中
DeleteOrderRequest request = getDeleteOrderRequest(ids, reasonId, maxNumber, deleteNumber);
mDoshokuOrder.addDeleteMealOrder(request);
mRootView.showBtnMealModifyRestoreVisibility(true);
//更新賬單金額
updateBillInfo();
}
/**
* 恢復標記刪除的食品
*/
public void restoreDeleteFood() {
for (OrderDetail item : mOrderMealList) {
if (!item.isModify()) {
continue;
}
item.setNumber(item.getModifyBeforeNumber());
item.setModifyBeforeNumber(0);
item.setCancelReason("");
item.setReasonId(0);
item.setCancelNumber(0);
if (item.getNumber() != 0) {
//恢复食品金额
item.setPrice(item.getNumber() * item.getUnit_price());
}
}
mDoshokuOrder.setDeleteMealOrders(null);
mSelectMealAdapter.notifyDataSetChanged();
//更新賬單金額
updateBillInfo();
}
/**
* 更新公共細項頁沽清數據
*/
private void updateFineFragmentSoldoutList() {
EventBus.getDefault().post(mSoldoutCtrList, FineChildAllFragment.UPDATE_FINE_DATA_EVENT);
}
/**
* 打印上菜紙
*
*/
private void printSendOrder() {
if (DoshokuOrder.getInstance().getNewFoodList() == null || DoshokuOrder.getInstance().getNewFoodList().size() <= 0) {
//沒有新的食品時,不打印送單
mRootView.returnBeforeActivity(true);
return;
}
if (RestaurantExpandInfoUtils.getValue(ExpandConstant.AutoPrinterPaper, true)) {
if (RestaurantExpandInfoUtils.getValue(ExpandConstant.MergeSendFood, true)) {
//合并主食品
mergeMainFoodNumber(mOrderMealList);
}
PrintContent printContent = new PrintContentAdapter().adaptationSendOrderPaperContent(DoshokuOrder.getInstance(), mTableInfo);
CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.setActionName("printActivity")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_SERVE)
.addParam(PrintConstans.PRINT_CONTENT, printContent)
.addParam(PrintConstans.PRINT_ORDER_NO, DoshokuOrder.getInstance().getOrderNo())
.build()
.callAsyncCallbackOnMainThread((cc, result) -> {
if (result.isSuccess()) {
} else {
mRootView.showMessage(printError);
}
//打印成功
mRootView.returnBeforeActivity(true);
});
} else {
mRootView.returnBeforeActivity(true);
}
}
/**
* 裁減掉已超出的細項
*
* @param datasBean
......@@ -804,6 +1194,25 @@ public class SetMealPresenter extends BaseOrderPresenter2<SetMealContract.Model,
/**
* 標識食品是否为组合食品
*
* @param food
*/
private void setFoodComboStatus(Food food) {
mModel.isComboFood(food.getId())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSingleSubscriber<List<FoodCombo>>(mErrorHandler) {
@Override
public void onSuccess(@NonNull List<FoodCombo> foodComboList) {
if (foodComboList.size() > 0) {
food.setComboFood(true);
}
}
});
}
/**
* 標識食品是否为组合食品
*
* @param foodList
*/
private void setFoodComboListStatus(List<Food> foodList) {
......@@ -814,10 +1223,11 @@ public class SetMealPresenter extends BaseOrderPresenter2<SetMealContract.Model,
.subscribe(new ErrorHandleSingleSubscriber<List<FoodCombo>>(mErrorHandler) {
@Override
public void onSuccess(List<FoodCombo> foodFoodComboList) {
if (foodFoodComboList.size() > 0) {
public void onSuccess(List<FoodCombo> foodComboList) {
if (foodComboList.size() > 0) {
datasBean.setComboFood(true);
}
}
});
}
......@@ -1350,13 +1760,16 @@ public class SetMealPresenter extends BaseOrderPresenter2<SetMealContract.Model,
return discount;
}
/**
* 更新食品組,食品選中數量
*/
public void updateOrderFoodNumber() {
setFoodBtnNumber();
setFoodGroupBtnNumber();
updateFoodBtnNumber();
updateFoodGroupBtnNumber();
mRootView.setOrderFoodCount(getOrderFoodNumber());
}
private void setFoodBtnNumber() {
private void updateFoodBtnNumber() {
for (int i = 0; i < mFoodList.size(); i++) {
Food foodBean = mFoodList.get(i);
foodBean.setNumber(0);
......@@ -1372,7 +1785,7 @@ public class SetMealPresenter extends BaseOrderPresenter2<SetMealContract.Model,
mRootView.notifyFoodAdapter();
}
private void setFoodGroupBtnNumber() {
private void updateFoodGroupBtnNumber() {
List<OrderDetail> orderDetailList = getOrderFoodLists();
for (int i = 0; i < mFoodGroupList.size(); i++) {
Food foodGroupBean = mFoodGroupList.get(i);
......@@ -1404,6 +1817,80 @@ public class SetMealPresenter extends BaseOrderPresenter2<SetMealContract.Model,
return String.valueOf(i);
}
/**
* 取消食品請求實體
*
* @param ids
* @param reasonId
* @param maxNumber
* @param deleteNumber
* @return
*/
private DeleteOrderRequest getDeleteOrderRequest(String ids, long reasonId, int maxNumber, int deleteNumber) {
List<DeleteOrderRequest.DeleteBean> mapsDelete = getMapsDelete(ids, maxNumber, deleteNumber);
byte type = (byte) (mDoshokuOrder.isModifyOrder() ? 2 : 1);
long orderId = mDoshokuOrder.getOrderId();
DeleteOrderRequest request = new DeleteOrderRequest();
request.setMapsDelete(mapsDelete);
request.setOrderId(orderId);
request.setTableId(mTableInfo.getId());
request.setTableNumber(mTableInfo.getTableNumber());
request.setType(type);
request.setReasonId(reasonId);
return request;
}
/**
* 取消食品對應 id + number
*
* @param ids
* @param maxNumber
* @param deleteNumber
* @return
*/
private List<DeleteOrderRequest.DeleteBean> getMapsDelete(String ids, int maxNumber, int deleteNumber) {
List<DeleteOrderRequest.DeleteBean> deleteMaps = new ArrayList<>();
//取消食品id
String[] idsArray = ids.split(",");
//取消食品數量
String[] quantitys = getQuantitys(idsArray.length, maxNumber, deleteNumber).split(",");
for (int i = 0; i < idsArray.length; i++) {
String[] quantitysStr = quantitys[i].split("_");
// Map<Byte, DeleteOrderRequest.DeleteBean> map = new HashMap<>();
DeleteOrderRequest.DeleteBean request = new DeleteOrderRequest.DeleteBean();
request.setId(Long.parseLong(idsArray[i]));
request.setNumber(Integer.parseInt(quantitysStr[1]));
// map.put(Byte.parseByte(quantitysStr[0]), request);
deleteMaps.add(request);
}
return deleteMaps;
}
/***
* 取消食品數量
* @param length
* @param maxNumber
* @param deleteNumber
* @return 數量_後台定義(1=刪除全部,2=修改數量)
*/
private String getQuantitys(int length, int maxNumber, int deleteNumber) {
StringBuilder builder = new StringBuilder();
for (int i = 0; i < length; i++) {
if (maxNumber == deleteNumber) {
builder.append(1 + "_" + (maxNumber - deleteNumber));
} else {
builder.append(2 + "_" + (maxNumber - deleteNumber));
}
builder.append(",");
}
String str = builder.toString();
if (str.endsWith(",")) {
str = str.substring(0, str.length() - 1);
}
return str;
}
public OrderDetail getCurrentOrderDetailBean() {
return mCurrentOrderDetailBean;
......
......@@ -4,6 +4,7 @@ import android.app.Application;
import com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager;
import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.common.rxjava.ErrorHandleSingleSubscriber;
import com.gingersoft.gsa.cloud.common.utils.JsonUtils;
import com.gingersoft.gsa.cloud.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.order.contract.OrderStatusContract;
......@@ -87,17 +88,14 @@ public class OrderCenterPresenter extends BaseOrderConterPresenter<OrderCenterCo
pageIndex = pageIndex * pageSize;
}
mModel.loadOrderList(restaurantId, orderType,status, pageIndex, pageSize)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> {
if (refreshLayout == null) {
mRootView.showLoading(null);
}
})
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
.subscribe(new ErrorHandleSingleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onSubscribe(Disposable d) {
......@@ -109,7 +107,7 @@ public class OrderCenterPresenter extends BaseOrderConterPresenter<OrderCenterCo
}
@Override
public void onNext(@NonNull BaseResult result) {
public void onSuccess(@NonNull BaseResult result) {
if (result.isSuccess()) {
if (result.getData() != null) {
List<OrderManagerResponse> orderItemList = JsonUtils.parseArray(result.getData(), OrderManagerResponse.class);
......@@ -171,16 +169,13 @@ public class OrderCenterPresenter extends BaseOrderConterPresenter<OrderCenterCo
public void cancelOrder(long orderId, String orderType,String status) {
int restaurantId = RestaurantInfoManager.newInstance().getRestaurantId();
mModel.cancelOrder(orderId, restaurantId, orderType,status)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
.subscribe(new ErrorHandleSingleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseResult result) {
public void onSuccess(@NonNull BaseResult result) {
if (result.isSuccess()) {
if (result.getData() != null) {
List<OrderManagerResponse> orderItemList = JsonUtils.parseArray(result.getData(), OrderManagerResponse.class);
......
......@@ -3,6 +3,7 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter.orderManager;
import android.app.Application;
import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.common.rxjava.ErrorHandleSingleSubscriber;
import com.gingersoft.gsa.cloud.common.utils.JsonUtils;
import com.gingersoft.gsa.cloud.common.utils.MoneyUtil;
import com.gingersoft.gsa.cloud.order.bean.response.OrderDiscountResponse;
......@@ -81,10 +82,10 @@ public class OrderDetailPresenter extends BaseOrderConterPresenter<OrderDetailCo
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
.subscribe(new ErrorHandleSingleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseResult result) {
public void onSuccess(@NonNull BaseResult result) {
if (result.isSuccess()) {
if (result.getData() != null) {
OrderManagerResponse orderDetailItem = JsonUtils.parseObject(JsonUtils.toJson(result.getData()), OrderManagerResponse.class);
......@@ -101,16 +102,13 @@ public class OrderDetailPresenter extends BaseOrderConterPresenter<OrderDetailCo
public void cancelOrder(long orderId) {
mModel.cancelOrder(orderId)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
.subscribe(new ErrorHandleSingleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseResult result) {
public void onSuccess(@NonNull BaseResult result) {
if (result.isSuccess()) {
if (result.getData() != null) {
OrderManagerResponse orderDetailItem = JsonUtils.parseObject(JsonUtils.toJson(result.getData()), OrderManagerResponse.class);
......
......@@ -582,7 +582,7 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
public void setPluMode() {
isPluMode = (boolean) SPUtils.get(MealConstant.EXIT_IS_PLU_MODE, false);
if (isPluMode) {
showViewModeVisibility(MealConstant.ViewMode_keys);
showViewModeVisibility(MealConstant.keys_viewMode);
btn_fid.setBackgroundColor(ArmsUtils.getColor(this, R.color.theme_hint_color));
} else {
btn_fid.setBackground(ArmsUtils.getDrawablebyResource(this, R.drawable.ui_selector_item_background));
......@@ -773,11 +773,11 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
showChoosePeopleNumDialog(true);
} else if (id == R.id.btn_fid) {
//搜索
if (mCurrentViewMode == MealConstant.ViewMode_keys) {
if (mCurrentViewMode == MealConstant.keys_viewMode) {
showViewModeVisibility(MealConstant.food_group_ViewMode, MealConstant.food_ViewMode);
SPUtils.put(MealConstant.EXIT_IS_PLU_MODE, false);
} else {
showViewModeVisibility(MealConstant.ViewMode_keys);
showViewModeVisibility(MealConstant.keys_viewMode);
SPUtils.put(MealConstant.EXIT_IS_PLU_MODE, true);
}
setPluMode();
......@@ -1100,13 +1100,6 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
@Override
public void setDiscountRecycleLayoutManager(int orientation) {
// FlexboxLayoutManager flexboxLayoutManager = new FlexboxLayoutManager(mContext);
// //主轴为水平方向,起点在左端。
// flexboxLayoutManager.setFlexDirection(FlexDirection.ROW);
// //按正常方向换行
// flexboxLayoutManager.setFlexWrap(FlexWrap.WRAP);
// //交叉轴的起点对齐。
// flexboxLayoutManager.setJustifyContent(JustifyContent.FLEX_START);
discountRecycleLayoutManager = new GridLayoutManager(this, 4, LinearLayoutManager.VERTICAL, false);
rv_discount.setLayoutManager(discountRecycleLayoutManager);
rv_discount.addItemDecoration(new DividerItemDecoration(mContext, DividerItemDecoration.HORIZONTAL_LIST));
......@@ -1185,7 +1178,7 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
map.get(mode).setVisibility(View.VISIBLE);
}
//設置當前模式為輸入Plu模式
if (viewMode != null && viewMode[0] == MealConstant.ViewMode_keys) {
if (viewMode != null && viewMode[0] == MealConstant.keys_viewMode) {
isPluMode = true;
} else {
isPluMode = false;
......@@ -1370,7 +1363,7 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
map.put(MealConstant.discount_ViewMode, rv_discount);
map.put(MealConstant.fine_ViewMode, pager_fine);
map.put(MealConstant.fine_tabs_ViewMode, rl_fine_tabs);
map.put(MealConstant.ViewMode_keys, keyView);
map.put(MealConstant.keys_viewMode, keyView);
// @SwitchPrintMethod
btn_send_order.setOnLongClickListener(v -> {
......
......@@ -2,7 +2,9 @@ package com.gingersoft.gsa.cloud.table.mvp.ui.activity;
import android.app.Activity;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.os.SystemClock;
import android.text.TextUtils;
import android.util.SparseArray;
import android.view.View;
......@@ -19,6 +21,7 @@ import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.app.GsaCloudApplication;
import com.gingersoft.gsa.cloud.common.constans.FoodSummaryConstans;
import com.gingersoft.gsa.cloud.common.constans.MealConstant;
import com.gingersoft.gsa.cloud.common.core.member.MemberInfo;
......@@ -79,10 +82,6 @@ public class MealStandActivity2 extends BaseFragmentActivity<MealStandPresenter2
Chronometer ctime;
@BindView(R2.id.fl_food_plate)
FrameLayout flFoodPlate;
@BindView(R2.id.fl_meal_discount)
FrameLayout flMealDiscount;
@BindView(R2.id.meal_stand_search_keyboard_view)
SearchKeyBoardView mealStandSearchKeyboardView;
@BindView(R2.id.tv_no_save_return)
TextView tvNoSaveReturn;
@BindView(R2.id.btn_order_count)
......@@ -104,9 +103,6 @@ public class MealStandActivity2 extends BaseFragmentActivity<MealStandPresenter2
@BindView(R2.id.ll_stand_oper)
LinearLayout llStandOper;
private int mCurrentViewMode;
private boolean isPluMode;
private static final int ORDER_CONTENT_CODE = 1002;
@Override
......@@ -144,9 +140,9 @@ public class MealStandActivity2 extends BaseFragmentActivity<MealStandPresenter2
if (findFragment(SetMealFragment.class) == null) {
loadRootFragment(R.id.fl_food_plate, SetMealFragment.newInstance());
}
initAutoQuit();
}
@OnClick({R2.id.btn_send_order, R2.id.tv_no_save_return, R2.id.tv_order_content})
public void onClick(View v) {
......@@ -161,11 +157,13 @@ public class MealStandActivity2 extends BaseFragmentActivity<MealStandPresenter2
.call();
return;
}
mPresenter.sendOrder(false, null);
if (sendOrderListener != null) {
sendOrderListener.sendOrder();
}
} else if (id == R.id.tv_order_content) {
//如果打印成功會回調
Intent intent = new Intent(mContext, OrderContentActivity.class);
startActivityForResult(intent, ORDER_CONTENT_CODE);
startActivityForResult(intent, MealStandActivity2.ORDER_CONTENT_CODE);
} else if (id == R.id.tv_no_save_return) {
returnTableActivity(true);
}
......@@ -200,11 +198,47 @@ public class MealStandActivity2 extends BaseFragmentActivity<MealStandPresenter2
killMyself();
}
/**
* 一段时间内没有操作,退出当前餐台
*/
private void initAutoQuit() {
if (ctime != null) {
ctime.setBase(SystemClock.elapsedRealtime());
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.CUPCAKE) {
ctime.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
@Override
public void onChronometerTick(Chronometer chronometer) {
// 执行一下看看是否按下了home键的线程
// 如果开始计时到现在超过了autoQuitTime秒
int autoQuitTime = GsaCloudApplication.functionConfiguration.getAutoQuitTimeVaule();
if (SystemClock.elapsedRealtime() - chronometer.getBase() > autoQuitTime * 1000) {
// 停止计时
chronometer.stop();
returnBeforeActivity(true);
}
}
});
}
//开启倒计时
ctime.start();
}
}
@Override
public void recordOperat(boolean isPressButtonSound) {
if (isPressButtonSound) {
VibratorUtils.pressButtonSound(this);
}
//关闭倒计时
if (ctime != null) {
ctime.stop();
}
//重新开启倒计时
if (ctime != null) {
ctime.setBase(SystemClock.elapsedRealtime());
ctime.start();
}
}
@Override
......@@ -292,9 +326,6 @@ public class MealStandActivity2 extends BaseFragmentActivity<MealStandPresenter2
return 1;
}
public void clearInput() {
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
......@@ -306,13 +337,6 @@ public class MealStandActivity2 extends BaseFragmentActivity<MealStandPresenter2
//關閉當前頁面
killMyself();
}
} else if (requestCode == ScanHelper.CALL_BACK_QR_RESULT) {
String qrCodeResult = data.getStringExtra("qrCodeResult");
if (TextUtils.isEmpty(qrCodeResult)) {
return;
}
TableBean.DataBean dataBean = DoshokuOrder.getInstance().getOpenTableInfo();
// mPresenter.queryMember(1, qrCodeResult, RestaurantInfoManager.newInstance().getGsPosShopId(), dataBean.getId(), dataBean.getTableNumber());
}
}
......@@ -328,4 +352,13 @@ public class MealStandActivity2 extends BaseFragmentActivity<MealStandPresenter2
public void showBtnMealModifyRestoreVisibility(boolean show) {
}
private OnSendOrderListener sendOrderListener;
public void setSendOrderListener(OnSendOrderListener sendOrderListener) {
this.sendOrderListener = sendOrderListener;
}
public interface OnSendOrderListener {
void sendOrder();
}
}
......@@ -554,7 +554,8 @@ public class OrderPayActivity extends BaseFragmentActivity<OrderPayPresenter> im
//
// List<BillItem> billItemList = DoshokuOrder.getInstance().getShoppingCart().getBillItemList();
RequestParms parms = RequestParms.builder()
RequestParms parms = RequestParms.builder()
.action(PayAction.SALE)
.resturantId(RestaurantInfoManager.newInstance().getRestaurantId())
.orderId(DoshokuOrder.getInstance().getOrderId())
......
......@@ -394,7 +394,7 @@ public class TableActivity extends BaseFragmentActivity<TablePresenter> implemen
@Override
public void startMealStandActivity() {
startActivity(new Intent(this, MealStandActivity.class));
startActivity(new Intent(this, MealStandActivity2.class));
}
@Override
......
......@@ -5,6 +5,7 @@ import android.graphics.Color;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
......@@ -110,10 +111,9 @@ public class FoodGroupAdapter extends DefaultAdapter<Food> {
setColor(datasBean);
setSoldoutStatus(datasBean);
setOnItemClickListener(new OnViewClickListener() {
rl_container.setOnClickListener(new View.OnClickListener() {
@Override
public void onViewClick(View view, int position) {
public void onClick(View v) {
if (mOnItemClickListener != null) {
for (int i = 0; i < mInfos.size(); i++) {
mInfos.get(i).setSelected(false);
......@@ -154,7 +154,7 @@ public class FoodGroupAdapter extends DefaultAdapter<Food> {
tv_name.setHeight(mParentColHeight);
tv_name.setGravity(Gravity.CENTER);
RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) rl_container.getLayoutParams();
ViewGroup.LayoutParams lp = (ViewGroup.LayoutParams) rl_container.getLayoutParams();
lp.height = mParentColHeight;
lp.width = mParentColWidth;
rl_container.setLayoutParams(lp);
......
......@@ -445,7 +445,8 @@ public class SelectMealAdapter2 extends DefaultAdapter<OrderDetail> {
setSelectPosition(select_position);
EventBus.getDefault().post(SetMealFragment.FOOD_LAYOUT,SetMealFragment.SET_CURR_LAYOUT_EVENT);
int [] viewModes ={MealConstant.food_group_ViewMode,MealConstant.food_ViewMode};
EventBus.getDefault().post(viewModes,SetMealFragment.SET_CURR_LAYOUT_EVENT);
// mMealStandActivity.showViewModeVisibility(MealConstant.food_group_ViewMode, MealConstant.food_ViewMode);
}
......@@ -492,7 +493,8 @@ public class SelectMealAdapter2 extends DefaultAdapter<OrderDetail> {
setSelectPosition(select_position);
EventBus.getDefault().post(SetMealFragment.FOOD_LAYOUT,SetMealFragment.SET_CURR_LAYOUT_EVENT);
int [] viewModes ={MealConstant.food_group_ViewMode,MealConstant.food_ViewMode};
EventBus.getDefault().post(viewModes,SetMealFragment.SET_CURR_LAYOUT_EVENT);
// if (mMealStandActivity != null) {
// mMealStandActivity.showViewModeVisibility(MealConstant.food_group_ViewMode, MealConstant.food_ViewMode);
// }
......@@ -749,8 +751,9 @@ public class SelectMealAdapter2 extends DefaultAdapter<OrderDetail> {
public void setSelectPosition(int position) {
if (position == -1)
if (position == -1) {
return;
}
select_position = position;
......
......@@ -49,11 +49,6 @@ public class DiscountFragment extends BaseFragment<BasePresenter> {
ViewPager contentViewPager;
@BindView(R2.id.ll_container)
QMUILinearLayout llContainer;
private CouponFragment couponFragment;
private NomalDiscountFragment billDiscountFragment;
private List<String> mTabTitles = new ArrayList<>();
private int mCurrentPageIndex = 0;
public static DiscountFragment newInstance() {
......@@ -82,68 +77,55 @@ public class DiscountFragment extends BaseFragment<BasePresenter> {
@Override
public void setData(@Nullable Object data) {
}
private void initTabAndPager() {
MemberInfo memberInfo = DoshokuOrder.getInstance().getMemberInfo();
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();
billDiscountFragment.setOnDiscountItemClickListener((item, position) -> {
if (onDiscountItemClickListener != null) {
onDiscountItemClickListener.onBillDiscountClick(item, position);
}
});
fragments.add(couponFragment);
fragments.add(billDiscountFragment);
final List<String> tabList = getTabTitles();
QMUIFragmentPagerAdapter pagerAdapter = new QMUIFragmentPagerAdapter(getChildFragmentManager()) {
@Override
public Fragment createFragment(int position) {
switch (position) {
case 1:
if (couponFragment != null) {
return couponFragment;
}
couponFragment = CouponFragment.newInstance(CouponFragment.FOOD_LIMIT_DISCOUNT);
couponFragment.setOnCouponItemClickListener(new CouponFragment.OnCouponItemClickListener() {
@Override
public void onItemClick(MemberWalletCoupon item, int position) {
if (onDiscountItemClickListener != null) {
onDiscountItemClickListener.onCouponClick(item, position);
}
}
});
return couponFragment;
default:
if (billDiscountFragment != null) {
return billDiscountFragment;
}
billDiscountFragment = NomalDiscountFragment.newInstance();
billDiscountFragment.setOnDiscountItemClickListener(new NomalDiscountFragment.OnBillDiscountItemClickListener() {
@Override
public void onItemClick(Discount item, int position) {
if (onDiscountItemClickListener != null) {
onDiscountItemClickListener.onBillDiscountClick(item, position);
}
}
});
return billDiscountFragment;
}
return fragments.get(position);
}
@Override
public int getCount() {
return mTabTitles.size();
return tabList.size();
}
@Override
public CharSequence getPageTitle(int position) {
return mTabTitles.get(position);
return tabList.get(position);
}
};
QMUITabBuilder builder = tabSegment.tabBuilder();
mTabTitles.add("折扣");
QMUITab tab1 = builder
.setText(mTabTitles.get(0))
.setText(tabList.get(0))
.build(_mActivity);
tabSegment.addTab(tab1);
if (memberInfo != null) {
mTabTitles.add("會員錢包");
if (tabList.size() > 1) {
QMUITab tab2 = builder
.setText(mTabTitles.get(1))
.setText(tabList.get(1))
.build(_mActivity);
tabSegment.addTab(tab2);
}
......@@ -159,7 +141,7 @@ public class DiscountFragment extends BaseFragment<BasePresenter> {
@Override
public void onTabSelected(int index) {
LoganManager.w_tableMode(TAG, "當前頁面【" + mTabTitles.get(index) + "】");
LoganManager.w_tableMode(TAG, "當前頁面【" + tabList.get(index) + "】");
}
@Override
......@@ -176,6 +158,16 @@ public class DiscountFragment extends BaseFragment<BasePresenter> {
});
}
private List<String> getTabTitles() {
List<String> tabList = new ArrayList<>();
tabList.add("折扣");
MemberInfo memberInfo = DoshokuOrder.getInstance().getMemberInfo();
if (memberInfo != null) {
tabList.add("會員錢包");
}
return tabList;
}
@Override
public boolean onBackPressedSupport() {
return super.onBackPressedSupport();
......
......@@ -6,17 +6,21 @@ import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.gingersoft.gsa.cloud.app.GsaCloudApplication;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.table.di.component.DaggerFineChildAllComponent;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.SoldoutCtrFood;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.event.LoadFineEvent;
import com.gingersoft.gsa.cloud.table.mvp.presenter.mealstand.FineChildAllPresenter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.SelectMealAdapter;
import com.jess.arms.base.BaseFragment;
import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils;
import com.gingersoft.gsa.cloud.table.mvp.contract.FineChildAllContract;
import java.util.ArrayList;
import java.util.List;
......@@ -26,6 +30,10 @@ import androidx.recyclerview.widget.DefaultItemAnimator;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import org.simple.eventbus.Subscriber;
import org.simple.eventbus.ThreadMode;
import butterknife.BindView;
import static com.jess.arms.utils.Preconditions.checkNotNull;
......@@ -53,6 +61,9 @@ public class FineChildAllFragment extends BaseFragment<FineChildAllPresenter> im
private int modCol;
public final static String LOAD_FINE_DATA_EVENT = "loadFineDataEvent";
public final static String UPDATE_FINE_DATA_EVENT = "updateFineDataEvent";
public static FineChildAllFragment newInstance() {
FineChildAllFragment fragment = new FineChildAllFragment();
return fragment;
......@@ -82,6 +93,39 @@ public class FineChildAllFragment extends BaseFragment<FineChildAllPresenter> im
mPresenter.initItemListener(mContext);
}
@Subscriber(tag = LOAD_FINE_DATA_EVENT, mode = ThreadMode.MAIN)
public void loadFineData(LoadFineEvent fineEvent) {
final int currFinePage = fineEvent.getCurrFinePage();
final long productId = fineEvent.getProductId();
final int selectedMode = fineEvent.getSelectedMode();
final List<SoldoutCtrFood> soldoutCtrFoods = fineEvent.getSoldoutCtrFoods();
if (productId != 0) {
if (selectedMode == SelectMealAdapter.SINGLE_SELECTED) {
if (currFinePage == 1) {
loadModSasteData(productId);
} else {
loadModMsgData(productId);
}
} else {
if (currFinePage == 1) {
loadModSasteData(productId);
} else {
loadModCommData(productId);
}
}
}
if (soldoutCtrFoods != null) {
setModifierSoldoutFoodList_Full(soldoutCtrFoods);
updateParentModifierSlodoutFoodList_Full();
}
}
@Subscriber(tag = UPDATE_FINE_DATA_EVENT, mode = ThreadMode.MAIN)
public void updateFineItemSoldoutListFull(List<SoldoutCtrFood> soldoutListFull) {
setModifierSoldoutFoodList_Full(soldoutListFull);
updateParentModifierSlodoutFoodList_Full();
}
@Override
public void setData(@Nullable Object data) {
......
......@@ -8,19 +8,30 @@ import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.viewpager2.widget.ViewPager2;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.table.di.component.DaggerFineComponent;
import com.gingersoft.gsa.cloud.table.mvp.contract.FineContract;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.SoldoutCtrFood;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.event.LoadFineEvent;
import com.gingersoft.gsa.cloud.table.mvp.presenter.mealstand.FinePresenter;
import com.gingersoft.gsa.cloud.ui.adapter.ViewPager2Adapter;
import com.gingersoft.gsa.cloud.ui.view.MyTableView;
import com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog;
import com.google.android.material.tabs.TabLayout;
import com.google.android.material.tabs.TabLayoutMediator;
import com.jess.arms.base.BaseFragment;
import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils;
import org.simple.eventbus.EventBus;
import java.util.ArrayList;
import java.util.List;
import butterknife.BindView;
import static com.jess.arms.utils.Preconditions.checkNotNull;
......@@ -40,16 +51,16 @@ import static com.jess.arms.utils.Preconditions.checkNotNull;
*/
public class FineFragment extends BaseFragment<FinePresenter> implements FineContract.View {
@BindView(R2.id.tabLayout)
TabLayout tabLayout;
@BindView(R2.id.viewPager)
ViewPager2 viewPager;
MyTableView tabFine;
@BindView(R2.id.viewPager2)
ViewPager2 vPager2Fine;
public static FineFragment newInstance() {
FineFragment fragment = new FineFragment();
return fragment;
}
private String[] mFineTitles = {"口味", "信息"};
private FineChildAllFragment modSasteFineItemFragment, modMsgFineItemFragment;
private LoadFineEvent mLoadFineEvent;
@Override
public void setupFragmentComponent(@NonNull AppComponent appComponent) {
......@@ -69,6 +80,56 @@ public class FineFragment extends BaseFragment<FinePresenter> implements FineCon
@Override
public void initData(@Nullable Bundle savedInstanceState) {
initViewPager();
}
private void initViewPager() {
List<Fragment> fragments = new ArrayList<>();
modSasteFineItemFragment = FineChildAllFragment.newInstance();
modMsgFineItemFragment = FineChildAllFragment.newInstance();
fragments.add(modSasteFineItemFragment);
fragments.add(modMsgFineItemFragment);
//实例化适配器
ViewPager2Adapter viewPager2Adapter = new ViewPager2Adapter(_mActivity, fragments);
//设置Viewpager2的适配器
vPager2Fine.setAdapter(viewPager2Adapter);
//TabLayout綁定Viewpager2
TabLayoutMediator tab = new TabLayoutMediator(tabFine, vPager2Fine, true, new TabLayoutMediator.TabConfigurationStrategy() {
@Override
public void onConfigureTab(@NonNull TabLayout.Tab tab, int position) {
tab.setText(mFineTitles[position]);
}
});
tab.attach();
tabFine.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
int position = tab.getPosition();
if (mLoadFineEvent != null) {
mLoadFineEvent.setCurrFinePage(position);
EventBus.getDefault().post(mLoadFineEvent, FineChildAllFragment.LOAD_FINE_DATA_EVENT);
}
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
}
public void updateFineData(LoadFineEvent fineEvent) {
this.mLoadFineEvent = fineEvent;
}
public void setCurrentItem(int currFinePage) {
vPager2Fine.setCurrentItem(currFinePage);
}
@Override
......@@ -103,6 +164,8 @@ public class FineFragment extends BaseFragment<FinePresenter> implements FineCon
@Override
public void killMyself() {
_mActivity.onBackPressedSupport();
}
}
......@@ -22,8 +22,10 @@ import com.gingersoft.gsa.cloud.table.mvp.presenter.mealstand.MealDiscountPresen
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.discount.CouponFragment;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.discount.NomalDiscountFragment;
import com.gingersoft.gsa.cloud.ui.adapter.TabFragmentAdapter;
import com.gingersoft.gsa.cloud.ui.adapter.ViewPager2Adapter;
import com.gingersoft.gsa.cloud.ui.view.MyTableView;
import com.google.android.material.tabs.TabLayout;
import com.google.android.material.tabs.TabLayoutMediator;
import com.jess.arms.base.BaseFragment;
import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils;
......@@ -53,14 +55,12 @@ import static com.jess.arms.utils.Preconditions.checkNotNull;
*/
public class MealDiscountFragment extends BaseFragment<MealDiscountPresenter> implements MealDiscountContract.View {
@BindView(R2.id.tab_segment)
MyTableView tabSegment;
@BindView(R2.id.viewPager)
ViewPager viewPager;
@Inject
List<String> mTabTitles;
@BindView(R2.id.tabLayout)
MyTableView tabLayout;
@BindView(R2.id.viewPager2)
ViewPager2 viewPager2;
private String[] mTabTitles = {"折扣", "優惠券"};
public static MealDiscountFragment newInstance() {
MealDiscountFragment fragment = new MealDiscountFragment();
......@@ -85,33 +85,29 @@ public class MealDiscountFragment extends BaseFragment<MealDiscountPresenter> im
@Override
public void initData(@Nullable Bundle savedInstanceState) {
initTabTitles();
initViewPager();
}
private void initTabTitles() {
mTabTitles.add("折扣");
MemberInfo memberInfo = DoshokuOrder.getInstance().getMemberInfo();
if (memberInfo != null) {
mTabTitles.add("優惠券");
}
tabSegment.setTitles(mTabTitles);
}
private void initViewPager() {
List<Fragment> fragments = new ArrayList<>();
fragments.add(NomalDiscountFragment.newInstance());
fragments.add(CouponFragment.newInstance(CouponFragment.FOOD_LIMIT_DISCOUNT));
MemberInfo memberInfo = DoshokuOrder.getInstance().getMemberInfo();
if (memberInfo != null) {
fragments.add(CouponFragment.newInstance(CouponFragment.FOOD_LIMIT_DISCOUNT));
}
//实例化适配器
TabFragmentAdapter mTabFragmentAdapter = new TabFragmentAdapter(getParentFragmentManager(), 1);
//设置加载的Fragment集合
mTabFragmentAdapter.setFragments(fragments);
//设置Viewpager的适配器
viewPager.setAdapter(mTabFragmentAdapter);
//TabLayout绑定ViewPager
tabSegment.setTitles(mTabTitles).setupWithViewPager(viewPager);
ViewPager2Adapter viewPager2Adapter = new ViewPager2Adapter(_mActivity, fragments);
//设置Viewpager2的适配器
viewPager2.setAdapter(viewPager2Adapter);
//TabLayout綁定Viewpager2
TabLayoutMediator tab = new TabLayoutMediator(tabLayout, viewPager2, true, new TabLayoutMediator.TabConfigurationStrategy() {
@Override
public void onConfigureTab(@NonNull TabLayout.Tab tab, int position) {
tab.setText(mTabTitles[position]);
}
});
tab.attach();
}
@Override
......
package com.gingersoft.gsa.cloud.table.mvp.ui.fragment.mealstand;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.os.Parcelable;
import android.text.TextUtils;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.ImageView;
import android.widget.LinearLayout;
......@@ -19,8 +23,10 @@ import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.common.core.member.MemberInfo;
import com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager;
import com.gingersoft.gsa.cloud.common.core.table.TableBean;
import com.gingersoft.gsa.cloud.common.scan.ScanHelper;
import com.gingersoft.gsa.cloud.common.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.component.ComponentName;
import com.gingersoft.gsa.cloud.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.table.di.component.DaggerRiceponMemberDialogComponent;
......@@ -38,6 +44,7 @@ import com.jess.arms.utils.ArmsUtils;
import com.jess.arms.utils.DeviceUtils;
import com.jess.arms.utils.PermissionUtil;
import com.qmuiteam.qmui.alpha.QMUIAlphaButton;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.qmuiteam.qmui.widget.QMUITopBar;
import com.rengwuxian.materialedittext.MaterialEditText;
import com.tbruyelle.rxpermissions2.RxPermissions;
......@@ -137,6 +144,18 @@ public class RiceponMemberDialogFragment extends BaseDialogFragment<RiceponMembe
initAdapter();
}
@Override
public void onStart() {
super.onStart();
mWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
WindowManager.LayoutParams lp = mWindow.getAttributes();
lp.width = WindowManager.LayoutParams.MATCH_PARENT;
lp.height = (int) (QMUIDisplayHelper.getScreenHeight(mContext) * 0.6);
lp.gravity = Gravity.BOTTOM;
lp.windowAnimations = android.R.style.Animation_InputMethod;
mWindow.setAttributes(lp);
}
private void initAdapter() {
if (mMemberInfoAdapter != null) {
recyclerMemeberInfo.setAdapter(mMemberInfoAdapter);
......@@ -244,15 +263,6 @@ public class RiceponMemberDialogFragment extends BaseDialogFragment<RiceponMembe
}
}
public void showBottomLayoutVisibility(boolean show) {
llBottom.setVisibility(show ? View.VISIBLE : View.GONE);
btnScan.setVisibility(!show ? View.VISIBLE : View.GONE);
}
private String getTvPhone() {
return edPhone.getText().toString();
}
@Override
public void returnMemberInfo(MemberInfo memberInfo) {
this.mMemberInfo = memberInfo;
......@@ -265,6 +275,28 @@ public class RiceponMemberDialogFragment extends BaseDialogFragment<RiceponMembe
showBottomLayoutVisibility(true);
}
@Override
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == ScanHelper.CALL_BACK_QR_RESULT) {
String qrCodeResult = data.getStringExtra("qrCodeResult");
if (TextUtils.isEmpty(qrCodeResult)) {
return;
}
TableBean.DataBean dataBean = DoshokuOrder.getInstance().getOpenTableInfo();
mPresenter.queryMember(1, qrCodeResult, RestaurantInfoManager.newInstance().getGsPosShopId(), dataBean.getId(), dataBean.getTableNumber());
}
}
public void showBottomLayoutVisibility(boolean show) {
llBottom.setVisibility(show ? View.VISIBLE : View.GONE);
btnScan.setVisibility(!show ? View.VISIBLE : View.GONE);
}
private String getTvPhone() {
return edPhone.getText().toString();
}
public void clearMemberInfo() {
this.mMemberInfo = null;
if (onUseMemberListener != null) {
......
package com.gingersoft.gsa.cloud.table.mvp.ui.fragment.mealstand;
import android.app.Activity;
import android.app.Application;
import android.app.Dialog;
import android.content.Intent;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.SparseArray;
......@@ -10,6 +12,7 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
......@@ -23,14 +26,23 @@ import androidx.recyclerview.widget.DefaultItemAnimator;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager.widget.ViewPager;
import androidx.viewpager2.widget.ViewPager2;
import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.app.GsaCloudApplication;
import com.gingersoft.gsa.cloud.common.constans.ExpandConstant;
import com.gingersoft.gsa.cloud.common.constans.FoodSummaryConstans;
import com.gingersoft.gsa.cloud.common.constans.MealConstant;
import com.gingersoft.gsa.cloud.common.constans.PrintConstans;
import com.gingersoft.gsa.cloud.common.core.member.MemberInfo;
import com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager;
import com.gingersoft.gsa.cloud.common.core.restaurant.utils.RestaurantExpandInfoUtils;
import com.gingersoft.gsa.cloud.common.core.table.TableBean;
import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.common.scan.ScanHelper;
import com.gingersoft.gsa.cloud.common.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.common.utils.other.SPUtils;
import com.gingersoft.gsa.cloud.component.ComponentName;
import com.gingersoft.gsa.cloud.database.bean.ComboItem;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.bean.Modifier;
......@@ -41,39 +53,51 @@ import com.gingersoft.gsa.cloud.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.order.discount.MultyDiscount;
import com.gingersoft.gsa.cloud.order.order.BaseOrder;
import com.gingersoft.gsa.cloud.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.print.bean.PrintContent;
import com.gingersoft.gsa.cloud.print.bean.adapter.PrintContentAdapter;
import com.gingersoft.gsa.cloud.table.BuildConfig;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.table.di.component.DaggerSetMealComponent;
import com.gingersoft.gsa.cloud.table.mvp.contract.SetMealContract;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.FoodReason;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.SoldoutCtrFood;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.event.InitTableEvent;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.event.LoadFineEvent;
import com.gingersoft.gsa.cloud.table.mvp.presenter.mealstand.SetMealPresenter;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.MealStandActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.MealStandActivity2;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.ComboAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.FoodAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.FoodGroupAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.ModifierAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.SelectMealAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.widget.CancelFoodDialog;
import com.gingersoft.gsa.cloud.table.mvp.ui.widget.ChooseNumberDialog;
import com.gingersoft.gsa.cloud.table.mvp.ui.widget.CustomFoodDialog;
import com.gingersoft.gsa.cloud.ui.adapter.TabFragmentAdapter;
import com.gingersoft.gsa.cloud.ui.recylcler.Indicator.PagerConfig;
import com.gingersoft.gsa.cloud.ui.recylcler.Indicator.PagerGridLayoutManager;
import com.gingersoft.gsa.cloud.ui.recylcler.Indicator.PagerGridSnapHelper;
import com.gingersoft.gsa.cloud.ui.view.MyTableView;
import com.gingersoft.gsa.cloud.ui.view.SearchKeyBoardView;
import com.gingersoft.gsa.cloud.ui.view.base.NoScrollRecyclerView;
import com.gingersoft.gsa.cloud.ui.widget.dialog.BaseRetryDialog;
import com.gingersoft.gsa.cloud.ui.widget.dialog.CommonTipDialog;
import com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog;
import com.jess.arms.base.BaseFragment;
import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.base.delegate.IActivity;
import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils;
import com.qmuiteam.qmui.alpha.QMUIAlphaTextView;
import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
import org.simple.eventbus.EventBus;
import org.simple.eventbus.Subscriber;
import org.simple.eventbus.ThreadMode;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import javax.inject.Inject;
......@@ -100,6 +124,9 @@ import static com.jess.arms.utils.Preconditions.checkNotNull;
*/
public class SetMealFragment extends BaseFragment<SetMealPresenter> implements SetMealContract.View, PagerGridLayoutManager.PageListener {
@Inject
Application mApplication;
@BindView(R2.id.btn_table)
Button btnTable;
@BindView(R2.id.btn_numberman)
......@@ -114,8 +141,8 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
TextView btnMealDiscount;
@BindView(R2.id.btn_multiple_selection)
TextView btnMultipleSelection;
@BindView(R2.id.ll_mm)
LinearLayout llMm;
@BindView(R2.id.ll_meal_function)
LinearLayout llMealFunction;
@BindView(R2.id.rv_select_meal)
RecyclerView rvSelectMeal;
@BindView(R2.id.ll_meals_main)
......@@ -152,18 +179,27 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
NoScrollRecyclerView rvModifier;
@BindView(R2.id.scroll_combo)
NestedScrollView scrollCombo;
@BindView(R2.id.ll_fine)
LinearLayout llFine;
@BindView(R2.id.tab_fine)
MyTableView tabFine;
@BindView(R2.id.pager_fine)
ViewPager pagerFine;
ViewPager2 vPager2Fine;
@BindView(R2.id.meal_stand_search_keyboard_view)
SearchKeyBoardView mealStandSearchKeyboardView;
@BindView(R2.id.fl_discount_fragment)
FrameLayout flDiscountFragment;
// @BindView(R2.id.fl_fine_fragment)
// FrameLayout flFineFragment;
@BindView(R2.id.btn_select_all)
QMUIAlphaTextView btnSelectAll;
@BindView(R2.id.btn_anti_selection)
QMUIAlphaTextView btnAntiSelection;
@BindView(R2.id.btn_taste)
QMUIAlphaTextView btnTaste;
QMUIAlphaTextView btnTasteAndMsg;
@BindView(R2.id.btn_msg)
QMUIAlphaTextView btnMsg;
@BindView(R2.id.btn_delete)
......@@ -184,9 +220,6 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
@Inject
ModifierAdapter mModifierAdapter;
@Named("foodGridLayoutManager")
@Inject
GridLayoutManager mFoodRecycleLayoutManager;
@Named("comboGridLayoutManager")
@Inject
GridLayoutManager mComboRecycleLayoutManager;
......@@ -194,14 +227,9 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
@Inject
GridLayoutManager mModifierRecycleLayoutManager;
private SparseArray<View> map = new SparseArray<>(10);
private MealStandActivity2 mActivity;
public static final byte FOOD_LAYOUT = 1;
public static final byte COMBO_LAYOUT = 2;
public static final byte FINE_LAYOUT = 3;
private byte mCurrLayout = FOOD_LAYOUT;
public static final String SET_CURR_LAYOUT_EVENT = "setCurrLayoutEvent";
......@@ -209,10 +237,6 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
private boolean isPluMode = false;
/**
* 是否已初始化 公共細項佈局
*/
private boolean initFineLayout = false;
/**
* 是否已初始化 已送單的折扣
*/
private boolean initSentOrderDiscount = false;
......@@ -226,6 +250,9 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
private int comboColumn = 4;
private int modColumn = 4;
private CancelFoodDialog mCancelFoodDialog;
private ChooseNumberDialog mChooseNumberDialog;
public static SetMealFragment newInstance() {
SetMealFragment fragment = new SetMealFragment();
return fragment;
......@@ -254,8 +281,9 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
initViewMap();
initAdapter();
initLayoutManager();
initItemClickListener();
initClickListener();
mPresenter.initMealData();
mPresenter.getCurrentSoldoutFood();
}
@Override
......@@ -269,18 +297,9 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
@Override
@Subscriber(tag = SET_CURR_LAYOUT_EVENT, mode = ThreadMode.MAIN)
public void setCurrLayout(byte layout) {
mCurrLayout = layout;
switch (layout) {
case COMBO_LAYOUT:
showViewModeVisibility(MealConstant.combo_ViewMode);
break;
case FINE_LAYOUT:
showViewModeVisibility(MealConstant.fine_ViewMode);
break;
default:
showViewModeVisibility(MealConstant.food_group_ViewMode, MealConstant.food_ViewMode);
break;
public void setCurrViewMode(int... viewMode) {
if (!isCurrViewMode(viewMode)) {
showViewModeVisibility(viewMode);
}
}
......@@ -296,7 +315,9 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
map.put(MealConstant.food_group_ViewMode, llFoodGroup);
map.put(MealConstant.food_ViewMode, rvFood);
map.put(MealConstant.combo_ViewMode, scrollCombo);
map.put(MealConstant.discount_ViewMode, flDiscountFragment);
map.put(MealConstant.fine_ViewMode, llFine);
map.put(MealConstant.keys_viewMode, mealStandSearchKeyboardView);
}
private void initTableInfo() {
......@@ -328,10 +349,6 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
}
private void initLayoutManager() {
if (mFoodRecycleLayoutManager != null) {
rvFood.setLayoutManager(mFoodRecycleLayoutManager);
rvFood.setItemAnimator(new DefaultItemAnimator());
}
if (mComboRecycleLayoutManager != null) {
rvCombo.setLayoutManager(mComboRecycleLayoutManager);
rvCombo.setItemAnimator(new DefaultItemAnimator());
......@@ -342,94 +359,120 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
}
}
public void initItemClickListener() {
mFoodAdapter.setOnItemClickListener(new FoodAdapter.OnItemClickListener() {
@Override
public void onItemClick(Food datasBean, int position) {
mActivity.recordOperat(true);
mPresenter.foodItemClick(datasBean);
LoganManager.w_tableMode(TAG, LoganManager.EVENT_ADD + "食品【" + datasBean.getFoodName() + "】");
public void initClickListener() {
mFoodAdapter.setOnItemClickListener((datasBean, position) -> {
recordOperat(true);
mPresenter.foodItemClick(datasBean);
LoganManager.w_tableMode(TAG, LoganManager.EVENT_ADD + "食品【" + datasBean.getFoodName() + "】");
});
mComboAdapter.setOnItemClickListener((datasBean, position) -> {
recordOperat(true);
mPresenter.comboItemClick(datasBean);
LoganManager.w_tableMode(TAG, LoganManager.EVENT_ADD + "子食品【" + datasBean.getName() + "】");
});
mModifierAdapter.setOnItemClickListener((datasBean, position) -> {
recordOperat(true);
mPresenter.modifierItemClick(datasBean);
LoganManager.w_tableMode(TAG, LoganManager.EVENT_ADD + "細項【" + datasBean.getName() + "】");
});
//Plu鍵盤
mealStandSearchKeyboardView.setOnConfirmCallBack((inputText) -> {
recordOperat(true);
if (TextUtils.isEmpty(inputText)) {
return;
}
mPresenter.toFindMeal(inputText);
});
//送單
mActivity.setSendOrderListener(() -> {
recordOperat(true);
mPresenter.sendOrder(false, null);
});
mComboAdapter.setOnItemClickListener(new ComboAdapter.OnItemClickListener() {
}
@Override
public void initFoodGroupAdapter(List<Food> foodGroupList) {
//总的页数向上取整
totalPage = (int) Math.ceil(foodGroupList.size() * 1.0 / (foodGroupColumn * foodGroupRow));
int rows = foodGroupRow;
if (foodGroupList.size() <= foodGroupColumn) {
rows = 1;
}
if (rows == 0) {
rows = 2;
}
PagerGridLayoutManager layoutManager = new PagerGridLayoutManager(rows, foodGroupColumn, PagerGridLayoutManager.HORIZONTAL);
//水平分页布局管理器
layoutManager.setPageListener(this);
//设置页面变化监听器
rvFoodGroup.setLayoutManager(layoutManager);
//设置滚动辅助工具
PagerGridSnapHelper pageSnapHelper = new PagerGridSnapHelper();
pageSnapHelper.attachToRecyclerView(rvFoodGroup);
// 如果需要查看调试日志可以设置为true,一般情况忽略即可
PagerConfig.setShowLog(true);
rvFoodGroup.setAdapter(mFoodGroupAdapter);
mFoodGroupAdapter.setOnItemClickListener(new FoodGroupAdapter.OnItemClickListener() {
@Override
public void onItemClick(ComboItem datasBean, int position) {
mActivity.recordOperat(true);
mPresenter.comboItemClick(datasBean);
LoganManager.w_tableMode(TAG, LoganManager.EVENT_ADD + "子食品【" + datasBean.getName() + "】");
public void onItemClick(Food datasBean, int position) {
recordOperat(true);
mPresenter.foodGroupItemClick(datasBean);
}
});
mModifierAdapter.setOnItemClickListener(new ModifierAdapter.OnItemClickListener() {
@Override
public void onItemClick(Modifier datasBean, int position) {
mActivity.recordOperat(true);
mPresenter.modifierItemClick(datasBean);
LoganManager.w_tableMode(TAG, LoganManager.EVENT_ADD + "細項【" + datasBean.getName() + "】");
int foodGroupBtnHeight = GsaCloudApplication.uiStyleConfiguration.getFoodGroupBtnHeightValue();
int mParentColHeight = foodGroupBtnHeight * rows;
//设置ViewPager适配器
rvFoodGroup.setLayoutParams(new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
mParentColHeight));
//添加小圆点
ivPoints = new ImageView[totalPage];
for (int i = 0; i < totalPage; i++) {
//循坏加入点点图片组
ivPoints[i] = new ImageView(_mActivity);
if (i == 0) {
ivPoints[i].setImageResource(R.drawable.meal_food_group_point_focuese);
} else {
ivPoints[i].setImageResource(R.drawable.meal_food_group_point_unfocused);
}
});
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(ArmsUtils.dip2px(mContext, 20), ArmsUtils.dip2px(mContext, 12));
lp.leftMargin = ArmsUtils.dip2px(mContext, 5);
ivPoints[i].setLayoutParams(lp);
ivPoints[i].setPadding(0, 0, 0, 0);
llFoodGroupPoint.addView(ivPoints[i]);
}
if (foodGroupList.size() > (rows * foodGroupColumn)) {
llFoodGroupPoint.setVisibility(View.VISIBLE);
} else {
llFoodGroupPoint.setVisibility(View.GONE);
}
}
/**
* 显示公共細項
*/
public void showFineLayout(int currFinePage) {
//没有初始化细项布局则初始化
if (!initFineLayout) {
initFineLayout = true;
initFineViewPager();
} else {
pagerFine.setCurrentItem(currFinePage);
}
setCurrLayout(SetMealFragment.FINE_LAYOUT);
}
private void initFineViewPager() {
String[] fineTitles = {"口味", "信息"};
List<Fragment> mFragments = new ArrayList<>();
FineChildAllFragment modSasteFineItemFragment = FineChildAllFragment.newInstance();
FineChildAllFragment modMsgFineItemFragment = FineChildAllFragment.newInstance();
mFragments.add(modSasteFineItemFragment);
mFragments.add(modMsgFineItemFragment);
//实例化适配器
TabFragmentAdapter mTabFragmentAdapter = new TabFragmentAdapter(getChildFragmentManager(), 1);
//设置加载的Fragment集合
mTabFragmentAdapter.setFragments(mFragments);
//设置Viewpager的适配器
pagerFine.setAdapter(mTabFragmentAdapter);
//TabLayout绑定ViewPager
tabFine.setTitles(Arrays.asList(fineTitles)).setupWithViewPager(pagerFine);
loadFineItemData(modSasteFineItemFragment, modMsgFineItemFragment);
}
private void loadFineItemData(FineChildAllFragment modMsgFineItemFragment, FineChildAllFragment modSasteFineItemFragment) {
if (modMsgFineItemFragment == null || modSasteFineItemFragment == null) {
return;
}
long productId = 0;
if (mPresenter.getCurrentOrderDetailBean() != null) {
productId = mPresenter.getCurrentOrderDetailBean().getProductId();
}
if (mPresenter.getSelectMealAdapter().getSelectedMode() == SelectMealAdapter.SINGLE_SELECTED) {
modMsgFineItemFragment.loadModMsgData(productId);
modSasteFineItemFragment.loadModSasteData(productId);
} else {
modMsgFineItemFragment.loadModCommData(productId);
modSasteFineItemFragment.loadModSasteData(productId);
}
/**
* 設置沽清數據
*/
List<SoldoutCtrFood> slodoutListFull = mPresenter.getSoldoutCtrList();
if (modMsgFineItemFragment != null) {
modMsgFineItemFragment.setModifierSoldoutFoodList_Full(slodoutListFull);
modMsgFineItemFragment.updateParentModifierSlodoutFoodList_Full();
}
if (modSasteFineItemFragment != null) {
modSasteFineItemFragment.setModifierSoldoutFoodList_Full(slodoutListFull);
modSasteFineItemFragment.updateParentModifierSlodoutFoodList_Full();
setCurrViewMode(MealConstant.fine_ViewMode);
final FineFragment childFragment = findChildFragment(FineFragment.class);
if (childFragment != null) {
long productId = 0;
if (mPresenter.getCurrentOrderDetailBean() != null) {
productId = mPresenter.getCurrentOrderDetailBean().getProductId();
}
//選中模式
int selectedMode = mPresenter.getSelectMealAdapter().getSelectedMode();
//設置沽清數據
List<SoldoutCtrFood> soldoutCtrFoods = mPresenter.getSoldoutCtrList();
LoadFineEvent fineEvent = new LoadFineEvent();
fineEvent.setCurrFinePage(currFinePage);
fineEvent.setProductId(productId);
fineEvent.setSelectedMode(selectedMode);
fineEvent.setSoldoutCtrFoods(soldoutCtrFoods);
childFragment.updateFineData(fineEvent);
childFragment.setCurrentItem(currFinePage);
}
}
......@@ -465,7 +508,72 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
@Override
public void killMyself() {
_mActivity.onBackPressedSupport();
}
@Override
public void showChoosePeopleNumDialog(boolean isNeedCancel) {
ChooseNumberDialog chooseNumberDialog = new ChooseNumberDialog(_mActivity);
chooseNumberDialog.builder();
chooseNumberDialog.setValueHint("請輸入人數");
if (!isNeedCancel) {
chooseNumberDialog.setOnBackClickListener(new ChooseNumberDialog.OnBackClickListener() {
@Override
public void OnBackClick() {
recordOperat(true);
returnTableActivity(true);
}
});
}
chooseNumberDialog.setOnClickListener(new ChooseNumberDialog.OnClickListener() {
@Override
public void onComfirmClick(String number) {
recordOperat(true);
TableBean.DataBean dataBean = DoshokuOrder.getInstance().getOpenTableInfo();
int maxSeatCount = 0;
if (dataBean != null) {
maxSeatCount = dataBean.getMaxSeatCount();
}
if (maxSeatCount != 0 && maxSeatCount < Integer.parseInt(number)) {
showMessage("最大就餐人數不能超過" + maxSeatCount + "人!");
return;
}
mPresenter.updateOrderPerson(number, btnNumberman);
}
@Override
public void onBackPage() {
returnTableActivity(true);
}
});
chooseNumberDialog.setCancelable(isNeedCancel);
chooseNumberDialog.show();
}
@Override
public void showCancelFoodDialog(OrderDetail deleteFood) {
if (mCancelFoodDialog == null) {
mCancelFoodDialog = new CancelFoodDialog(_mActivity);
mCancelFoodDialog.setOnClickListener(new CancelFoodDialog.OnClickListener() {
@Override
public void onItemClick(FoodReason item, int position, int deleteNumber) {
LoganManager.w_tableMode(TAG, LoganManager.EVENT_CLICK + "刪除原因=" + item.getContent());
showDeleteFoodSureDialog(deleteFood.getNumber(), deleteNumber, item.getId(), item.getContent());
}
});
mCancelFoodDialog.setOnRetryListener(new BaseRetryDialog.OnRetryListener() {
@Override
public void onRetryClick() {
mPresenter.getRestaurantFoodReason();
}
});
}
mCancelFoodDialog.setMaxCancelNumber(deleteFood.getNumber());
mCancelFoodDialog.build().show();
mPresenter.getRestaurantFoodReason();
}
@Override
......@@ -486,6 +594,28 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
.show();
}
private void showDeleteFoodSureDialog(int maxNumber, int deleteNumber, int reasonId, String reason) {
QMUIDialog.MessageDialogBuilder dialogBuilder = new QMUIDialog.MessageDialogBuilder(_mActivity);
dialogBuilder.setTitleIcon(R.drawable.qmui_icon_dialog_doubt);
dialogBuilder.setMessage("是否確認取消該食品?" + "\n取消原因 [" + reason + "]");
dialogBuilder.addAction(0, "確認", QMUIDialogAction.ACTION_PROP_NEGATIVE, (dialog, index) -> {
dialog.dismiss();
if (mCancelFoodDialog != null) {
mCancelFoodDialog.build().dismiss();
mCancelFoodDialog = null;
}
LoganManager.w_tableMode(TAG, LoganManager.EVENT_CLICK + "確刪除");
mPresenter.markDeleteFood(maxNumber, deleteNumber, reasonId, reason);
});
dialogBuilder.addAction("取消", (dialog, index) -> dialog.dismiss());
dialogBuilder.create(R.style.MyDialogTheme2).show();
}
@Override
public CancelFoodDialog getCancelFoodDialog() {
return mCancelFoodDialog;
}
@Override
public void setFoodGroupRecycleSpanCount(int size) {
notifyFoodGroupAdapter();
......@@ -494,14 +624,15 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
@Override
public void setFoodRecycleSpanCount(int size) {
if (size > 0) {
GridLayoutManager foodRecycleLayoutManager;
if (size >= foodColumn) {
mFoodRecycleLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
mFoodRecycleLayoutManager.setSpanCount(foodColumn);
foodRecycleLayoutManager = new GridLayoutManager(mContext, foodColumn, LinearLayoutManager.VERTICAL, false);
} else {
//只有一行就使用水平显示以免不能占满
mFoodRecycleLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
foodRecycleLayoutManager = new GridLayoutManager(mContext, 1, LinearLayoutManager.HORIZONTAL, false);
}
rvFood.setLayoutManager(mFoodRecycleLayoutManager);
rvFood.setLayoutManager(foodRecycleLayoutManager);
rvFood.setItemAnimator(new DefaultItemAnimator());
}
notifyFoodAdapter();
}
......@@ -542,7 +673,7 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
map.get(mode).setVisibility(View.VISIBLE);
}
//設置當前模式為輸入Plu模式
if (viewMode != null && viewMode[0] == MealConstant.ViewMode_keys) {
if (viewMode != null && viewMode[0] == MealConstant.keys_viewMode) {
isPluMode = true;
} else {
isPluMode = false;
......@@ -553,7 +684,7 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
showModifyLayoutVisibility(false);
break;
case MealConstant.combo_ViewMode:
// case MealConstant.modifier_ViewMode:
case MealConstant.discount_ViewMode:
case MealConstant.fine_ViewMode:
showModifyLayoutVisibility(true);
break;
......@@ -579,7 +710,7 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
@Override
public void setOrderFoodCount(String number) {
getActivity2().setOrderFoodCount(number);
mActivity.setOrderFoodCount(number);
}
@Override
......@@ -591,7 +722,7 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
public void setPluMode() {
isPluMode = (boolean) SPUtils.get(MealConstant.EXIT_IS_PLU_MODE, false);
if (isPluMode) {
showViewModeVisibility(MealConstant.ViewMode_keys);
showViewModeVisibility(MealConstant.keys_viewMode);
btnFid.setBackgroundColor(ArmsUtils.getColor(mContext, R.color.theme_hint_color));
} else {
btnFid.setBackground(ArmsUtils.getDrawablebyResource(mContext, R.drawable.ui_selector_item_background));
......@@ -616,65 +747,6 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
}
@Override
public void initFoodGroupAdapter(List<Food> foodGroupList) {
//总的页数向上取整
totalPage = (int) Math.ceil(foodGroupList.size() * 1.0 / (foodGroupColumn * foodGroupRow));
int rows = foodGroupRow;
if (foodGroupList.size() <= foodGroupColumn) {
rows = 1;
}
if (rows == 0) {
rows = 2;
}
PagerGridLayoutManager mLayoutManager = new PagerGridLayoutManager(rows, foodGroupColumn, PagerGridLayoutManager.HORIZONTAL);
//水平分页布局管理器
mLayoutManager.setPageListener(this);
//设置页面变化监听器
rvFoodGroup.setLayoutManager(mLayoutManager);
//设置滚动辅助工具
PagerGridSnapHelper pageSnapHelper = new PagerGridSnapHelper();
pageSnapHelper.attachToRecyclerView(rvFoodGroup);
// 如果需要查看调试日志可以设置为true,一般情况忽略即可
PagerConfig.setShowLog(true);
mFoodGroupAdapter.setFoodGroupList(foodGroupList);
rvFoodGroup.setAdapter(mFoodGroupAdapter);
mFoodGroupAdapter.setOnItemClickListener(new FoodGroupAdapter.OnItemClickListener() {
@Override
public void onItemClick(Food datasBean, int position) {
recordOperat(true);
mPresenter.foodGroupItemClick(datasBean);
}
});
int foodGroupBtnHeight = GsaCloudApplication.uiStyleConfiguration.getFoodGroupBtnHeightValue();
int mParentColHeight = foodGroupBtnHeight * rows;
//设置ViewPager适配器
rvFoodGroup.setLayoutParams(new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
mParentColHeight));
//添加小圆点
ivPoints = new ImageView[totalPage];
for (int i = 0; i < totalPage; i++) {
//循坏加入点点图片组
ivPoints[i] = new ImageView(_mActivity);
if (i == 0) {
ivPoints[i].setImageResource(R.drawable.meal_food_group_point_focuese);
} else {
ivPoints[i].setImageResource(R.drawable.meal_food_group_point_unfocused);
}
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(ArmsUtils.dip2px(mContext, 20), ArmsUtils.dip2px(mContext, 12));
lp.leftMargin = ArmsUtils.dip2px(mContext, 5);
ivPoints[i].setLayoutParams(lp);
ivPoints[i].setPadding(0, 0, 0, 0);
llFoodGroupPoint.addView(ivPoints[i]);
}
if (foodGroupList.size() > (rows * foodGroupColumn)) {
llFoodGroupPoint.setVisibility(View.VISIBLE);
} else {
llFoodGroupPoint.setVisibility(View.GONE);
}
}
@Override
public void notifyFoodGroupAdapter() {
mFoodGroupAdapter.notifyDataSetChanged();
}
......@@ -696,7 +768,7 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
@Override
public MealStandActivity2 getActivity2() {
return (MealStandActivity2) _mActivity;
return mActivity;
}
@Override
......@@ -705,8 +777,13 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
}
@Override
public void recordOperat(boolean isPressButtonSound) {
public void clearKeyBoardInput() {
mealStandSearchKeyboardView.clearInput();
}
@Override
public void recordOperat(boolean isPressButtonSound) {
mActivity.recordOperat(isPressButtonSound);
}
@Override
......@@ -720,85 +797,66 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
}
@OnLongClick({R2.id.btn_meal_delete})
public boolean onLongClick1(View view) {
public boolean onLongViewClick(View view) {
//记录操作 并且震动
recordOperat(true);
//
// int id = view.getId();
// if (id == R.id.btn_meal_delete) {
// mPresenter.deleteFoodItem(2);
// } else if (id == R.id.btn_order_printer) {
//
// }
int id = view.getId();
if (id == R.id.btn_meal_delete) {
mPresenter.deleteFoodItem(2);
}
return false;
}
@OnClick(R2.id.btn_meal_discount)
void onClickDiscount() {
void onDiscountViewClick() {
recordOperat(true);
LoganManager.w_tableMode(TAG, LoganManager.EVENT_CLICK + "食品折扣");
OrderDetail mainOrderDetail = mPresenter.getSelectMealAdapter().getCurrentMainOrderDetail();
if (mainOrderDetail != null && mainOrderDetail.getAblediscount() == 0) {
showMessage("此食品不能參與折扣!");
return;
}
if (mActivity.findFragment(SetMealFragment.class) == null) {
loadRootFragment(R.id.fl_meal_discount, MealDiscountFragment.newInstance());
}
setCurrViewMode(MealConstant.discount_ViewMode);
// //更新折扣数据
// mPresenter.loadDiscountData();
// showViewModeVisibility(MealConstant.discount_ViewMode);
}
@OnClick(R2.id.btn_multiple_selection)
void onClickMultipleSelection() {
// LoganManager.w_tableMode(TAG, LoganManager.EVENT_CLICK, "多选");
// currentFinePage = 0;
// if (mPresenter.getSelectMealAdapter().getSelectedMode() == SelectMealAdapter.MULTIPLE_SELECTED) {
// mPresenter.getSelectMealAdapter().setSelectedMode(SelectMealAdapter.SINGLE_SELECTED);
// btn_delete.setVisibility(View.VISIBLE);
// setSelectFunctionVisibility(View.GONE);
// } else {
// mPresenter.getSelectMealAdapter().setSelectedMode(SelectMealAdapter.MULTIPLE_SELECTED);
// btn_delete.setVisibility(View.GONE);
// setSelectFunctionVisibility(View.VISIBLE);
// loadFineItemData();
// }
// showRemarkLayout();
void onMultipleSelectionViewClick() {
recordOperat(true);
LoganManager.w_tableMode(TAG, LoganManager.EVENT_CLICK, "多选");
if (mPresenter.getSelectMealAdapter().getSelectedMode() == SelectMealAdapter.MULTIPLE_SELECTED) {
mPresenter.getSelectMealAdapter().setSelectedMode(SelectMealAdapter.SINGLE_SELECTED);
btnDelete.setVisibility(View.VISIBLE);
setSelectFunctionVisibility(View.GONE);
} else {
mPresenter.getSelectMealAdapter().setSelectedMode(SelectMealAdapter.MULTIPLE_SELECTED);
btnDelete.setVisibility(View.GONE);
setSelectFunctionVisibility(View.VISIBLE);
}
showFineLayout(0);
}
@OnClick(R2.id.btn_select_all)
void onClickSelectAll() {
void onSelectAllViewClick() {
recordOperat(true);
LoganManager.w_tableMode(TAG, LoganManager.EVENT_CLICK, "全選");
mPresenter.setSelectAll();
}
@OnClick(R2.id.btn_anti_selection)
void onClickAntiSelection() {
void onAntiSelectionViewClick() {
recordOperat(true);
LoganManager.w_tableMode(TAG, LoganManager.EVENT_CLICK, "反選");
mPresenter.setAntiSelect();
}
@OnClick({R2.id.btn_key1, R2.id.btn_key2, R2.id.btn_key3, R2.id.btn_key4, R2.id.btn_key5, R2.id.btn_keys,
R2.id.btn_table, R2.id.btn_numberman, R2.id.btn_fid, R2.id.btn_meal_delete, R2.id.btn_meal_modify_restore,
R2.id.btn_taste, R2.id.btn_msg, R2.id.btn_delete, R2.id.btn_end})
public void onClick(View v) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
String text = null;
if (v instanceof Button) {
Button button = (Button) v;
text = button.getText().toString();
} else if (v instanceof TextView) {
TextView textView = (TextView) v;
text = textView.getText().toString();
}
LoganManager.w_tableMode(TAG, LoganManager.EVENT_CLICK, text);
}
@OnClick({R2.id.btn_table, R2.id.btn_numberman, R2.id.btn_fid, R2.id.btn_meal_delete, R2.id.btn_meal_modify_restore})
public void onMealFunctionViewClick(View v) {
recordOperat(true);
//防抖處理
int id = v.getId();
if (id == R.id.btn_table) {
showRiceponMemberDialogFragment();
......@@ -806,47 +864,60 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
if (!BaseOrder.isTableToMeal()) {
return;
}
// showChoosePeopleNumDialog(true);
showChoosePeopleNumDialog(true);
} else if (id == R.id.btn_fid) {
//搜索
if (mCurrentViewMode == MealConstant.ViewMode_keys) {
setCurrLayout(SetMealFragment.FOOD_LAYOUT);
if (mCurrentViewMode == MealConstant.keys_viewMode) {
setCurrViewMode(MealConstant.food_group_ViewMode, MealConstant.food_ViewMode);
SPUtils.put(MealConstant.EXIT_IS_PLU_MODE, false);
} else {
showViewModeVisibility(MealConstant.ViewMode_keys);
setCurrViewMode(MealConstant.keys_viewMode);
SPUtils.put(MealConstant.EXIT_IS_PLU_MODE, true);
}
setPluMode();
} else if (id == R.id.btn_meal_delete) {
// if (mPresenter.getSelectMealAdapter().getSelectedMode() == SelectMealAdapter.MULTIPLE_SELECTED) {
// return;
// }
// mPresenter.deleteFoodItem(1);
setCurrLayout(SetMealFragment.FOOD_LAYOUT);
SPUtils.put(MealConstant.EXIT_IS_PLU_MODE, false);
mPresenter.deleteFoodItem(1);
setCurrViewMode(MealConstant.food_group_ViewMode, MealConstant.food_ViewMode);
setPluMode();
SPUtils.put(MealConstant.EXIT_IS_PLU_MODE, false);
} else if (id == R.id.btn_meal_modify_restore) {
// mPresenter.restoreDeleteFood();
mPresenter.restoreDeleteFood();
showBtnMealModifyRestoreVisibility(false);
} else if (id == R.id.btn_taste) {
}
}
@OnClick({R2.id.btn_taste, R2.id.btn_msg, R2.id.btn_delete, R2.id.btn_end})
public void onModifyViewClick(View v) {
recordOperat(true);
int id = v.getId();
if (id == R.id.btn_taste) {
showFineLayout(0);
} else if (id == R.id.btn_msg) {
showFineLayout(1);
} else if (id == R.id.btn_delete) {
// if (mPresenter.getSelectMealAdapter().getSelectedMode() == SelectMealAdapter.SINGLE_SELECTED) {
// //只有單選操作的時候可以刪除子項
// mPresenter.deleteChildItem();
// }
mPresenter.deleteChildItem();
} else if (id == R.id.btn_end) {
//回復單選
mPresenter.getSelectMealAdapter().setSelectedMode(SelectMealAdapter.SINGLE_SELECTED);
btnDelete.setVisibility(View.VISIBLE);
setSelectFunctionVisibility(View.GONE);
//從多選頁離開 重置選中
mPresenter.resetSelected();
setCurrLayout(SetMealFragment.FOOD_LAYOUT);
} else if (id == R.id.btn_key1 || id == R.id.btn_key2 || id == R.id.btn_key3 || id == R.id.btn_key4 || id == R.id.btn_key5 || id == R.id.btn_keys) {
setCurrViewMode(MealConstant.food_group_ViewMode, MealConstant.food_ViewMode);
}
// else if (id == R.id.iv_fine_back) {
// showViewModeVisibility(MealConstant.combo_ViewMode);
// }
}
@OnClick({R2.id.btn_key1, R2.id.btn_key2, R2.id.btn_key3, R2.id.btn_key4, R2.id.btn_key5, R2.id.btn_keys})
public void onKeyViewClick(View v) {
recordOperat(true);
int id = v.getId();
if (id == R.id.btn_key1 || id == R.id.btn_key2 || id == R.id.btn_key3 || id == R.id.btn_key4 || id == R.id.btn_key5 || id == R.id.btn_keys) {
int i = Integer.parseInt(v.getTag().toString());
switch (i) {
case 0:
......@@ -896,9 +967,6 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
break;
}
}
// else if (id == R.id.iv_fine_back) {
// showViewModeVisibility(MealConstant.combo_ViewMode);
// }
}
@Override
......@@ -908,6 +976,7 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
@Override
public void onPageSelect(int pageIndex) {
recordOperat(false);
LoganManager.w_tableMode(TAG, LoganManager.EVENT_SCOLL + "食品組頁=" + (pageIndex + 1));
for (int i = 0; i < totalPage; i++) {
if (i == pageIndex) {
......@@ -924,10 +993,12 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
}
private void showRiceponMemberDialogFragment() {
recordOperat(false);
RiceponMemberDialogFragment dialogFragment = RiceponMemberDialogFragment.newInstance(DoshokuOrder.getInstance().getOpenTableInfo());
dialogFragment.setOnUseMemberListener(new RiceponMemberDialogFragment.OnUseMemberListener() {
@Override
public void onUseMember(MemberInfo memberInfo) {
recordOperat(false);
if (memberInfo == null) {
btnTable.setBackgroundColor(Color.parseColor("#336699"));
} else {
......@@ -940,8 +1011,46 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
mPresenter.updateBillInfo();
}
DoshokuOrder.getInstance().setMemberInfo(memberInfo);
dialogFragment.dismiss();
}
});
dialogFragment.show(getChildFragmentManager(), dialogFragment.getClass().getSimpleName());
}
@Override
public void returnBeforeActivity(boolean initTable) {
SPUtils.put(MealConstant.EXIT_IS_PLU_MODE, isPluMode);
if (BaseOrder.isTableToMeal() && initTable && !DoshokuOrder.getInstance().isModifyOrder()) {
TableBean.DataBean dataBean = DoshokuOrder.getInstance().getOpenTableInfo();
if (dataBean != null) {
//通知更新餐台状态
EventBus.getDefault().post(new InitTableEvent(dataBean.getId(), dataBean.getTableNumber()), "initTable_status_event");
}
}
killMyself();
}
public void returnTableActivity(boolean initTable) {
if (mPresenter.hasNesOrderFoods()) {
//没有过重复下单提示且有未送单食品,提示用户
String tip = LanguageUtils.get_language_system(mApplication, "food.not.delivered.tip", "有食品未送單, 確認離開?");
Class[] parameterTypes = {boolean.class};
Object[] parameters = {initTable};
CommonTipDialog.showSurpisedDialog(_mActivity, tip, this.getClass(), this,
"returnBeforeActivity", parameterTypes, parameters);
} else {
returnBeforeActivity(initTable);
}
}
private boolean isCurrViewMode(int... viewModes) {
for (int i = 0; i < viewModes.length; i++) {
int viewMode = viewModes[i];
if (viewMode == mCurrentViewMode) {
return true;
}
}
return false;
}
}
......@@ -6,18 +6,18 @@
android:layout_height="match_parent"
android:orientation="vertical">
<com.google.android.material.tabs.TabLayout
<com.gingersoft.gsa.cloud.ui.view.MyTableView
android:id="@+id/tabLayout"
android:layout_width="match_parent"
android:layout_height="@dimen/tabIndicator_height"
android:background="@color/white"
android:layout_height="wrap_content"
android:background="@color/theme_white_color"
app:tabIndicator="@drawable/tablayout_indicator"
app:tabIndicatorColor="@color/theme_color"
app:tabIndicatorFullWidth="false"/>
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/viewPager"
android:id="@+id/viewPager2"
android:layout_width="match_parent"
android:layout_height="match_parent" />
android:layout_height="match_parent"/>
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<com.gingersoft.gsa.cloud.ui.view.MyTableView
android:id="@+id/tab_segment"
android:id="@+id/tabLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
android:layout_height="wrap_content"
app:tabIndicator="@drawable/tablayout_indicator"
app:tabIndicatorColor="@color/theme_color"
app:tabIndicatorFullWidth="false"/>
<androidx.viewpager.widget.ViewPager
android:id="@+id/viewPager"
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/viewPager2"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
......
......@@ -55,6 +55,7 @@
android:id="@+id/recycler_memeber_info"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
android:layout_below="@+id/ll_input_phone"
android:layout_above="@+id/btn_scan"/>
......
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
<com.qmuiteam.qmui.alpha.QMUIAlphaRelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/rl_container"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.qmuiteam.qmui.alpha.QMUIAlphaRelativeLayout
android:id="@+id/rl_container"
<TextView
android:id="@+id/tv_name"
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_height="match_parent"
android:layout_marginTop="2px"
android:layout_marginRight="2px"
android:gravity="center"
android:text="food"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@drawable/meal_selector_food_backgroup"
android:textSize="@dimen/sp_14" />
<TextView
android:id="@+id/tv_name"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginRight="2px"
android:layout_marginTop="2px"
android:gravity="center"
android:text="food"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@drawable/meal_selector_food_backgroup"
android:textSize="@dimen/sp_14" />
<TextView
android:id="@+id/tv_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:background="@drawable/ui_shape_red_oval"
android:gravity="center"
android:text="number"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@color/theme_white_color" />
<TextView
android:id="@+id/tv_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/ui_shape_red_oval"
android:layout_alignParentRight="true"
android:gravity="center"
android:text="number"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@color/theme_white_color" />
<TextView
android:id="@+id/tv_soldout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_gravity="right"
android:layout_marginTop="2px"
android:layout_marginRight="2px"
android:background="@drawable/ui_selector_white_rect"
android:text="sold"
android:textStyle="bold"
android:visibility="invisible" />
<TextView
android:id="@+id/tv_soldout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_gravity="right"
android:layout_marginRight="2px"
android:layout_marginTop="2px"
android:background="@drawable/ui_selector_white_rect"
android:text="sold"
android:textStyle="bold"
android:visibility="invisible" />
<com.gingersoft.gsa.cloud.ui.view.BeveLabelView
android:id="@+id/blv_soldout"
android:layout_width="35dp"
android:layout_height="35dp"
app:label_bg_color="#D10035"
app:label_corner="8dp"
app:label_length="20dp"
app:label_mode="left_top"
app:label_text="暫停"
app:label_text_color="@color/theme_white_color"
app:label_text_size="@dimen/sp_10" />
<com.gingersoft.gsa.cloud.ui.view.BeveLabelView
android:id="@+id/blv_soldout"
android:layout_width="35dp"
android:layout_height="35dp"
app:label_corner="8dp"
app:label_length="20dp"
app:label_bg_color="#D10035"
app:label_mode="left_top"
app:label_text="暫停"
app:label_text_color="@color/theme_white_color"
app:label_text_size="@dimen/sp_10" />
<View
android:id="@+id/right_line"
android:layout_width="2px"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:background="@color/theme_black" />
<View
android:id="@+id/right_line"
android:layout_width="2px"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:background="@color/theme_black" />
<View
android:id="@+id/top_line"
android:layout_width="match_parent"
android:layout_height="2px"
android:layout_alignParentTop="true"
android:background="@color/theme_black" />
</com.qmuiteam.qmui.alpha.QMUIAlphaRelativeLayout>
</RelativeLayout>
<View
android:id="@+id/top_line"
android:layout_width="match_parent"
android:layout_height="2px"
android:layout_alignParentTop="true"
android:background="@color/theme_black" />
</com.qmuiteam.qmui.alpha.QMUIAlphaRelativeLayout>
......@@ -42,23 +42,47 @@
android:orientation="vertical" />
</LinearLayout>
<include layout="@layout/meal_layout_combo_modifier"/>
<!-- <ViewStub-->
<!-- android:id="@+id/vb_combo_modifier"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_above="@+id/ll_modify"-->
<!-- android:layout_below="@+id/ll_food_container"-->
<!-- android:layout="@layout/meal_layout_combo_modifier" />-->
<include layout="@layout/meal_layout_meal_fine"/>
<!-- <ViewStub-->
<!-- android:id="@+id/vb_fine"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_above="@+id/ll_modify"-->
<!-- android:layout_below="@+id/ll_food_container"-->
<!-- android:layout="@layout/meal_layout_meal_fine" />-->
<include
layout="@layout/meal_layout_combo_modifier"
android:visibility="gone" />
<include
layout="@layout/meal_layout_meal_fine"
android:visibility="gone" />
<FrameLayout
android:id="@+id/fl_discount_fragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
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="wrap_content"-->
<!-- android:visibility="gone">-->
<!-- <fragment-->
<!-- android:id="@+id/fragment_fine"-->
<!-- android:name="com.gingersoft.gsa.cloud.table.mvp.ui.fragment.mealstand.FineFragment"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content" />-->
<!-- </FrameLayout>-->
<!--鍵盤-->
<com.gingersoft.gsa.cloud.ui.view.SearchKeyBoardView
android:id="@+id/meal_stand_search_keyboard_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/ll_modify"
android:visibility="gone" />
<LinearLayout
android:id="@+id/ll_modify"
......
......@@ -13,7 +13,7 @@
android:layout_weight="1">
<LinearLayout
android:id="@+id/ll_mm"
android:id="@+id/ll_meal_function"
android:layout_width="55dp"
android:layout_height="match_parent"
android:orientation="vertical">
......@@ -202,5 +202,4 @@
android:src="@mipmap/meal_number_key"
android:tag="99" />
</LinearLayout>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/ll_fine"
android:layout_width="match_parent"
android:layout_height="wrap_content">
......@@ -8,9 +9,13 @@
<com.gingersoft.gsa.cloud.ui.view.MyTableView
android:id="@+id/tab_fine"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
android:layout_height="wrap_content"
android:background="@color/theme_white_color"
app:tabIndicator="@drawable/tablayout_indicator"
app:tabIndicatorColor="@color/theme_color"
app:tabIndicatorFullWidth="false"/>
<androidx.viewpager.widget.ViewPager
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/pager_fine"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
......
......@@ -19,22 +19,6 @@
android:layout_height="match_parent"
android:layout_above="@+id/ll_modify"/>
<FrameLayout
android:id="@+id/fl_meal_discount"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/ll_modify"
android:layout_marginTop="@dimen/dp_260" />
<!--鍵盤-->
<com.gingersoft.gsa.cloud.ui.view.SearchKeyBoardView
android:id="@+id/meal_stand_search_keyboard_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/ll_modify"
android:layout_marginTop="@dimen/dp_260"
android:visibility="gone"/>
<LinearLayout
android:id="@+id/ll_stand_oper"
android:layout_width="match_parent"
......
......@@ -15,6 +15,6 @@
<androidx.viewpager.widget.ViewPager
android:id="@+id/contentViewPager"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
android:layout_height="match_parent" />
</com.qmuiteam.qmui.layout.QMUILinearLayout>
\ No newline at end of file
......@@ -7,8 +7,8 @@ ext {
targetSdkVersion : 29,
//正式版: 1.0.3 3
//內部測試版:1.2.0 20
versionCode : 33,
versionName : "1.3.3"
versionCode : 35, //31
versionName : "1.3.5" //1.3.5
]
version = [
......
......@@ -160,14 +160,8 @@ public abstract class BaseFragment<P extends IPresenter> extends ImmersionFragme
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
toolbar = view.findViewById(R.id.topbar);
// fitsLayoutOverlap();
}
private void fitsLayoutOverlap() {
if (toolbar != null) {
ImmersionBar.setTitleBar(this, toolbar);
}
}
@Override
public void initImmersionBar() {
......
......@@ -3,6 +3,7 @@ package com.gingersoft.gsa.cloud.common.config.globalconfig.applyOptions;
import android.content.Context;
import com.gingersoft.gsa.cloud.common.BuildConfig;
import com.gingersoft.gsa.cloud.common.config.OkHttpConfig;
import com.gingersoft.gsa.cloud.common.rxjava.CustomCallAdapterFactory;
import com.jess.arms.di.module.ClientModule;
import java.io.File;
......@@ -18,6 +19,7 @@ import retrofit2.Retrofit;
public class MyRetrofitConfiguration implements ClientModule.RetrofitConfiguration {
@Override
public void configRetrofit(Context context, Retrofit.Builder builder) {
// builder.addCallAdapterFactory(new CustomCallAdapterFactory());
// 配置多BaseUrl支持
// OkHttpClient.Builder clientBuilder = new OkHttpClient.Builder();
// if (BuildConfig.DEBUG) {
......
......@@ -16,9 +16,7 @@ public interface MealConstant {
int discount_ViewMode = 104;
int fine_ViewMode = 105;
int fine_tabs_ViewMode = 106;
int ViewMode_keys = 503;
int keys_viewMode = 503;
//堂食
int hall_food_mode = 1;
......
package com.gingersoft.gsa.cloud.common.rxjava;
import java.lang.reflect.Type;
import retrofit2.Call;
import retrofit2.CallAdapter;
/**
* @作者: bin
* @創建時間: 2021-04-19 17:44
* @更新時間: 2021-04-19 17:44
* @描述:
*/
public class CustomCallAdapter <R> implements CallAdapter<R, Object> {
@Override
public Type responseType() {
return null;
}
@Override
public Object adapt(Call<R> call) {
return null;
}
}
package com.gingersoft.gsa.cloud.common.rxjava;
import java.lang.annotation.Annotation;
import java.lang.reflect.Type;
import javax.annotation.Nullable;
import retrofit2.CallAdapter;
import retrofit2.Retrofit;
/**
* @作者: bin
* @創建時間: 2021-04-19 17:43
* @更新時間: 2021-04-19 17:43
* @描述:
*/
public class CustomCallAdapterFactory extends CallAdapter.Factory {
@Nullable
@Override
public CallAdapter<?, ?> get(Type returnType, Annotation[] annotations, Retrofit retrofit) {
return null;
}
}
......@@ -8,6 +8,8 @@ import io.reactivex.annotations.NonNull;
import io.reactivex.disposables.Disposable;
import me.jessyan.rxerrorhandler.core.RxErrorHandler;
import me.jessyan.rxerrorhandler.handler.ErrorHandlerFactory;
import okhttp3.OkHttpClient;
import retrofit2.Retrofit;
/**
* @作者: bin
......
......@@ -27,8 +27,6 @@ public class MyRxSchedulerUtils {
return executor != null ? Schedulers.from(executor) : Schedulers.io();
}
//==========================Single===========================//
private MyRxSchedulerUtils() {
throw new UnsupportedOperationException("u can't instantiate me...");
}
......@@ -92,4 +90,7 @@ public class MyRxSchedulerUtils {
public static <T> SingleTransformer<T, T> _io_io_f() {
return new SchedulerTransformer<>(SchedulerType._io_io);
}
}
package com.gingersoft.gsa.cloud.common.rxjava;
import com.xuexiang.rxutil2.rxjava.RxSchedulerUtils;
import io.reactivex.Observable;
import io.reactivex.Single;
/**
* @作者: bin
* @創建時間: 2021-04-21 15:27
* @更新時間: 2021-04-21 15:27
* @描述:
*/
public class MyRxUtils {
public static <T> Single<T> si_just_io_main(T t) {
return Single.just(t)
.compose(MyRxSchedulerUtils._io_main_f());
}
public static <T> Observable<T> ob_just_io_main(T t) {
return Observable.just(t)
.compose(RxSchedulerUtils._io_main_o());
}
}
package com.gingersoft.gsa.cloud.pay;
import android.os.Parcelable;
/**
* @作者: bin
* @創建時間: 2021-04-14 15:05
......
......@@ -14,6 +14,9 @@ import java.util.List;
import lombok.Builder;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import okhttp3.OkHttpClient;
import retrofit2.Retrofit;
/**
* @作者: bin
......@@ -22,8 +25,7 @@ import lombok.Getter;
* @描述:
*/
@Data
@Builder
public class RequestParms implements Serializable {
public class RequestParms implements Parcelable {
private PayAction action;
private final int resturantId;
......@@ -44,33 +46,120 @@ public class RequestParms implements Serializable {
*/
private ResultCallback resultCallback;
// @Override
// public int describeContents() {
// return 0;
// }
//
// @Override
// public void writeToParcel(Parcel dest, int flags) {
// dest.writeInt(this.payType);
// dest.writeLong(this.orderId);
// dest.writeDouble(this.payMoney);
// }
//
// protected RequestParms(Parcel in) {
// this.payType = in.readInt();
// this.orderId = in.readLong();
// this.payMoney = in.readDouble();
// }
//
// public static final Creator<RequestParms> CREATOR = new Creator<RequestParms>() {
// @Override
// public RequestParms createFromParcel(Parcel source) {
// return new RequestParms(source);
// }
//
// @Override
// public RequestParms[] newArray(int size) {
// return new RequestParms[size];
// }
// };
private RequestParms(Builder builder) {
this.action = builder.action;
this.resturantId = builder.resturantId;
this.payMethods = builder.payMethods;
this.payType = builder.payType;
this.orderId = builder.orderId;
this.payMoney = builder.payMoney;
this.refundReason = builder.refundReason;
this.callback = builder.callback;
this.resultCallback = builder.resultCallback;
}
public static Builder builder() {
return new Builder();
}
public static final class Builder {
private PayAction action;
private int resturantId;
private List<PayMethod> payMethods;
private int payType;
private long orderId;
private double payMoney;
private String refundReason;
private Callback callback;
private ResultCallback resultCallback;
public Builder action(PayAction action) {
this.action = action;
return this;
}
public Builder resturantId(int resturantId) {
this.resturantId = resturantId;
return this;
}
public Builder payMethods(List<PayMethod> payMethods) {
this.payMethods = payMethods;
return this;
}
public Builder payType(int payType) {
this.payType = payType;
return this;
}
public Builder orderId(long orderId) {
this.orderId = orderId;
return this;
}
public Builder payMoney(double payMoney) {
this.payMoney = payMoney;
return this;
}
public Builder refundReason(String refundReason) {
this.refundReason = refundReason;
return this;
}
public Builder callback(Callback callback) {
this.callback = callback;
return this;
}
public Builder resultCallback(ResultCallback resultCallback) {
this.resultCallback = resultCallback;
return this;
}
public RequestParms build() {
return new RequestParms(this);
}
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(this.action == null ? -1 : this.action.ordinal());
dest.writeInt(this.resturantId);
dest.writeTypedList(this.payMethods);
dest.writeInt(this.payType);
dest.writeLong(this.orderId);
dest.writeDouble(this.payMoney);
dest.writeString(this.refundReason);
}
protected RequestParms(Parcel in) {
int tmpAction = in.readInt();
this.action = tmpAction == -1 ? null : PayAction.values()[tmpAction];
this.resturantId = in.readInt();
this.payMethods = in.createTypedArrayList(PayMethod.CREATOR);
this.payType = in.readInt();
this.orderId = in.readLong();
this.payMoney = in.readDouble();
this.refundReason = in.readString();
}
public static final Creator<RequestParms> CREATOR = new Creator<RequestParms>() {
@Override
public RequestParms createFromParcel(Parcel source) {
return new RequestParms(source);
}
@Override
public RequestParms[] newArray(int size) {
return new RequestParms[size];
}
};
}
package com.gingersoft.gsa.cloud.pay;
import android.os.Parcelable;
import com.gingersoft.gsa.cloud.pay.bean.PayMethod;
import java.util.List;
......
......@@ -8,7 +8,7 @@ import com.gingersoft.gsa.cloud.pay.Callback;
* @更新時間: 2021-04-15 17:18
* @描述:
*/
public interface PhoneCallback extends Callback {
public interface PhoneCommand extends Callback {
}
......@@ -7,7 +7,7 @@ import com.gingersoft.gsa.cloud.pay.PayAction;
import com.gingersoft.gsa.cloud.pay.PayDeviceFactory;
import com.gingersoft.gsa.cloud.pay.device.pos.base.bean.BaseBgRequest;
import com.gingersoft.gsa.cloud.pay.device.pos.base.bean.BasePosRequest;
import com.gingersoft.gsa.cloud.pay.device.pos.yedpay.YedpayCallback;
import com.gingersoft.gsa.cloud.pay.device.pos.yedpay.YedpayCommand;
import com.jess.arms.mvp.IView;
import com.jess.arms.utils.Preconditions;
......@@ -37,7 +37,7 @@ public final class PosPay {
//yedpay所需
final double payMoney;
final YedpayCallback yedpayCallback;
final YedpayCommand yedpayCallback;
public void pay() {
final PosPayAction payDevice = PayDeviceFactory.createPayDevice();
......
......@@ -8,7 +8,7 @@ import com.gingersoft.gsa.cloud.pay.Callback;
* @更新時間: 2021-04-15 9:50
* @描述:
*/
public interface BBposCallback extends Callback {
public interface BBposCommand extends Callback {
......
......@@ -6,7 +6,7 @@ package com.gingersoft.gsa.cloud.pay.device.pos.bbpos;
* @更新時間: 2021-04-23 10:08
* @描述:
*/
public class BBposCallbackImp implements BBposCallback{
public class BBposCommandImp implements BBposCommand {
}
......@@ -8,7 +8,7 @@ import com.gingersoft.gsa.cloud.pay.Callback;
* @更新時間: 2021-04-15 9:50
* @描述:
*/
public interface HywebCallback extends Callback {
public interface HywebCommand extends Callback {
......
......@@ -6,7 +6,7 @@ package com.gingersoft.gsa.cloud.pay.device.pos.hyweb;
* @更新時間: 2021-04-23 10:09
* @描述:
*/
public class HywebCallbackImp implements HywebCallback{
public class HywebCommandImp implements HywebCommand {
}
......@@ -8,7 +8,7 @@ import com.gingersoft.gsa.cloud.pay.Callback;
* @更新時間: 2021-04-15 9:50
* @描述:
*/
public interface YedpayCallback extends Callback {
public interface YedpayCommand extends Callback {
void callSaleUri(String uri);
......
package com.gingersoft.gsa.cloud.pay.device.pos.yedpay;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
......@@ -11,29 +9,27 @@ import com.gingersoft.gsa.cloud.pay.RequestParms;
import com.gingersoft.gsa.cloud.pay.device.pos.yedpay.constant.YedpayConstant;
import com.gingersoft.gsa.cloud.pay.lifecycle.presenter.PayFlowPresenter;
import java.lang.ref.WeakReference;
/**
* @作者: bin
* @創建時間: 2021-04-23 9:55
* @更新時間: 2021-04-23 9:55
* @描述:
*/
public class YedpayCallbackImp implements YedpayCallback {
public class YedpayCommandImp implements YedpayCommand {
private WeakReference<Fragment> mContext;
private WeakReference<PayFlowPresenter> mPayFlowPresenter;
private Fragment mContext;
private PayFlowPresenter mPayFlowPresenter;
private RequestParms mRequestParms;
public YedpayCallbackImp(Fragment context, PayFlowPresenter payFlowPresenter, RequestParms requestParms) {
this.mContext = new WeakReference<>(context);
this.mPayFlowPresenter = new WeakReference<>(payFlowPresenter);
public YedpayCommandImp(Fragment context, PayFlowPresenter payFlowPresenter, RequestParms requestParms) {
this.mContext = context;
this.mPayFlowPresenter = payFlowPresenter;
this.mRequestParms = requestParms;
}
@Override
public void callSaleUri(String uri) {
Fragment fragment = mContext.get();
Fragment fragment = mContext;
if (fragment != null) {
Uri uri2 = Uri.parse(uri);
Intent intent = new Intent(Intent.ACTION_VIEW, uri2);
......@@ -43,7 +39,7 @@ public class YedpayCallbackImp implements YedpayCallback {
@Override
public void refundResult(boolean result) {
PayFlowPresenter payFlowPresenter = mPayFlowPresenter.get();
PayFlowPresenter payFlowPresenter = mPayFlowPresenter;
if (payFlowPresenter != null && mRequestParms != null) {
payFlowPresenter.yedPayRefundOrder(mRequestParms.getRefundReason(), mRequestParms.getOrderId(), mRequestParms.getPayType(), mRequestParms.getResturantId());
}
......
......@@ -68,13 +68,13 @@ public class YedpayDevice implements PosPayAction<RequestParms> {
@Override
public void pay(RequestParms params) {
String uriString = "yedpayapp://transaction?g=" + getPayType(params.getPayType()) + "&a=" + params.getPayMoney() + "";
YedpayCallback callback = (YedpayCallback) params.getCallback();
YedpayCommand callback = (YedpayCommand) params.getCallback();
callback.callSaleUri(uriString);
}
@Override
public void refund(RequestParms params) {
YedpayCallback callback = (YedpayCallback) params.getCallback();
YedpayCommand callback = (YedpayCommand) params.getCallback();
callback.refundResult(true);
}
......
......@@ -71,7 +71,7 @@ public class PayFlowFragment extends BaseDialogFragment<PayFlowPresenter> implem
public static PayFlowFragment newInstance(RequestParms parms) {
PayFlowFragment fragment = new PayFlowFragment();
Bundle bundle = new Bundle();
bundle.putSerializable("requestParms", parms);
bundle.putParcelable("requestParms", parms);
fragment.setArguments(bundle);
return fragment;
}
......@@ -102,7 +102,7 @@ public class PayFlowFragment extends BaseDialogFragment<PayFlowPresenter> implem
@Override
public void initData(@Nullable Bundle savedInstanceState) {
Bundle arguments = getArguments();
requestParms = (RequestParms) arguments.getSerializable("requestParms");
requestParms = (RequestParms) arguments.getParcelable("requestParms");
action = requestParms.getAction();
tv_status.setText(mLoadingText);
......
package com.gingersoft.gsa.cloud.pay.lifecycle.presenter;
import android.app.Application;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.common.rxjava.ErrorHandleSingleSubscriber;
......@@ -13,15 +10,10 @@ import com.gingersoft.gsa.cloud.pay.PayStep;
import com.gingersoft.gsa.cloud.pay.PaymentControl;
import com.gingersoft.gsa.cloud.pay.RequestParms;
import com.gingersoft.gsa.cloud.pay.ResultCallback;
import com.gingersoft.gsa.cloud.pay.device.pos.bbpos.BBposCallbackImp;
import com.gingersoft.gsa.cloud.pay.device.pos.hyweb.HywebCallbackImp;
import com.gingersoft.gsa.cloud.pay.device.pos.yedpay.YedpayCallbackImp;
import com.gingersoft.gsa.cloud.pay.device.pos.bbpos.BBposCommandImp;
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.phone.PhoneCallback;
import com.gingersoft.gsa.cloud.pay.device.pos.PosPayAction;
import com.gingersoft.gsa.cloud.pay.device.pos.bbpos.BBposCallback;
import com.gingersoft.gsa.cloud.pay.device.pos.hyweb.HywebCallback;
import com.gingersoft.gsa.cloud.pay.device.pos.yedpay.YedpayCallback;
import com.gingersoft.gsa.cloud.pay.device.pos.yedpay.constant.YedpayConstant;
import com.jess.arms.integration.AppManager;
import com.jess.arms.di.scope.FragmentScope;
......@@ -39,8 +31,6 @@ import javax.inject.Inject;
import com.gingersoft.gsa.cloud.pay.lifecycle.contract.PayFlowContract;
import com.jess.arms.utils.RxLifecycleUtils;
import java.lang.ref.WeakReference;
/**
* ================================================
......@@ -197,13 +187,13 @@ public class PayFlowPresenter extends BasePresenter<PayFlowContract.Model, PayFl
private void setCallbackBy(RequestParms requestParms) {
if (AppDevices.isHywebPos()) {
requestParms.setCallback(new HywebCallbackImp());
requestParms.setCallback(new HywebCommandImp());
} else if (AppDevices.isBBPos()) {
requestParms.setCallback(new BBposCallbackImp());
requestParms.setCallback(new BBposCommandImp());
} else if (AppDevices.isYedpay()) {
requestParms.setCallback(new YedpayCallbackImp(mRootView.getFragment(), this, mRequestParms));
requestParms.setCallback(new YedpayCommandImp(mRootView.getFragment(), this, mRequestParms));
} else {
requestParms.setCallback(new YedpayCallbackImp(mRootView.getFragment(), this, mRequestParms));
requestParms.setCallback(new YedpayCommandImp(mRootView.getFragment(), this, mRequestParms));
}
}
......
package com.gingersoft.gsa.cloud.ui.adapter;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentStatePagerAdapter;
import androidx.viewpager2.adapter.FragmentStateAdapter;
import java.util.List;
public class ViewPager2Adapter extends FragmentStateAdapter {
private List<Fragment> mFragments;
public ViewPager2Adapter(@NonNull FragmentActivity fragmentActivity,List<Fragment> fragments) {
super(fragmentActivity);
this.mFragments = fragments;
}
public void setFragments(List<Fragment> fragments) {
mFragments = fragments;
notifyDataSetChanged();
}
@NonNull
@Override
public Fragment createFragment(int position) {
return mFragments.get(position);
}
@Override
public int getItemCount() {
return mFragments.size();
}
}
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