Commit f99df214 by 宁斌

餐檯輪訓調整

parent 2abd64bd
......@@ -13,7 +13,7 @@ public class LogUtil {
//可以全局控制是否打印log日志
private static boolean isPrintLog = true;
private static int LOG_MAXLENGTH = 5000;
private static int LOG_MAXLENGTH = 10000;
private final static String TAG = "LogUtil";
public static void v(String msg) {
......
......@@ -114,6 +114,11 @@ public class ExpandInfoSetting {
}
/**
* 掃碼獲取擴展類信息
* @param obj
* @return
*/
private static List<ExpandInfoSetting> scanExtendedConfiguration(Object obj) {
List<ExpandInfoSetting> expandInfoList = new ArrayList<>();
......
......@@ -74,15 +74,15 @@ public class MyResponseErrorListener implements ResponseErrorListener {
showloggedDialog(activity, ArmsUtils.getString(context, R.string.response_error_request_logged));
}
} else {
if (httpException.code() == 400) {
//Bad Request
Activity activity = GsaCloudApplication.getAppContext().getCurrentActivity();
if (activity == null || !activity.getClass().getSimpleName().equals("LoginActivity")) {
//不处于登录页面 返回到登录页
ArmsUtils.killAll();
toLoginActivity(activity);
}
}
// if (httpException.code() == 400) {
// //Bad Request
// Activity activity = GsaCloudApplication.getAppContext().getCurrentActivity();
// if (activity == null || !activity.getClass().getSimpleName().equals("LoginActivity")) {
// //不处于登录页面 返回到登录页
// ArmsUtils.killAll();
// toLoginActivity(activity);
// }
// }
msg = httpException.message();
}
return msg;
......
......@@ -37,7 +37,7 @@ public class HttpsConstans {
private static String HTTP_ADDRESS_URL_FORMAL = "https://m.ricepon.com:8444";//正式服務器
private static String HTTP_ADDRESS_URL_SZ = "http://gingersoft.tpddns.cn:58201";//深圳測試
private static String HTTP_ADDRESS_URL_HK = "http://a.ricepon.com:58201";//香港測試
private static String HTTP_ADDRESS_URL_PRE = "http://prf-m.ricepon.com/";//預發佈
private static String HTTP_ADDRESS_URL_PRE = "http://prf-m.ricepon.com";//預發佈
public static String CLOUD_GSA_API_PATH = "/ricepon-cloud-gsa/api/";//雲端GSA路徑
public static String RESTAURANT_API_PATH = "/ricepon-restaurant/api/";//餐廳模塊路徑
......@@ -77,8 +77,9 @@ public class HttpsConstans {
public static String API_RICEPON_MEMBER = "/ricepon-member/api/";
//---------------------------------------打印skyorder QRCode----------------------------------------------------------------------------------
public static final String PRINT_QRCODE_ADDRESS_URL_FORMAL = "http://m.ricepon.com";
public static final String PRINT_QRCODE_SUFFIX = "/member-web/qrcode/qrcode.html?WMP0&?arg=";
public static String PRINT_QRCODE_ADDRESS = HTTP_ADDRESS_URL_HK + PRINT_QRCODE_SUFFIX;
public static String PRINT_QRCODE_ADDRESS = PRINT_QRCODE_ADDRESS_URL_FORMAL + PRINT_QRCODE_SUFFIX;
//--------------------------------------配置-----------------------------------------------------------------------------------
......@@ -207,7 +208,7 @@ public class HttpsConstans {
ricepon_cloud_gsa = HttpsConstans.ROOT_URL + HttpsConstans.CLOUD_GSA_API_PATH;
ricepon_member = HttpsConstans.ROOT_URL + API_RICEPON_MEMBER;
PRINT_QRCODE_ADDRESS = ROOT_SERVER + PRINT_QRCODE_SUFFIX;
// PRINT_QRCODE_ADDRESS = PRINT_QRCODE_ADDRESS_URL_FORMAL + PRINT_QRCODE_SUFFIX;
}
public static String ricepon_wechat;
......
......@@ -8,5 +8,4 @@ package com.gingersoft.gsa.cloud.print.bean;
* */
public interface PrintContent {
}
package com.gingersoft.gsa.cloud.database.bean;
import androidx.annotation.NonNull;
import org.greenrobot.greendao.annotation.Entity;
import org.greenrobot.greendao.annotation.Id;
import org.greenrobot.greendao.annotation.Property;
......@@ -18,7 +20,7 @@ import org.greenrobot.greendao.annotation.Generated;
*/
@Data
@Entity
public class Discount {
public class Discount implements Cloneable {
/**
......@@ -180,10 +182,40 @@ public class Discount {
this.endTime = endTime;
}
@Generated(hash = 1777606421)
public Discount() {
}
public Discount(Discount discount) {
this.id = discount.id;
this.restaurantId = discount.restaurantId;
this.amount = discount.amount;
this.discountValue = discount.discountValue;
this.type = discount.type;
this.discountType = discount.discountType;
this.status = discount.status;
this.remark = discount.remark;
this.freeServiceCharge = discount.freeServiceCharge;
this.managerApproval = discount.managerApproval;
this.color = discount.color;
this.placeOrderType = discount.placeOrderType;
this.discountCap = discount.discountCap;
this.salesAmount = discount.salesAmount;
this.taxFree = discount.taxFree;
this.exclusive = discount.exclusive;
this.pause = discount.pause;
this.additionalDiscount = discount.additionalDiscount;
this.onlyOnce = discount.onlyOnce;
this.minBillAmount = discount.minBillAmount;
this.pointsDeduction = discount.pointsDeduction;
this.wholeFreePoints = discount.wholeFreePoints;
this.amountTypeMin = discount.amountTypeMin;
this.beginTime = discount.beginTime;
this.endTime = discount.endTime;
this.memberId = discount.memberId;
this.discountRecordId = discount.discountRecordId;
}
public Long getId() {
return this.id;
......@@ -390,6 +422,14 @@ public class Discount {
}
@NonNull
@Override
public Discount clone() {
try {
return (Discount) super.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return new Discount(this);
}
}
......@@ -18,7 +18,7 @@ public class PrintCurrencyBean implements Serializable {
private String name;
private Integer restaurantId;
private int type;//1堂食,2外賣
private int type;//1堂食,2外賣,3skyorder
private int foodComplexion;//食品顔色 0 黑色 2 紅色
private int modifierComplexion;//細項顔色 0 黑色 2 紅色
private int deletes;//是否刪除 0 正常 1 刪除
......
......@@ -8,7 +8,6 @@ import com.gingersoft.gsa.cloud.constans.AppConstans
import com.gingersoft.gsa.cloud.constans.HttpsConstans
import com.gingersoft.gsa.cloud.constans.HttpsConstans.ROOT_SERVER
import com.gingersoft.gsa.cloud.constans.HttpsConstans.URK_RICEPON_GSA
import com.gingersoft.gsa.cloud.config.globalconfig.applyOptions.intercept.LoggingInterceptor
import com.jess.arms.utils.DeviceUtils
import okhttp3.Headers
import okhttp3.Interceptor
......
......@@ -206,7 +206,7 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
}
}
}
confirmOrder(orderDetail, 2, trafficType, restaurantId, isPrintPrj = true, isPrintBill = false) {
confirmOrder(orderDetail, 2, trafficType, restaurantId, isPrintPrj = true, isPrintBill = true) {
//確認之後,刷新列表
refreshState.postValue(0)
}
......@@ -390,7 +390,6 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
})
}
fun confirmOrder(dataBean: OrderDetails.DataBean, status: Int, trafficType: String = "", restaurantId: Int, isPrintPrj: Boolean = true, isPrintBill: Boolean = true, listener: (MessageBean) -> Unit) {
launch({
when (dataBean.companyType) {
......
......@@ -59,7 +59,6 @@
<meta-data
android:name="design_height_in_dp"
android:value="640" />
<meta-data
android:name="android.max_aspect"
android:value="2.4" />
......
package com.gingersoft.gsa.cloud.base.order.bean.response;
import android.os.Parcel;
import android.os.Parcelable;
import java.io.Serializable;
import lombok.Data;
/**
......@@ -12,7 +11,7 @@ import lombok.Data;
* @description:
*/
@Data
public class OrderDiscountResponse implements Parcelable {
public class OrderDiscountResponse implements Serializable {
/**
* 餐廳折扣ID
......@@ -42,55 +41,13 @@ public class OrderDiscountResponse implements Parcelable {
/**
* 优惠券折扣相关
*/
// 消費滿
/**
* 消費滿
*/
private Double spend;
/**
* 是否累計滿減:0否,1是
*/
private Byte accumulate;
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeValue(this.discountId);
dest.writeDouble(this.discountAmount);
dest.writeInt(this.discountValue);
dest.writeInt(this.type);
dest.writeByte(this.discountType);
dest.writeString(this.remark);
dest.writeString(this.remark2);
dest.writeString(this.remark3);
dest.writeValue(this.spend);
dest.writeValue(this.accumulate);
}
protected OrderDiscountResponse(Parcel in) {
this.discountId = (Long) in.readValue(Long.class.getClassLoader());
this.discountAmount = in.readDouble();
this.discountValue = in.readInt();
this.type = in.readInt();
this.discountType = in.readByte();
this.remark = in.readString();
this.remark2 = in.readString();
this.remark3 = in.readString();
this.spend = (Double) in.readValue(Double.class.getClassLoader());
this.accumulate = (Byte) in.readValue(Byte.class.getClassLoader());
}
public static final Creator<OrderDiscountResponse> CREATOR = new Creator<OrderDiscountResponse>() {
@Override
public OrderDiscountResponse createFromParcel(Parcel source) {
return new OrderDiscountResponse(source);
}
@Override
public OrderDiscountResponse[] newArray(int size) {
return new OrderDiscountResponse[size];
}
};
}
......@@ -1222,7 +1222,7 @@ public class OrderDetail implements Commodity, Serializable {
public static OrderDetail modifierTransOrderDetail(Modifier modifier, long id, long productId, int number) {
OrderDetail orderDetail = new OrderDetail();
orderDetail.setProductName(modifier.getModifierName());
modifier.getKtPrintMainItem();
orderDetail.setKtPrintMainItem(modifier.getKtPrintMainItem());
orderDetail.setTopId(modifier.getTopId());
orderDetail.setParentId(id);
orderDetail.setProductId(modifier.getMid());
......
......@@ -152,7 +152,18 @@ public class PrintPrjKitchen extends PrinterRoot {
}
if (TextUtil.isEmptyOrNullOrUndefined(prjBean.getTableName())) {
layoutOpenTableTime.setVisibility(View.GONE);
if (prjBean.getOrderType() == 7) {
switch (prjBean.getOrderType()) {
case 1:
case 3:
tvTableNumber.setText("堂食");
tvTableNumber2.setText("堂食");
if (!TextUtil.isEmptyOrNullOrUndefined(prjBean.getTakeFoodCode())) {
tvTakeCodeText.setVisibility(View.VISIBLE);
tvTakeCode.setVisibility(View.VISIBLE);
tvTakeCode.setText(prjBean.getTakeFoodCode());
}
break;
case 7:
tvTableNumber.setText("自取");
tvTableNumber2.setText("自取");
if (!TextUtil.isEmptyOrNullOrUndefined(prjBean.getTakeFoodCode())) {
......@@ -160,11 +171,13 @@ public class PrintPrjKitchen extends PrinterRoot {
tvTakeCode.setVisibility(View.VISIBLE);
tvTakeCode.setText(prjBean.getTakeFoodCode());
}
} else {
break;
default:
tvTableNumber.setText("外賣");
tvTableNumber2.setText("外賣");
tvOrderNumberText.setText("訂單碼:");
tvOrderNumber.setText(prjBean.getTakeFoodCode());
break;
}
} else {
tvTableNumber.setText(prjBean.getTableName());
......
......@@ -462,8 +462,8 @@ public class PrjService extends Service implements ReceiveListener {
private PrintCurrencyBean getPrintCurrencyBean(List<PrjBean.DataBean.Bean> beans) {
PrintCurrencyBean printCurrencyBean = null;
if (beans != null && beans.size() > 0) {
if (beans.get(0).getOrderType() == 1) {
//堂食
if (beans.get(0).getOrderType() == 1 || beans.get(0).getOrderType() == 3 ) {
//堂食,skyorder
printCurrencyBean = MyPrintUtils.getPrintCurrencyBeanByType(mContext, 1);
} else {
//外賣
......
......@@ -33,7 +33,7 @@ public class MyPrintUtils {
* 通過類型獲取打印通用配置
*
* @param context
* @param type 1:堂食,2:外送
* @param type 1:堂食,2:外送,3:skyorder下單
* @return
*/
public static PrintCurrencyBean getPrintCurrencyBeanByType(Context context, int type) {
......
......@@ -155,8 +155,14 @@ public class TableBean {
*/
private long summaryId;
/**
* scan表ID
*/
private Long scanId;
public DataBean() {
}
public DataBean(DataBean dataBean) {
......@@ -183,6 +189,7 @@ public class TableBean {
this.tableNumber = dataBean.tableNumber;
this.skyQrCode = dataBean.skyQrCode;
this.summaryId = dataBean.summaryId;
this.scanId = dataBean.scanId;
}
}
......
......@@ -11,6 +11,7 @@ import com.gingersoft.gsa.cloud.table.mvp.ui.activity.orderManager.OrderCenterAc
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.OrderPayActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.TableActivity;
public class ComponentTable implements IComponent {
public static final class table {
......@@ -19,6 +20,7 @@ public class ComponentTable implements IComponent {
*/
public static final FModule[] bottom = {
new FModule("table/bottom/init", R.mipmap.table_init, 0),
new FModule("table/bottom/initSkyorder", R.mipmap.table_paper, 0),
new FModule("table/bottom/move", R.mipmap.table_move, 0),
new FModule("table/bottom/skyorder", 0, 0),
new FModule("table/bottom/splite", R.mipmap.table_splite, 0),
......
......@@ -64,6 +64,8 @@ public interface TableContract {
void setBottomFunctionVisibility(boolean show);
void setLockVisibility(boolean show);
void setCenterContentMarginBottom(int bottomMargin);
}
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
......@@ -85,6 +87,8 @@ public interface TableContract {
Observable<BaseOrderResponse> initTable(RequestBody requestBody);
Observable<BaseResult> resetSkyorder(RequestBody requestBody);
Observable<BaseResult> getSplitTables(int tableId);
Observable<BaseResult> splitTable(int tableId);
......
......@@ -101,7 +101,8 @@ public class OrderContentModel extends BaseModel implements OrderContentContract
for (Object o : tm.keySet()) {
String key = (String) o;
if (key.equals("id")) {
DoshokuOrder.getInstance().setOrderId((long) tm.get(key));
double orderId = (double) tm.get(key);
DoshokuOrder.getInstance().setOrderId((long) orderId);
} else if (key.equals("orderNo")) {
DoshokuOrder.getInstance().setOrderNo((String) tm.get(key));
}
......
......@@ -107,6 +107,12 @@ public class TableModel extends BaseModel implements TableContract.Model {
}
@Override
public Observable<BaseResult> resetSkyorder(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(TableService.class)
.resetSkyorder(requestBody);
}
@Override
public Observable<BaseResult> getSplitTables(int tableId) {
return mRepositoryManager.obtainRetrofitService(TableService.class)
.getSplitTables(tableId);
......
......@@ -25,7 +25,7 @@ public class FoodSummary {
/**
* 用餐時長
*/
private int mealLength = 120;
private long diningTime = 120;
public static final byte BUSINESS_TYPE_TAKEWAY = 1;
public static final byte BUSINESS_TYPE_SKYORDER = 2;
......
......@@ -27,9 +27,19 @@ public class AddOrderRequest {
private long tableId;
private String tableNumber;
/**
* 合計金額
*/
/**
* 服務費
*/
/**
* 賬單小數
*/
private Double rounding;
/**
* 總金額
*/
private List<OrderDiscountRequest> discountDetails;
private Map<String, List<OrderResponse.OrderDetailsBean>> maps;
private List<DeleteOrderRequest> deleteOrders;
......
......@@ -25,6 +25,8 @@ public class CreateOrderRequest {
private int restaurantId;
/**賬單小數*/
private Double rounding;
/**scan表ID*/
private Long scanId;
private List<OrderDiscountRequest> discountDetails;
private Map<String, List<OrderResponse.OrderDetailsBean>> orderDetails;
......
......@@ -74,7 +74,7 @@ public class BillDiscountAction implements Strategy<Discount> {
exclusiveDiscount(discount);
return;
} else {
if (discount.getExclusive() == 1 && mNomalDiscountList.size()>0) {
if (discount.getExclusive() == 1 && mNomalDiscountList.size() > 0) {
//獨佔折扣
exclusiveDiscount(discount);
return;
......@@ -91,7 +91,7 @@ public class BillDiscountAction implements Strategy<Discount> {
//
// break;
default:
mListener.preformAddDiscount(discount);
mListener.preformAddDiscount(discount.clone());
break;
}
}
......@@ -149,7 +149,7 @@ public class BillDiscountAction implements Strategy<Discount> {
if (exclusiveReplace) {
mListener.exclusiveRemoveOthers(mNomalDiscountList);
}
mListener.preformAddDiscount(discount);
mListener.preformAddDiscount(discount.clone());
}
}
});
......@@ -171,7 +171,7 @@ public class BillDiscountAction implements Strategy<Discount> {
if (exclusiveReplace) {
mListener.exclusiveRemoveOthers(mNomalDiscountList);
}
mListener.preformAddDiscount(discount);
mListener.preformAddDiscount(discount.clone());
}
}
})
......@@ -199,7 +199,7 @@ public class BillDiscountAction implements Strategy<Discount> {
// break;
default:
mListener.exclusiveRemoveOthers(mNomalDiscountList);
mListener.preformAddDiscount(discount);
mListener.preformAddDiscount(discount.clone());
break;
}
}
......
......@@ -2,6 +2,7 @@ package com.gingersoft.gsa.cloud.table.mvp.model.discount;
import android.app.Activity;
import android.text.InputType;
import com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.base.order.discount.MultyDiscount;
import com.gingersoft.gsa.cloud.base.utils.MoneyUtil;
......@@ -10,6 +11,7 @@ import com.gingersoft.gsa.cloud.patterns.Strategy;
import com.gingersoft.gsa.cloud.table.mvp.ui.widget.KeyboardDialog;
import com.gingersoft.gsa.cloud.ui.widget.dialog.CommonTipDialog;
import com.jess.arms.utils.ArmsUtils;
import java.util.List;
/**
......@@ -75,13 +77,13 @@ public class MealDiscountAction implements Strategy<Discount> {
showCustomAmountDialog(discount, false);
break;
case Discount.DISCOUNT_TYPE_KEYBOARD:
showKeyboardDialog(discount,false);
showKeyboardDialog(discount, false);
break;
// case Discount.DISCOUNT_TYPE_FREE_SERVICE_CHARGE:
//
// break;
default:
mListener.preformAddDiscount(discount);
mListener.preformAddDiscount(discount.clone());
break;
}
}
......@@ -140,7 +142,7 @@ public class MealDiscountAction implements Strategy<Discount> {
if (exclusiveReplace) {
mListener.exclusiveRemoveOthers();
}
mListener.preformAddDiscount(discount);
mListener.preformAddDiscount(discount.clone());
}
}
});
......@@ -162,7 +164,7 @@ public class MealDiscountAction implements Strategy<Discount> {
if (exclusiveReplace) {
mListener.exclusiveRemoveOthers();
}
mListener.preformAddDiscount(discount);
mListener.preformAddDiscount(discount.clone());
}
}
})
......@@ -190,7 +192,7 @@ public class MealDiscountAction implements Strategy<Discount> {
// break;
default:
mListener.exclusiveRemoveOthers();
mListener.preformAddDiscount(discount);
mListener.preformAddDiscount(discount.clone());
break;
}
}
......
......@@ -36,6 +36,9 @@ public interface TableService {
@POST("restaurantTable/set/status" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseOrderResponse> initTable(@Body RequestBody requestBody);
@POST("restaurantTable/skyOrderReset" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> resetSkyorder(@Body RequestBody requestBody);
@GET("restaurantTable/getSplitTableAvailable" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> getSplitTables(@Query("tableId") int tableId);
......
......@@ -31,14 +31,14 @@ import java.util.List;
* 修订历史:2020-09-23
* 描述:餐檯模式-打印skyorder碼{@link com.gingersoft.gsa.cloud.table.mvp.ui.activity.TableActivity}
*/
public class PrintSkyOrderAction extends TableAction {
public class PrintSkyorderAction extends TableAction {
private TablePresenter mTablePresenter;
private SkyOrderDialog mSkyOrderDialog;
private static final byte PRINT_type = 2;
public PrintSkyOrderAction(Activity context, TablePresenter tablePresenter) {
public PrintSkyorderAction(Activity context, TablePresenter tablePresenter) {
super(context, "打印skyorder", "請選擇檯號", "");
this.mTablePresenter = tablePresenter;
}
......@@ -122,6 +122,7 @@ public class PrintSkyOrderAction extends TableAction {
.build()
.callAsyncCallbackOnMainThread((cc, result) -> {
if (result.isSuccess()) {
printSkyorderSuccess();
} else {
ArmsUtils.makeText(mContext, "打印失敗");
}
......
package com.gingersoft.gsa.cloud.table.mvp.model.table.action;
import android.app.Activity;
import com.gingersoft.gsa.cloud.base.table.bean.TableBean;
import com.gingersoft.gsa.cloud.table.R;
import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-09-23
* 修订历史:2020-09-23
* 描述:餐檯模式-重置skyorder餐檯{@link com.gingersoft.gsa.cloud.table.mvp.ui.activity.TableActivity}
*/
public class ResetSkyorderAction extends TableAction {
public ResetSkyorderAction(Activity context) {
super(context, "重置Skyorder", "請選擇需要重置的檯號", "");
}
@Override
public void action(TableBean.DataBean dataBean) {
setOperatContentText(dataBean.getTableName());
if (dataBean.getSplitStatus() == 1) {
showSplitTableDialogAction();
} else {
showActionTipDialog(dataBean);
}
}
@Override
public boolean filterTableCondition(TableBean.DataBean dataBean) {
return dataBean.getStatus() != 0;
}
@Override
public void destroy() {
}
public void showActionTipDialog(TableBean.DataBean dataBean) {
QMUIDialog.MessageDialogBuilder dialogBuilder = new QMUIDialog.MessageDialogBuilder(mContext);
dialogBuilder.setTitleIcon(R.drawable.qmui_icon_dialog_doubt);
dialogBuilder.setMessage("是否確認重置" + dataBean.getTableName() + "號檯Skyorder?");
dialogBuilder.addAction(0, "確認", QMUIDialogAction.ACTION_PROP_NEGATIVE, new QMUIDialogAction.ActionListener() {
@Override
public void onClick(QMUIDialog dialog, int index) {
dialog.dismiss();
resetSkyTable(dataBean);
}
});
dialogBuilder.addAction("取消", new QMUIDialogAction.ActionListener() {
@Override
public void onClick(QMUIDialog dialog, int index) {
dialog.dismiss();
cancel();
}
});
dialogBuilder.create(R.style.MyDialogTheme2).show();
}
}
......@@ -53,27 +53,33 @@ public abstract class TableAction implements Strategy<TableBean.DataBean> {
}
}
protected void resetSkyTable(TableBean.DataBean tableBean) {
if (actionListener != null) {
actionListener.resetSkyTable(tableBean);
}
}
protected void moveTable(TableBean.DataBean tableBean) {
if (actionListener != null) {
actionListener.moveTable(tableBean);
}
}
protected void showSplitTableDialogAction() {
protected void printSkyorderSuccess() {
if (actionListener != null) {
actionListener.showSplitTableDialogAction();
actionListener.printSkyorderSuccess();
}
}
protected void splitTableAction(TableBean.DataBean tableBean) {
protected void showSplitTableDialogAction() {
if (actionListener != null) {
actionListener.splitTableAction(tableBean);
actionListener.showSplitTableDialogAction();
}
}
protected void printQRCodeSuccess() {
protected void splitTableAction(TableBean.DataBean tableBean) {
if (actionListener != null) {
actionListener.printQRCodeSuccess();
actionListener.splitTableAction(tableBean);
}
}
......@@ -94,11 +100,13 @@ public abstract class TableAction implements Strategy<TableBean.DataBean> {
void resetTable(TableBean.DataBean tableBean);
void resetSkyTable(TableBean.DataBean tableBean);
void moveTable(TableBean.DataBean tableBean);
void splitTableAction(TableBean.DataBean tableBean);
void printQRCodeSuccess();
void printSkyorderSuccess();
void showSplitTableDialogAction();
......
......@@ -48,12 +48,15 @@ import com.jess.arms.utils.PermissionUtil;
import com.jess.arms.utils.RxLifecycleUtils;
import com.tbruyelle.rxpermissions2.RxPermissions;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.inject.Inject;
import javax.xml.xpath.XPathFunction;
import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;
......@@ -364,7 +367,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
return totalAmount;
}
})
// .subscribeOn(AndroidSchedulers.mainThread())
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<Double>() {
@Override
......@@ -938,13 +941,16 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
setChildScAbleByMainAble(newFoodList);
setChildDiscountByMainAblediscount(newFoodList);
TableBean.DataBean tableBean = mDoshokuOrder.getOpenTableInfo();
int restaurantId = GsaCloudApplication.getRestaurantId();
CreateOrderRequest request = new CreateOrderRequest();
request.setTableNumber(mDoshokuOrder.getOpenTableInfo().getTableNumber());
request.setTableNumber(tableBean.getTableNumber());
request.setOrderDetails(orderDetailBeanToFoodRequest(newFoodList));
request.setPerson(mDoshokuOrder.getOpenTableInfo().getPerson());
request.setTableId(mDoshokuOrder.getOpenTableInfo().getId());
request.setTableName(mDoshokuOrder.getOpenTableInfo().getTableName());
request.setPerson(tableBean.getPerson());
request.setTableId(tableBean.getId());
request.setTableName(tableBean.getTableName());
request.setScanId(tableBean.getScanId());
request.setRounding(getRounding());
request.setRestaurantId(restaurantId);
......
......@@ -579,34 +579,6 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
});
}
/**
* 暂时食品折扣只能有一个
*
* @return
*/
private int cutOutDiscount() {
OrderDetail mainOrderDetail1 = mSelectMealAdapter.getCurrentMainOrderDetail();
if (mainOrderDetail1 != null) {
if (mainOrderDetail1.getItemType() == 1) {
for (int i = 0; i < mOrderMealList.size(); i++) {
OrderDetail orderDetail = mOrderMealList.get(i);
if (orderDetail.getParentIndex() == mainOrderDetail1.getMyIndex() && orderDetail.getType() == OrderDetail.DISCOUNT_TYPE) {
if (!orderDetail.isNew()) {
//已送单折扣不可替换
return -100;
}
if (mOrderMealList.get(mSelectMealAdapter.getSelect_position()).getType() == OrderDetail.DISCOUNT_TYPE) {
//选中折扣 替换原有折扣防止将折扣添加到下面一个食品
mSelectMealAdapter.setSelect_position(mSelectMealAdapter.getSelect_position() - 1);
}
mSelectMealAdapter.removeItemByPosition(i);
break;
}
}
}
}
return 0;
}
/**
* 裁減掉已超出的細項
......@@ -1179,34 +1151,6 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
}
}
public void deleteOldFood() {
List<Integer> removeFoodIndex = new ArrayList<>();
//記錄删除所有已下单食品
for (int i = 0; i < getOrderFoodLists().size(); i++) {
OrderDetail myOrder = getOrderFoodLists().get(i);
if (!myOrder.isNew()) {
removeFoodIndex.add(myOrder.getMyIndex());
} else {
//未下單单食品下新加的子项 一起删除
if (removeFoodIndex.indexOf(myOrder.getParentIndex()) != -1) {
removeFoodIndex.add(myOrder.getMyIndex());
}
}
}
List<OrderDetail> orderFoodList = getOrderFoodLists();
//删除所有已下单食品下子食品
for (int i = removeFoodIndex.size() - 1; i >= 0; i--) {
int removeIndex = removeFoodIndex.get(i) - 1;
if (removeIndex > -1 && removeIndex < orderFoodList.size()) {
orderFoodList.remove(removeIndex);
}
}
if (removeFoodIndex.size() > 0) {
removeFoodIndex.clear();
mSelectMealAdapter.notifyDataSetChanged();
}
}
public void changedMealByParentId(long parentId) {
List<Food> foodList = mModel.queryDB_FoodList(parentId, BaseOrder.orderType);
mFoodAdapter.resetSelect(-1, null);
......@@ -1364,7 +1308,6 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
}
}
}
if (IActivity.getFoodGroupGridViewAdapter() != null) {
IActivity.getFoodGroupGridViewAdapter().notifyDataSetChanged();
}
......@@ -1612,6 +1555,10 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
* @return
*/
public boolean memberPointsCondition(double pointsRedeem, String foodName) {
if (mTakeawayOrder != null) {
//外賣新訂單 不需要驗證
return true;
}
MemberInfo memberInfo = mDoshokuOrder.getMemberInfo();
if (memberInfo == null) {
//当前食品需要会员积分
......@@ -1930,8 +1877,9 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
public int addMultipleModifierItems(Modifier modifierItem, int addPosition) {
int overIndex = 0;
for (int i = 0; i < mOrderMealList.size(); i++) {
if (overIndex > i)
if (overIndex > i) {
continue;
}
OrderDetail item = mOrderMealList.get(i);
if (item.getSelected() != 0) {
if (item.getItemType() == 1) {
......
......@@ -58,6 +58,8 @@ import com.jess.arms.integration.AppManager;
import com.jess.arms.utils.ArmsUtils;
import com.jess.arms.utils.RxLifecycleUtils;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.xuexiang.rxutil2.rxjava.RxJavaUtils;
import com.xuexiang.rxutil2.rxjava.task.RxAsyncTask;
import java.util.ArrayList;
import java.util.Collections;
......@@ -69,6 +71,7 @@ import javax.inject.Inject;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.annotations.NonNull;
import io.reactivex.disposables.Disposable;
import io.reactivex.functions.Consumer;
import io.reactivex.schedulers.Schedulers;
import me.jessyan.rxerrorhandler.core.RxErrorHandler;
import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber;
......@@ -106,12 +109,6 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
private List<Function> mFunctionList = new ArrayList<>();
/**
* 定时获取餐台 定时器
*/
private GetTableTimer tableTimer;
private Disposable mGetTablesDataDisposable;
/**
* 分檯弹窗
*/
private SplitTableDialog mSplitTableDialog;
......@@ -121,11 +118,14 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
*/
private BillDiscountAction mNomalDiscountAction;
private Disposable mGetTablesDataDisposable;
private Disposable mTablesPollingDisposable;
@Inject
public OrderContentPresenter(OrderContentContract.Model model, OrderContentContract.View rootView) {
super(model, rootView);
this.IActivity = (OrderContentActivity) rootView;
if (!mDoshokuOrder.isModifyOrder()) {
if (mDoshokuOrder != null && !mDoshokuOrder.isModifyOrder()) {
//转移食品可多选
mSelectMealAdapter.setSelectedMode(SelectMealAdapter.MULTIPLE_SELECTED);
}
......@@ -151,6 +151,8 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
this.mAppManager = null;
this.mImageLoader = null;
this.mApplication = null;
stopTablePolling();
}
public void initAdapter() {
......@@ -181,6 +183,11 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
if (!canPrint()) {
return;
}
if (BaseOrder.isCurrentOrderType(FoodSummaryConstans.TAKEAWAY_TYPE)) {
//TODO 外賣新訂單印單
printOrder(DoshokuOrder.getInstance().getOpenTableInfo().getId(), false);
return;
}
if (hasNesOrderFoods() || getNewDiscount() != null) {
//有未送單食品先送單
sendOrder(true, null);
......@@ -250,33 +257,33 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
if (mFunctionList.size() > 0) {
mFunctionList.clear();
}
if (BaseOrder.isCurrentOrderType(FoodSummaryConstans.RESTAURANT_MODE) && mDoshokuOrder.isModifyOrder()) {
if (BaseOrder.isCurrentOrderType(FoodSummaryConstans.RESTAURANT_MODE)) {
if (mDoshokuOrder.isModifyOrder()) {
//修改訂單隱藏送單,印單功能
mFunctionList.add(new Function("結賬", Color.parseColor("#FFFFFF"), Color.parseColor("#DC0000"), 24));
mFunctionList.add(new Function("折扣", Color.parseColor("#FFFFFF"), Color.parseColor("#008577"), 24));
} else {
List<Function> functions = FunctionManager.getDefault().getFunctionByResModule(GsaCloudApplication.getAppContext(), ComponentTable.table.class, ComponentTable.table.order, "order");
for (int i = 0; i < functions.size(); i++) {
if (functions.get(i).getParentId() == 0) {
functions.remove(i);
}
}
// List<Function> functions = FunctionManager.getDefault().getFunctionByResModule(GsaCloudApplication.getAppContext(), ComponentTable.table.class, ComponentTable.table.order, "order");
// for (int i = 0; i < functions.size(); i++) {
// if (functions.get(i).getParentId() == 0) {
// functions.remove(i);
// }
// }
// if (functions.size() > 0) {
// mFunctionList.addAll(functions);
// } else {
if (BaseOrder.isCurrentOrderType(FoodSummaryConstans.TAKEAWAY_TYPE)) {
mFunctionList.add(new Function("折扣", Color.parseColor("#FFFFFF"), Color.parseColor("#008577"), 24));
mFunctionList.add(new Function("印單", Color.parseColor("#FFFFFF"), Color.parseColor("#FF8E04"), 24));
mFunctionList.add(new Function("送單信息", Color.parseColor("#FFFFFF"), Color.parseColor("#008131"), 24));
} else {
mFunctionList.add(new Function("送單", Color.parseColor("#FFFFFF"), Color.parseColor("#008131"), 24));
mFunctionList.add(new Function("印單", Color.parseColor("#FFFFFF"), Color.parseColor("#FF8E04"), 24));
mFunctionList.add(new Function("結賬", Color.parseColor("#FFFFFF"), Color.parseColor("#DC0000"), 24));
mFunctionList.add(new Function("轉移", Color.parseColor("#FFFFFF"), Color.parseColor("#FF4B9DFA"), 24));
mFunctionList.add(new Function("折扣", Color.parseColor("#FFFFFF"), Color.parseColor("#008577"), 24));
}
// }
}
} else if (BaseOrder.isCurrentOrderType(FoodSummaryConstans.TAKEAWAY_TYPE)) {
mFunctionList.add(new Function("折扣", Color.parseColor("#FFFFFF"), Color.parseColor("#008577"), 24));
mFunctionList.add(new Function("印單", Color.parseColor("#FFFFFF"), Color.parseColor("#FF8E04"), 24));
mFunctionList.add(new Function("送單信息", Color.parseColor("#FFFFFF"), Color.parseColor("#008131"), 24));
}
}
public void setPrinterMachineName() {
......@@ -604,7 +611,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
@Override
public void onNext(@NonNull BaseResult result) {
if (result.isSuccess()) {
TableBean.DataBean tableBean = JsonUtils.parseObject(result.getData(),TableBean.DataBean.class);
TableBean.DataBean tableBean = JsonUtils.parseObject(result.getData(), TableBean.DataBean.class);
if (tableBean != null) {
if (tableBean.getUseStatus() == 0) {
String msg = "轉移到" + tableBean.getTableName() + "號檯?";
......@@ -792,7 +799,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
* @param info
*/
private void updateOrderDetails(BaseOrderResponse info) {
if (info.getData() != null) {
if (mDoshokuOrder != null && info.getData() != null) {
if (info.getData().getOrderDetails() != null) {
......@@ -906,45 +913,25 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
return true;
}
public void initGetTableTimer() {
if (tableTimer == null) {
tableTimer = new GetTableTimer(GoldConstants.refreshTime * 1000, GoldConstants.refreshTime * 1000);
}
TableActivity.isRefreshData = true;
}
public void startTableTimer() {
initGetTableTimer();
if (tableTimer != null) {
tableTimer.start();
}
}
public void cancelTableTimer() {
if (tableTimer != null) {
tableTimer.cancel();
}
}
/**
* 计时器类 定時更新餐台数据
*/
private class GetTableTimer extends CountDownTimer {
public GetTableTimer(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);// 参数依次为总时长,和计时的时间间隔
}
public void startTablePolling() {
if (mTablesPollingDisposable == null) {
mTablesPollingDisposable = RxJavaUtils.polling(GoldConstants.refreshTime)
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new Consumer<Long>() {
@Override
public void onFinish() {// 计时完毕时触发
if (IActivity.isRefreshData()) {
public void accept(Long aLong) throws Exception {
if (TableActivity.isRefreshData) {
getTables(false, null);
}
this.start();
}
});
}
}
@Override
public void onTick(long millisUntilFinished) {// 计时过程显示
public void stopTablePolling() {
if (mTablesPollingDisposable != null && !mTablesPollingDisposable.isDisposed()) {
mTablesPollingDisposable.dispose();
mTablesPollingDisposable = null;
}
}
......
......@@ -121,12 +121,12 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
if (payMethods.get(i) == null) {
payMethods.remove(i);
}
if (BuildConfig.DEBUG) {
if (i == 0) {
payMethods.get(i).setPayType(PayMethod.PAY_TYPE_INTEGRAL);
payMethods.get(i).setPayName("測試積分支付");
}
}
// if (BuildConfig.DEBUG) {
// if (i == 0) {
// payMethods.get(i).setPayType(PayMethod.PAY_TYPE_INTEGRAL);
// payMethods.get(i).setPayName("測試積分支付");
// }
// }
}
mRootView.loadPayMethodsSuccess(payMethods);
}
......
......@@ -619,7 +619,10 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
dialog.dismiss();
DoshokuOrder.getInstance().setMemberInfo(mMemberInfo);
//添加会员折扣行
mPresenter.getShoppingCart().addMultyDiscount(mPresenter.getShoppingCart().createMemberDiscount(mMemberInfo, BillItem.BILL_ITEM_NO_ORDER_STATUS));
mPresenter.getShoppingCart()
.addMultyDiscount(mPresenter.getShoppingCart()
.createMemberDiscount(mMemberInfo, BillItem.BILL_ITEM_NO_ORDER_STATUS));
useMember();
if (DoshokuOrder.getInstance().needUpdateMemberInfo()) {
......
......@@ -14,6 +14,7 @@ import android.widget.Button;
import android.widget.Chronometer;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
......@@ -22,13 +23,17 @@ import androidx.recyclerview.widget.DefaultItemAnimator;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager.widget.ViewPager;
import com.gingersoft.gsa.cloud.app.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.order.cart.ShoppingCart;
import com.gingersoft.gsa.cloud.base.order.order.BaseOrder;
import com.gingersoft.gsa.cloud.base.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.base.table.bean.TableBean;
import com.gingersoft.gsa.cloud.base.utils.VibratorUtils;
import com.gingersoft.gsa.cloud.base.utils.encryption.DESUtil;
import com.gingersoft.gsa.cloud.base.utils.log.LogUtil;
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.constans.FoodSummaryConstans;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.table.di.component.DaggerOrderContentComponent;
......@@ -187,18 +192,18 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese
@Override
public void initData(@Nullable Bundle savedInstanceState) {
initTopInfo();
initOrderBill(mPresenter.getFoodTotal(),mPresenter.getTotalAmount());
mPresenter.initTopFunctionData();
mPresenter.initAdapter();
mPresenter.initItemListener();
if (!mDoshokuOrder.isModifyOrder()) {
initTopInfo(BaseOrder.orderType);
initOrderBill(mPresenter.getFoodTotal(), mPresenter.getTotalAmount());
if (BaseOrder.isCurrentOrderType(FoodSummaryConstans.RESTAURANT_MODE) && !DoshokuOrder.getInstance().isModifyOrder()) {
//根据倒计时时间自动退出当前页面
initAutoQuit();
}
}
public void initOrderBill(double wholeAmount,double totalAmount) {
public void initOrderBill(double wholeAmount, double totalAmount) {
int foodCount = mPresenter.getFoodCount();
if (foodCount > 0) {
btn_order_count.setText(String.valueOf(foodCount));
......@@ -210,23 +215,27 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese
tv_total.setText("$" + totalAmount);
}
private void initTopInfo() {
private void initTopInfo(int orderType) {
if (orderType == FoodSummaryConstans.RESTAURANT_MODE) {
TableBean.DataBean tableInfo = mDoshokuOrder.getOpenTableInfo();
Date dd = mDoshokuOrder.getOpenTableTime();
String openTime = String.format("%tH:%tM", dd, dd);
String tableno = "";
String tableno;
if (tableInfo.getSplitStatus() != 0) {
tableno = tableInfo.getTableName().trim() + "-" + tableInfo.getTableNumber().trim();
} else {
tableno = tableInfo.getTableName();
}
btn_table.setText(tableno);
tv_time.setText("時間:" + openTime);
btn_people_num.setText(tableInfo.getPerson() + "");
tv_time.setText("時間:" + openTime);
tv_server_main.setText(GsaCloudApplication.getMemberName());
} else if (orderType == FoodSummaryConstans.TAKEAWAY_TYPE) {
btn_table.setText("外賣");
btn_people_num.setText("1");
tv_time.setText("時間:" + TimeUtils.getCurrentDate(TimeUtils.DATE_FORMAT_DATE_HM));
tv_server_main.setText("");
}
}
private void useMember() {
......@@ -356,14 +365,14 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese
@Override
public void onStartRefreshTableData() {
isRefreshData = true;
mPresenter.startTableTimer();
mPresenter.startTablePolling();
getTables(false, null);
}
@Override
public void onPauseRefreshTableData() {
isRefreshData = false;
mPresenter.cancelTableTimer();
mPresenter.stopTablePolling();
//立刻停止獲取餐檯接口
if (mPresenter.getGetTablesDataDisposable() != null && !mPresenter.getGetTablesDataDisposable().isDisposed()) {
mPresenter.getGetTablesDataDisposable().dispose();
......@@ -484,7 +493,7 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese
TableBean.DataBean tableInfo = DoshokuOrder.getInstance().getOpenTableInfo();
if (initTable && tableInfo != null && !mDoshokuOrder.isModifyOrder()) {
//通知更新餐台状态
EventBus.getDefault().post(new InitTableEvent(tableInfo.getId(),tableInfo.getTableNumber()), "initTable_status_event");
EventBus.getDefault().post(new InitTableEvent(tableInfo.getId(), tableInfo.getTableNumber()), "initTable_status_event");
}
mAppManager.killActivity(MealStandActivity.class);
killMyself();
......@@ -551,7 +560,7 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese
// 设置返回码和返回携带的数据
if (tableInfo != null) {
//通知更新餐台状态
EventBus.getDefault().post(new InitTableEvent(tableInfo.getId(),tableInfo.getTableNumber()), "initTable_status_event");
EventBus.getDefault().post(new InitTableEvent(tableInfo.getId(), tableInfo.getTableNumber()), "initTable_status_event");
}
setResult(Activity.RESULT_OK, null);
killMyself();
......@@ -562,7 +571,7 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese
TableBean.DataBean tableInfo = DoshokuOrder.getInstance().getOpenTableInfo();
if (tableInfo != null) {
//通知更新餐台状态
EventBus.getDefault().post(new InitTableEvent(tableInfo.getId(),tableInfo.getTableNumber()), "initTable_status_event");
EventBus.getDefault().post(new InitTableEvent(tableInfo.getId(), tableInfo.getTableNumber()), "initTable_status_event");
}
setResult(Activity.RESULT_OK, null);
killMyself();
......
......@@ -4,6 +4,7 @@ import android.content.Intent;
import android.os.Bundle;
import android.os.Message;
import android.view.View;
import android.view.ViewTreeObserver;
import android.widget.AdapterView;
import android.widget.ImageView;
import android.widget.LinearLayout;
......@@ -22,7 +23,7 @@ import com.gingersoft.gsa.cloud.table.di.component.DaggerTableComponent;
import com.gingersoft.gsa.cloud.table.mvp.contract.TableContract;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.event.InitTableEvent;
import com.gingersoft.gsa.cloud.table.mvp.model.constant.TableActionConstant;
import com.gingersoft.gsa.cloud.table.mvp.model.table.action.PrintSkyOrderAction;
import com.gingersoft.gsa.cloud.table.mvp.model.table.action.PrintSkyorderAction;
import com.gingersoft.gsa.cloud.table.mvp.model.table.action.TableAction;
import com.gingersoft.gsa.cloud.table.mvp.presenter.TablePresenter;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.AllTableFragment;
......@@ -57,6 +58,7 @@ import java.util.Map;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.DefaultItemAnimator;
......@@ -95,6 +97,9 @@ public class TableActivity extends BaseFragmentActivity<TablePresenter> implemen
@BindView(R2.id.tv_show_popup)
TextView tv_show_popup;
@BindView(R2.id.rl_center_content)
RelativeLayout rl_center_content;
@BindView(R2.id.rv_bottom_function)
RecyclerView rv_bottom_function;
@BindView(R2.id.btn_cancel_operat)
......@@ -166,7 +171,6 @@ public class TableActivity extends BaseFragmentActivity<TablePresenter> implemen
// getTables(true, null);
// }
// });
View view = getWindow().getDecorView();
initTabAndPager();
getTables(true, null);
}
......@@ -324,7 +328,7 @@ public class TableActivity extends BaseFragmentActivity<TablePresenter> implemen
@OnClick(R2.id.rl_skyorder)
public void clickSkyorder() {
TableAction tableAction = mPresenter.getTableActionByClass(PrintSkyOrderAction.class);
TableAction tableAction = mPresenter.getTableActionByClass(PrintSkyorderAction.class);
if (tableAction != null) {
mPresenter.setTableAction(tableAction);
setCurrentTableAction(tableAction);
......@@ -396,14 +400,14 @@ public class TableActivity extends BaseFragmentActivity<TablePresenter> implemen
@Override
public void onStartRefreshTableData() {
isRefreshData = true;
mPresenter.startTableTimer();
mPresenter.startTablePolling();
getTables(false, null);
}
@Override
public void onPauseRefreshTableData() {
isRefreshData = false;
mPresenter.cancelTableTimer();
mPresenter.stopTablePolling();
//立刻停止獲取餐檯接口
if (mPresenter.getGetTablesDataDisposable() != null && !mPresenter.getGetTablesDataDisposable().isDisposed()) {
mPresenter.getGetTablesDataDisposable().dispose();
......@@ -426,6 +430,14 @@ public class TableActivity extends BaseFragmentActivity<TablePresenter> implemen
@Override
public void setBottomFunctionVisibility(boolean show) {
rv_bottom_function.setVisibility(show == true ? View.VISIBLE : View.GONE);
ViewTreeObserver viewTreeObserver = rv_bottom_function.getViewTreeObserver();
viewTreeObserver.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
rv_bottom_function.getViewTreeObserver().removeOnGlobalLayoutListener(this);
setCenterContentMarginBottom(rv_bottom_function.getHeight());
}
});
}
@Override
......@@ -433,8 +445,15 @@ public class TableActivity extends BaseFragmentActivity<TablePresenter> implemen
iv_lock.setVisibility(show == true ? View.VISIBLE : View.GONE);
}
@Override
public void setCenterContentMarginBottom(int bottomMargin) {
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) rl_center_content.getLayoutParams();
layoutParams.bottomMargin = bottomMargin;
rl_center_content.setLayoutParams(layoutParams);
}
private boolean showSkyorderLayoutVisibility(boolean show) {
PrintSkyOrderAction skyOrderAction = (PrintSkyOrderAction) mPresenter.getTableActionByClass(PrintSkyOrderAction.class);
PrintSkyorderAction skyOrderAction = (PrintSkyorderAction) mPresenter.getTableActionByClass(PrintSkyorderAction.class);
if (skyOrderAction == null) {
rl_skyorder.setVisibility(View.GONE);
return false;
......
......@@ -107,6 +107,6 @@ public class BottomFunctionAdapter extends DefaultAdapter<Function> {
tv_name.setText(item.getResName());
}
}
}
......@@ -399,7 +399,7 @@ public class SkyOrderDialog extends BaseRetryDialog implements View.OnClickListe
*/
long currentTimeMillis = System.currentTimeMillis();
//设置默认交台时间为当前时间往后推多少分钟(可配置)
long defaultMealLater = currentTimeMillis + (foodSummary.getMealLength() * 60 * 1000);
long defaultMealLater = currentTimeMillis + (foodSummary.getDiningTime() * 60 * 1000);
String defaultMealLaterTimes[] = TimeUtils.getStringByFormat(defaultMealLater, TimeUtils.DATE_FORMAT_DATE_HM).split(":");
for (int i = 0; i < mMealHours.size(); i++) {
int hour = mMealHours.get(i);
......
......@@ -47,7 +47,7 @@
android:drawableLeft="@drawable/qmui_icon_topbar_back"
android:gravity="center_vertical"
android:paddingLeft="@dimen/dp_5"
android:text="105A-2"
android:text="外賣"
android:textColor="@color/theme_white_color"
android:textSize="@dimen/font_large"
android:textStyle="bold" />
......@@ -97,7 +97,7 @@
android:layout_alignParentRight="true"
android:background="@color/trans"
android:drawableLeft="@mipmap/meal_people_num_white"
android:text="8"
android:text="1"
android:textColor="@color/theme_white_color"
android:textSize="@dimen/font_large"
android:textStyle="bold"/>
......
......@@ -9,14 +9,14 @@
android:id="@+id/topbar"
android:layout_width="match_parent"
android:layout_height="?attr/qmui_topbar_height"
app:layout_constraintTop_toTopOf="parent"
app:qmui_topbar_title_color="@color/theme_white_color" />
<RelativeLayout
android:id="@+id/rl_center_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/bn_table_function"
android:layout_marginTop="?attr/qmui_topbar_height"
android:layout_marginBottom="@dimen/dp_60"
android:background="#FFE8E8E8">
<TextView
......@@ -69,14 +69,21 @@
</LinearLayout>
</RelativeLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_bottom"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_bottom_function"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_60"
android:layout_gravity="bottom"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_gravity="bottom"
android:background="@drawable/table_shape_table_bottom_function_layout"
android:orientation="horizontal" />
android:orientation="horizontal"
app:layout_constraintBottom_toBottomOf="parent" />
<include layout="@layout/table_item_skyorder" />
......@@ -88,5 +95,7 @@
android:background="@color/transparent"
android:text="取消"
android:textColor="@color/theme_white_color"
android:visibility="invisible" />
android:visibility="invisible"
app:layout_constraintBottom_toBottomOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</RelativeLayout>
......@@ -9,13 +9,13 @@
android:layout_marginBottom="@dimen/dp_27"
android:gravity="center"
android:orientation="vertical"
app:qmui_backgroundColor="@color/theme_color">
app:qmui_backgroundColor="@color/theme_color"
app:layout_constraintStart_toStartOf="@+id/rv_bottom_function"
app:layout_constraintEnd_toEndOf="@+id/rv_bottom_function"
app:layout_constraintBottom_toBottomOf="@+id/rv_bottom_function"
app:layout_constraintTop_toTopOf="@+id/rv_bottom_function"
app:layout_constraintBottom_toTopOf="@+id/rv_bottom_function">
<!-- app:layout_constraintStart_toStartOf="@+id/rv_bottom_function"-->
<!-- app:layout_constraintEnd_toEndOf="@+id/rv_bottom_function"-->
<!-- app:layout_constraintBottom_toBottomOf="@+id/rv_bottom_function"-->
<!-- app:layout_constraintTop_toTopOf="@+id/rv_bottom_function"-->
<!-- app:layout_constraintBottom_toTopOf="@+id/rv_bottom_function"-->
<ImageView
android:id="@+id/iv_skyorder_qrcode"
android:layout_width="wrap_content"
......
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