Commit 7d64d603 by Wyh

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	public-base/src/main/java/com/gingersoft/gsa/cloud/base/common/bean/OrderDetail.java
parents 2189429e 8bf3e341
......@@ -31,6 +31,7 @@ import com.jess.arms.http.imageloader.ImageLoader;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.annotations.NonNull;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
import me.jessyan.rxerrorhandler.core.RxErrorHandler;
import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber;
......@@ -92,6 +93,7 @@ public class DownloadPresenter extends BasePresenter<DownloadContract.Model, Dow
//當前下載進度
private float currentProgress = 0;
private List<Disposable> mDownDisposable = new ArrayList<>();
@Inject
public DownloadPresenter(DownloadContract.Model model, DownloadContract.View rootView) {
......@@ -125,6 +127,8 @@ public class DownloadPresenter extends BasePresenter<DownloadContract.Model, Dow
currentProgress = 0;
IActivity.setTvProgress(0);
stopDownDisposable();
initDownState();
setDownAverageRatio();
......@@ -133,8 +137,7 @@ public class DownloadPresenter extends BasePresenter<DownloadContract.Model, Dow
List<DownloadRequest> requests = getDownloadRequests(getDownloadUrls(restaurantId), restaurantId);
DownloadManager.getInstance()
.takeRequestExecute(IActivity, requests, this);
DownloadManager.getInstance().takeRequestExecute(IActivity, requests, this);
// .setDownloadResultListener(new DownloadManager.OnDownloadResultListener() {
//
// @Override
......@@ -207,6 +210,13 @@ public class DownloadPresenter extends BasePresenter<DownloadContract.Model, Dow
// });
}
private void stopDownDisposable() {
for (int i = 0; i < mDownDisposable.size(); i++) {
if (mDownDisposable.get(i).isDisposed())
mDownDisposable.get(i).dispose();
}
}
public void downFun(int downTag) {
mModel.downFunctionList()
.subscribeOn(Schedulers.io())
......@@ -216,6 +226,12 @@ public class DownloadPresenter extends BasePresenter<DownloadContract.Model, Dow
.subscribe(new ErrorHandleSubscriber<FunctionRespone>(mErrorHandler) {
@Override
public void onSubscribe(Disposable d) {
super.onSubscribe(d);
mDownDisposable.add(d);
}
@Override
public void onNext(@NonNull FunctionRespone functionBean) {
if (functionBean.isSuccess()) {
FunctionDaoUtils functionDao = new FunctionDaoUtils(IActivity);
......@@ -257,6 +273,12 @@ public class DownloadPresenter extends BasePresenter<DownloadContract.Model, Dow
.subscribe(new ErrorHandleSubscriber<FoodBean>(mErrorHandler) {
@Override
public void onSubscribe(Disposable d) {
super.onSubscribe(d);
mDownDisposable.add(d);
}
@Override
public void onNext(@NonNull FoodBean foodBean) {
if (foodBean.isSuccess()) {
if (foodBean != null) {
......@@ -298,6 +320,13 @@ public class DownloadPresenter extends BasePresenter<DownloadContract.Model, Dow
.observeOn(AndroidSchedulers.mainThread())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<ModifierRespone>(mErrorHandler) {
@Override
public void onSubscribe(Disposable d) {
super.onSubscribe(d);
mDownDisposable.add(d);
}
@Override
public void onNext(@NonNull ModifierRespone modifier) {
if (modifier.isSuccess()) {
......@@ -339,6 +368,13 @@ public class DownloadPresenter extends BasePresenter<DownloadContract.Model, Dow
.observeOn(AndroidSchedulers.mainThread())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<FoodComboRespone>(mErrorHandler) {
@Override
public void onSubscribe(Disposable d) {
super.onSubscribe(d);
mDownDisposable.add(d);
}
@Override
public void onNext(@NonNull FoodComboRespone combo) {
if (combo.isSuccess()) {
......@@ -381,6 +417,13 @@ public class DownloadPresenter extends BasePresenter<DownloadContract.Model, Dow
.observeOn(AndroidSchedulers.mainThread())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<ComboItemRespone>(mErrorHandler) {
@Override
public void onSubscribe(Disposable d) {
super.onSubscribe(d);
mDownDisposable.add(d);
}
@Override
public void onNext(@NonNull ComboItemRespone combo) {
if (combo.isSuccess()) {
......@@ -422,6 +465,13 @@ public class DownloadPresenter extends BasePresenter<DownloadContract.Model, Dow
.observeOn(AndroidSchedulers.mainThread())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<FoodModifierRespone>(mErrorHandler) {
@Override
public void onSubscribe(Disposable d) {
super.onSubscribe(d);
mDownDisposable.add(d);
}
@Override
public void onNext(@NonNull FoodModifierRespone foodModifier) {
if (foodModifier.isSuccess()) {
......
package com.gingersoft.gsa.cloud.main.mvp.contract;
import com.gingersoft.gsa.cloud.main.mvp.model.bean.PaymentMethodBean;
import com.gingersoft.gsa.cloud.main.mvp.model.bean.SettlementReport;
import com.jess.arms.mvp.IView;
import com.jess.arms.mvp.IModel;
......@@ -24,10 +25,13 @@ public interface SettlementContract {
//对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
interface View extends IView {
void setLastTime(String date);
void returnSettlementData(SettlementReport.DataBean datasBean);
}
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends IModel{
Observable<SettlementReport> getSettlementReport(int restaurantId);
}
}
package com.gingersoft.gsa.cloud.main.mvp.contract;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.main.mvp.model.bean.SendSettlement;
import com.gingersoft.gsa.cloud.main.mvp.model.bean.SettlementReport;
import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.mvp.IView;
import com.jess.arms.mvp.IModel;
......@@ -25,14 +27,17 @@ public interface SettlementReportContract {
//对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
interface View extends IView {
void setSettlementReportItemAdapter(DefaultAdapter adapter);
// void returnSettlementData(SettlementResult.DatasBean datasBean);
void setSettlementReportItem5Adapter(DefaultAdapter adapter);
void returnSettlementData(SettlementReport.DataBean datasBean);
}
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends IModel{
Observable<SendSettlement> sendSettlement(RequestBody requestBody);
}
}
package com.gingersoft.gsa.cloud.main.mvp.model;
import android.app.Application;
import com.gingersoft.gsa.cloud.main.mvp.model.bean.SettlementReport;
import com.gingersoft.gsa.cloud.main.mvp.model.service.SettlementService;
import com.google.gson.Gson;
import com.jess.arms.integration.IRepositoryManager;
import com.jess.arms.mvp.BaseModel;
......@@ -10,6 +13,8 @@ import javax.inject.Inject;
import com.gingersoft.gsa.cloud.main.mvp.contract.SettlementContract;
import io.reactivex.Observable;
/**
* ================================================
......@@ -41,4 +46,10 @@ public class SettlementModel extends BaseModel implements SettlementContract.Mod
this.mGson = null;
this.mApplication = null;
}
@Override
public Observable<SettlementReport> getSettlementReport(int restaurantId) {
return mRepositoryManager.obtainRetrofitService(SettlementService.class)
.getSettlementReport(restaurantId);
}
}
\ No newline at end of file
......@@ -2,7 +2,9 @@ package com.gingersoft.gsa.cloud.main.mvp.model;
import android.app.Application;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.main.mvp.model.bean.SendSettlement;
import com.gingersoft.gsa.cloud.main.mvp.model.bean.SettlementReport;
import com.gingersoft.gsa.cloud.main.mvp.model.service.MainReportService;
import com.gingersoft.gsa.cloud.main.mvp.model.service.SettlementService;
import com.google.gson.Gson;
......@@ -54,4 +56,5 @@ public class SettlementReportModel extends BaseModel implements SettlementReport
return mRepositoryManager.obtainRetrofitService(SettlementService.class)
.sendSettlement(requestBody);
}
}
\ No newline at end of file
package com.gingersoft.gsa.cloud.main.mvp.model.bean;
import java.io.Serializable;
import java.util.List;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-03-10
* 修订历史:2020-03-10
* 描述:
*/
public class SettlementReport {
/**
* success : true
* sysTime : 1583831604513
* data : {"vo":{"prices":0,"scamount":0,"disamount":0,"payNum":0,"payamount":0,"tipnum":0,"tipsPrice":0,"totamount":0,"num":0,"person":0},"analysis":[{"typeName":"堂食","num":1,"amount":55},{"typeName":"未完成賬單","num":1,"amount":55},{"typeName":"本月累計營業額","num":0,"amount":55}],"restaurantOperation":{"id":2,"uid":297,"restaurantId":410,"type":1,"openTime":1583563903296,"operationTime":1583823103296,"createTime":1583823103296},"cash":[]}
*/
private boolean success;
private long sysTime;
private DataBean data;
public boolean isSuccess() {
return success;
}
public void setSuccess(boolean success) {
this.success = success;
}
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;
}
public static class DataBean implements Serializable {
/**
* vo : {"prices":0,"scamount":0,"disamount":0,"payNum":0,"payamount":0,"tipnum":0,"tipsPrice":0,"totamount":0,"num":0,"person":0}
* analysis : [{"typeName":"堂食","num":1,"amount":55},{"typeName":"未完成賬單","num":1,"amount":55},{"typeName":"本月累計營業額","num":0,"amount":55}]
* restaurantOperation : {"id":2,"uid":297,"restaurantId":410,"type":1,"openTime":1583563903296,"operationTime":1583823103296,"createTime":1583823103296}
* cash : []
*/
private VoBean vo;
private RestaurantOperationBean restaurantOperation;
private List<AnalysisBean> analysis;
private List<?> cash;
public VoBean getVo() {
return vo;
}
public void setVo(VoBean vo) {
this.vo = vo;
}
public RestaurantOperationBean getRestaurantOperation() {
return restaurantOperation;
}
public void setRestaurantOperation(RestaurantOperationBean restaurantOperation) {
this.restaurantOperation = restaurantOperation;
}
public List<AnalysisBean> getAnalysis() {
return analysis;
}
public void setAnalysis(List<AnalysisBean> analysis) {
this.analysis = analysis;
}
public List<?> getCash() {
return cash;
}
public void setCash(List<?> cash) {
this.cash = cash;
}
public static class VoBean implements Serializable{
/**
* prices : 0
* scamount : 0
* disamount : 0
* payNum : 0
* payamount : 0
* tipnum : 0
* tipsPrice : 0
* totamount : 0
* num : 0
* person : 0
*/
private int prices;
private int scamount;
private int disamount;
private int payNum;
private int payamount;
private int tipnum;
private int tipsPrice;
private int totamount;
private int num;
private int person;
public int getPrices() {
return prices;
}
public void setPrices(int prices) {
this.prices = prices;
}
public int getScamount() {
return scamount;
}
public void setScamount(int scamount) {
this.scamount = scamount;
}
public int getDisamount() {
return disamount;
}
public void setDisamount(int disamount) {
this.disamount = disamount;
}
public int getPayNum() {
return payNum;
}
public void setPayNum(int payNum) {
this.payNum = payNum;
}
public int getPayamount() {
return payamount;
}
public void setPayamount(int payamount) {
this.payamount = payamount;
}
public int getTipnum() {
return tipnum;
}
public void setTipnum(int tipnum) {
this.tipnum = tipnum;
}
public int getTipsPrice() {
return tipsPrice;
}
public void setTipsPrice(int tipsPrice) {
this.tipsPrice = tipsPrice;
}
public int getTotamount() {
return totamount;
}
public void setTotamount(int totamount) {
this.totamount = totamount;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public int getPerson() {
return person;
}
public void setPerson(int person) {
this.person = person;
}
}
public static class RestaurantOperationBean implements Serializable{
/**
* id : 2
* uid : 297
* restaurantId : 410
* type : 1
* openTime : 1583563903296
* operationTime : 1583823103296
* createTime : 1583823103296
*/
private int id;
private int uid;
private int restaurantId;
private int type;
private long openTime;
private long operationTime;
private long createTime;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
public int getRestaurantId() {
return restaurantId;
}
public void setRestaurantId(int restaurantId) {
this.restaurantId = restaurantId;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public long getOpenTime() {
return openTime;
}
public void setOpenTime(long openTime) {
this.openTime = openTime;
}
public long getOperationTime() {
return operationTime;
}
public void setOperationTime(long operationTime) {
this.operationTime = operationTime;
}
public long getCreateTime() {
return createTime;
}
public void setCreateTime(long createTime) {
this.createTime = createTime;
}
}
public static class AnalysisBean implements Serializable{
/**
* typeName : 堂食
* num : 1
* amount : 55
*/
private String typeName;
private int num;
private int amount;
public String getTypeName() {
return typeName;
}
public void setTypeName(String typeName) {
this.typeName = typeName;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public int getAmount() {
return amount;
}
public void setAmount(int amount) {
this.amount = amount;
}
}
}
}
package com.gingersoft.gsa.cloud.main.mvp.model.bean;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-03-04
* 修订历史:2020-03-04
* 描述:
*/
public class SettlementReportItem5 {
private String item1;
private String item2;
private String item3;
private String item4;
private String item5;
public SettlementReportItem5(String item1, String item2, String item3, String item4, String item5) {
this.item1 = item1;
this.item2 = item2;
this.item3 = item3;
this.item4 = item4;
this.item5 = item5;
}
public String getItem1() {
return item1;
}
public void setItem1(String item1) {
this.item1 = item1;
}
public String getItem2() {
return item2;
}
public void setItem2(String item2) {
this.item2 = item2;
}
public String getItem3() {
return item3;
}
public void setItem3(String item3) {
this.item3 = item3;
}
public String getItem4() {
return item4;
}
public void setItem4(String item4) {
this.item4 = item4;
}
public String getItem5() {
return item5;
}
public void setItem5(String item5) {
this.item5 = item5;
}
}
package com.gingersoft.gsa.cloud.main.mvp.model.service;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.main.mvp.model.bean.SendSettlement;
import com.gingersoft.gsa.cloud.main.mvp.model.bean.SettlementReport;
import io.reactivex.Observable;
import me.jessyan.retrofiturlmanager.RetrofitUrlManager;
import okhttp3.RequestBody;
import retrofit2.http.Body;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Query;
/**
* 作者:ELEGANT_BIN
......@@ -17,9 +23,11 @@ import retrofit2.http.POST;
*/
public interface SettlementService {
@POST("RestaurantOperation/add" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<SendSettlement> sendSettlement(@Body RequestBody requestBody);
@FormUrlEncoded
@POST("ricepon-report/api/restaurantOperation/report" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<SettlementReport> getSettlementReport(@Field("restaurantId") int restaurantId);
}
package com.gingersoft.gsa.cloud.main.mvp.presenter;
import android.app.Application;
import android.text.TextUtils;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.utils.constans.HttpsConstans;
import com.gingersoft.gsa.cloud.main.mvp.model.bean.SettlementReport;
import com.jess.arms.integration.AppManager;
import com.jess.arms.di.scope.ActivityScope;
import com.jess.arms.mvp.BasePresenter;
import com.jess.arms.http.imageloader.ImageLoader;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.annotations.NonNull;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
import me.jessyan.retrofiturlmanager.RetrofitUrlManager;
import me.jessyan.rxerrorhandler.core.RxErrorHandler;
import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber;
import javax.inject.Inject;
import com.gingersoft.gsa.cloud.main.mvp.contract.SettlementContract;
import com.jess.arms.utils.RxLifecycleUtils;
/**
......@@ -36,7 +49,7 @@ public class SettlementPresenter extends BasePresenter<SettlementContract.Model,
AppManager mAppManager;
@Inject
public SettlementPresenter (SettlementContract.Model model, SettlementContract.View rootView) {
public SettlementPresenter(SettlementContract.Model model, SettlementContract.View rootView) {
super(model, rootView);
}
......@@ -48,4 +61,46 @@ public class SettlementPresenter extends BasePresenter<SettlementContract.Model,
this.mImageLoader = null;
this.mApplication = null;
}
public void getSettlementReport() {
int restaurantId = GsaCloudApplication.getRestaurantId(mApplication);
mModel.getSettlementReport(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<SettlementReport>(mErrorHandler) {
//{"success":false,"errCode":"data_002","errMsg":"沒有查詢到數據","sysTime":1583573772290}
@Override
public void onSubscribe(Disposable d) {
super.onSubscribe(d);
RetrofitUrlManager.getInstance().putDomain("common", HttpsConstans.ROOT_SETTLEMENT_REPORT_SERVER_ADDRESS_FORMAL);
}
@Override
public void onNext(@NonNull SettlementReport info) {
if (info != null && info.isSuccess()) {
if (info.getData() != null) {
mRootView.returnSettlementData(info.getData());
}
} else {
// mRootView.showMessage("獲取報表失敗");
}
}
@Override
public void onComplete() {
super.onComplete();
RetrofitUrlManager.getInstance().putDomain("common", HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL);
}
@Override
public void onError(Throwable t) {
super.onError(t);
RetrofitUrlManager.getInstance().putDomain("common", HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL);
}
});
}
}
......@@ -3,10 +3,16 @@ package com.gingersoft.gsa.cloud.main.mvp.presenter;
import android.app.Application;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.utils.JsonUtils;
import com.gingersoft.gsa.cloud.base.utils.constans.HttpsConstans;
import com.gingersoft.gsa.cloud.main.R;
import com.gingersoft.gsa.cloud.main.mvp.model.bean.SendSettlement;
import com.gingersoft.gsa.cloud.main.mvp.model.bean.SettlementReport;
import com.gingersoft.gsa.cloud.main.mvp.model.bean.SettlementReportItem;
import com.gingersoft.gsa.cloud.main.mvp.model.bean.SettlementReportItem5;
import com.gingersoft.gsa.cloud.main.mvp.ui.activity.SettlementReportActivity;
import com.gingersoft.gsa.cloud.main.mvp.ui.adapter.SettlementReportItem5Adapter;
import com.gingersoft.gsa.cloud.main.mvp.ui.adapter.SettlementReportItemAdapter;
import com.jess.arms.integration.AppManager;
import com.jess.arms.di.scope.ActivityScope;
......@@ -15,7 +21,9 @@ import com.jess.arms.http.imageloader.ImageLoader;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.annotations.NonNull;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
import me.jessyan.retrofiturlmanager.RetrofitUrlManager;
import me.jessyan.rxerrorhandler.core.RxErrorHandler;
import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber;
import okhttp3.FormBody;
......@@ -56,8 +64,11 @@ public class SettlementReportPresenter extends BasePresenter<SettlementReportCon
AppManager mAppManager;
private SettlementReportActivity IActivity;
private SettlementReportItemAdapter reportItemAdapter;
private List<SettlementReportItem> mList;
private SettlementReportItemAdapter mSettlementReportItemAdapter;
private List<SettlementReportItem> mSettlementReportItemList= new ArrayList<>();
private SettlementReportItem5Adapter mSettlementReportItem5Adapter;
private List<SettlementReportItem5> mSettlementReportItem5List= new ArrayList<>();
@Inject
public SettlementReportPresenter(SettlementReportContract.Model model, SettlementReportContract.View rootView) {
......@@ -74,25 +85,32 @@ public class SettlementReportPresenter extends BasePresenter<SettlementReportCon
this.mApplication = null;
}
public void initAdapter() {
if (reportItemAdapter == null) {
mList = new ArrayList<>();
reportItemAdapter = new SettlementReportItemAdapter(IActivity, mList);
mRootView.setSettlementReportItemAdapter(reportItemAdapter);
if (mSettlementReportItemAdapter == null) {
mSettlementReportItemAdapter = new SettlementReportItemAdapter(IActivity, mSettlementReportItemList);
mRootView.setSettlementReportItemAdapter(mSettlementReportItemAdapter);
}
if (mSettlementReportItem5Adapter == null) {
mSettlementReportItem5Adapter = new SettlementReportItem5Adapter(IActivity, mSettlementReportItem5List);
mRootView.setSettlementReportItem5Adapter(mSettlementReportItem5Adapter);
}
}
public void notifyDataSetChanged(List<SettlementReportItem> settlementReportItems) {
mList.clear();
mList.addAll(settlementReportItems);
reportItemAdapter.notifyDataSetChanged();
public void notifyReportItemAdapter(List<SettlementReportItem> settlementReportItems) {
mSettlementReportItemList.clear();
mSettlementReportItemList.addAll(settlementReportItems);
mSettlementReportItemAdapter.notifyDataSetChanged();
}
public void notifyReportItem5Adapter(List<SettlementReportItem5> settlementReportItems) {
mSettlementReportItem5List.clear();
mSettlementReportItem5List.addAll(settlementReportItems);
mSettlementReportItem5Adapter.notifyDataSetChanged();
}
public void sendSettlement() {
int restaurantId = GsaCloudApplication.getRestaurantId(mApplication);
RequestBody requestBody = new FormBody.Builder()
// .add("openTime", "")
.add("restaurantId", String.valueOf(restaurantId))
.build();
mModel.sendSettlement(requestBody)
......@@ -109,21 +127,20 @@ public class SettlementReportPresenter extends BasePresenter<SettlementReportCon
if (info != null && info.isSuccess()) {
SendSettlement.DataBean dataBean = info.getData();
if (dataBean != null) {
if (dataBean.getTable() != null && dataBean.getTable().size() == 0) {
if (dataBean.getTable() == null || (dataBean.getTable() != null && dataBean.getTable().size() == 0)) {
mRootView.showMessage("清機成功");
} else {
//還有檯未結賬
showSettlementErrorDialog("仍有臺號未結賬,請先結賬;" + "\n" + getTables(dataBean.getTable()));
}
} else {
mRootView.showMessage("清機失敗");
mRootView.showMessage("清機成功");
}
} else {
mRootView.showMessage("清機失敗");
}
}
});
}
......
......@@ -6,14 +6,18 @@ import android.view.View;
import android.widget.TextView;
import com.gingersoft.gsa.cloud.base.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.main.R;
import com.gingersoft.gsa.cloud.main.R2;
import com.gingersoft.gsa.cloud.main.di.component.DaggerSettlementComponent;
import com.gingersoft.gsa.cloud.main.mvp.model.bean.SettlementReport;
import com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog;
import com.jess.arms.base.BaseActivity;
import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils;
import com.gingersoft.gsa.cloud.main.mvp.contract.SettlementContract;
import com.gingersoft.gsa.cloud.main.mvp.presenter.SettlementPresenter;
import com.qmuiteam.qmui.alpha.QMUIAlphaButton;
import com.qmuiteam.qmui.layout.QMUIButton;
import com.qmuiteam.qmui.widget.QMUITopBar;
......@@ -46,9 +50,11 @@ public class SettlementActivity extends BaseActivity<SettlementPresenter> implem
@BindView(R2.id.tv_settlement_time)
TextView tv_settlement_time;
@BindView(R2.id.btn_settlement_report)
QMUIButton btn_settlement_report;
QMUIAlphaButton btn_settlement_report;
private SettlementReport.DataBean mSettlementReportBean;
@Override
public void setupActivityComponent(@NonNull AppComponent appComponent) {
DaggerSettlementComponent //如找不到该类,请编译一下项目
......@@ -67,6 +73,7 @@ public class SettlementActivity extends BaseActivity<SettlementPresenter> implem
@Override
public void initData(@Nullable Bundle savedInstanceState) {
mPresenter.getSettlementReport();
}
@Override
......@@ -85,13 +92,16 @@ public class SettlementActivity extends BaseActivity<SettlementPresenter> implem
// overridePendingTransition(R.anim.slide_still, R.anim.slide_out_right);
}
});
mTopBar.setTitle(LanguageUtils.get_language_system(this, "funcSelect.settlement", "清機")).setTextColor(ArmsUtils.getColor(this, R.color.theme_white_color));;
mTopBar.setTitle(LanguageUtils.get_language_system(this, "funcSelect.settlement", "清機")).setTextColor(ArmsUtils.getColor(this, R.color.theme_white_color));
;
}
@OnClick({R2.id.btn_settlement_report})
public void onClick(View v) {
if (v.getId() == R.id.btn_settlement_report) {
launchActivity(new Intent(this,SettlementReportActivity.class));
Intent intent = new Intent(this, SettlementReportActivity.class);
intent.putExtra("settlementReportBean", mSettlementReportBean);
launchActivity(intent);
}
}
......@@ -112,18 +122,20 @@ public class SettlementActivity extends BaseActivity<SettlementPresenter> implem
@Override
public void showLoading(String message) {
if (message != null)
LoadingDialog.showDialogForLoading(this, message, true);
else
LoadingDialog.showDialogForLoading(this);
}
@Override
public void hideLoading() {
LoadingDialog.cancelDialogForLoading();
}
@Override
public void showMessage(@NonNull String message) {
checkNotNull(message);
ArmsUtils.snackbarText(message);
ArmsUtils.makeText(this, message);
}
@Override
......@@ -137,5 +149,16 @@ public class SettlementActivity extends BaseActivity<SettlementPresenter> implem
finish();
}
@Override
public void setLastTime(String date) {
tv_settlement_time.setText(date);
}
@Override
public void returnSettlementData(SettlementReport.DataBean datasBean) {
this.mSettlementReportBean = datasBean;
setLastTime(TimeUtils.getStringByFormat(mSettlementReportBean.getRestaurantOperation().getOpenTime(), TimeUtils.dateFormatYMDHMS));
}
}
package com.gingersoft.gsa.cloud.main.mvp.ui.adapter;
import android.content.Context;
import android.view.View;
import android.widget.TextView;
import com.gingersoft.gsa.cloud.main.R;
import com.gingersoft.gsa.cloud.main.R2;
import com.gingersoft.gsa.cloud.main.mvp.model.bean.SettlementReportItem5;
import com.jess.arms.base.BaseHolder;
import com.jess.arms.base.DefaultAdapter;
import java.util.List;
import butterknife.BindView;
import butterknife.BindViews;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2018/6/27
* 修订历史:2018/6/27
* 描述:
*/
public class SettlementReportItem5Adapter extends DefaultAdapter<SettlementReportItem5> {
private Context mContext;
public SettlementReportItem5Adapter(Context context, List<SettlementReportItem5> infos) {
super(infos);
this.mContext = context;
}
@Override
public int getItemCount() {
return mInfos.size();
}
@Override
public BaseHolder<SettlementReportItem5> getHolder(View v, int viewType) {
return new SettlementReportItemHolder(v);
}
@Override
public int getLayoutId(int viewType) {
return R.layout.item_settlement_report5;
}
class SettlementReportItemHolder extends BaseHolder<SettlementReportItem5> {
@BindViews({R2.id.tv_item1, R2.id.tv_item2, R2.id.tv_item3, R2.id.tv_item4, R2.id.tv_item5})
TextView[] tv_items;
public SettlementReportItemHolder(View itemView) {
super(itemView);
}
@Override
public void setData(SettlementReportItem5 reportItem, int position) {
tv_items[0].setText(reportItem.getItem1());
tv_items[1].setText(reportItem.getItem2());
tv_items[2].setText(reportItem.getItem3());
tv_items[3].setText(reportItem.getItem4());
tv_items[4].setText(reportItem.getItem5());
}
}
}
......@@ -20,7 +20,7 @@
android:text="上次清機時間:2020-3-4 22:00:00"
android:layout_marginTop="@dimen/dp_10"/>
<com.qmuiteam.qmui.layout.QMUIButton
<com.qmuiteam.qmui.alpha.QMUIAlphaButton
android:id="@+id/btn_settlement_report"
android:layout_width="match_parent"
android:layout_height="wrap_content"
......
......@@ -4,64 +4,97 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.qmuiteam.qmui.widget.QMUITopBar
android:id="@+id/topbar"
android:layout_width="match_parent"
android:layout_height="?attr/qmui_topbar_height"/>
<LinearLayout
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/theme_white_color"
android:orientation="vertical"
android:layout_marginTop="?attr/qmui_topbar_height">
android:fillViewport="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="@dimen/dp_10"
android:orientation="vertical">
<TextView
android:id="@+id/tv_name"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/black"
android:textSize="@dimen/sp_16"
android:text="店鋪名稱:gingersoft"/>
android:layout_height="match_parent"
android:layout_marginBottom="@dimen/dp_45"
android:layout_marginTop="?attr/qmui_topbar_height"
android:background="@color/theme_white_color"
android:orientation="vertical">
<TextView
android:id="@+id/tv_start_time"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/black"
android:layout_marginTop="@dimen/dp_5"
android:textSize="@dimen/sp_14"
android:text=""/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="@dimen/dp_10">
<TextView
android:id="@+id/tv_end_time"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/black"
android:textSize="@dimen/sp_14"
android:layout_marginTop="@dimen/dp_5"
android:text=""/>
</LinearLayout>
<TextView
android:id="@+id/tv_restaurant_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="店鋪名稱:gingersoft"
android:textColor="@color/black"
android:textSize="@dimen/sp_16" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/dp_0_5"
android:background="@color/theme_grey_color"
android:layout_marginTop="@dimen/dp_8"/>
<TextView
android:id="@+id/tv_business_area_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="店鋪名稱:gingersoft"
android:textColor="@color/black"
android:textSize="@dimen/sp_16" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_settlement_report_item"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="@null"
android:fadeScrollbars="false"/>
</LinearLayout>
<TextView
android:id="@+id/tv_start_time"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_5"
android:text=""
android:textColor="@color/black"
android:textSize="@dimen/sp_14" />
<TextView
android:id="@+id/tv_end_time"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_5"
android:text=""
android:textColor="@color/black"
android:textSize="@dimen/sp_14" />
</LinearLayout>
<TextView
android:id="@+id/tv_last_time"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:padding="@dimen/dp_5"
android:text="上次清機時間:2020-3-1 21:59:18"
android:textColor="@color/red"
android:textSize="@dimen/sp_16" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/dp_0_5"
android:layout_marginTop="@dimen/dp_8"
android:background="@color/theme_grey_color" />
<com.gingersoft.gsa.cloud.base.widget.NoScrollRecyclerView
android:id="@+id/rv_settlement_report_item"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="@null"
android:fadeScrollbars="false" />
<com.gingersoft.gsa.cloud.base.widget.NoScrollRecyclerView
android:id="@+id/rv_settlement_report_item2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="@null"
android:fadeScrollbars="false" />
</LinearLayout>
</LinearLayout>
</ScrollView>
<com.qmuiteam.qmui.alpha.QMUIAlphaButton
android:id="@+id/btn_send_settlement"
......@@ -69,9 +102,14 @@
android:layout_height="@dimen/dp_45"
android:layout_gravity="bottom"
android:background="@color/theme_color"
android:textColor="@color/theme_white_color"
android:gravity="center"
android:textSize="@dimen/sp_15"
android:text="去清機"/>
android:text="去清機"
android:textColor="@color/theme_white_color"
android:textSize="@dimen/sp_15" />
<com.qmuiteam.qmui.widget.QMUITopBar
android:id="@+id/topbar"
android:layout_width="match_parent"
android:layout_height="?attr/qmui_topbar_height" />
</com.qmuiteam.qmui.widget.QMUIWindowInsetLayout>
\ 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"
android:id="@+id/cl_container"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_25"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_item1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="item1"
android:textColor="@color/black"
android:textSize="@dimen/sp_14" />
<TextView
android:id="@+id/tv_item2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="item2"
android:textColor="@color/black"
android:textSize="@dimen/sp_14" />
<TextView
android:id="@+id/tv_item3"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="item3"
android:textColor="@color/black"
android:textSize="@dimen/sp_14" />
<TextView
android:id="@+id/tv_item4"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="item4"
android:textColor="@color/black"
android:textSize="@dimen/sp_14" />
<TextView
android:id="@+id/tv_item5"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="item5"
android:textColor="@color/black"
android:textSize="@dimen/sp_14" />
</LinearLayout>
\ No newline at end of file
......@@ -2,6 +2,7 @@ package com.gingersoft.gsa.cloud.base.common.bean;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
import com.gingersoft.gsa.cloud.database.bean.ComboItem;
import com.gingersoft.gsa.cloud.database.bean.FoodCombo;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.bean.Modifier;
......@@ -59,7 +60,12 @@ public class OrderDetail implements Serializable {
private int ComboLevel = 0;
//套餐食品是否自動跟餐
private boolean isComboAuto = false;
//層級,1,2,3
/***
* 層級
* 1#主食品
* 2#子項or細項
* 3#細項
*/
private int itemType;
/**
* ID
......@@ -529,10 +535,12 @@ public class OrderDetail implements Serializable {
if (parentOrderDetail != null && orderDetailsBean.getParentId() != 0) {
if (parentOrderDetail.getId() == orderDetailsBean.getParentId()) {
//是父級
if (parentOrderDetail.getParentId() == 0) {
if (parentOrderDetail.getParentId() == 0 && orderDetailsBean.getType() == FOOD_TYPE) {
//第二層子食品
return 2;
}
if (parentOrderDetail.getParentId() != 0 && parentOrderDetail.getType() == FOOD_TYPE) {
if (parentOrderDetail.getParentId() != 0 && orderDetailsBean.getType() == MODIFIER_TYPE) {
//第三層細項
return 3;
}
}
......@@ -552,7 +560,7 @@ public class OrderDetail implements Serializable {
public static OrderDetail foodTransOrderDetails(Food foods, int number) {
OrderDetail orderDetail = new OrderDetail();
orderDetail.setProductName(foods.getFoodName());
orderDetail.setTopId(0);
orderDetail.setTopId(foods.getTopId());
orderDetail.setId(0);
orderDetail.setParentId(0);
orderDetail.setProductId(foods.getId());
......
......@@ -95,6 +95,9 @@ public class MyOrderManage {
}
public void setOrderId(double orderId) {
if (orderBean == null) {
orderBean = new OrderBean();
}
if (orderBean != null) {
orderBean.setId((int) orderId);
}
......
......@@ -11,5 +11,5 @@ public class HttpsConstans {
public static String ROOT_SERVER_ADDRESS_FORMAL2 = "http://gingersoft.tpddns.cn:53000/mock/49/ricepon-cloud-gsa/api/";//測試服務器
public static String ROOT_SETTLEMENT_REPORT_SERVER_ADDRESS_FORMAL = "http://a.ricepon.com:58201/";//清機接口地址
}
......@@ -31,7 +31,13 @@ public class TimeUtils {
*
*/
/**
* 时间日期格式化到年月日时分秒.
*/
public static String dateFormatYMDHMS = "yyyy-MM-dd HH:mm:ss";
public static String dateFormatYMDHMS_f = "yyyyMMddHHmmss";
public static String dateFormatMDHM = "MM-dd HH:mm";
public static String dateFormat = "yyyy-MM-dd HH:mm";
/**
* 时间日期格式化到年月日.
*/
......
......@@ -305,6 +305,9 @@ public class Food {
@Transient
/**選中數量*/
private int number;
/**食品組ID*/
@Transient
private long topId;
@Transient
/**背景顏色*/
private int bgColor = Color.parseColor("#03a9f4");
......@@ -321,27 +324,26 @@ public class Food {
/**是否组合食品*/
private boolean isComboFood = false;
@Generated(hash = 866324199)
public Food() {
}
@Generated(hash = 1640870418)
public Food(Long id, Long parentId, Long restaurantId, Byte isParent, Long seqNo,
String foodName, String foodName1, String foodName2, String plu, String posFid,
String foodDesc, Long limitAmount, Long limitType, Long foodSummary,
Long invisible, Byte autoMod, Double price, Double marketPrice,
Double lunchboxPrice, String imgUrlSmall, String imageurl, Long riceponInvisible,
Double cost, Date startDate, Date endDate, Long like, Long totalSold, Long isSold,
String createBy, Date createTime, String updateBy, Date updateTime, Long periodId,
Long ableDiscount, Long takeaway, Long blueEdit, Long cartEdit, Long autoMerge,
String printSeting, Long isPrintQueueCode, Long queueHeadId, Long approve,
Long printFont, Long advPrice, Long printToBill, Double pointsAdd,
Long pointsRatio, Double pointsRedeem, Long ktPrintMainItem, Long ktShowPrice,
public Food(Long id, Long parentId, Long restaurantId, Byte isParent,
Long seqNo, String foodName, String foodName1, String foodName2,
String plu, String posFid, String foodDesc, Long limitAmount,
Long limitType, Long foodSummary, Long invisible, Byte autoMod,
Double price, Double marketPrice, Double lunchboxPrice,
String imgUrlSmall, String imageurl, Long riceponInvisible, Double cost,
Date startDate, Date endDate, Long like, Long totalSold, Long isSold,
String createBy, Date createTime, String updateBy, Date updateTime,
Long periodId, Long ableDiscount, Long takeaway, Long blueEdit,
Long cartEdit, Long autoMerge, String printSeting,
Long isPrintQueueCode, Long queueHeadId, Long approve, Long printFont,
Long advPrice, Long printToBill, Double pointsAdd, Long pointsRatio,
Double pointsRedeem, Long ktPrintMainItem, Long ktShowPrice,
Long printTo, Long toPax, Long foodType, Long majorMainId, Long deptId,
Byte serviceCharge, Long colorId, Long conditions, Long isRt, Long deletes,
Long isTimingFood, Long minLongTime, Long unitTime, Double unitPrice,
Long freeLongTime, Date freePeriodBegin, Long isStatistic) {
Byte serviceCharge, Long colorId, Long conditions, Long isRt,
Long deletes, Long isTimingFood, Long minLongTime, Long unitTime,
Double unitPrice, Long freeLongTime, Date freePeriodBegin,
Long isStatistic) {
this.id = id;
this.parentId = parentId;
this.restaurantId = restaurantId;
......@@ -411,6 +413,10 @@ public class Food {
this.isStatistic = isStatistic;
}
@Generated(hash = 866324199)
public Food() {
}
public Long getId() {
return id;
......@@ -420,6 +426,14 @@ public class Food {
this.id = id;
}
public long getTopId() {
return topId;
}
public void setTopId(long topId) {
this.topId = topId;
}
public Long getParentId() {
return parentId;
}
......
......@@ -2,6 +2,7 @@ package com.gingersoft.gsa.cloud.database.utils;
import android.content.Context;
import android.database.Cursor;
import android.text.TextUtils;
import android.util.Log;
import com.gingersoft.gsa.cloud.database.DaoManager;
......@@ -161,7 +162,7 @@ public class ComboItemDaoUtils {
ArrayList<ComboItem> comboItems = new ArrayList<>();
// String sql = "SELECT c.*,f.FOOD_NAME,f.FOOD_NAME1,f.FOOD_NAME2,f.PRICE,f.AUTO_MOD FROM COMBO_ITEM c join FOOD f on c.FID=f.FID and f.INVISIBLE=0 join FOOD_COMBO r on r.COM_ID=c.COM_ID ";
String sql = "SELECT c.*,f.FOOD_NAME,f.FOOD_NAME1,f.FOOD_NAME2,f.PRICE,f.AUTO_MOD FROM COMBO_ITEM c join FOOD f on c.FID=f.FID and f.INVISIBLE=0 join FOOD_COMBO r on r.COM_ID=c.COM_ID ";
String sql = "SELECT c.*,f.FOOD_NAME,f.FOOD_NAME1,f.FOOD_NAME2,f.PRICE,f.AUTO_MOD,DEF_MODIFIER FROM COMBO_ITEM c join FOOD f on c.FID=f.FID and f.INVISIBLE=0 join FOOD_COMBO r on r.COM_ID=c.COM_ID ";
if (fid > 0) {
sql = sql + " where r.FID='" + fid + "'";
......@@ -179,6 +180,10 @@ public class ComboItemDaoUtils {
order.setName2(c.getString(c.getColumnIndex("FOOD_NAME2")));
order.setVisible(c.getLong(c.getColumnIndex("VISIBLE")));
order.setAutoMode(c.getInt(c.getColumnIndex("AUTO_MOD")));
String defmodifier = c.getString(c.getColumnIndex("DEF_MODIFIER"));
if (!TextUtils.isEmpty(defmodifier) && !", ".equals(defmodifier)) {
order.setDefmodifier(defmodifier);
}
// if (order.isVisible()) {
comboItems.add(order);
// }
......
......@@ -2,6 +2,7 @@ package com.gingersoft.gsa.cloud.database.utils;
import android.content.Context;
import android.database.Cursor;
import android.text.TextUtils;
import android.util.Log;
import com.gingersoft.gsa.cloud.database.DaoManager;
......@@ -369,9 +370,9 @@ public class ModifierDaoUtils {
order.setModTaste(c.getLong(c.getColumnIndex("MOD_TASTE")));
order.setMultiple(c.getDouble(c.getColumnIndex("MULTIPLE")));
String defmodifier = c.getString(c.getColumnIndex("DEFMODIFIER"));
// if (!defmodifier.contains(",")) {
// order.setDefmodifier(defmodifier);
// }
if (!TextUtils.isEmpty(defmodifier) && !", ".equals(defmodifier)) {
order.setDefmodifier(defmodifier);
}
// if (order.isVisible()) {
modifiers.add(order);
// }
......
......@@ -34,8 +34,7 @@ public class MyResponseErrorListener implements ResponseErrorListener {
@Override
public void handleResponseError(Context context, Throwable t) {
/* 用来提供处理所有错误的监听
rxjava必要要使用ErrorHandleSubscriber(默认实现Subscriber的onError方法),此监听才生效 */
/* 用来提供处理所有错误的监听rxjava必要要使用ErrorHandleSubscriber(默认实现Subscriber的onError方法),此监听才生效 */
Timber.tag("Catch-Error").w(t.getMessage());
//这里不光是只能打印错误,还可以根据不同的错误作出不同的逻辑处理
String msg = ArmsUtils.getString(context, R.string.response_error_unknown_error);
......
......@@ -39,7 +39,7 @@ public class MyActivityLifecycle implements Application.ActivityLifecycleCallbac
@Override
public void onActivityStopped(Activity activity) {
GsaCloudApplication.getAppContext().setCurrentActivity(null);
// GsaCloudApplication.getAppContext().setCurrentActivity(null);
}
@Override
......
......@@ -39,7 +39,9 @@ public interface BaseOrderContract {
Observable<BaseResult> addFood(RequestBody requestBody);
Observable<BaseResult> updateOrderStatus(RequestBody formBody);
Observable<BaseResult> toOrderPay(RequestBody formBody);
Observable<BaseResult> updateOrder(RequestBody formBody);
}
}
......@@ -65,7 +65,6 @@ public class MealStandModel extends BaseModel implements MealStandContract.Model
this.mApplication = null;
}
@Override
public List<Food> queryDB_FoodGroupList() {
FoodDaoUtils foodDaoUtils = new FoodDaoUtils(mApplication);
......@@ -144,8 +143,14 @@ public class MealStandModel extends BaseModel implements MealStandContract.Model
}
@Override
public Observable<BaseResult> updateOrderStatus(RequestBody formBody) {
public Observable<BaseResult> toOrderPay(RequestBody formBody) {
return mRepositoryManager.obtainRetrofitService(OrderPayService.class)
.toOrderPay(formBody);
}
@Override
public Observable<BaseResult> updateOrder(RequestBody formBody) {
return mRepositoryManager.obtainRetrofitService(OrderPayService.class)
.updateOrderStatus(formBody);
.updateOrder(formBody);
}
}
\ No newline at end of file
......@@ -68,8 +68,14 @@ public class OrderContentModel extends BaseModel implements OrderContentContract
}
@Override
public Observable<BaseResult> updateOrderStatus(RequestBody formBody) {
public Observable<BaseResult> toOrderPay(RequestBody formBody) {
return mRepositoryManager.obtainRetrofitService(OrderPayService.class)
.updateOrderStatus(formBody);
.toOrderPay(formBody);
}
@Override
public Observable<BaseResult> updateOrder(RequestBody formBody) {
return mRepositoryManager.obtainRetrofitService(OrderPayService.class)
.updateOrder(formBody);
}
}
\ No newline at end of file
......@@ -69,9 +69,15 @@ public class OrderPayModel extends BaseModel implements OrderPayContract.Model {
}
@Override
public Observable<BaseResult> updateOrderStatus(RequestBody formBody) {
public Observable<BaseResult> toOrderPay(RequestBody formBody) {
return mRepositoryManager.obtainRetrofitService(OrderPayService.class)
.updateOrderStatus(formBody);
.toOrderPay(formBody);
}
@Override
public Observable<BaseResult> updateOrder(RequestBody formBody) {
return mRepositoryManager.obtainRetrofitService(OrderPayService.class)
.updateOrder(formBody);
}
}
\ No newline at end of file
......@@ -6,6 +6,7 @@ import io.reactivex.Observable;
import me.jessyan.retrofiturlmanager.RetrofitUrlManager;
import okhttp3.RequestBody;
import retrofit2.http.Body;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Query;
......@@ -16,7 +17,10 @@ import retrofit2.http.Query;
public interface OrderPayService {
@POST("order/update" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> updateOrderStatus(@Body RequestBody requestBody);
Observable<BaseResult> updateOrder(@Body RequestBody requestBody);
@POST("order/Pay" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<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);
......
......@@ -4,11 +4,14 @@ import android.app.Activity;
import android.app.Application;
import android.widget.TextView;
import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.common.bean.OrderBean;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.mvp.contract.BaseOrderContract;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.BillOrderMoney;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.request.AddOrderRequest;
......@@ -21,7 +24,11 @@ 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 com.qmuiteam.qmui.widget.dialog.QMUIDialog;
import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
......@@ -64,6 +71,8 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
private Activity IActivity;
private OrderContentActivity mOrderContentActivity;
private MealStandPresenter mMealStandPresenter;
private OrderContentPresenter mOrderContentPresenter;
private OrderPayPresenter mOrderPayPresenter;
//订单数据管理类
protected MyOrderManage myOrderManage;
......@@ -86,6 +95,8 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
//币種
public String cashStr = "$";
private final String noFoodDeliveryTip = "賬單沒有食品,是否開台?";
@Inject
public BaseOrderPresenter(BaseOrderContract.Model model, BaseOrderContract.View rootView) {
super(model, rootView);
......@@ -100,6 +111,10 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
}
if (this instanceof MealStandPresenter) {
mMealStandPresenter = (MealStandPresenter) this;
} else if (this instanceof OrderContentPresenter) {
mOrderContentPresenter = (OrderContentPresenter) this;
} else if (this instanceof OrderPayPresenter) {
mOrderPayPresenter = (OrderPayPresenter) this;
}
recalcOrderMoneyCount();
......@@ -179,10 +194,10 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
*/
public void updateOrderPerson(String peopleNumber, TextView textView) {
RequestBody requestBody = new FormBody.Builder()
.add("orderId", MyOrderManage.getInstance().getOrderId() + "")
.add("person", peopleNumber + "")
.add("orderId", String.valueOf(MyOrderManage.getInstance().getOrderId()))
.add("person", String.valueOf(peopleNumber))
.build();
mModel.updateOrderStatus(requestBody)
mModel.updateOrder(requestBody)
.subscribeOn(Schedulers.io())
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
......@@ -202,7 +217,6 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
});
}
public void changeNumber(int number) {
if (!changeNumberCondition(number)) {
return;
......@@ -235,6 +249,34 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
}
/**
* 送單
* @param isPrint 是否印單
*/
public void sendOrder(boolean isPrint) {
if (MyOrderManage.getInstance().getOrderId() == -1) {
if (getFoodCount() == 0) {
showTip2Dialog(IActivity, noFoodDeliveryTip,isPrint);
} else {
if (mMealStandPresenter != null) {
mMealStandPresenter.createOrder();
} else if (mOrderContentPresenter != null) {
mOrderContentPresenter.createOrder(isPrint);
} else if (mOrderPayPresenter != null) {
mOrderPayPresenter.createOrder();
}
}
} else {
if (mMealStandPresenter != null) {
mMealStandPresenter.addOrderFood();
} else if (mOrderContentPresenter != null) {
mOrderContentPresenter.addOrderFood(isPrint);
} else if (mOrderPayPresenter != null) {
mOrderPayPresenter.addOrderFood();
}
}
}
/**
* 創建訂單后保存OrderId
*
* @param orderId
......@@ -290,10 +332,12 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
}
protected CreateOrderRequest getCreateOrderRequest(List<OrderDetail> foodList) {
int restaurantId = GsaCloudApplication.getRestaurantId(mApplication);
CreateOrderRequest request = new CreateOrderRequest();
request.setOrderDetails(orderDetailBeanToFoodRequest(foodList));
request.setPerson(OpenTableManage.getDefault().getPeopleNumber());
request.setTableId(OpenTableManage.getDefault().getTableBean().getId());
request.setRestaurantId(restaurantId);
return request;
}
......@@ -349,7 +393,7 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
protected Map<String, List<OrderBean.OrderDetailsBean>> orderDetailBeanToAddFoodRequest(List<OrderDetail> foodList) {
/**
* 1#主食品(完全新點)
* 2#主食品+子食品+細項(基礎上新加)
* 2#主食品+子食品+細項(主食品基礎上新加)
*/
long type1 = 1;
long type2 = 2;
......@@ -479,8 +523,34 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
return tablename;
}
protected void showTipDialog(Activity context, String msg) {
QMUIDialog.MessageDialogBuilder dialogBuilder = new QMUIDialog.MessageDialogBuilder(context);
dialogBuilder.setTitle("溫馨提示");
dialogBuilder.setMessage(msg);
dialogBuilder.addAction("確定", (dialog, index) -> dialog.dismiss());
dialogBuilder.create(R.style.MyDialogTheme2).show();
}
protected void showTip2Dialog(Activity context, String msg,boolean isPrint) {
QMUIDialog.MessageDialogBuilder dialogBuilder = new QMUIDialog.MessageDialogBuilder(context);
dialogBuilder.setTitle("溫馨提示");
dialogBuilder.setMessage(msg);
dialogBuilder.addAction("取消", (dialog, index) -> dialog.dismiss());
dialogBuilder.addAction(0, "確認", QMUIDialogAction.ACTION_PROP_NEGATIVE, (dialog, index) -> {
if (mMealStandPresenter != null) {
mMealStandPresenter.createOrder();
} else if (mOrderContentPresenter != null) {
mOrderContentPresenter.createOrder(isPrint);
} else if (mOrderPayPresenter != null) {
mOrderPayPresenter.createOrder();
}
dialog.dismiss();
});
dialogBuilder.create(R.style.MyDialogTheme2).show();
}
public int getFoodCount() {
return foodCount;
return getOrderFoodLists().size();
}
public void setFoodCount(int foodCount) {
......
......@@ -39,6 +39,7 @@ import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
import org.simple.eventbus.EventBus;
import org.simple.eventbus.Subscriber;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
......@@ -301,6 +302,10 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
comboItemList.addAll(comboItems);
}
List<Modifier> modifierList = mModel.queryDB_ModifierList(fid, ModifierDaoUtils.modifierMode_All);
//設置默認選中套餐食品
setComboDefModifier(comboItemList);
//設置默認選中細項
setModifierDefModifier(modifierList);
//更新套餐数据
updateComboData(comboItemList);
//更新细项数据
......@@ -321,7 +326,6 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
private void loadModifierData(long fid) {
List<Modifier> modifierList = mModel.queryDB_ModifierList(fid, ModifierDaoUtils.modifierMode_Child);
updateModifierData(modifierList);
}
......@@ -419,7 +423,6 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
// }
});
//打印上菜紙
// CC.obtainBuilder("Component.Print")
// .setActionName("printActivity")
......@@ -478,6 +481,8 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
mSelectMealAdapter.notifyDataSetChanged();
mSelectMealAdapter.setIndex();
mRootView.showViewModeVisibility(MealConstant.food_group_ViewMode,MealConstant.food_ViewMode);
} else {
mRootView.showMessage("刪除失敗");
}
......@@ -485,15 +490,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
});
}
public void sendOrder() {
if (MyOrderManage.getInstance().getOrderId() == -1) {
createOrder();
} else {
addOrderFood();
}
}
private void deleteWithOrderedFoodById(long id) {
private void deleteWithOrderedFoodById() {
QMUIDialog.MessageDialogBuilder dialogBuilder = new QMUIDialog.MessageDialogBuilder(IActivity);
dialogBuilder.setTitle("溫馨提示");
dialogBuilder.setMessage("是否確認刪除該食品?");
......@@ -527,7 +524,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
if (!deleteFood.isNew()) {
//TODO 刪除已下單食品
deleteWithOrderedFoodById(deleteFood.getId());
deleteWithOrderedFoodById();
} else {
if (deleteStyle == 2) {
mSelectMealAdapter.removeAllNewFoodItem();
......@@ -590,7 +587,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
List<Food> foodList = mModel.queryDB_FoodList(parentId);
mFoodAdapter.resetSelect(-1, null);
if (foodList != null) {
updateFoodData(foodList);
updateFoodData(foodList, parentId);
}
mRootView.showViewModeVisibility(MealConstant.food_ViewMode, MealConstant.food_group_ViewMode);
}
......@@ -640,7 +637,6 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
currentSelectNumber += orderFood.getNumber();
}
}
// String User_Qty = foodBean.getOR_Qty();
// if (!User_Qty.equals("") && !User_Qty.equals("售罄") && !User_Qty.equals("暫停")) {
// int maxQty = Integer.parseInt(User_Qty);
......@@ -776,6 +772,13 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
return String.valueOf(i);
}
private void setTopId(List<Food> foodList, long topId) {
for (int i = 0; i < foodList.size(); i++) {
Food datasBean = foodList.get(i);
datasBean.setTopId(topId);
}
}
/**
* 標識食品是否为组合食品
*
......@@ -803,17 +806,76 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
}
}
public Food getOrderFoodById(long fid) {
for (int i = 0; i < mFoodList.size(); i++) {
Food foodBean = mFoodList.get(i);
if (fid == foodBean.getId()) {
return foodBean;
/**
* 細項默認選中
*
* @param modifierList
*/
private void setModifierDefModifier(List<Modifier> modifierList) {
String defmodifier = null;
for (int i = 0; i < modifierList.size(); i++) {
defmodifier = modifierList.get(i).getDefmodifier() + ",";
}
if (!TextUtils.isEmpty(defmodifier)) {
if (defmodifier.startsWith(",")) {
defmodifier = defmodifier.substring(1, defmodifier.length());
}
if (defmodifier.endsWith(",")) {
defmodifier = defmodifier.substring(0, defmodifier.length() - 1);
}
String[] defmodifiers = defmodifier.split(",");
for (int j = 0; j < defmodifiers.length; j++) {
long def = Long.parseLong(defmodifiers[j]);
for (int k = 0; k < modifierList.size(); k++) {
Modifier modifier = modifierList.get(k);
long mid = modifier.getMid();
if (def == mid) {
modifier.setDefmodifier("1");
} else {
modifier.setDefmodifier("0");
}
}
}
}
}
/**
* 套餐默認選中
*
* @param comboItemList
*/
private void setComboDefModifier(List<ComboItem> comboItemList) {
String defmodifier = null;
for (int i = 0; i < comboItemList.size(); i++) {
defmodifier = comboItemList.get(i).getDefmodifier() + ",";
}
if (!TextUtils.isEmpty(defmodifier)) {
if (defmodifier.startsWith(",")) {
defmodifier = defmodifier.substring(1, defmodifier.length());
}
if (defmodifier.endsWith(",")) {
defmodifier = defmodifier.substring(0, defmodifier.length() - 1);
}
String[] defmodifiers = defmodifier.split(",");
if (defmodifiers.length > 0) {
for (int j = 0; j < defmodifiers.length; j++) {
long def = Long.parseLong(defmodifiers[j]);
for (int k = 0; k < comboItemList.size(); k++) {
ComboItem comboItem = comboItemList.get(k);
long fid = comboItem.getFid();
if (def == fid) {
comboItem.setDefmodifier("1");
} else {
comboItem.setDefmodifier("0");
}
}
}
}
}
return null;
}
private void updateFoodData(List<Food> foodList) {
private void updateFoodData(List<Food> foodList, long parentId) {
setTopId(foodList, parentId);
setFoodComboListStatus(foodList);
mFoodList.clear();
mFoodList.addAll(foodList);
......@@ -838,6 +900,16 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
mComboAdapter.notifyDataSetChanged();
}
public Food getOrderFoodById(long fid) {
for (int i = 0; i < mFoodList.size(); i++) {
Food foodBean = mFoodList.get(i);
if (fid == foodBean.getId()) {
return foodBean;
}
}
return null;
}
public boolean isRvMealClicked() {
return RvMealClicked;
}
......
......@@ -6,6 +6,7 @@ import android.util.Log;
import android.view.View;
import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.aspectj.XClickUtil;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
......@@ -104,6 +105,9 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
mOrderTopFunctionAdapter.setOnItemClickListener(new DefaultAdapter.OnRecyclerViewItemClickListener() {
@Override
public void onItemClick(View view, int viewType, Object data, int position) {
if (XClickUtil.isFastDoubleClick(view, 1000)) {
return;
}
switch (position) {
case 0:
//送單
......@@ -111,6 +115,10 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
break;
case 1:
//印單
if (getFoodCount() == 0) {
showTipDialog(IActivity, "沒有食品,不能印單");
return;
}
sendOrder(true);
break;
case 2:
......@@ -129,7 +137,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
mFunctionList.addAll(Arrays.asList(functions));
}
private void createOrder(boolean isPrint) {
protected void createOrder(boolean isPrint) {
CreateOrderRequest request = getCreateOrderRequest(getOrderFoodLists());
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(request));
mModel.createOrder(requestBody)
......@@ -167,7 +175,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
});
}
private void addOrderFood(boolean isPrint) {
protected void addOrderFood(boolean isPrint) {
List<OrderDetail> foodLists = getOrderFoodLists();
for (OrderDetail food : foodLists) {
food.setOrderId(MyOrderManage.getInstance().getOrderId());
......@@ -196,12 +204,12 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
if (isPrint) {
printOrder(OpenTableManage.getDefault().getTableBean().getId());
} else {
if(!hasNesOrderFoods()){
//TODO 未新增食品點擊送單 後台不讓過直接提示即可,不調用打印
//TODO 未新增食品點擊送單 後台不讓過直接提示即可,不調用打印
if (!hasNesOrderFoods()) {
//TODO 未新增食品點擊送單 後台不讓過直接提示即可
mRootView.showMessage("送單成功");
mRootView.sendSuccess();
// printSendOrder(foodLists);
}else {
// mRootView.sendSuccess();
} else {
mRootView.showMessage("送單失敗");
}
}
......@@ -260,7 +268,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
@Override
public void onNext(@NonNull BaseRespose info) {
if (info != null && info.isSuccess()) {
CC.obtainBuilder("Component.Print")
CC.obtainBuilder("Component.Print")
.addParam("type", 1)//印單
.setActionName("printActivity")
.build()
......@@ -283,19 +291,6 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
});
}
/**
* 送單
*
* @param isPrint 印單先調用送單接口
*/
public void sendOrder(boolean isPrint) {
if (MyOrderManage.getInstance().getOrderId() == -1) {
createOrder(isPrint);
} else {
addOrderFood(isPrint);
}
}
// private void printOrder() {
// CC.obtainBuilder("Component.Print")
// .setActionName("showPrintActivity")
......
......@@ -73,6 +73,13 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
private BillMoneyAdapter mBillMoneyAdapter;
private ArrayList<PayMethod> mBillMoneyList = new ArrayList<>();
/**
* 0#店內支付
* 1#貨到付款
* 2#在線支付
*/
private final int orderPayType =0;
@Inject
public OrderPayPresenter(OrderPayContract.Model model, OrderPayContract.View rootView) {
super(model, rootView);
......@@ -139,7 +146,6 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
@Override
public void onItemClick(PayMethod datasBean, int position) {
mBillMoneyAdapter.setSelect_position(position);
mBillMoneyAdapter.notifyDataSetChanged();
}
......@@ -179,20 +185,16 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
}
/**
* 修改訂單狀態
*
* @param //orderId 訂單號
* @param //person 人數
* @param statius 訂單狀態 4 已結賬
* 結賬
*/
public void updateOrderState(String statius, boolean show) {
public void toOrderPay(boolean show) {
RequestBody requestBody = new FormBody.Builder()
.add("orderId", MyOrderManage.getInstance().getOrderId() + "")
.add("person", OpenTableManage.getDefault().getPeopleNumber() + "")
.add("status", statius)
.add("orderPayType", mBillMoneyList.get(0).getId() + "")
.add("orderPayType",String.valueOf(orderPayType))
.add("payType", String.valueOf(mBillMoneyList.get(0).getId()))
.add("orderId", String.valueOf(MyOrderManage.getInstance().getOrderId()))
.add("amount", String.valueOf(getTotalMoney()))
.build();
mModel.updateOrderStatus(requestBody)
mModel.toOrderPay(requestBody)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> {
if (show)
......@@ -214,7 +216,7 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
});
}
private void createOrder() {
protected void createOrder() {
CreateOrderRequest request = getCreateOrderRequest(getOrderFoodLists());
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(request));
mModel.createOrder(requestBody)
......@@ -231,7 +233,7 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
if (info.getData() != null) {
setOrderId((Double) info.getData());
}
updateOrderState("4", false);
toOrderPay(false);
} else {
mRootView.showMessage("結賬失敗!");
}
......@@ -245,7 +247,7 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
});
}
private void addOrderFood() {
protected void addOrderFood() {
List<OrderDetail> foodLists = getOrderFoodLists();
for (OrderDetail food : foodLists) {
food.setOrderId(MyOrderManage.getInstance().getOrderId());
......@@ -263,7 +265,7 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
@Override
public void onNext(@NonNull BaseResult info) {
if (info != null && info.isSuccess()) {
updateOrderState("4", false);
toOrderPay(false);
} else {
mRootView.showMessage("結賬失敗!");
}
......@@ -284,21 +286,10 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
public void sendOrderPay() {
if (hasNesOrderFoods()) {
//有食品未送單 先送單
sendOrder();
sendOrder(false);
} else {
//直接結賬
updateOrderState("4", true);
}
}
/**
* 送單
*/
public void sendOrder() {
if (MyOrderManage.getInstance().getOrderId() == -1) {
createOrder();
} else {
addOrderFood();
toOrderPay(true);
}
}
......
......@@ -538,7 +538,7 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen
} else if (id == R.id.btn_meal_delete) {
mPresenter.deleteFoodItem(1);
} else if (id == R.id.btn_send_order) {
mPresenter.sendOrder();
mPresenter.sendOrder(false);
} else if (id == R.id.fl_order_content) {
Intent intent = new Intent(this, OrderContentActivity.class);
startActivityForResult(intent, ORDER_CONTENT_CODE);//如果打印成功會回調
......@@ -583,7 +583,6 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen
@Override
public void onBackPage() {
}
});
mInputNumberDialog.setValueHint("請輸入數量");
......@@ -639,7 +638,7 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen
@Override
public void OnBackClick() {
recordOperat(true);
// returnTableOrOrderManagementActivity();
returnTableActivity(true);
}
});
int backPageBtnVisibility;
......
......@@ -10,6 +10,7 @@ import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.gingersoft.gsa.cloud.aspectj.XClickUtil;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.gingersoft.gsa.cloud.table.R;
......@@ -111,6 +112,9 @@ public class FineItemOneAdapter extends DefaultAdapter<Modifier> {
@Override
public void onViewClick(View view, int position) {
if(XClickUtil.isFastDoubleClick(view,200)){
return ;
}
if (mOnItemClickListener != null) {
//设置当前选中item颜色
datasBean.setSelected(true);
......
......@@ -9,6 +9,8 @@ import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.gingersoft.gsa.cloud.aspectj.XClickUtil;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.gingersoft.gsa.cloud.table.R;
......@@ -113,6 +115,9 @@ public class FineItemTwoAdapter extends DefaultAdapter<Modifier> {
@Override
public void onClick(View v) {
if(XClickUtil.isFastDoubleClick(v,200)){
return ;
}
if (mOnItemClickListener != null) {
if (datasBean.isReturn()) {
mOnItemClickListener.onClickReturnFineItemOne();
......
......@@ -10,6 +10,8 @@ import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.gingersoft.gsa.cloud.aspectj.SingleClick;
import com.gingersoft.gsa.cloud.aspectj.XClickUtil;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.base.common.bean.TableBean;
......@@ -199,8 +201,11 @@ public class TableAdapter extends DefaultAdapter<TableBean.DataBean> {
@Override
public void onClick(View v) {
if (mOnItemClickListener != null) {
mOnItemClickListener.onItemClick(item, position);
if(XClickUtil.isFastDoubleClick(v,1000)){
return;
}
if (mOnItemClickListener != null) {
mOnItemClickListener.onItemClick(item, position);
}
}
});
......
......@@ -9,6 +9,7 @@ import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.gingersoft.gsa.cloud.aspectj.XClickUtil;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.database.bean.ComboItem;
import com.gingersoft.gsa.cloud.database.bean.Modifier;
......@@ -104,6 +105,9 @@ public class ComboAdapter extends DefaultAdapter<ComboItem> {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(XClickUtil.isFastDoubleClick(v,200)){
return true;
}
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
if (mOnItemClickListener != null) {
......
......@@ -9,6 +9,7 @@ import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.gingersoft.gsa.cloud.aspectj.XClickUtil;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.table.R;
......@@ -101,6 +102,9 @@ public class FoodAdapter extends DefaultAdapter<Food> {
setStatus(datasBean);
setOnItemClickListener((view, position1) -> {
if(XClickUtil.isFastDoubleClick(view,200)){
return;
}
resetSelect(position1, datasBean);
});
}
......
......@@ -7,6 +7,7 @@ import android.view.ViewGroup;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.gingersoft.gsa.cloud.aspectj.XClickUtil;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.table.R;
......@@ -104,6 +105,9 @@ public class FoodGroupAdapter extends DefaultAdapter<Food> {
@Override
public void onViewClick(View view, int position) {
if(XClickUtil.isFastDoubleClick(view,200)){
return;
}
if (mOnItemClickListener != null) {
for (int i = 0; i < mInfos.size(); i++) {
mInfos.get(i).setSelected(false);
......
......@@ -9,6 +9,7 @@ import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.gingersoft.gsa.cloud.aspectj.XClickUtil;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.gingersoft.gsa.cloud.database.bean.Modifier;
......@@ -100,6 +101,9 @@ public class ModifierAdapter extends DefaultAdapter<Modifier> {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(XClickUtil.isFastDoubleClick(v,200)){
return true;
}
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
if (mOnItemClickListener != null) {
......
......@@ -150,6 +150,11 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login
mRbAutoLogin.setChecked(true);
}
// if(GsaCloudApplication.getLoginToken(mContext).length() > 0){
// jumpActivity();
// finish();
// }
edAccount.setSelection(edAccount.getText().toString().length() );
edPwd.setOnFocusChangeListener(mOnFocusChangeListener);
edAccount.setOnFocusChangeListener(mOnFocusChangeListener);
edPwd.addTextChangedListener(new TextWatcher() {
......
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