Commit f99df214 by 宁斌

餐檯輪訓調整

parent 2abd64bd
......@@ -73,7 +73,7 @@ public class DefaultFormatPrinter implements FormatPrinter {
*
* @param request
* @param bodyString
*/
*/
@Override
public void printJsonRequest(Request request, String bodyString) {
final String requestBody = LINE_SEPARATOR + BODY_TAG + LINE_SEPARATOR + bodyString;
......
......@@ -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;
......
......@@ -35,7 +35,7 @@ public class FunctionManager {
FunctionDaoUtils daoUtils = new FunctionDaoUtils(context);
List<Function> functionList = daoUtils.queryAllFunction();
return filterFunctionByResLoction(functionList, fModules, resLoction);
return filterFunctionByResLoction(functionList, fModules, resLoction);
}
private List<Function> filterFunctionByResLoction(List<Function> functionList, FModule[] fModules, String resLoction) {
......
......@@ -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 {
/**
......@@ -146,13 +148,13 @@ public class Discount {
@Generated(hash = 1938515536)
public Discount(Long id, int restaurantId, double amount, int discountValue,
int type, String discountType, int status, String remark,
byte freeServiceCharge, byte managerApproval, String color,
String placeOrderType, double discountCap, double salesAmount,
byte taxFree, byte exclusive, byte pause, byte additionalDiscount,
byte onlyOnce, double minBillAmount, byte pointsDeduction,
byte wholeFreePoints, byte amountTypeMin, String beginTime,
String endTime) {
int type, String discountType, int status, String remark,
byte freeServiceCharge, byte managerApproval, String color,
String placeOrderType, double discountCap, double salesAmount,
byte taxFree, byte exclusive, byte pause, byte additionalDiscount,
byte onlyOnce, double minBillAmount, byte pointsDeduction,
byte wholeFreePoints, byte amountTypeMin, String beginTime,
String endTime) {
this.id = id;
this.restaurantId = restaurantId;
this.amount = amount;
......@@ -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,19 +152,32 @@ public class PrintPrjKitchen extends PrinterRoot {
}
if (TextUtil.isEmptyOrNullOrUndefined(prjBean.getTableName())) {
layoutOpenTableTime.setVisibility(View.GONE);
if (prjBean.getOrderType() == 7) {
tvTableNumber.setText("自取");
tvTableNumber2.setText("自取");
if (!TextUtil.isEmptyOrNullOrUndefined(prjBean.getTakeFoodCode())) {
tvTakeCodeText.setVisibility(View.VISIBLE);
tvTakeCode.setVisibility(View.VISIBLE);
tvTakeCode.setText(prjBean.getTakeFoodCode());
}
} else {
tvTableNumber.setText("外賣");
tvTableNumber2.setText("外賣");
tvOrderNumberText.setText("訂單碼:");
tvOrderNumber.setText(prjBean.getTakeFoodCode());
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())) {
tvTakeCodeText.setVisibility(View.VISIBLE);
tvTakeCode.setVisibility(View.VISIBLE);
tvTakeCode.setText(prjBean.getTakeFoodCode());
}
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,32 +257,32 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
if (mFunctionList.size() > 0) {
mFunctionList.clear();
}
if (BaseOrder.isCurrentOrderType(FoodSummaryConstans.RESTAURANT_MODE) && 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);
}
}
// if (functions.size() > 0) {
// mFunctionList.addAll(functions);
// } else {
if (BaseOrder.isCurrentOrderType(FoodSummaryConstans.TAKEAWAY_TYPE)) {
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));
mFunctionList.add(new Function("印單", Color.parseColor("#FFFFFF"), Color.parseColor("#FF8E04"), 24));
mFunctionList.add(new Function("送單信息", Color.parseColor("#FFFFFF"), Color.parseColor("#008131"), 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);
// }
// }
// if (functions.size() > 0) {
// mFunctionList.addAll(functions);
// } 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));
}
}
......@@ -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();
public void startTablePolling() {
if (mTablesPollingDisposable == null) {
mTablesPollingDisposable = RxJavaUtils.polling(GoldConstants.refreshTime)
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new Consumer<Long>() {
@Override
public void accept(Long aLong) throws Exception {
if (TableActivity.isRefreshData) {
getTables(false, null);
}
}
});
}
}
/**
* 计时器类 定時更新餐台数据
*/
private class GetTableTimer extends CountDownTimer {
public GetTableTimer(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);// 参数依次为总时长,和计时的时间间隔
}
@Override
public void onFinish() {// 计时完毕时触发
if (IActivity.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() {
TableBean.DataBean tableInfo = mDoshokuOrder.getOpenTableInfo();
Date dd = mDoshokuOrder.getOpenTableTime();
String openTime = String.format("%tH:%tM", dd, dd);
String tableno = "";
if (tableInfo.getSplitStatus() != 0) {
tableno = tableInfo.getTableName().trim() + "-" + tableInfo.getTableNumber().trim();
} else {
tableno = tableInfo.getTableName();
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;
if (tableInfo.getSplitStatus() != 0) {
tableno = tableInfo.getTableName().trim() + "-" + tableInfo.getTableNumber().trim();
} else {
tableno = tableInfo.getTableName();
}
btn_table.setText(tableno);
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("");
}
btn_table.setText(tableno);
tv_time.setText("時間:" + openTime);
btn_people_num.setText(tableInfo.getPerson() + "");
tv_server_main.setText(GsaCloudApplication.getMemberName());
}
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,24 +69,33 @@
</LinearLayout>
</RelativeLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_bottom_function"
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_bottom"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_60"
android:layout_gravity="bottom"
android:layout_alignParentBottom="true"
android:background="@drawable/table_shape_table_bottom_function_layout"
android:orientation="horizontal" />
android:layout_height="wrap_content"
android:layout_alignParentBottom="true">
<include layout="@layout/table_item_skyorder" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_bottom_function"
android:layout_width="match_parent"
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"
app:layout_constraintBottom_toBottomOf="parent" />
<com.qmuiteam.qmui.layout.QMUIButton
android:id="@+id/btn_cancel_operat"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_60"
android:layout_alignParentBottom="true"
android:background="@color/transparent"
android:text="取消"
android:textColor="@color/theme_white_color"
android:visibility="invisible" />
<include layout="@layout/table_item_skyorder" />
<com.qmuiteam.qmui.layout.QMUIButton
android:id="@+id/btn_cancel_operat"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_60"
android:layout_alignParentBottom="true"
android:background="@color/transparent"
android:text="取消"
android:textColor="@color/theme_white_color"
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