Commit 4381be7d by 宁斌

1、支付接口數據調整 2、清機報表部分詳情

parent 3b95b40b
......@@ -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,15 @@ public interface SettlementReportContract {
//对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
interface View extends IView {
void setSettlementReportItemAdapter(DefaultAdapter adapter);
// void returnSettlementData(SettlementResult.DatasBean datasBean);
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
......@@ -8,4 +11,303 @@ package com.gingersoft.gsa.cloud.main.mvp.model.bean;
* 描述:
*/
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.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,8 +3,12 @@ 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.ui.activity.SettlementReportActivity;
import com.gingersoft.gsa.cloud.main.mvp.ui.adapter.SettlementReportItemAdapter;
......@@ -15,7 +19,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;
......@@ -57,7 +63,7 @@ public class SettlementReportPresenter extends BasePresenter<SettlementReportCon
private SettlementReportActivity IActivity;
private SettlementReportItemAdapter reportItemAdapter;
private List<SettlementReportItem> mList;
private List<SettlementReportItem> mList= new ArrayList<>();
@Inject
public SettlementReportPresenter(SettlementReportContract.Model model, SettlementReportContract.View rootView) {
......@@ -74,10 +80,8 @@ 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);
}
......@@ -92,7 +96,6 @@ public class SettlementReportPresenter extends BasePresenter<SettlementReportCon
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,7 +112,7 @@ 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 {
//還有檯未結賬
......@@ -123,7 +126,6 @@ public class SettlementReportPresenter extends BasePresenter<SettlementReportCon
}
}
});
}
......
......@@ -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));
}
}
......@@ -9,9 +9,12 @@ 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.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.DaggerSettlementReportComponent;
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.ui.widget.dialog.LoadingDialog;
import com.jess.arms.base.BaseActivity;
import com.jess.arms.base.DefaultAdapter;
......@@ -24,6 +27,9 @@ import com.qmuiteam.qmui.widget.QMUITopBar;
import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
import java.util.ArrayList;
import java.util.List;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
......@@ -53,8 +59,12 @@ public class SettlementReportActivity extends BaseActivity<SettlementReportPrese
@BindView(R2.id.topbar)
QMUITopBar mTopBar;
@BindView(R2.id.tv_name)
TextView tv_name;
@BindView(R2.id.tv_restaurant_name)
TextView tv_restaurant_name;
@BindView(R2.id.tv_business_area_title)
TextView tv_business_area_title;
@BindView(R2.id.tv_last_time)
TextView tv_last_time;
@BindView(R2.id.tv_start_time)
TextView tv_start_time;
@BindView(R2.id.tv_end_time)
......@@ -62,6 +72,10 @@ public class SettlementReportActivity extends BaseActivity<SettlementReportPrese
@BindView(R2.id.rv_settlement_report_item)
RecyclerView rv_settlement_report_item;
@BindView(R2.id.rv_settlement_report_item2)
RecyclerView rv_settlement_report_item2;
private SettlementReport.DataBean mSettlementReportBean;
@Override
public void setupActivityComponent(@NonNull AppComponent appComponent) {
......@@ -81,11 +95,16 @@ public class SettlementReportActivity extends BaseActivity<SettlementReportPrese
@Override
public void initData(@Nullable Bundle savedInstanceState) {
mPresenter.initAdapter();
}
@Override
public void initIntent() {
Intent intent = getIntent();
mSettlementReportBean = (SettlementReport.DataBean) intent.getSerializableExtra("settlementReportBean");
if (mSettlementReportBean != null) {
returnSettlementData(mSettlementReportBean);
}
}
@Override
......@@ -123,7 +142,7 @@ public class SettlementReportActivity extends BaseActivity<SettlementReportPrese
@Override
public void initLanguage() {
String restaurantName = GsaCloudApplication.getRestaurantName(this);
tv_name.setText(LanguageUtils.get_language_system(this, "store.name", "店鋪名稱") + " : " + restaurantName);
tv_restaurant_name.setText(LanguageUtils.get_language_system(this, "store.name", "店鋪名稱") + " : " + restaurantName);
}
......@@ -174,6 +193,90 @@ public class SettlementReportActivity extends BaseActivity<SettlementReportPrese
rv_settlement_report_item.setAdapter(adapter);
}
@Override
public void returnSettlementData(SettlementReport.DataBean datasBean) {
List<SettlementReportItem> settlementReportItems = new ArrayList<>();
String dailyBusinessReportText = LanguageUtils.get_language_system(this, "", "每日營業報表");
String ByBusinessDateText = LanguageUtils.get_language_system(this, "", "由營業日期:");
String toBusinessDateText = LanguageUtils.get_language_system(this, "", "到營業日期:");
String headcountOrAverageConsumptionText = LanguageUtils.get_language_system(this, "", "統計:");
String projectTotalSalesText = LanguageUtils.get_language_system(this, "total.project.sales", "項目銷售總額");
String orderCountallText = LanguageUtils.get_language_system(this, "order.countall_litter", "賬單小數");
String netTurnoverText = LanguageUtils.get_language_system(this, "net.turnover", "營業金額淨值");
String cashAuditText = LanguageUtils.get_language_system(this, "cash.audit", "現金核數");
String analysisStatisticsText = LanguageUtils.get_language_system(this, "analysis.statistics", "分析統計");
String totalbillAmountText = LanguageUtils.get_language_system(this, "total.bill.amount", "賬單金額總數");
String numberBillsOrAverageText = LanguageUtils.get_language_system(this, "number.bills.or.average", "賬單數目/平均");
String HeadcountAndAverageConsumptionText = LanguageUtils.get_language_system(this, "headcount.or.average.consumption", "人數/平均消費");
String billStatusText = LanguageUtils.get_language_system(this, "", "賬單現況");
String outstandingBillText = LanguageUtils.get_language_system(this, "", "未完成賬單");
String billsReceivedText = LanguageUtils.get_language_system(this, "", "已收款賬單");
String cumulativeTurnoverMonthText = LanguageUtils.get_language_system(this, "", "本月累計營業額");
String netOperatingValueText = LanguageUtils.get_language_system(this, "", "營業金額凈值");
String endReportText = LanguageUtils.get_language_system(this, "", "報表完結");
String readersText = LanguageUtils.get_language_system(this, "", "讀取人員");
SettlementReport.DataBean.RestaurantOperationBean restaurantOperationBean = datasBean.getRestaurantOperation();
if (restaurantOperationBean != null) {
tv_business_area_title.setText(dailyBusinessReportText);
tv_start_time.setText(ByBusinessDateText + TimeUtils.getStringByFormat(restaurantOperationBean.getOpenTime(), TimeUtils.dateFormatYMDHMS));
tv_end_time.setText(toBusinessDateText + TimeUtils.getStringByFormat(restaurantOperationBean.getOperationTime(), TimeUtils.dateFormatYMDHMS));
}
SettlementReport.DataBean.VoBean voBean = datasBean.getVo();
if (voBean != null) {
settlementReportItems.add(new SettlementReportItem(projectTotalSalesText, "", "$" + voBean.getPrices()));
settlementReportItems.add(new SettlementReportItem(netTurnoverText, "", "$" + voBean.getPrices()));
settlementReportItems.add(new SettlementReportItem("", "", ""));
if (voBean.getPayNum()> 0) {
String creditCardText = LanguageUtils.get_language_system(this, "credit.card", "信用卡");
SettlementReportItem printItem = new SettlementReportItem(creditCardText, String.valueOf(voBean.getPayNum()), "$" + voBean.getPayamount());
settlementReportItems.add(printItem);
}
settlementReportItems.add(new SettlementReportItem("", "", ""));
settlementReportItems.add(new SettlementReportItem(cashAuditText, "", ""));
/**現金詳情*/
settlementReportItems.add(new SettlementReportItem("", "", ""));
String cashDetailText = LanguageUtils.get_language_system(this, "credit.cash.detail", "現金詳情");
String cashText = LanguageUtils.get_language_system(this, "credit.cash", "現金");
settlementReportItems.add(new SettlementReportItem("", cashDetailText, ""));
settlementReportItems.add(new SettlementReportItem(cashText, "", ""));
//統計
settlementReportItems.add(new SettlementReportItem(headcountOrAverageConsumptionText, "", ""));
/**分析統計*/
settlementReportItems.add(new SettlementReportItem("", "", ""));
settlementReportItems.add(new SettlementReportItem("", cashDetailText, ""));
settlementReportItems.add(new SettlementReportItem(cashText, "", ""));
settlementReportItems.add(new SettlementReportItem(numberBillsOrAverageText, "", ""));
settlementReportItems.add(new SettlementReportItem(HeadcountAndAverageConsumptionText, "", ""));
/**賬單現況*/
// settlementReportItems.add(new SettlementReportItem("", "", ""));
// settlementReportItems.add(new SettlementReportItem("", cashDetailText, ""));
/**本月累計營業額*/
settlementReportItems.add(new SettlementReportItem("", "", ""));
settlementReportItems.add(new SettlementReportItem("", cashDetailText, ""));
/**報表完結*/
settlementReportItems.add(new SettlementReportItem("", "", ""));
settlementReportItems.add(new SettlementReportItem("", cashDetailText, ""));
}
List<SettlementReport.DataBean.AnalysisBean> analysisBeanList = datasBean.getAnalysis();
mPresenter.notifyDataSetChanged(settlementReportItems);
}
public void setSettlementReportItemRecycleLayoutManager() {
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);
rv_settlement_report_item.setLayoutManager(linearLayoutManager);
......
......@@ -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"
......
......@@ -16,6 +16,16 @@
android:orientation="vertical"
android:layout_marginTop="?attr/qmui_topbar_height">
<TextView
android:id="@+id/tv_last_time"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="@dimen/dp_5"
android:textColor="@color/red"
android:textSize="@dimen/sp_16"
android:gravity="center"
android:text="上次清機時間:2020-3-1 21:59:18"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
......@@ -23,7 +33,15 @@
android:orientation="vertical">
<TextView
android:id="@+id/tv_name"
android:id="@+id/tv_restaurant_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/black"
android:textSize="@dimen/sp_16"
android:text="店鋪名稱:gingersoft"/>
<TextView
android:id="@+id/tv_business_area_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/black"
......@@ -55,12 +73,31 @@
android:background="@color/theme_grey_color"
android:layout_marginTop="@dimen/dp_8"/>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_settlement_report_item"
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="@null"
android:fadeScrollbars="false"/>
android:layout_height="wrap_content"
android:fillViewport="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_settlement_report_item"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="@null"
android:fadeScrollbars="false"/>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_settlement_report_item2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="@null"
android:fadeScrollbars="false"/>
</LinearLayout>
</ScrollView>
</LinearLayout>
<com.qmuiteam.qmui.alpha.QMUIAlphaButton
......
......@@ -60,7 +60,12 @@ public class OrderDetail implements Serializable {
private int ComboLevel = 0;
//套餐食品是否自動跟餐
private boolean isComboAuto = false;
//層級
/***
* 層級
* 1#主食品
* 2#子項or細項
* 3#細項
*/
private int itemType;
/**
* ID
......@@ -553,7 +558,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,10 +4,13 @@ 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.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.base.common.bean.OrderDetail;
......@@ -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;
......@@ -66,6 +73,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;
......@@ -88,6 +97,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);
......@@ -102,6 +113,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();
......@@ -181,10 +196,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())
......@@ -204,7 +219,6 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
});
}
public void changeNumber(int number) {
if (!changeNumberCondition(number)) {
return;
......@@ -237,6 +251,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
......@@ -292,10 +334,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;
}
......@@ -351,7 +395,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;
......@@ -478,8 +522,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);
}
......@@ -414,7 +418,6 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
}
});
//打印上菜紙
// CC.obtainBuilder("Component.Print")
// .setActionName("printActivity")
......@@ -480,15 +483,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("是否確認刪除該食品?");
......@@ -522,7 +517,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
if (!deleteFood.isNew()) {
//TODO 刪除已下單食品
deleteWithOrderedFoodById(deleteFood.getId());
deleteWithOrderedFoodById();
} else {
if (deleteStyle == 2) {
mSelectMealAdapter.removeAllNewFoodItem();
......@@ -585,7 +580,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);
}
......@@ -635,7 +630,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);
......@@ -771,6 +765,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);
}
}
/**
* 標識食品是否为组合食品
*
......@@ -798,17 +799,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);
......@@ -833,6 +893,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.OrderBean;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
......@@ -105,12 +106,19 @@ 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:
//送單
sendOrder(false);
break;
case 1:
if (getFoodCount() == 0) {
showTipDialog(IActivity, "沒有食品,不能印單");
return;
}
//打印
sendOrder(true);
break;
......@@ -130,7 +138,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)
......@@ -168,7 +176,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());
......@@ -198,12 +206,12 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
if (isPrint) {
printOrder(OpenTableManage.getDefault().getTableBean().getId());
} else {
if(!hasNesOrderFoods()){
if (!hasNesOrderFoods()) {
//TODO 未新增食品點擊送單 後台不讓過直接提示即可
mRootView.showMessage("送單成功");
printSendOrder(foodLists);
mRootView.sendSuccess();
}else {
} 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()
......@@ -282,19 +290,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);
}
}
......
......@@ -537,7 +537,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);//如果打印成功會回調
......@@ -582,7 +582,6 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen
@Override
public void onBackPage() {
}
});
mInputNumberDialog.setValueHint("請輸入數量");
......@@ -638,7 +637,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) {
......
......@@ -131,6 +131,7 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login
// jumpActivity();
// finish();
// }
edAccount.setSelection(edAccount.getText().toString().length() );
edPwd.setOnFocusChangeListener(mOnFocusChangeListener);
edAccount.setOnFocusChangeListener(mOnFocusChangeListener);
edPwd.addTextChangedListener(new TextWatcher() {
......@@ -326,7 +327,6 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login
if (brandsBean != null) {
saveBrandAndRestaurantInfo(brandsBean.getBrandId(), brandsBean.getBrandName(), item.getId(), item.getText());
}
dialog.dismiss();
jumpDownloadActivity();
// killMyself();
}).build();
......
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