Commit a3e7affc by 宁斌

1、餐檯模式使用會員處理

parent a7c19cb0
...@@ -106,7 +106,7 @@ dependencies { ...@@ -106,7 +106,7 @@ dependencies {
//多功能輸入框 //多功能輸入框
api 'com.rengwuxian.materialedittext:library:2.1.4' api 'com.rengwuxian.materialedittext:library:2.1.4'
//扫码 //扫码
implementation 'cn.bingoogolapple:bga-qrcode-zxing:1.3.7' api 'cn.bingoogolapple:bga-qrcode-zxing:1.3.7'
implementation 'cn.bingoogolapple:bga-photopicker:1.2.8@aar' implementation 'cn.bingoogolapple:bga-photopicker:1.2.8@aar'
implementation 'cn.bingoogolapple:bga-baseadapter:1.2.9@aar' implementation 'cn.bingoogolapple:bga-baseadapter:1.2.9@aar'
implementation 'cn.bingoogolapple:bga-flowlayout:1.0.0@aar' implementation 'cn.bingoogolapple:bga-flowlayout:1.0.0@aar'
......
...@@ -186,6 +186,9 @@ public class GsaCloudApplication extends BaseApplication { ...@@ -186,6 +186,9 @@ public class GsaCloudApplication extends BaseApplication {
RetrofitUrlManager.getInstance().putDomain("yc_location", HttpsConstans.ROOT_SERVER_YOU_CHANG_HK); RetrofitUrlManager.getInstance().putDomain("yc_location", HttpsConstans.ROOT_SERVER_YOU_CHANG_HK);
//System請求地址 //System請求地址
RetrofitUrlManager.getInstance().putDomain("system_url", HttpsConstans.SYSTEM_URL); RetrofitUrlManager.getInstance().putDomain("system_url", HttpsConstans.SYSTEM_URL);
//後台遷移新地址
RetrofitUrlManager.getInstance().putDomain("new_base_url", HttpsConstans.ROOT_URL+"/ricepon-member/api/");
} }
private void initPrint() { private void initPrint() {
......
...@@ -23,8 +23,9 @@ public class BillOrderMoney { ...@@ -23,8 +23,9 @@ public class BillOrderMoney {
private int textColor = Color.parseColor("#000000"); private int textColor = Color.parseColor("#000000");
private int bgColor; private int bgColor;
private byte type = DISCOUNT_TYPE; private byte type = ORDER_DISCOUNT_TYPE;
public static final byte DISCOUNT_TYPE = 1; public static final byte ORDER_DISCOUNT_TYPE = 0;
public static final byte MEMBER_DISCOUNT_TYPE = 1;
public static final byte SERVERCHARGE_TYPE = 2; public static final byte SERVERCHARGE_TYPE = 2;
public static final byte ROUNDING_TYPE = 3; public static final byte ROUNDING_TYPE = 3;
......
package com.gingersoft.gsa.cloud.base.common.bean; package com.gingersoft.gsa.cloud.base.common.bean;
import android.text.TextUtils;
import java.util.Date; import java.util.Date;
import lombok.Data; import lombok.Data;
...@@ -118,14 +120,17 @@ public class MemberInfo { ...@@ -118,14 +120,17 @@ public class MemberInfo {
* MemberPoint : 3 * MemberPoint : 3
*/ */
private long id;
private CreateTimeBean createTime;
private UpdateTimeBean updateTime;
private MemberExpireDateBean memberExpireDate;
private VaildTimeBean vaildTime;
private String memberNo; private String memberNo;
private int memberDiscount;
//获取会员信息接口
private int MemberPoint; private int MemberPoint;
private String memberName; //开台接口返回
private int memberPoint;
private String memberName = "";
private String levelName3;
private String levelName2;
private String levelName1;
private String phone; private String phone;
private int birthdaybonusratio; private int birthdaybonusratio;
private int creditPoints; private int creditPoints;
...@@ -141,7 +146,6 @@ public class MemberInfo { ...@@ -141,7 +146,6 @@ public class MemberInfo {
private int points; private int points;
private int negativePoints; private int negativePoints;
private int couponTypeId; private int couponTypeId;
private int id;
private int isdefault; private int isdefault;
private int pointsVariable; private int pointsVariable;
private String brandName; private String brandName;
...@@ -153,9 +157,6 @@ public class MemberInfo { ...@@ -153,9 +157,6 @@ public class MemberInfo {
private int brandId; private int brandId;
private int pointRedeemCash; private int pointRedeemCash;
private int ablediscount; private int ablediscount;
private String levelName3;
private String levelName2;
private String levelName1;
private int expireAfterDayClearPoints; private int expireAfterDayClearPoints;
private int extendExpireAmount; private int extendExpireAmount;
private String foodDesc3; private String foodDesc3;
...@@ -182,8 +183,20 @@ public class MemberInfo { ...@@ -182,8 +183,20 @@ public class MemberInfo {
private int pointUnit; private int pointUnit;
private int nextUpLevel; private int nextUpLevel;
private int restaurantId = 2; private int restaurantId = 2;
private CreateTimeBean createTime;
private UpdateTimeBean updateTime;
private MemberExpireDateBean memberExpireDate;
private VaildTimeBean vaildTime;
public int getMemberPoint() {
if (MemberPoint != 0)
return MemberPoint;
if (memberPoint != 0)
return memberPoint;
return 0;
}
@Data @Data
public static class CreateTimeBean { public static class CreateTimeBean {
/** /**
......
...@@ -185,6 +185,19 @@ public class OrderDetail implements Serializable { ...@@ -185,6 +185,19 @@ public class OrderDetail implements Serializable {
*/ */
private int discountStatus; private int discountStatus;
/** /**
* 是否参与折扣#0:不參與;1:參與;
**/
private byte scAble = 1;
/**
* 額外食品加分
*/
private double pointsAdd;
/**
* 換購食品所需積分
*/
private double pointsRedeem;
/**
* 食品組 * 食品組
*/ */
private String ftName; private String ftName;
...@@ -273,6 +286,7 @@ public class OrderDetail implements Serializable { ...@@ -273,6 +286,7 @@ public class OrderDetail implements Serializable {
this.items = orderDetail.items; this.items = orderDetail.items;
this.createTime = orderDetail.createTime; this.createTime = orderDetail.createTime;
this.ablediscount = orderDetail.ablediscount; this.ablediscount = orderDetail.ablediscount;
this.scAble = orderDetail.scAble;
this.ftName = orderDetail.ftName; this.ftName = orderDetail.ftName;
this.majorName = orderDetail.majorName; this.majorName = orderDetail.majorName;
this.discount = orderDetail.discount; this.discount = orderDetail.discount;
...@@ -281,6 +295,8 @@ public class OrderDetail implements Serializable { ...@@ -281,6 +295,8 @@ public class OrderDetail implements Serializable {
this.printSeting = orderDetail.printSeting; this.printSeting = orderDetail.printSeting;
this.ktPrintMainItem = orderDetail.ktPrintMainItem; this.ktPrintMainItem = orderDetail.ktPrintMainItem;
this.currentMaxNumber = orderDetail.currentMaxNumber; this.currentMaxNumber = orderDetail.currentMaxNumber;
this.pointsAdd = orderDetail.pointsAdd;
this.pointsRedeem = orderDetail.pointsRedeem;
} }
public int getSelected() { public int getSelected() {
...@@ -875,6 +891,9 @@ public class OrderDetail implements Serializable { ...@@ -875,6 +891,9 @@ public class OrderDetail implements Serializable {
orderDetail.setType(orderDetailsBean.getType()); orderDetail.setType(orderDetailsBean.getType());
orderDetail.setItemType(getItemType(orderDetailsBean, parentOrderDetail)); orderDetail.setItemType(getItemType(orderDetailsBean, parentOrderDetail));
orderDetail.setAblediscount(orderDetailsBean.getAblediscount()); orderDetail.setAblediscount(orderDetailsBean.getAblediscount());
orderDetail.setScAble(orderDetailsBean.getScAble());
orderDetail.setPointsAdd(orderDetailsBean.getPointsAdd());
orderDetail.setPointsRedeem(orderDetailsBean.getPointsRedeem());
orderDetailList.add(orderDetail); orderDetailList.add(orderDetail);
// if (orderDetail.isIsfood()) { // if (orderDetail.isIsfood()) {
...@@ -986,6 +1005,9 @@ public class OrderDetail implements Serializable { ...@@ -986,6 +1005,9 @@ public class OrderDetail implements Serializable {
int comboLevel = food.isComboFood() ? 1 : 0; int comboLevel = food.isComboFood() ? 1 : 0;
orderDetail.setComboLevel(comboLevel); orderDetail.setComboLevel(comboLevel);
orderDetail.setCurrentMaxNumber(food.getCurrentMaxNumber()); orderDetail.setCurrentMaxNumber(food.getCurrentMaxNumber());
orderDetail.setScAble(food.getServiceCharge());
orderDetail.setPointsAdd(food.getPointsAdd());
orderDetail.setPointsRedeem(food.getPointsRedeem());
return orderDetail; return orderDetail;
} }
...@@ -1031,6 +1053,9 @@ public class OrderDetail implements Serializable { ...@@ -1031,6 +1053,9 @@ public class OrderDetail implements Serializable {
orderDetail.setSelected(1); orderDetail.setSelected(1);
} }
orderDetail.setCurrentMaxNumber(foodCombo.getCurrentMaxNumber()); orderDetail.setCurrentMaxNumber(foodCombo.getCurrentMaxNumber());
orderDetail.setScAble((byte) foodCombo.getServiceCharge());
orderDetail.setPointsAdd(foodCombo.getPointsAdd());
orderDetail.setPointsRedeem(foodCombo.getPointsRedeem());
return orderDetail; return orderDetail;
} }
......
package com.gingersoft.gsa.cloud.base.common.bean;
import lombok.Data;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-08-28
* 修订历史:2020-08-28
* 描述:
*/
public class OrderDiscount {
public static final int ORDER_DISCOUNT = 0;
public static final int MEMBER_DISCOUNT = 1;
@Data
public static class Request {
/**
* 0#整單折扣
* 1#會員折扣
*/
private int type;
/**
* 整單折扣ID
*/
private Long discountId;
/**
* 會員折扣ID
*/
private Long memberId;
/**
* 會員折扣比例
*/
private Integer memberDiscountRate;
/**
* 折扣金額
*/
private double discountAmount;
/**
* 是否计算服务费
*/
private int scAble;
public static Request orderDiscountTransRequest(BillOrderMoney discount) {
Request request = new Request();
request.setType(ORDER_DISCOUNT);
if(discount.getDiscount() != null) {
request.setDiscountId(discount.getDiscount().getId());
}
request.setDiscountAmount(discount.getMoney());
request.setScAble(0);
return request;
}
public static Request memberDiscountTransRequest(BillOrderMoney discount) {
Request request = new Request();
request.setType(MEMBER_DISCOUNT);
if(discount.getDiscount() != null) {
request.setMemberId(discount.getDiscount().getId());
request.setMemberDiscountRate((int) discount.getDiscount().getDiscount_value());
}
request.setDiscountAmount(discount.getMoney());
request.setScAble(0);
return request;
}
}
@Data
public static class Respose {
/**
* 整單折扣ID
*/
private Long discountId;
/**折扣金額*/
private double discountAmount;
/**折扣比例*/
private double discountValue;
/**
* 0#整單折扣
* 1#會員折扣
*/
private int type;
/**折扣名称1*/
private String remark;
/**折扣名称2*/
private String remark2;
/**折扣名称3*/
private String remark3;
/**
* 會員折扣比例
*/
private Integer memberDiscountRate;
public String getRemark() {
return remark;
}
}
}
...@@ -25,6 +25,11 @@ public class OrderPayRequest { ...@@ -25,6 +25,11 @@ public class OrderPayRequest {
private int orderPayType; private int orderPayType;
private int tableId; private int tableId;
private String tableNumber; private String tableNumber;
private long memberId;
//當前加的積分
private Double pointsAdd;
//當前減去的積分
private Double pointsUse;
private List<orderPay> orderPays = new ArrayList<>(); private List<orderPay> orderPays = new ArrayList<>();
@Data @Data
......
package com.gingersoft.gsa.cloud.base.common.bean; package com.gingersoft.gsa.cloud.base.common.bean;
import android.graphics.Color; import android.graphics.Color;
import android.text.TextUtils;
import com.google.gson.annotations.SerializedName; import com.google.gson.annotations.SerializedName;
import java.util.List; import lombok.Data;
/** /**
* 作者:ELEGANT_BIN * 作者:ELEGANT_BIN
...@@ -13,22 +14,157 @@ import java.util.List; ...@@ -13,22 +14,157 @@ import java.util.List;
* 修订历史:2020-02-15 * 修订历史:2020-02-15
* 描述: * 描述:
*/ */
@Data
public class PayMethod { public class PayMethod {
// /**
// * success : true
// * sysTime : 1582865195628
// * data : [{"id":11,"payName":"服務員確認","createTime":"May 7, 2018 11:47:27 AM"},{"id":1019,"payName":"轉數快支付","remarks":"","createTime":"Jul 10, 2019 4:56:21 PM"},{"id":9,"payName":"微信","createTime":"Jun 29, 2018 4:34:26 PM"},{"id":10,"payName":"Apple pay","createTime":"Aug 9, 2018 3:59:05 PM"},{"id":1010,"payName":"YedPay支付宝"},{"id":6,"payName":"支付寶HK","createTime":"Sep 12, 2017 2:45:12 PM"},{"id":8,"payName":"支付寶","createTime":"Jan 5, 2018 10:55:06 AM"},{"id":1020,"payName":"PayMe","createTime":"Nov 29, 2019 6:07:56 PM"}]
// */
// private int id;
// private String payName;
// private String createTime;
// private String remarks;
//
// private String NAME;
// private String NAME2;
// private String NAME3;
// private String PAYWAY;
/** /**
* success : true * id : 12
* sysTime : 1582865195628 * brandId : 1
* data : [{"id":11,"payName":"服務員確認","createTime":"May 7, 2018 11:47:27 AM"},{"id":1019,"payName":"轉數快支付","remarks":"","createTime":"Jul 10, 2019 4:56:21 PM"},{"id":9,"payName":"微信","createTime":"Jun 29, 2018 4:34:26 PM"},{"id":10,"payName":"Apple pay","createTime":"Aug 9, 2018 3:59:05 PM"},{"id":1010,"payName":"YedPay支付宝"},{"id":6,"payName":"支付寶HK","createTime":"Sep 12, 2017 2:45:12 PM"},{"id":8,"payName":"支付寶","createTime":"Jan 5, 2018 10:55:06 AM"},{"id":1020,"payName":"PayMe","createTime":"Nov 29, 2019 6:07:56 PM"}] * restaurantId : 26
* nameFirst : 兒不同
* nameSecond : 吃v否
* nameThird : 份日日法人
* whetherSales : 1
* whetherManagerAuthority : 0
* color : #00FF2F
* whetherReportCount : 1
* interactiveType : 1
* whetherFixedAmount : 1
* payType : 8
* minPayAmount : 0
* whetherFreeService : 1
* whetherTaxExemption : 1
* whetherSignatureLine : 1
* paySeq : 1
* whetherOpenBox : 1
* getIntegral : 5
* integralMultiple : 2
* deductionIntegral : 1
* dockingType : 0
* billType : 1,2
* tablePrintingAmount : 2
* takeOutPrintingAmount : 2
* updateTime : 1598674202856
* createTime : 1598674202856
* updateUid : 492
* createUid : 492
*/ */
private int id; private int id;
private String payName; private int brandId;
private String createTime; private int restaurantId;
private String remarks; private String nameFirst;
private String nameSecond;
private String nameThird;
/**
* 銷售營業額(0:非營業額 1:營業額)
*/
private int whetherSales;
/**
* 經理權限
*/
private int whetherManagerAuthority;
/**
* 背景顔色
*/
private String color = "#FFFFFF";
/**
* 字體顔色
*/
private String font_color = "#000000";
/**
* 報表計算人數(0:否 1:是)
*/
private int whetherReportCount;
/**
* 交互方式
*/
private int interactiveType;
/**
* 固定金額 (0:否 1:是)
*/
private int whetherFixedAmount;
/**
* 固定金額數值
*/
private double amountValue;
/**
* 支付方式(1:寶達通 8:支付寶 1001:現金 1023:支付寶HK )
*/
private int payType;
/**
* 最小支付金額(是否有小數點)
*/
private double minPayAmount;
/**
* 是否免服務費(0:否 1:是)
*/
private int whetherFreeService;
/**
* 是否免稅 (0:否 1:是)
*/
private int whetherTaxExemption;
/**
* 是否展示簽署線 (0:否 1:是)
*/
private int whetherSignatureLine;
/**
* 排序
*/
private int paySeq;
/**
* 是否開錢箱(0:否 1:是)
*/
private int whetherOpenBox;
/**
* '獲取積分
*/
private int getIntegral;
/**
* 積分倍數
*/
private int integralMultiple;
/**
* 扣減積分
*/
private float deductionIntegral;
/**
* 對接類型 (0:否 1:yedpay 2:八達通 3:積分 )
*/
private int dockingType;
/**
* 賬單類型(0:否 1:是)
*/
private String billType;
/**
* 櫃檯結賬打印
*/
private int tablePrintingAmount;
/**
* 外賣結賬打印
*/
private int takeOutPrintingAmount;
private long updateTime;
@SerializedName("createTime")
private long createTimeX;
private int updateUid;
private int createUid;
private String NAME;
private String NAME2;
private String NAME3;
private String PAYWAY;
//*************自定義字段*************** //*************自定義字段***************
private double payMoney = 0.0; private double payMoney = 0.0;
...@@ -41,148 +177,33 @@ public class PayMethod { ...@@ -41,148 +177,33 @@ public class PayMethod {
private int payMoneySize = 14; private int payMoneySize = 14;
public static final int PAY_TYPE_CASH = 1001; public static final int PAY_TYPE_CASH = 1001;
public PayMethod(int id, String payName, String createTime, String remarks, String NAME, String NAME2, String NAME3, String PAYWAY) {
this.id = id;
this.payName = payName;
this.createTime = createTime;
this.remarks = remarks;
this.NAME = NAME;
this.NAME2 = NAME2;
this.NAME3 = NAME3;
this.PAYWAY = PAYWAY;
}
public PayMethod() { public PayMethod() {
} }
public int getId() { public PayMethod(int id, String nameFirst, String nameSecond, String nameThird) {
return id;
}
public void setId(int id) {
this.id = id; this.id = id;
this.nameFirst = nameFirst;
this.nameSecond = nameSecond;
this.nameThird = nameThird;
} }
public String getPayName() { public String getPayName() {
return payName; if (!TextUtils.isEmpty(nameFirst))
} return nameFirst;
if (!TextUtils.isEmpty(nameSecond))
public void setPayName(String payName) { return nameSecond;
this.payName = payName; if (!TextUtils.isEmpty(nameThird))
} return nameThird;
return "";
public String getCreateTime() {
return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime;
}
public String getRemarks() {
return remarks;
}
public void setRemarks(String remarks) {
this.remarks = remarks;
} }
public String getNAME() {
return NAME;
}
public void setNAME(String NAME) {
this.NAME = NAME;
}
public String getNAME2() {
return NAME2;
}
public void setNAME2(String NAME2) {
this.NAME2 = NAME2;
}
public String getNAME3() { public void setPayName(String name){
return NAME3; this.nameFirst = name;
this.nameSecond = name;
this.nameThird = name;
} }
public void setNAME3(String NAME3) {
this.NAME3 = NAME3;
}
public String getPAYWAY() {
return PAYWAY;
}
public void setPAYWAY(String PAYWAY) {
this.PAYWAY = PAYWAY;
}
public double getPayMoney() {
return payMoney;
}
public void setPayMoney(double payMoney) {
this.payMoney = payMoney;
}
public double getTipsPrice() {
return TipsPrice;
}
public void setTipsPrice(double tipsPrice) {
TipsPrice = tipsPrice;
}
public int getPayModeTextColor() {
return payModeTextColor;
}
public void setPayModeTextColor(int payModeTextColor) {
this.payModeTextColor = payModeTextColor;
}
public int getPayMoneyTextColor() {
return payMoneyTextColor;
}
public void setPayMoneyTextColor(int payMoneyTextColor) {
this.payMoneyTextColor = payMoneyTextColor;
}
public int getPayModeTextSelectColor() {
return payModeTextSelectColor;
}
public void setPayModeTextSelectColor(int payModeTextSelectColor) {
this.payModeTextSelectColor = payModeTextSelectColor;
}
public int getPayMoneyTextSelectColor() {
return payMoneyTextSelectColor;
}
public void setPayMoneyTextSelectColor(int payMoneyTextSelectColor) {
this.payMoneyTextSelectColor = payMoneyTextSelectColor;
}
public int getPayModeSize() {
return payModeSize;
}
public void setPayModeSize(int payModeSize) {
this.payModeSize = payModeSize;
}
public int getPayMoneySize() {
return payMoneySize;
}
public void setPayMoneySize(int payMoneySize) {
this.payMoneySize = payMoneySize;
}
} }
...@@ -34,9 +34,11 @@ public class RestaurantExpandInfoUtils { ...@@ -34,9 +34,11 @@ public class RestaurantExpandInfoUtils {
MoneyUtil.ItemDecimals = expandInfo.getValueInt(); MoneyUtil.ItemDecimals = expandInfo.getValueInt();
} }
if (expandInfo.getSettingName().equals(ExpandConstant.MergeSendFood)) { if (expandInfo.getSettingName().equals(ExpandConstant.MergeSendFood)) {
GsaCloudApplication.androidSetting.setMergeSendFood(Boolean.parseBoolean(expandInfo.getValueChar())); GsaCloudApplication.androidSetting.setMergeSendFood(expandInfo.getValueInt() == 1?true:false);
}
if (expandInfo.getSettingName().equals(ExpandConstant.AutoPrinterParper)) {
GsaCloudApplication.androidSetting.setAutoPrinterParper(expandInfo.getValueInt() == 1?true:false);
} }
} }
} }
......
package com.gingersoft.gsa.cloud.base.common.bean; package com.gingersoft.gsa.cloud.base.common.bean;
import java.io.Serializable;
import java.util.List; import java.util.List;
import lombok.Data; import lombok.Data;
...@@ -59,7 +60,7 @@ public class TableBean { ...@@ -59,7 +60,7 @@ public class TableBean {
} }
@Data @Data
public static class DataBean { public static class DataBean implements Serializable {
/** /**
* id : 25839 * id : 25839
* tableName : ceshitai1* * tableName : ceshitai1*
......
...@@ -16,22 +16,23 @@ import java.util.concurrent.TimeUnit; ...@@ -16,22 +16,23 @@ import java.util.concurrent.TimeUnit;
* 描述: 線程池管理類 * 描述: 線程池管理類
*/ */
public class ThreadPoolManager { public class ThreadPoolManager {
private String TAG =this.getClass().getSimpleName(); private String TAG = this.getClass().getSimpleName();
private static ThreadPoolManager instence = null; private static ThreadPoolManager instence = null;
private ThreadPoolExecutor mThreadPoolExecutor; private ThreadPoolExecutor mThreadPoolExecutor;
private static final int CPU_COUNT = Runtime.getRuntime().availableProcessors();
//线程数量,核心线程数 //线程数量,核心线程数
private int corePoolSize = 5; private static final int CORE_POOL_SIZE = Math.max(2, Math.min(CPU_COUNT - 1, 4));
//池中允许的最大线程数 //池中允许的最大线程数
private int maximumPoolSize = 10; private static final int MAXIMUM_POOL_SIZE = CPU_COUNT * 2 + 1;
//设置空闲线程的空闲时间,如果一共有6个线程,那么超出核心线程数的两个线程就会被记录时间,超过该时间就会被杀死,如果没有超过核心线程数,那么线程是不会被倒计时的。 //设置空闲线程的空闲时间,如果一共有6个线程,那么超出核心线程数的两个线程就会被记录时间,超过该时间就会被杀死,如果没有超过核心线程数,那么线程是不会被倒计时的。
private long keepAliveTime = 10; private static final int KEEP_ALIVE_SECONDS = 30;
//等待执行的容器容量大小 //等待执行的容器容量大小
private int capacity = 10; private int capacity = 128;
//拒绝后的执行任务容器--》凉快的地方 //拒绝后的执行任务容器--》凉快的地方
private LinkedBlockingQueue taskQueue =new LinkedBlockingQueue(); private LinkedBlockingQueue taskQueue = new LinkedBlockingQueue();
public synchronized static ThreadPoolManager getInstence() { public synchronized static ThreadPoolManager getInstence() {
if (instence == null) { if (instence == null) {
...@@ -49,9 +50,9 @@ public class ThreadPoolManager { ...@@ -49,9 +50,9 @@ public class ThreadPoolManager {
* ArrayBlockingQueue是一个执行任务的容量,当调用mThreadPoolExecutor的execute,容量加1,执行run完后,容量减1 * ArrayBlockingQueue是一个执行任务的容量,当调用mThreadPoolExecutor的execute,容量加1,执行run完后,容量减1
* ArrayBlockingQueue后面传入true就是以FIFO规则存储:先进先出 * ArrayBlockingQueue后面传入true就是以FIFO规则存储:先进先出
*/ */
public ThreadPoolManager(){ public ThreadPoolManager() {
if(mThreadPoolExecutor==null){ if (mThreadPoolExecutor == null) {
mThreadPoolExecutor = new ThreadPoolExecutor(corePoolSize,maximumPoolSize,keepAliveTime, TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(capacity,true),handler); mThreadPoolExecutor = new ThreadPoolExecutor(CORE_POOL_SIZE, MAXIMUM_POOL_SIZE, KEEP_ALIVE_SECONDS, TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(capacity, true), handler);
} }
//开启线程一直循环从等待队列里面取出可执行任务并执行 //开启线程一直循环从等待队列里面取出可执行任务并执行
mThreadPoolExecutor.execute(runnable); mThreadPoolExecutor.execute(runnable);
...@@ -60,9 +61,10 @@ public class ThreadPoolManager { ...@@ -60,9 +61,10 @@ public class ThreadPoolManager {
/** /**
* 往队列里面存入可执行任务 * 往队列里面存入可执行任务
*
* @param runnable * @param runnable
*/ */
public void putExecutableTasks(Runnable runnable){ public void putExecutableTasks(Runnable runnable) {
try { try {
taskQueue.put(runnable); taskQueue.put(runnable);
} catch (InterruptedException e) { } catch (InterruptedException e) {
...@@ -73,34 +75,33 @@ public class ThreadPoolManager { ...@@ -73,34 +75,33 @@ public class ThreadPoolManager {
/** /**
* ThreadPoolExecutor的run * ThreadPoolExecutor的run
*/ */
private Runnable runnable=new Runnable() { private Runnable runnable = new Runnable() {
@Override @Override
public void run() { public void run() {
//开启循环 //开启循环
while(true){ while (true) {
//取出等待的执行任务 //取出等待的执行任务
Runnable taskQueueRunnable = null; Runnable taskQueueRunnable = null;
try { try {
Log.d(TAG,"等待队列大小:"+taskQueue.size()); Log.d(TAG, "等待队列大小:" + taskQueue.size());
taskQueueRunnable = (Runnable) taskQueue.take(); taskQueueRunnable = (Runnable) taskQueue.take();
} catch (InterruptedException e) { } catch (InterruptedException e) {
e.printStackTrace(); e.printStackTrace();
} }
if(runnable!=null){ if (runnable != null) {
mThreadPoolExecutor.execute(taskQueueRunnable); mThreadPoolExecutor.execute(taskQueueRunnable);
} }
Log.d(TAG,"线程池大小"+mThreadPoolExecutor.getPoolSize()); Log.d(TAG, "线程池大小" + mThreadPoolExecutor.getPoolSize());
} }
} }
}; };
/** /**
* 拒绝策略 * 拒绝策略
* 当ArrayBlockingQueue容量过大,就要执行拒绝策略,对来的执行任务说:放不下了,先到一边凉快去,那么就要有一个凉快的容器撞他们 * 当ArrayBlockingQueue容量过大,就要执行拒绝策略,对来的执行任务说:放不下了,先到一边凉快去,那么就要有一个凉快的容器装他们
*
*/ */
private RejectedExecutionHandler handler = new RejectedExecutionHandler(){ private RejectedExecutionHandler handler = new RejectedExecutionHandler() {
@Override @Override
public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) { public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) {
......
...@@ -12,7 +12,7 @@ public class ExpandConstant { ...@@ -12,7 +12,7 @@ public class ExpandConstant {
public final static String RoundingDecimal = "RoundingDecimal"; public final static String RoundingDecimal = "RoundingDecimal";
public final static String ItemDecimals = "ItemDecimals"; public final static String ItemDecimals = "ItemDecimals";
public final static String MergeSendFood = "MergeSendFood"; public final static String MergeSendFood = "MergeSendFood";
public final static String AutoPrinterParper = "AutoPrinterParper";
......
...@@ -149,6 +149,11 @@ public class ComboItem { ...@@ -149,6 +149,11 @@ public class ComboItem {
*/ */
@Transient @Transient
private long ablediscount; private long ablediscount;
/**
* 是否收取服務費
*/
@Transient
private int serviceCharge;
/*** 是否自動展開*/ /*** 是否自動展開*/
@Transient @Transient
private int autoMode = 0; private int autoMode = 0;
......
...@@ -104,7 +104,19 @@ public class Discount { ...@@ -104,7 +104,19 @@ public class Discount {
// else { // else {
// discountPrice = sourcePrice - discountPrice; // discountPrice = sourcePrice - discountPrice;
// } // }
return -MoneyUtil.get_ItemDecimals_money(discountPrice); return -MoneyUtil.get_ItemDecimals_money(Math.abs(discountPrice));
}
public static double calculationMemberDiscount(int memberDiscount, double sourcePrice) {
double discountPrice = MoneyUtil.divide(MoneyUtil.multiply(sourcePrice, memberDiscount), 100).doubleValue();
if (sourcePrice < discountPrice) {
//折扣金額不能超出總額
discountPrice = sourcePrice;
}
// else {
// discountPrice = sourcePrice - discountPrice;
// }
return -MoneyUtil.get_ItemDecimals_money(Math.abs(discountPrice));
} }
......
...@@ -162,7 +162,7 @@ public class ComboItemDaoUtils { ...@@ -162,7 +162,7 @@ public class ComboItemDaoUtils {
ArrayList<ComboItem> comboItems = new ArrayList<>(); ArrayList<ComboItem> comboItems = new ArrayList<>();
// String sql = "SELECT c.*,f.FOOD_NAME,f.FOOD_NAME1,f.FOOD_NAME2,f.PRICE,f.AUTO_MOD FROM COMBO_ITEM c join FOOD f on c.FID=f.FID and f.INVISIBLE=0 join FOOD_COMBO r on r.COM_ID=c.COM_ID "; // String sql = "SELECT c.*,f.FOOD_NAME,f.FOOD_NAME1,f.FOOD_NAME2,f.PRICE,f.AUTO_MOD FROM COMBO_ITEM c join FOOD f on c.FID=f.FID and f.INVISIBLE=0 join FOOD_COMBO r on r.COM_ID=c.COM_ID ";
String sql = "SELECT c.*,f.FOOD_NAME,f.FOOD_NAME1,f.FOOD_NAME2,f.PRICE,f.AUTO_MOD,f.PRINT_SETING,f.ABLE_DISCOUNT,SELECT_QTY,DEF_MODIFIER,INVISIBLE,POINTS_ADD,POINTS_RATIO,POINTS_REDEEM FROM COMBO_ITEM c join FOOD f on c.FID=f.FID and f.INVISIBLE!=1 join FOOD_COMBO r on r.COM_ID=c.COM_ID and r.DELETES!=1"; String sql = "SELECT c.*,f.FOOD_NAME,f.FOOD_NAME1,f.FOOD_NAME2,f.PRICE,f.AUTO_MOD,f.PRINT_SETING,f.ABLE_DISCOUNT,SELECT_QTY,DEF_MODIFIER,INVISIBLE,POINTS_ADD,POINTS_RATIO,POINTS_REDEEM,SERVICE_CHARGE FROM COMBO_ITEM c join FOOD f on c.FID=f.FID and f.INVISIBLE!=1 join FOOD_COMBO r on r.COM_ID=c.COM_ID and r.DELETES!=1";
if (fid > 0) { if (fid > 0) {
sql = sql + " where r.FID='" + fid + "'"; sql = sql + " where r.FID='" + fid + "'";
...@@ -187,6 +187,7 @@ public class ComboItemDaoUtils { ...@@ -187,6 +187,7 @@ public class ComboItemDaoUtils {
order.setPointsAdd(c.getDouble(c.getColumnIndex("POINTS_ADD"))); order.setPointsAdd(c.getDouble(c.getColumnIndex("POINTS_ADD")));
order.setPointsRatio(c.getLong(c.getColumnIndex("POINTS_RATIO"))); order.setPointsRatio(c.getLong(c.getColumnIndex("POINTS_RATIO")));
order.setPointsRedeem(c.getDouble(c.getColumnIndex("POINTS_REDEEM"))); order.setPointsRedeem(c.getDouble(c.getColumnIndex("POINTS_REDEEM")));
order.setServiceCharge(c.getInt(c.getColumnIndex("SERVICE_CHARGE")));
String defmodifier = c.getString(c.getColumnIndex("DEF_MODIFIER")); String defmodifier = c.getString(c.getColumnIndex("DEF_MODIFIER"));
if (!TextUtils.isEmpty(defmodifier) && !", ".equals(defmodifier)) { if (!TextUtils.isEmpty(defmodifier) && !", ".equals(defmodifier)) {
order.setDefmodifier(defmodifier); order.setDefmodifier(defmodifier);
......
...@@ -117,6 +117,10 @@ public class FunctionStyleUtils { ...@@ -117,6 +117,10 @@ public class FunctionStyleUtils {
* 送單是否自動合併未送食品(只處理未有細項的食品) * 送單是否自動合併未送食品(只處理未有細項的食品)
*/ */
private boolean MergeSendFood = true; private boolean MergeSendFood = true;
/**
* 送單是否自動打印上菜纸
*/
private boolean AutoPrinterParper = true;
private Set<String> customizeSetting = new HashSet<>(); private Set<String> customizeSetting = new HashSet<>();
......
...@@ -62,7 +62,7 @@ public class MyGlobalHttpHandler implements GlobalHttpHandler { ...@@ -62,7 +62,7 @@ public class MyGlobalHttpHandler implements GlobalHttpHandler {
// return; // return;
// } // }
//因为String的length是字符数量不是字节数量所以为了防止中文字符过多, //因为String的length是字符数量不是字节数量所以为了防止中文字符过多,
// 把4*1024的MAX字节打印长度改为2001字符数 //把4*1024的MAX字节打印长度改为2001字符数
// int max_str_length = 2001 - TAG.length(); // int max_str_length = 2001 - TAG.length();
//大于4000时 //大于4000时
// while (msg.length() > max_str_length) { // while (msg.length() > max_str_length) {
......
...@@ -77,11 +77,11 @@ public class MyResponseErrorListener implements ResponseErrorListener { ...@@ -77,11 +77,11 @@ public class MyResponseErrorListener implements ResponseErrorListener {
showloggedDialog(activity, ArmsUtils.getString(context, R.string.response_error_request_logged)); showloggedDialog(activity, ArmsUtils.getString(context, R.string.response_error_request_logged));
} }
} else { } else {
if (httpException.code() == 400) { // if (httpException.code() == 400) {
//Bad Request // //Bad Request
Activity activity = GsaCloudApplication.getAppContext().getCurrentActivity(); // Activity activity = GsaCloudApplication.getAppContext().getCurrentActivity();
toLoginActivity(activity); // toLoginActivity(activity);
} // }
msg = httpException.message(); msg = httpException.message();
} }
return msg; return msg;
......
...@@ -20,7 +20,7 @@ public class MyAppLifecycles implements AppLifecycles { ...@@ -20,7 +20,7 @@ public class MyAppLifecycles implements AppLifecycles {
@Override @Override
public void onCreate(Application application) { public void onCreate(Application application) {
// initTimber(); // initTimber();
// initLeakCanary(application); initLeakCanary(application);
initFragmentation(); initFragmentation();
// initARouter(application); // initARouter(application);
} }
......
package com.gingersoft.gsa.cloud.ui.adapter; package com.gingersoft.gsa.cloud.ui.adapter;
import android.graphics.Color;
import android.text.TextUtils; import android.text.TextUtils;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
...@@ -31,7 +32,8 @@ public class BillMethodAdapter extends BaseQuickAdapter<PayMethod, BaseViewHolde ...@@ -31,7 +32,8 @@ public class BillMethodAdapter extends BaseQuickAdapter<PayMethod, BaseViewHolde
} }
tv_bill_method_name.setTextSize(item.getPayModeSize()); tv_bill_method_name.setTextSize(item.getPayModeSize());
tv_bill_method_name.setTextColor(item.getPayModeTextColor()); tv_bill_method_name.setTextColor(Color.parseColor(item.getFont_color()));
tv_bill_method_name.setBackgroundColor(Color.parseColor(item.getColor()));
} }
} }
...@@ -107,14 +107,32 @@ public class OrderPayView extends LinearLayout { ...@@ -107,14 +107,32 @@ public class OrderPayView extends LinearLayout {
if (mBillMoneyList.size() == 2) { if (mBillMoneyList.size() == 2) {
//替换掉第一个 //替换掉第一个
mBillMoneyList.remove(0); mBillMoneyList.remove(0);
} else if (mBillMoneyList.size() == 1) { }
//差一种支付方式 直接补足余额 //是否同步金額
//固定金額 (0:否 1:是)
if (method.getWhetherFixedAmount() == 1) {
//直接补足余额
double differenceMoney = getDifferenceMoney(); double differenceMoney = getDifferenceMoney();
if (differenceMoney > -1 && differenceMoney != totalAmount) { if (method.getMinPayAmount() != 0) {
//補足最小支付金額
if (differenceMoney > method.getMinPayAmount()) {
method.setPayMoney(differenceMoney);
} else {
method.setPayMoney(method.getMinPayAmount());
}
} else {
//補足差額 //補足差額
method.setPayMoney(differenceMoney); if (differenceMoney > -1 && differenceMoney != totalAmount) {
method.setPayMoney(differenceMoney);
}
}
} else {
if (method.getMinPayAmount() != 0) {
//補足最小支付金額
method.setPayMoney(method.getMinPayAmount());
} }
} }
//添加選中支付方式 //添加選中支付方式
mBillMoneyList.add(method); mBillMoneyList.add(method);
mBillMoneyAdapter.setSelect_position(mBillMoneyList.size() - 1); mBillMoneyAdapter.setSelect_position(mBillMoneyList.size() - 1);
...@@ -124,7 +142,6 @@ public class OrderPayView extends LinearLayout { ...@@ -124,7 +142,6 @@ public class OrderPayView extends LinearLayout {
setDifferenceText(context); setDifferenceText(context);
} }
}); });
mBillMoneyAdapter.setOnItemClickListener(new BillMoneyAdapter.OnItemClickListener() { mBillMoneyAdapter.setOnItemClickListener(new BillMoneyAdapter.OnItemClickListener() {
@Override @Override
...@@ -173,7 +190,6 @@ public class OrderPayView extends LinearLayout { ...@@ -173,7 +190,6 @@ public class OrderPayView extends LinearLayout {
if (mOnSureClickLisenter != null) { if (mOnSureClickLisenter != null) {
mOnSureClickLisenter.onClick(mBillMoneyList); mOnSureClickLisenter.onClick(mBillMoneyList);
} }
}); });
//Keypad //Keypad
......
...@@ -79,11 +79,14 @@ public class TriangleLabelView extends View { ...@@ -79,11 +79,14 @@ public class TriangleLabelView extends View {
private Corner corner; private Corner corner;
private boolean isRestoreText = true;
public enum Corner { public enum Corner {
TOP_LEFT(1), TOP_LEFT(1),
TOP_RIGHT(2), TOP_RIGHT(2),
BOTTOM_LEFT(3), BOTTOM_LEFT(3),
BOTTOM_RIGHT(4),; BOTTOM_RIGHT(4),;
private final int type; private final int type;
Corner(int type) { Corner(int type) {
...@@ -139,6 +142,8 @@ public class TriangleLabelView extends View { ...@@ -139,6 +142,8 @@ public class TriangleLabelView extends View {
this.primary.size = ta.getDimension(R.styleable.TriangleLabelView_primaryTextSize, sp2px(11)); this.primary.size = ta.getDimension(R.styleable.TriangleLabelView_primaryTextSize, sp2px(11));
this.secondary.size = ta.getDimension(R.styleable.TriangleLabelView_secondaryTextSize, sp2px(8)); this.secondary.size = ta.getDimension(R.styleable.TriangleLabelView_secondaryTextSize, sp2px(8));
this.isRestoreText = ta.getBoolean(R.styleable.TriangleLabelView_isRestoreText, true);
final String primary = ta.getString(R.styleable.TriangleLabelView_primaryText); final String primary = ta.getString(R.styleable.TriangleLabelView_primaryText);
if (primary != null) { if (primary != null) {
this.primary.text = primary; this.primary.text = primary;
...@@ -335,13 +340,15 @@ public class TriangleLabelView extends View { ...@@ -335,13 +340,15 @@ public class TriangleLabelView extends View {
canvas.drawPath(path, trianglePaint); canvas.drawPath(path, trianglePaint);
// draw secondaryText // draw secondaryText
// if (corner.top()) { if (isRestoreText) {
// canvas.drawText(secondary.text, (width) / 2, topPadding + secondary.height, secondary.paint); if (corner.top()) {
// canvas.drawText(primary.text, (width) / 2, (topPadding + secondary.height + centerPadding + primary.height), primary.paint); canvas.drawText(secondary.text, (width) / 2, topPadding + secondary.height, secondary.paint);
// } else { canvas.drawText(primary.text, (width) / 2, (topPadding + secondary.height + centerPadding + primary.height), primary.paint);
// canvas.drawText(secondary.text, (width) / 2, bottomPadding + secondary.height + centerPadding + primary.height, secondary.paint); } else {
// canvas.drawText(primary.text, (width) / 2, (bottomPadding + primary.height), primary.paint); canvas.drawText(secondary.text, (width) / 2, bottomPadding + secondary.height + centerPadding + primary.height, secondary.paint);
// } canvas.drawText(primary.text, (width) / 2, (bottomPadding + primary.height), primary.paint);
}
}
canvas.restore(); canvas.restore();
} }
......
...@@ -34,7 +34,6 @@ import android.view.SurfaceView; ...@@ -34,7 +34,6 @@ import android.view.SurfaceView;
import android.view.View; import android.view.View;
import android.view.View.OnClickListener; import android.view.View.OnClickListener;
import android.widget.TextView; import android.widget.TextView;
import com.billy.cc.core.component.CC; import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.base.R; import com.gingersoft.gsa.cloud.base.R;
import com.gingersoft.gsa.cloud.base.R2; import com.gingersoft.gsa.cloud.base.R2;
...@@ -63,16 +62,15 @@ import com.jess.arms.utils.ArmsUtils; ...@@ -63,16 +62,15 @@ import com.jess.arms.utils.ArmsUtils;
import com.jess.arms.utils.DrawableProvider; import com.jess.arms.utils.DrawableProvider;
import com.qmuiteam.qmui.alpha.QMUIAlphaImageButton; import com.qmuiteam.qmui.alpha.QMUIAlphaImageButton;
import com.qmuiteam.qmui.widget.QMUITopBar; import com.qmuiteam.qmui.widget.QMUITopBar;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import java.io.IOException; import java.io.IOException;
import java.net.URLDecoder; import java.net.URLDecoder;
import java.util.Hashtable; import java.util.Hashtable;
import java.util.List; import java.util.List;
import java.util.Vector; import java.util.Vector;
import java.util.logging.LogManager;
import java.util.logging.Logger;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.core.app.ActivityCompat; import androidx.core.app.ActivityCompat;
...@@ -82,12 +80,12 @@ import butterknife.OnClick; ...@@ -82,12 +80,12 @@ import butterknife.OnClick;
import cn.bingoogolapple.photopicker.activity.BGAPhotoPickerActivity; import cn.bingoogolapple.photopicker.activity.BGAPhotoPickerActivity;
import cn.bingoogolapple.qrcode.core.QRCodeView; import cn.bingoogolapple.qrcode.core.QRCodeView;
import cn.bingoogolapple.qrcode.zxing.ZXingView; import cn.bingoogolapple.qrcode.zxing.ZXingView;
import lombok.Builder;
import static com.jess.arms.utils.Preconditions.checkNotNull; import static com.jess.arms.utils.Preconditions.checkNotNull;
public class MipcaCaptureActivity extends BaseActivity<BasePresenter> implements IView, QRCodeView.Delegate, OnClickListener { public class MipcaCaptureActivity extends BaseActivity<BasePresenter> implements IView, QRCodeView.Delegate, OnClickListener {
@BindView(R2.id.topbar) @BindView(R2.id.topbar)
QMUITopBar mTopBar; QMUITopBar mTopBar;
@BindView(R2.id.btn_album) @BindView(R2.id.btn_album)
...@@ -104,16 +102,14 @@ public class MipcaCaptureActivity extends BaseActivity<BasePresenter> implements ...@@ -104,16 +102,14 @@ public class MipcaCaptureActivity extends BaseActivity<BasePresenter> implements
Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE,
}; };
public static final int CALL_BACK_QR_RESULT = 100; public static final int CALL_BACK_QR_RESULT = 666;
private static final int REQUEST_CODE_CHOOSE_QRCODE_FROM_GALLERY = 666;
private String title = "掃碼"; private String title = "掃碼";
public static void startMipcaCaptureActivity(Context context, String title) { public static void startMipcaCaptureActivity(Activity context, String title) {
Intent intent = new Intent(context, MipcaCaptureActivity.class); Intent intent = new Intent(context, MipcaCaptureActivity.class);
intent.putExtra("title", title); intent.putExtra("title", title);
context.startActivity(intent); context.startActivityForResult(intent, MipcaCaptureActivity.CALL_BACK_QR_RESULT);
// context.startActivityForResult(intent, MealStandActivity.SCAN_REQUEST_CODE);
} }
@Override @Override
...@@ -134,6 +130,7 @@ public class MipcaCaptureActivity extends BaseActivity<BasePresenter> implements ...@@ -134,6 +130,7 @@ public class MipcaCaptureActivity extends BaseActivity<BasePresenter> implements
@Override @Override
public void initData(@Nullable Bundle savedInstanceState) { public void initData(@Nullable Bundle savedInstanceState) {
mZXingView.setDelegate(this); mZXingView.setDelegate(this);
} }
...@@ -216,18 +213,6 @@ public class MipcaCaptureActivity extends BaseActivity<BasePresenter> implements ...@@ -216,18 +213,6 @@ public class MipcaCaptureActivity extends BaseActivity<BasePresenter> implements
intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*"); intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");
startActivityForResult(intent, PHOTOZOOM); startActivityForResult(intent, PHOTOZOOM);
} }
/*
从相册选取二维码图片,这里为了方便演示,使用的是
https://github.com/bingoogolapple/BGAPhotoPicker-Android
这个库来从图库中选择二维码图片,这个库不是必须的,你也可以通过自己的方式从图库中选择图片
*/
// Intent photoPickerIntent = new BGAPhotoPickerActivity.IntentBuilder(this)
// .cameraFileDir(null)
// .maxChooseCount(1)
// .selectedPhotos(null)
// .pauseOnScroll(false)
// .build();
// startActivityForResult(photoPickerIntent, REQUEST_CODE_CHOOSE_QRCODE_FROM_GALLERY);
} }
} }
...@@ -300,7 +285,13 @@ public class MipcaCaptureActivity extends BaseActivity<BasePresenter> implements ...@@ -300,7 +285,13 @@ public class MipcaCaptureActivity extends BaseActivity<BasePresenter> implements
Log.i(TAG, "onScanQRCodeSuccess:" + result); Log.i(TAG, "onScanQRCodeSuccess:" + result);
showMessage("掃描結果: " + result); showMessage("掃描結果: " + result);
vibrate(); vibrate();
mZXingView.startSpot(); // 开始识别 mZXingView.startSpot();
Intent intent = new Intent();
intent.putExtra("qrCodeResult",result);
setResult(CALL_BACK_QR_RESULT,intent);
killMyself();
} }
@Override @Override
......
...@@ -52,6 +52,8 @@ ...@@ -52,6 +52,8 @@
<attr name="labelCenterPadding" format="dimension" /> <attr name="labelCenterPadding" format="dimension" />
<attr name="labelBottomPadding" format="dimension" /> <attr name="labelBottomPadding" format="dimension" />
<attr name="isRestoreText" format="boolean" />
<attr name="primaryTextStyle"> <attr name="primaryTextStyle">
<enum name="normal" value="0" /> <enum name="normal" value="0" />
<enum name="italic" value="1" /> <enum name="italic" value="1" />
......
...@@ -60,17 +60,17 @@ class BtnBuilder(var functions: List<Function>) { ...@@ -60,17 +60,17 @@ class BtnBuilder(var functions: List<Function>) {
} }
private fun getBtn(key:String, btnCode:Int, btnContent: String, btnColor: Int, btnImg: Int): BtnBean? { private fun getBtn(key:String, btnCode:Int, btnContent: String, btnColor: Int, btnImg: Int): BtnBean? {
// for (value in functions) { for (value in functions) {
// if (value.resUrl == key) { if (value.resUrl == key) {
// return when { return when {
// value.status == 3 -> BtnBean(btnCode, btnContent, R.color.color_ccc, btnImg) value.status == 3 -> BtnBean(btnCode, btnContent, R.color.color_ccc, btnImg)
//// value.status == 1 -> BtnBean(btnCode, btnContent, btnColor, btnImg) // value.status == 1 -> BtnBean(btnCode, btnContent, btnColor, btnImg)
// else -> BtnBean(btnCode, btnContent, btnColor, btnImg) else -> BtnBean(btnCode, btnContent, btnColor, btnImg)
// } }
// } }
// } }
// return null return null
return BtnBean(btnCode, btnContent, btnColor, btnImg) // return BtnBean(btnCode, btnContent, btnColor, btnImg)
} }
} }
...@@ -155,8 +155,8 @@ public class PayTypeInfo { ...@@ -155,8 +155,8 @@ public class PayTypeInfo {
private int id; private int id;
private long isdefault; private long isdefault;
private String payName;
private String remarks; private String remarks;
private String payName;
private String payName3; private String payName3;
private String payName2; private String payName2;
private boolean checked; private boolean checked;
...@@ -229,7 +229,7 @@ public class PayTypeInfo { ...@@ -229,7 +229,7 @@ public class PayTypeInfo {
return payMethods; return payMethods;
} }
for (PayTypeInfo.DataBean.PayTypeBean payType : payTypes.payType) { for (PayTypeInfo.DataBean.PayTypeBean payType : payTypes.payType) {
PayMethod payMethod = new PayMethod(payType.id, payType.payName, "", payType.remarks, payType.payName, payType.payName2, payType.payName3, ""); PayMethod payMethod = new PayMethod(payType.id, payType.payName, payType.payName2, payType.payName3);
payMethods.add(payMethod); payMethods.add(payMethod);
} }
return payMethods; return payMethods;
......
...@@ -262,53 +262,53 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl ...@@ -262,53 +262,53 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl
List<Function> functions = new ArrayList<>(); List<Function> functions = new ArrayList<>();
//// if (!BuildConfig.DEBUG) { //// if (!BuildConfig.DEBUG) {
functions.add(new Function((long) 150, 0, 5, "點餐", 0, 0)); // functions.add(new Function((long) 150, 0, 5, "點餐", 0, 0));
if (BuildConfig.DEBUG) { // if (BuildConfig.DEBUG) {
functions.add(new Function((long) 138, 150, 5, "餐檯模式", R.drawable.ic_dining_table_mode, 0)); // functions.add(new Function((long) 138, 150, 5, "餐檯模式", R.drawable.ic_dining_table_mode, 0));
}
functions.add(new Function((long) 139, 150, 5, "外送/自取", R.drawable.ic_delivery_mode, 0));
// functions.add(new Function((long) 140, 150, 5, "外賣模式", R.drawable.ic_outsourcing_model_close, 0));
// functions.add(new Function((long) 141, 150, 5, "預點餐模式", R.drawable.ic_pre_order_mode_close, 1));
functions.add(new Function((long) 151, 0, 5, "管理", 0, 0));
if (BuildConfig.DEBUG) {
functions.add(new Function((long) 142, 151, 5, "賬單管理", R.drawable.ic_meals_menu_management, 0));
functions.add(new Function((long) 143, 151, 5, "餐檯管理", R.drawable.ic_dining_table_management, 0));
}
functions.add(new Function((long) 144, 151, 5, "打印管理", R.drawable.ic_print_management, 0));
if (BuildConfig.DEBUG) {
functions.add(new Function((long) 145, 151, 5, "支付管理", R.drawable.ic_pay_management_close, 1));
functions.add(new Function((long) 146, 151, 5, "折扣管理", R.drawable.ic_discount_management_close, 1));
functions.add(new Function((long) 147, 151, 5, "沽清管理", R.drawable.ic_sell_off_manger, 0));
}
functions.add(new Function((long) 152, 0, 5, "員工", 0, 0));
functions.add(new Function((long) 147, 152, 5, "員工管理", R.drawable.ic_staff_management_close, 1));
functions.add(new Function((long) 148, 152, 5, "權限管理", R.drawable.ic_authority_management_close, 1));
functions.add(new Function((long) 149, 152, 5, "操作記錄", R.drawable.ic_operation_record_close, 1));
// } else {
// List<Function> orderFuncations = FunctionManager.getDefault().getFunctionByResModule(this, ComponentMain.main.class, ComponentMain.main.order, "order");
// if (orderFuncations.size() > 0) {
// functions.addAll(orderFuncations);
// sl_order.setVisibility(View.VISIBLE);
// } else {
// sl_order.setVisibility(View.INVISIBLE);
// } // }
// // functions.add(new Function((long) 139, 150, 5, "外送/自取", R.drawable.ic_delivery_mode, 0));
// List<Function> managerFuncations = FunctionManager.getDefault().getFunctionByResModule(this, ComponentMain.main.class, ComponentMain.main.manager, "manager"); //// functions.add(new Function((long) 140, 150, 5, "外賣模式", R.drawable.ic_outsourcing_model_close, 0));
// if (managerFuncations.size() > 0) { //// functions.add(new Function((long) 141, 150, 5, "預點餐模式", R.drawable.ic_pre_order_mode_close, 1));
// functions.addAll(managerFuncations); // functions.add(new Function((long) 151, 0, 5, "管理", 0, 0));
// ll_management.setVisibility(View.VISIBLE); // if (BuildConfig.DEBUG) {
// } else { // functions.add(new Function((long) 142, 151, 5, "賬單管理", R.drawable.ic_meals_menu_management, 0));
// ll_management.setVisibility(View.GONE); // functions.add(new Function((long) 143, 151, 5, "餐檯管理", R.drawable.ic_dining_table_management, 0));
// } // }
// // functions.add(new Function((long) 144, 151, 5, "打印管理", R.drawable.ic_print_management, 0));
// List<Function> employeeFuncations = FunctionManager.getDefault().getFunctionByResModule(this, ComponentMain.main.class, ComponentMain.main.employee, "employee"); // if (BuildConfig.DEBUG) {
// if (employeeFuncations.size() > 0) { // functions.add(new Function((long) 145, 151, 5, "支付管理", R.drawable.ic_pay_management_close, 1));
// functions.addAll(employeeFuncations); // functions.add(new Function((long) 146, 151, 5, "折扣管理", R.drawable.ic_discount_management_close, 1));
// ll_staff_management.setVisibility(View.VISIBLE); // functions.add(new Function((long) 147, 151, 5, "沽清管理", R.drawable.ic_sell_off_manger, 0));
// } else {
// ll_staff_management.setVisibility(View.GONE);
// } // }
// functions.add(new Function((long) 152, 0, 5, "員工", 0, 0));
// functions.add(new Function((long) 147, 152, 5, "員工管理", R.drawable.ic_staff_management_close, 1));
// functions.add(new Function((long) 148, 152, 5, "權限管理", R.drawable.ic_authority_management_close, 1));
// functions.add(new Function((long) 149, 152, 5, "操作記錄", R.drawable.ic_operation_record_close, 1));
// } else {
List<Function> orderFuncations = FunctionManager.getDefault().getFunctionByResModule(this, ComponentMain.main.class, ComponentMain.main.order, "order");
if (orderFuncations.size() > 0) {
functions.addAll(orderFuncations);
sl_order.setVisibility(View.VISIBLE);
} else {
sl_order.setVisibility(View.INVISIBLE);
}
List<Function> managerFuncations = FunctionManager.getDefault().getFunctionByResModule(this, ComponentMain.main.class, ComponentMain.main.manager, "manager");
if (managerFuncations.size() > 0) {
functions.addAll(managerFuncations);
ll_management.setVisibility(View.VISIBLE);
} else {
ll_management.setVisibility(View.GONE);
}
List<Function> employeeFuncations = FunctionManager.getDefault().getFunctionByResModule(this, ComponentMain.main.class, ComponentMain.main.employee, "employee");
if (employeeFuncations.size() > 0) {
functions.addAll(employeeFuncations);
ll_staff_management.setVisibility(View.VISIBLE);
} else {
ll_staff_management.setVisibility(View.GONE);
}
// } // }
//將功能列表數據分組 //將功能列表數據分組
...@@ -328,15 +328,15 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl ...@@ -328,15 +328,15 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl
} }
} }
} }
// if (orderFuncations.size() > 0) { if (orderFuncations.size() > 0) {
initAdapter(parents, funMap, 0, R.layout.main_home_funcation_item, rvOrdering, 4); initAdapter(parents, funMap, 0, R.layout.main_home_funcation_item, rvOrdering, 4);
// } }
// if (managerFuncations.size() > 0) { if (managerFuncations.size() > 0) {
initAdapter(parents, funMap, 1, R.layout.main_home_management_funcation_item, rvManagement, 5); initAdapter(parents, funMap, 1, R.layout.main_home_management_funcation_item, rvManagement, 5);
// } }
// if (employeeFuncations.size() > 0) { if (employeeFuncations.size() > 0) {
initAdapter(parents, funMap, 2, R.layout.main_home_management_funcation_item, rvStaffManagement, 4); initAdapter(parents, funMap, 2, R.layout.main_home_management_funcation_item, rvStaffManagement, 4);
// } }
} }
private void initAdapter(SparseArray<String> parents, SparseArray<List<Function>> funMap, int i, int p, RecyclerView rvOrdering, int i2) { private void initAdapter(SparseArray<String> parents, SparseArray<List<Function>> funMap, int i, int p, RecyclerView rvOrdering, int i2) {
......
...@@ -24,6 +24,7 @@ import retrofit2.http.Query; ...@@ -24,6 +24,7 @@ import retrofit2.http.Query;
*/ */
public interface TableManageService { public interface TableManageService {
@POST("restaurant/addRestaurantRegion" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2) @POST("restaurant/addRestaurantRegion" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> addArea(@Body RequestBody requestBody); Observable<BaseResult> addArea(@Body RequestBody requestBody);
......
...@@ -6,6 +6,7 @@ import android.widget.LinearLayout; ...@@ -6,6 +6,7 @@ import android.widget.LinearLayout;
import com.gingersoft.gsa.cloud.base.common.bean.BillOrderMoney; import com.gingersoft.gsa.cloud.base.common.bean.BillOrderMoney;
import com.gingersoft.gsa.cloud.base.common.bean.BillingBean; import com.gingersoft.gsa.cloud.base.common.bean.BillingBean;
import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail; import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
import com.gingersoft.gsa.cloud.base.common.bean.TableBean; import com.gingersoft.gsa.cloud.base.common.bean.TableBean;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage; import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
...@@ -16,6 +17,7 @@ import com.gingersoft.gsa.cloud.constans.ExpandConstant; ...@@ -16,6 +17,7 @@ import com.gingersoft.gsa.cloud.constans.ExpandConstant;
import com.gingersoft.gsa.cloud.database.bean.ExpandInfo; import com.gingersoft.gsa.cloud.database.bean.ExpandInfo;
import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean; import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
import com.gingersoft.gsa.cloud.database.utils.ExpandInfoDaoUtils; import com.gingersoft.gsa.cloud.database.utils.ExpandInfoDaoUtils;
import com.gingersoft.gsa.cloud.print.bean.OrderDetails;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -101,10 +103,24 @@ public class PrintBill extends PrinterRoot { ...@@ -101,10 +103,24 @@ public class PrintBill extends PrinterRoot {
layout.addView(getDiningBillPayMethod(mContext, MyOrderManage.getInstance().getBillMoney())); layout.addView(getDiningBillPayMethod(mContext, MyOrderManage.getInstance().getBillMoney()));
layout.addView(getLine(mContext)); layout.addView(getLine(mContext));
// layout.addView(getTableMealMemberIntegerView(mContext,)); layout.addView(getTableMealMemberIntegerView(mContext, getOrderDetail()));
return zoomBitmap(deviceBean, viewToBitmap(mContext, layout)); return zoomBitmap(deviceBean, viewToBitmap(mContext, layout));
} }
private OrderDetails.DataBean getOrderDetail() {
OrderDetails.DataBean dataBean = new OrderDetails.DataBean();
dataBean.setNowPoints(MyOrderManage.getInstance().getPointsNow());
dataBean.setAddPoints(MyOrderManage.getInstance().getPointsAdd());
dataBean.setOldPoints(MyOrderManage.getInstance().getPointsUse());
MemberInfo memberInfo = MyOrderManage.getInstance().getMemberInfo();
if (memberInfo != null) {
dataBean.setMEMBER_NAME(memberInfo.getMemberName());
dataBean.setPHONE(memberInfo.getPhone());
}
return dataBean;
}
} }
...@@ -127,7 +127,11 @@ public interface MealStandContract { ...@@ -127,7 +127,11 @@ public interface MealStandContract {
Observable<FoodReason> getRestaurantFoodReason(int brandId, int restaurantId, int type); Observable<FoodReason> getRestaurantFoodReason(int brandId, int restaurantId, int type);
Observable<BaseResult2> queryMember(int type, String parm, String shopName); Observable<BaseResult> queryMember(int type, String parm, String shopName,int tableId,String tableNumber);
Observable<BaseResult> memeberUse(int tableId, String tableNumber, long memberId);
Observable<BaseResult> memeberUseCancel(int tableId, String tableNumber, long memberId);
List<Food> queryDB_AllFoodList(); List<Food> queryDB_AllFoodList();
......
package com.gingersoft.gsa.cloud.table.mvp.contract; package com.gingersoft.gsa.cloud.table.mvp.contract;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult; import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.bean.Modifier; import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseRespose; import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseRespose;
import com.gingersoft.gsa.cloud.base.common.bean.TableBean; import com.gingersoft.gsa.cloud.base.common.bean.TableBean;
...@@ -67,6 +68,8 @@ public interface TableContract { ...@@ -67,6 +68,8 @@ public interface TableContract {
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存 //Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends IModel { interface Model extends IModel {
List<Food> queryDB_AllFoodList();
List<Modifier> queryDB_ModifierList(long fid, int mode); List<Modifier> queryDB_ModifierList(long fid, int mode);
Observable<TableBean> getTables(int restaurantId); Observable<TableBean> getTables(int restaurantId);
......
...@@ -180,9 +180,21 @@ public class MealStandModel extends BaseModel implements MealStandContract.Model ...@@ -180,9 +180,21 @@ public class MealStandModel extends BaseModel implements MealStandContract.Model
} }
@Override @Override
public Observable<BaseResult2> queryMember(int type, String parm, String shopName) { public Observable<BaseResult> queryMember(int type, String parm, String shopName,int tableId,String tableNumber) {
return mRepositoryManager.obtainRetrofitService(MemberService.class) return mRepositoryManager.obtainRetrofitService(MemberService.class)
.queryMember(type,parm,shopName); .queryMember(type,parm,shopName,tableId,tableNumber);
}
@Override
public Observable<BaseResult> memeberUse(int tableId, String tableNumber, long memberId) {
return mRepositoryManager.obtainRetrofitService(MemberService.class)
.memeberUse(tableId,tableNumber,memberId);
}
@Override
public Observable<BaseResult> memeberUseCancel(int tableId, String tableNumber, long memberId) {
return mRepositoryManager.obtainRetrofitService(MemberService.class)
.memeberUseCancel(tableId,tableNumber,memberId);
} }
@Override @Override
......
...@@ -4,8 +4,10 @@ import android.app.Application; ...@@ -4,8 +4,10 @@ import android.app.Application;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult; import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.database.bean.ComboItem; import com.gingersoft.gsa.cloud.database.bean.ComboItem;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.bean.Modifier; import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.gingersoft.gsa.cloud.database.utils.ComboItemDaoUtils; import com.gingersoft.gsa.cloud.database.utils.ComboItemDaoUtils;
import com.gingersoft.gsa.cloud.database.utils.FoodDaoUtils;
import com.gingersoft.gsa.cloud.database.utils.ModifierDaoUtils; import com.gingersoft.gsa.cloud.database.utils.ModifierDaoUtils;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseRespose; import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseRespose;
import com.gingersoft.gsa.cloud.base.common.bean.TableBean; import com.gingersoft.gsa.cloud.base.common.bean.TableBean;
...@@ -59,6 +61,14 @@ public class TableModel extends BaseModel implements TableContract.Model { ...@@ -59,6 +61,14 @@ public class TableModel extends BaseModel implements TableContract.Model {
this.mApplication = null; this.mApplication = null;
} }
@Override
public List<Food> queryDB_AllFoodList() {
FoodDaoUtils foodDaoUtils = new FoodDaoUtils(mApplication);
List<Food> foods = foodDaoUtils.queryAllFoodByQueryBuilder();
return foods;
}
@Override @Override
public List<Modifier> queryDB_ModifierList(long fid, int mode) { public List<Modifier> queryDB_ModifierList(long fid, int mode) {
ModifierDaoUtils daoUtils = new ModifierDaoUtils(mApplication); ModifierDaoUtils daoUtils = new ModifierDaoUtils(mApplication);
......
...@@ -2,6 +2,8 @@ package com.gingersoft.gsa.cloud.table.mvp.model.bean; ...@@ -2,6 +2,8 @@ package com.gingersoft.gsa.cloud.table.mvp.model.bean;
import com.gingersoft.gsa.cloud.base.common.bean.OrderBean; import com.gingersoft.gsa.cloud.base.common.bean.OrderBean;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail; import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
import com.gingersoft.gsa.cloud.base.common.bean.TableBean;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -82,7 +84,7 @@ public class OrderDetailItem implements Serializable { ...@@ -82,7 +84,7 @@ public class OrderDetailItem implements Serializable {
/**折扣金額*/ /**折扣金額*/
private double discountAmount; private double discountAmount;
/**折扣比例*/ /**折扣比例*/
private double discountValue; private int discountValue;
/**折扣名稱*/ /**折扣名稱*/
private String remark; private String remark;
/**折扣類型*/ /**折扣類型*/
...@@ -94,6 +96,8 @@ public class OrderDetailItem implements Serializable { ...@@ -94,6 +96,8 @@ public class OrderDetailItem implements Serializable {
private List<OrderBean.OrderDetailsBean> orderDetails; private List<OrderBean.OrderDetailsBean> orderDetails;
private List<OrderPayBean> orderPays; private List<OrderPayBean> orderPays;
/**餐檯信息*/
private TableBean.DataBean restaurantTable;
/** /**
* 訂單狀態:0:未支付;1:待確認(已支付, 待餐廳確認);2:制作中(餐厅确认);3:派送中;4:确认收货(完成);5:是否评论;6:取消; * 訂單狀態:0:未支付;1:待確認(已支付, 待餐廳確認);2:制作中(餐厅确认);3:派送中;4:确认收货(完成);5:是否评论;6:取消;
...@@ -120,8 +124,6 @@ public class OrderDetailItem implements Serializable { ...@@ -120,8 +124,6 @@ public class OrderDetailItem implements Serializable {
private double paySales; private double paySales;
private String payName; private String payName;
} }
// public static List<OrderDetail> orderTransOrderDetails(List<OrderBean.OrderDetailsBean> orderDetails) { // public static List<OrderDetail> orderTransOrderDetails(List<OrderBean.OrderDetailsBean> orderDetails) {
// List<OrderDetail> orderDetailList = new ArrayList<>(); // List<OrderDetail> orderDetailList = new ArrayList<>();
......
package com.gingersoft.gsa.cloud.table.mvp.model.bean.request; package com.gingersoft.gsa.cloud.table.mvp.model.bean.request;
import com.gingersoft.gsa.cloud.base.common.bean.OrderBean; import com.gingersoft.gsa.cloud.base.common.bean.OrderBean;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDiscount;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -20,11 +21,9 @@ public class AddOrderRequest { ...@@ -20,11 +21,9 @@ public class AddOrderRequest {
private long orderId; private long orderId;
private long tableId; private long tableId;
private String tableNumber; private String tableNumber;
private Integer memberId;
/**賬單小數*/ /**賬單小數*/
private Double rounding; private Double rounding;
/**整單折扣ID*/ private List<OrderDiscount.Request> discountDetails;
private Long discountId;
private Map<String, List<OrderBean.OrderDetailsBean>> maps; private Map<String, List<OrderBean.OrderDetailsBean>> maps;
} }
......
package com.gingersoft.gsa.cloud.table.mvp.model.bean.request; package com.gingersoft.gsa.cloud.table.mvp.model.bean.request;
import com.gingersoft.gsa.cloud.base.common.bean.OrderBean; import com.gingersoft.gsa.cloud.base.common.bean.OrderBean;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDiscount;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -22,11 +23,9 @@ public class CreateOrderRequest { ...@@ -22,11 +23,9 @@ public class CreateOrderRequest {
private String tableNumber; private String tableNumber;
private String tableName; private String tableName;
private int restaurantId; private int restaurantId;
private Integer memberId;
/**賬單小數*/ /**賬單小數*/
private Double rounding; private Double rounding;
/**整單折扣ID*/ private List<OrderDiscount.Request> discountDetails;
private Long discountId;
private Map<Long, List<OrderBean.OrderDetailsBean>> orderDetails; private Map<Long, List<OrderBean.OrderDetailsBean>> orderDetails;
......
...@@ -21,8 +21,13 @@ import retrofit2.http.Query; ...@@ -21,8 +21,13 @@ import retrofit2.http.Query;
public interface MemberService { public interface MemberService {
@Headers({"Domain-Name: update_version"}) @Headers({"Domain-Name: new_base_url"})
@GET("member/getMemberInfo?" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2) @GET("member/checkMemberInfo" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult2> queryMember(@Query("type") int type, @Query("parm") String parm, @Query("gsposShopId") String shopName); Observable<BaseResult> queryMember(@Query("type") int type, @Query("parm") String parm, @Query("gsposShopId") String shopName,@Query("tableId") int tableId, @Query("tableNumber") String tableNumber);
@GET("restaurantTable/memberUse" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> memeberUse(@Query("tableId") int tableId, @Query("tableNumber") String tableNumber, @Query("memberId") long memberId);
@GET("restaurantTable/memberUseCancel" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> memeberUseCancel(@Query("tableId") int tableId, @Query("tableNumber") String tableNumber, @Query("memberId") long memberId);
} }
...@@ -2,15 +2,18 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter; ...@@ -2,15 +2,18 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter;
import android.app.Application; import android.app.Application;
import android.content.Intent; import android.content.Intent;
import android.graphics.Color;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.SparseArray; import android.util.SparseArray;
import android.view.View; import android.view.View;
import android.widget.Button;
import com.billy.cc.core.component.CC; import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.aspectj.XClickUtil; import com.gingersoft.gsa.cloud.aspectj.XClickUtil;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication; import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult; import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult2; import com.gingersoft.gsa.cloud.base.common.bean.BaseResult2;
import com.gingersoft.gsa.cloud.base.common.bean.BillOrderMoney;
import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo; import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo;
import com.gingersoft.gsa.cloud.base.common.bean.OrderBean; import com.gingersoft.gsa.cloud.base.common.bean.OrderBean;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail; import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
...@@ -794,19 +797,22 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod ...@@ -794,19 +797,22 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
* @param initTable 是否是開台 * @param initTable 是否是開台
*/ */
private void printSendOrder(boolean initTable) { private void printSendOrder(boolean initTable) {
// CC.obtainBuilder("Component.Print") if (GsaCloudApplication.androidSetting.isAutoPrinterParper()) {
// .setActionName("printActivity") CC.obtainBuilder("Component.Print")
// .addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_KITCHEN) .setActionName("printActivity")
// .build() .addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_KITCHEN)
// .callAsyncCallbackOnMainThread((cc, result) -> { .build()
//// if (result.isSuccess()) { .callAsyncCallbackOnMainThread((cc, result) -> {
// //打印成功 if (result.isSuccess()) {
// IActivity.returnBeforeActivity(initTable); } else {
//// } else { mRootView.showMessage("打印失敗");
//// mRootView.showMessage("打印失敗"); }
//// } //打印成功
// }); IActivity.returnBeforeActivity(initTable);
IActivity.returnBeforeActivity(initTable); });
} else {
IActivity.returnBeforeActivity(initTable);
}
} }
/** /**
...@@ -880,34 +886,102 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod ...@@ -880,34 +886,102 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
}); });
} }
public void queryMember(int type, String parm, String shopName) { public void queryMember(int type, String parm, String shopName, int tableId, String tableNumber) {
mModel.queryMember(type, parm, shopName) mModel.queryMember(type, parm, shopName, tableId, tableNumber)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null)) .doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread()) .subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading()) .doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView)) .compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult2>(mErrorHandler) { .subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
@Override @Override
public void onNext(@NonNull BaseResult2 info) { public void onNext(@NonNull BaseResult info) {
if (info != null && info.getCode().equals("1")) { if (info != null && info.isSuccess()) {
if (info.getData() != null) { if (info.getData() != null) {
MemberInfo memberInfo = JsonUtils.parseObject(info.getData(), MemberInfo.class); MemberInfo memberInfo = JsonUtils.parseObject(info.getData(), MemberInfo.class);
if (memberInfo != null) { if (memberInfo != null && memberInfo.getId() != 0) {
//更新會員信息
mRootView.updateMemberInfo(memberInfo); mRootView.updateMemberInfo(memberInfo);
} else {
mRootView.showMessage("請輸入正確的會員號碼!");
} }
} else { } else {
mRootView.showMessage("獲取會員信息失敗!"); mRootView.showMessage("獲取會員信息失敗!");
} }
} else { } else {
mRootView.showMessage(info.getErrorMsg()); mRootView.showMessage(info.getErrMsg());
} }
} }
@Override
public void onError(Throwable t) {
super.onError(t);
}
}); });
} }
// public void memeberUse(int tableId, String tableNumber, long memberId, Button btn_table) {
// mModel.memeberUse(tableId, tableNumber, memberId)
// .subscribeOn(Schedulers.io())
// .doOnSubscribe(disposable -> mRootView.showLoading(null))
// .subscribeOn(AndroidSchedulers.mainThread())
// .observeOn(AndroidSchedulers.mainThread())
// .doAfterTerminate(() -> mRootView.hideLoading())
// .compose(RxLifecycleUtils.bindToLifecycle(mRootView))
// .subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
//
// @Override
// public void onNext(@NonNull BaseResult info) {
// if (info != null && info.isSuccess()) {
// if (info.getData() != null) {
// MyOrderManage.getInstance().setMemberInfo(mMemberInfo);
// btn_table.setBackgroundResource(R.color.pink_300);
// //添加会员折扣行
// addMemberDiscount(mMemberInfo.getId(),mMemberInfo.getMemberDiscount(),mMemberInfo.getLevelName1());
// } else {
// mRootView.showMessage("使用失敗!");
// }
// } else {
// mRootView.showMessage(info.getErrMsg());
// }
// }
// });
// }
// public void memeberUseCancel(int tableId, String tableNumber, long memberId, Button btn_table) {
// mModel.memeberUseCancel(tableId, tableNumber, memberId)
// .subscribeOn(Schedulers.io())
// .doOnSubscribe(disposable -> mRootView.showLoading(null))
// .subscribeOn(AndroidSchedulers.mainThread())
// .observeOn(AndroidSchedulers.mainThread())
// .doAfterTerminate(() -> mRootView.hideLoading())
// .compose(RxLifecycleUtils.bindToLifecycle(mRootView))
// .subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
//
// @Override
// public void onNext(@NonNull BaseResult info) {
// if (info != null && info.isSuccess()) {
// if (info.getData() != null) {
// btn_table.setBackgroundColor(Color.parseColor("#336699"));
// MyOrderManage.getInstance().setMemberInfo(null);
// //刪除會員折扣行
// removeMemberDiscountItem();
// //更新會員信息
// mRootView.memberUseCancelSuccess();
// } else {
// mRootView.showMessage("清除失敗!");
// }
// } else {
// mRootView.showMessage(info.getErrMsg());
// }
// }
//
// });
// }
public void getRestaurantFoodReason() { public void getRestaurantFoodReason() {
int brandId = GsaCloudApplication.getBrandId(mApplication); int brandId = GsaCloudApplication.getBrandId(mApplication);
int restaurantId = GsaCloudApplication.getRestaurantId(mApplication); int restaurantId = GsaCloudApplication.getRestaurantId(mApplication);
...@@ -1455,7 +1529,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod ...@@ -1455,7 +1529,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
return false; return false;
} }
} }
if (!memberPointsCondition(foodBean.getPointsRedeem(),foodBean.getFoodName())) { if (!memberPointsCondition(foodBean.getPointsRedeem(), foodBean.getFoodName())) {
return false; return false;
} }
return true; return true;
...@@ -1476,7 +1550,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod ...@@ -1476,7 +1550,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
return false; return false;
} }
} }
if (!memberPointsCondition(comboItem.getPointsRedeem(),comboItem.getName())) { if (!memberPointsCondition(comboItem.getPointsRedeem(), comboItem.getName())) {
return false; return false;
} }
return true; return true;
...@@ -1907,6 +1981,19 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod ...@@ -1907,6 +1981,19 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
} }
/** /**
* 刪除會員折扣行
*/
public void removeMemberDiscountItem() {
for (BillOrderMoney orderMoney : mOrderMoneyList) {
if (orderMoney.getType() == BillOrderMoney.MEMBER_DISCOUNT_TYPE) {
mOrderMoneyList.remove(orderMoney);
mOrderMoneyAdapter.notifyDataSetChanged();
break;
}
}
}
/**
* 加載折扣數據 * 加載折扣數據
*/ */
public void loadDiscountData() { public void loadDiscountData() {
...@@ -2056,4 +2143,5 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod ...@@ -2056,4 +2143,5 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
public List<SoldoutCtrFood> getSoldoutCtrList() { public List<SoldoutCtrFood> getSoldoutCtrList() {
return mSoldoutCtrList; return mSoldoutCtrList;
} }
} }
...@@ -363,19 +363,21 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -363,19 +363,21 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
* 送單 * 送單
*/ */
private void printSendOrder(List<OrderDetail> newFoods) { private void printSendOrder(List<OrderDetail> newFoods) {
// MyOrderManage.getInstance().setNewFoodList(newFoods); if (GsaCloudApplication.androidSetting.isAutoPrinterParper()) {
// CC.obtainBuilder("Component.Print") CC.obtainBuilder("Component.Print")
// .setActionName("printActivity") .setActionName("printActivity")
// .addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_KITCHEN) .addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_KITCHEN)
// .build() .build()
// .callAsyncCallbackOnMainThread((cc, result) -> { .callAsyncCallbackOnMainThread((cc, result) -> {
// Log.e("error", "是否成功打印:" + result.isSuccess()); if (result.isSuccess()) {
//// if (result.isSuccess()) { } else {
//// //打印成功 mRootView.showMessage("打印失敗");
//// }
//// } mRootView.sendSuccess();
mRootView.sendSuccess(); });
// }); } else {
mRootView.sendSuccess();
}
} }
public void printOrder(long tableId, boolean isSend) { public void printOrder(long tableId, boolean isSend) {
......
...@@ -4,6 +4,7 @@ import android.app.Application; ...@@ -4,6 +4,7 @@ import android.app.Application;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication; import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult; import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail; import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
import com.gingersoft.gsa.cloud.base.common.bean.OrderPayRequest; import com.gingersoft.gsa.cloud.base.common.bean.OrderPayRequest;
import com.gingersoft.gsa.cloud.base.common.bean.PayMethod; import com.gingersoft.gsa.cloud.base.common.bean.PayMethod;
...@@ -205,7 +206,7 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model ...@@ -205,7 +206,7 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
* 結賬 * 結賬
*/ */
public void toOrderPay(boolean show) { public void toOrderPay(boolean show) {
if(myOrderManage.isModifyOrder()){ if (myOrderManage.isModifyOrder()) {
//修改訂單 //修改訂單
updateOrderPay(); updateOrderPay();
return; return;
...@@ -233,11 +234,33 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model ...@@ -233,11 +234,33 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
public void onNext(BaseResult baseResult) { public void onNext(BaseResult baseResult) {
mRootView.hideLoading(); mRootView.hideLoading();
if (baseResult.isSuccess()) { if (baseResult.isSuccess()) {
MemberInfo memberInfo = MyOrderManage.getInstance().getMemberInfo();
if (memberInfo != null) {
setPoints(memberInfo);
}
//結賬成功 //結賬成功
mRootView.paySuccess(); mRootView.paySuccess();
} }
} }
private void setPoints(MemberInfo memberInfo) {
double pointsAdd = getPointsAdd();
double pointsUse = getPointsRedeem();
double pointsOld = memberInfo.getMemberPoint();
double pointsNow = pointsOld + (pointsAdd + pointsUse);
MyOrderManage.getInstance().setPointsOld(pointsOld);
MyOrderManage.getInstance().setPointsNow(pointsNow);
if (pointsAdd > 0) {
MyOrderManage.getInstance().setPointsAdd(pointsAdd);
}
if (pointsUse > 0) {
MyOrderManage.getInstance().setPointsUse(pointsUse);
}
}
@Override @Override
public void onError(Throwable t) { public void onError(Throwable t) {
super.onError(t); super.onError(t);
...@@ -255,6 +278,9 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model ...@@ -255,6 +278,9 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
payRequest.setLinePayType(orderPayView.getLinePayType()); payRequest.setLinePayType(orderPayView.getLinePayType());
payRequest.setTableId(OpenTableManage.getDefault().getTableBean().getId()); payRequest.setTableId(OpenTableManage.getDefault().getTableBean().getId());
payRequest.setTableNumber(OpenTableManage.getDefault().getTableBean().getTableNumber()); payRequest.setTableNumber(OpenTableManage.getDefault().getTableBean().getTableNumber());
payRequest.setMemberId(GsaCloudApplication.getMemberId(mApplication));
payRequest.setPointsAdd(getPointsAdd());
payRequest.setPointsUse(getPointsRedeem());
for (int i = 0; i < payMethodList.size(); i++) { for (int i = 0; i < payMethodList.size(); i++) {
PayMethod payMethod = payMethodList.get(i); PayMethod payMethod = payMethodList.get(i);
...@@ -404,32 +430,17 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model ...@@ -404,32 +430,17 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
} }
/** /**
* 獲取當前n5支付方式
*
* @return
*/
private PayMethod getSelectN5PayMethod() {
// for (int i = 0; i < mBillMoneyList.size(); i++) {
// if (!TextUtils.isEmpty(mBillMoneyList.get(i).getPAYWAY()) &&
// !mBillMoneyList.get(i).getPAYWAY().equals(PayConstant.PAY_WAY_CASH)) {
// return mBillMoneyList.get(i);
// }
// }
return null;
}
/**
* 是否現金支付 * 是否現金支付
* *
* @param datasBean * @param datasBean
* @return * @return
*/ */
private boolean isCashPayMethod(PayMethod datasBean) { private boolean isCashPayMethod(PayMethod datasBean) {
if (datasBean.getPAYWAY().equals(PayConstant.PAY_WAY_CASH)) { // if (datasBean.getPayType().equals(PayConstant.PAY_WAY_CASH)) {
return true; return true;
} else { // } else {
return false; // return false;
} // }
} }
/** /**
...@@ -492,6 +503,37 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model ...@@ -492,6 +503,37 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
} }
/** /**
* 額外食品加分
*
* @return
*/
public double getPointsAdd() {
double pointsAdd = 0;
for (OrderDetail orderDetail : mOrderFoodList) {
if (orderDetail.getType() == OrderDetail.FOOD_TYPE) {
pointsAdd = MoneyUtil.sum(pointsAdd, orderDetail.getPointsAdd() * orderDetail.getNumber());
}
}
return pointsAdd;
}
/**
* 換購食品所需積分
*
* @return
*/
public double getPointsRedeem() {
double pointsRedeem = 0;
for (OrderDetail orderDetail : mOrderFoodList) {
if (orderDetail.getType() == OrderDetail.FOOD_TYPE) {
pointsRedeem = MoneyUtil.sum(pointsRedeem, orderDetail.getPointsRedeem() * orderDetail.getNumber());
}
}
return pointsRedeem;
}
/**
* 是否滿足支付條件 * 是否滿足支付條件
* *
* @return * @return
......
...@@ -20,6 +20,7 @@ import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils; ...@@ -20,6 +20,7 @@ import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils; import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils;
import com.gingersoft.gsa.cloud.constans.GoldConstants; import com.gingersoft.gsa.cloud.constans.GoldConstants;
import com.gingersoft.gsa.cloud.constans.PrintConstans; import com.gingersoft.gsa.cloud.constans.PrintConstans;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.bean.FoodCombo; import com.gingersoft.gsa.cloud.database.bean.FoodCombo;
import com.gingersoft.gsa.cloud.database.bean.Function; import com.gingersoft.gsa.cloud.database.bean.Function;
import com.gingersoft.gsa.cloud.database.bean.Modifier; import com.gingersoft.gsa.cloud.database.bean.Modifier;
...@@ -428,16 +429,21 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont ...@@ -428,16 +429,21 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
} }
OpenTableManage.getDefault().setPeopleNumber(orderBean.getPerson()); OpenTableManage.getDefault().setPeopleNumber(orderBean.getPerson());
List<OrderBean.OrderDetailsBean> orderDetailsBeans = respose.getData().getOrderDetails(); List<OrderBean.OrderDetailsBean> orderDetailsBeans = orderBean.getOrderDetails();
//設置topId setFoodPoints(orderDetailsBeans);
//設置套餐topId
setTopId(orderDetailsBeans); setTopId(orderDetailsBeans);
//緩存訂單信息 //緩存訂單信息
MyOrderManage.getInstance().setOrderBean(new OrderBean(orderBean)); MyOrderManage.getInstance().setOrderBean(new OrderBean(orderBean));
//緩存食品信息 //緩存食品信息
List<OrderDetail> orderDetailList = OrderAssemblyUtil.assemblyOrder(OrderDetail.orderTransOrderDetails(orderDetailsBeans)); List<OrderDetail> orderDetailList = OrderAssemblyUtil.assemblyOrder(OrderDetail.orderTransOrderDetails(orderDetailsBeans));
MyOrderManage.getInstance().setOrderFoodList(orderDetailList); MyOrderManage.getInstance().setOrderFoodList(orderDetailList);
if (orderBean.getMemberInfo() != null) {
//设置会员信息
MyOrderManage.getInstance().setMemberInfo(orderBean.getMemberInfo());
}
} else { } else {
MyOrderManage.getInstance().setOrderBean(null); MyOrderManage.getInstance().setOrderBean(null);
MyOrderManage.getInstance().setOrderFoodList(new ArrayList<>()); MyOrderManage.getInstance().setOrderFoodList(new ArrayList<>());
...@@ -452,6 +458,26 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont ...@@ -452,6 +458,26 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
} }
/** /**
* 設置已送單食品積分(訂單表沒有存儲食品積分字段)
*/
private void setFoodPoints(List<OrderBean.OrderDetailsBean> orderDetailsBeans) {
List<Food> foods = mModel.queryDB_AllFoodList();
for (int i = 0; i < orderDetailsBeans.size(); i++) {
OrderBean.OrderDetailsBean orderDetailsBean = orderDetailsBeans.get(i);
if (orderDetailsBean.getType() != FOOD_TYPE) {
continue;
}
for (int j = 0; j < foods.size(); j++) {
Food food = foods.get(j);
if (food.getId() == orderDetailsBean.getProductId()) {
orderDetailsBean.setPointsAdd(food.getPointsAdd());
orderDetailsBean.setPointsRedeem(food.getPointsRedeem());
}
}
}
}
/**
* 設置套餐,細項組別ID * 設置套餐,細項組別ID
* *
* @param orderDetailsBeans * @param orderDetailsBeans
...@@ -850,7 +876,7 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont ...@@ -850,7 +876,7 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
initTable(dataBean.getId(), dataBean.getTableNumber(), true); initTable(dataBean.getId(), dataBean.getTableNumber(), true);
break; break;
case TableOperatTypeConstant.move_table_4: case TableOperatTypeConstant.move_table_4:
turnTable(originalTableId, targetTableId,originalTableNumber,targetTableNumber, finalIsMergeTable); turnTable(originalTableId, targetTableId, originalTableNumber, targetTableNumber, finalIsMergeTable);
break; break;
case TableOperatTypeConstant.skyorder_mode_5: case TableOperatTypeConstant.skyorder_mode_5:
......
...@@ -123,13 +123,15 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All ...@@ -123,13 +123,15 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All
orderBean.setCreateTime(datasBean.getCreateTime()); orderBean.setCreateTime(datasBean.getCreateTime());
MyOrderManage.getInstance().setOrderBean(orderBean); MyOrderManage.getInstance().setOrderBean(orderBean);
TableBean.DataBean openTableBean = new TableBean.DataBean(); // TableBean.DataBean openTableBean = new TableBean.DataBean();
openTableBean.setCreateTime(TimeUtil.getStringByFormat(new Date(datasBean.getCreateTime()), TimeUtil.dateFormatYMDHM)); // openTableBean.setCreateTime(TimeUtil.getStringByFormat(new Date(datasBean.getCreateTime()), TimeUtil.dateFormatYMDHM));
openTableBean.setTableName(datasBean.getTableName()); // openTableBean.setTableName(datasBean.getTableName());
openTableBean.setId(datasBean.getTableId()); // openTableBean.setId(datasBean.getTableId());
OpenTableManage.getDefault().setTableBean(openTableBean); TableBean.DataBean tableBean = new TableBean.DataBean(datasBean.getRestaurantTable());
tableBean.setTableName(tableBean.getTableName() + "-" + tableBean.getTableNumber());
OpenTableManage.getDefault().setTableBean(tableBean);
OpenTableManage.getDefault().setPeopleNumber(datasBean.getPerson()); OpenTableManage.getDefault().setPeopleNumber(datasBean.getPerson());
List<OrderBean.OrderDetailsBean> orderDetailsBeans = datasBean.getOrderDetails(); List<OrderBean.OrderDetailsBean> orderDetailsBeans = datasBean.getOrderDetails();
List<OrderDetail> orderDetailList = OrderAssemblyUtil.assemblyOrder(OrderDetail.orderTransOrderDetails(orderDetailsBeans)); List<OrderDetail> orderDetailList = OrderAssemblyUtil.assemblyOrder(OrderDetail.orderTransOrderDetails(orderDetailsBeans));
MyOrderManage.getInstance().setOrderFoodList(orderDetailList); MyOrderManage.getInstance().setOrderFoodList(orderDetailList);
......
...@@ -5,6 +5,7 @@ import android.content.DialogInterface; ...@@ -5,6 +5,7 @@ import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.graphics.Color; import android.graphics.Color;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.os.AsyncTask;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.SystemClock; import android.os.SystemClock;
...@@ -250,10 +251,8 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter> ...@@ -250,10 +251,8 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
private UseMemberDialog mUseMemberDialog; private UseMemberDialog mUseMemberDialog;
private UseMemberDialog.BottomLayoutBuilder mUseMemberLayoutBuilder; private UseMemberDialog.BottomLayoutBuilder mUseMemberLayoutBuilder;
private MemberInfoAdapter mMemberInfoAdapter;
private List<SectionTextItem> mMemberInfoList;
private MemberInfo mMemberInfo; private MemberInfo mMemberInfo;
/** /**
* 是否初始化细项布局 * 是否初始化细项布局
*/ */
...@@ -320,6 +319,9 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter> ...@@ -320,6 +319,9 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
//根据倒计时时间自动退出当前页面 //根据倒计时时间自动退出当前页面
initAutoQuit(); initAutoQuit();
} }
if (MyOrderManage.getInstance().getMemberInfo() != null) {
useMember();
}
mPresenter.getCurrentSoldoutFood(); mPresenter.getCurrentSoldoutFood();
// setViewDrawableColor(); // setViewDrawableColor();
...@@ -516,7 +518,6 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter> ...@@ -516,7 +518,6 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
showViewModeVisibility(MealConstant.fine_ViewMode, MealConstant.fine_tabs_ViewMode); showViewModeVisibility(MealConstant.fine_ViewMode, MealConstant.fine_tabs_ViewMode);
} }
@Override @Override
public void setCurrentFinePage() { public void setCurrentFinePage() {
if (currentFinePage == 0) { if (currentFinePage == 0) {
...@@ -562,8 +563,8 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter> ...@@ -562,8 +563,8 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
@OnClick(R2.id.btn_meal_discount) @OnClick(R2.id.btn_meal_discount)
void onClickDiscount() { void onClickDiscount() {
OrderDetail mainOrderDetail = mPresenter.getSelectMealAdapter().getCurrentMainOrderDetail(); OrderDetail mainOrderDetail = mPresenter.getSelectMealAdapter().getCurrentMainOrderDetail();
if(mainOrderDetail != null && mainOrderDetail.getAblediscount() == 0){ if (mainOrderDetail != null && mainOrderDetail.getAblediscount() == 0) {
showMessage("此食品不能參與折扣!"); showMessage("此食品不能參與折扣!");
return; return;
} }
...@@ -576,52 +577,47 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter> ...@@ -576,52 +577,47 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
@OnClick(R2.id.btn_table) @OnClick(R2.id.btn_table)
void onClickTable() { void onClickTable() {
//type取值:1qrCdoetype,2:手機號,3:memberId //type取值:1qrCdoetype,2:手機號,3:memberId
// mUseMemberDialog = new UseMemberDialog(this);
if (mUseMemberDialog == null) { if (mUseMemberDialog == null) {
mUseMemberDialog = new UseMemberDialog.BottomLayoutBuilder(this) mUseMemberDialog = new UseMemberDialog.BottomLayoutBuilder(this)
.setOnLayoutClickListener(new UseMemberDialog.BottomLayoutBuilder.OnLayoutClickListener() { .setOnLayoutClickListener(new UseMemberDialog.BottomLayoutBuilder.OnLayoutClickListener() {
@Override @Override
public void onInputPhone(UseMemberDialog dialog, String phone) { public void setBottomLayoutBuilder(UseMemberDialog.BottomLayoutBuilder layoutBuilder) {
mPresenter.queryMember(2, phone, GsaCloudApplication.getGsPosShopId(mContext)); mUseMemberLayoutBuilder = layoutBuilder;
} }
@Override @Override
public void onScanAction(UseMemberDialog dialog) { public void onInputPhone(UseMemberDialog dialog, String phone) {
mPresenter.startScanActivity(); mPresenter.queryMember(2, phone, GsaCloudApplication.getGsPosShopId(mContext), OpenTableManage.getDefault().getTableBean().getId(), OpenTableManage.getDefault().getTableBean().getTableNumber());
} }
@Override @Override
public void setAdapter(RecyclerView recycler_member_info, UseMemberDialog.BottomLayoutBuilder layoutBuilder) { public void onScanAction(UseMemberDialog dialog) {
mUseMemberLayoutBuilder = layoutBuilder; mPresenter.startScanActivity();
if (mMemberInfoList == null) {
mMemberInfoList = new ArrayList<>();
}
if (mMemberInfoAdapter == null) {
mMemberInfoAdapter = new MemberInfoAdapter(mMemberInfoList);
}
recycler_member_info.setAdapter(mMemberInfoAdapter);
} }
@Override @Override
public void onUseMember(UseMemberDialog dialog) { public void onUseMember(UseMemberDialog dialog) {
MyOrderManage.getInstance().setMemberInfo(mMemberInfo); if (mMemberInfo != null) {
btn_table.setBackgroundResource(R.color.pink_300); MyOrderManage.getInstance().setMemberInfo(mMemberInfo);
//添加会员折扣行
mPresenter.addMemberDiscount(mMemberInfo.getId(), mMemberInfo.getMemberDiscount(), mMemberInfo.getMemberName(), mMemberInfo.getLevelName1());
useMember();
} else {
showMessage("請輸入正確的會員號碼!");
}
} }
@Override @Override
public void clearMemberInfo() { public void clearMemberInfo() {
btn_table.setBackgroundColor(Color.parseColor("#336699")); btn_table.setBackgroundColor(Color.parseColor("#336699"));
MyOrderManage.getInstance().setMemberInfo(null); MyOrderManage.getInstance().setMemberInfo(null);
if (mMemberInfoList.size() > 0) { //刪除會員折扣行
mMemberInfoList.clear(); mPresenter.removeMemberDiscountItem();
} mPresenter.updateOrderMoneyItem();
mMemberInfoAdapter.notifyDataSetChanged();
if (mUseMemberLayoutBuilder != null) {
mUseMemberLayoutBuilder.showBottomLayoutVisibility(false);
}
} }
}).setOnDismissListener(new DialogInterface.OnDismissListener() { })
.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override @Override
public void onDismiss(DialogInterface dialog) { public void onDismiss(DialogInterface dialog) {
} }
...@@ -635,32 +631,12 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter> ...@@ -635,32 +631,12 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
public void updateMemberInfo(MemberInfo memberInfo) { public void updateMemberInfo(MemberInfo memberInfo) {
this.mMemberInfo = memberInfo; this.mMemberInfo = memberInfo;
if (mUseMemberDialog != null) { if (mUseMemberDialog != null) {
List<SectionTextItem> data = getMemberInfoItem(memberInfo); mUseMemberLayoutBuilder.updateMemberInfo(memberInfo);
if (mMemberInfoList.size() > 0) {
mMemberInfoList.clear();
}
mMemberInfoList.addAll(data);
mMemberInfoAdapter.notifyDataSetChanged();
if (mUseMemberLayoutBuilder != null) {
mUseMemberLayoutBuilder.showBottomLayoutVisibility(true);
}
} }
} }
private List<SectionTextItem> getMemberInfoItem(MemberInfo memberInfo) { private void useMember() {
List<SectionTextItem> textItems = new ArrayList<>(); btn_table.setBackgroundResource(R.color.pink_300);
String memberName;
if (TextUtils.isEmpty(memberInfo.getMemberName())) {
memberName = memberInfo.getLevelName1();
} else {
memberName = memberInfo.getMemberName();
}
textItems.add(new SectionTextItem("會員號碼: " + memberInfo.getMemberNo()));
textItems.add(new SectionTextItem("會員電話: " + memberInfo.getPhone()));
textItems.add(new SectionTextItem("會員名稱: " + memberName));
textItems.add(new SectionTextItem("積分: " + memberInfo.getMemberPoint()));
return textItems;
} }
@OnClick(R2.id.btn_multiple_selection) @OnClick(R2.id.btn_multiple_selection)
...@@ -1250,10 +1226,6 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter> ...@@ -1250,10 +1226,6 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
return mFoodGroupAdapter; return mFoodGroupAdapter;
} }
public MemberInfo getMemberInfo() {
return mMemberInfo;
}
@Override @Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data); super.onActivityResult(requestCode, resultCode, data);
......
package com.gingersoft.gsa.cloud.table.mvp.ui.activity; package com.gingersoft.gsa.cloud.table.mvp.ui.activity;
import android.app.Activity; import android.app.Activity;
import android.app.NotificationManager;
import android.content.Intent; import android.content.Intent;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Looper;
import android.os.Message; import android.os.Message;
import android.os.SystemClock; import android.os.SystemClock;
import android.view.View; import android.view.View;
...@@ -214,7 +216,8 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese ...@@ -214,7 +216,8 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese
String tableno = ""; String tableno = "";
if (!OpenTableManage.getDefault().isSplite() && OpenTableManage.getDefault().getTableBean() != null) { if (!OpenTableManage.getDefault().isSplite() && OpenTableManage.getDefault().getTableBean() != null) {
tableno = OpenTableManage.getDefault().getTableBean().getTableName(); tableno = OpenTableManage.getDefault().getTableBean().getTableName();
} else {//TODO 暫未分檯功能 } else {
//TODO 暫未分檯功能
// tableno = GSAApplication.tableContract.getTableno().trim() + "-" + GSAApplication.tableContract.getTableno_split().trim(); // tableno = GSAApplication.tableContract.getTableno().trim() + "-" + GSAApplication.tableContract.getTableno_split().trim();
} }
btn_table.setText(tableno); btn_table.setText(tableno);
...@@ -260,7 +263,6 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese ...@@ -260,7 +263,6 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese
// backPressed(); // backPressed();
// } // }
@Override @Override
public void onBackPressedSupport() { public void onBackPressedSupport() {
super.onBackPressedSupport(); super.onBackPressedSupport();
......
...@@ -18,9 +18,11 @@ import androidx.recyclerview.widget.RecyclerView; ...@@ -18,9 +18,11 @@ import androidx.recyclerview.widget.RecyclerView;
import com.billy.cc.core.component.CC; import com.billy.cc.core.component.CC;
import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseQuickAdapter;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication; import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo;
import com.gingersoft.gsa.cloud.base.common.bean.PayMethod; import com.gingersoft.gsa.cloud.base.common.bean.PayMethod;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage; import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage; import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage;
import com.gingersoft.gsa.cloud.base.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.base.utils.VibratorUtils; import com.gingersoft.gsa.cloud.base.utils.VibratorUtils;
import com.gingersoft.gsa.cloud.base.utils.gson.GsonUtils; import com.gingersoft.gsa.cloud.base.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.base.utils.log.LogUtil; import com.gingersoft.gsa.cloud.base.utils.log.LogUtil;
...@@ -100,6 +102,9 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements ...@@ -100,6 +102,9 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
@BindView(R2.id.tv_time) @BindView(R2.id.tv_time)
TextView tv_time; TextView tv_time;
@BindView(R2.id.tv_member_info)
TextView tv_member_info;
// @BindView(R2.id.tv_difference_name) // @BindView(R2.id.tv_difference_name)
// TextView tv_difference_name; // TextView tv_difference_name;
// @BindView(R2.id.tv_difference_money) // @BindView(R2.id.tv_difference_money)
...@@ -128,6 +133,29 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements ...@@ -128,6 +133,29 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
// private QMUITipDialog tipDialog; // private QMUITipDialog tipDialog;
@BindView(R2.id.gsa_pay_view) @BindView(R2.id.gsa_pay_view)
OrderPayView gsaPayView; OrderPayView gsaPayView;
/**
* 會員積分數
*/
private double memberIntegral = 0;
/**
* 額外食品加分
*/
private double pointsAdd;
/**
* 換購食品所需積分
*/
private double pointsRedeem;
/**
* 積分兌換現金比例(MemberPointRedeemCash=2 (理解為每2分=1元)
*/
private double memberPointRedeemCash = 0;
/**
* 積分規則
*/
private int pointRule;
/** /**
* N5相关 * N5相关
*/ */
...@@ -161,22 +189,6 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements ...@@ -161,22 +189,6 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
.inject(this); .inject(this);
} }
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
Intent intent = getIntent();
// N5CallbackManage.getInstance().register(this, in5Callback);
super.onCreate(savedInstanceState);
if (savedInstanceState == null) {
// mPresenter.getPayMethods();
}
}
@Override
protected void onSaveInstanceState(Bundle outState) {
// outState.putSerializable(PRE_BILL_DATA, mPresenter.getPreBillData());
// outState.putSerializable(PAY_METHOD, mPresenter.getBillMethodList());
super.onSaveInstanceState(outState);
}
@Override @Override
public int initView(@Nullable Bundle savedInstanceState) { public int initView(@Nullable Bundle savedInstanceState) {
...@@ -190,6 +202,7 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements ...@@ -190,6 +202,7 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
mPresenter.getPayMethods(); mPresenter.getPayMethods();
initTopInfo(); initTopInfo();
initOrderDetail(); initOrderDetail();
initMemberInfo();
initN5RespCallBack(); initN5RespCallBack();
} }
...@@ -233,6 +246,59 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements ...@@ -233,6 +246,59 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
// setDifferenceText(); // setDifferenceText();
} }
private void initMemberInfo() {
//会员信息
if (MyOrderManage.getInstance().getMemberInfo() != null) {
tv_member_info.setVisibility(View.VISIBLE);
tv_member_info.setText(getMemberInfo());
} else {
tv_member_info.setVisibility(View.GONE);
}
}
private String getMemberInfo() {
MemberInfo memberBean = MyOrderManage.getInstance().getMemberInfo();
String memberInfo;
String memberName = memberBean.getMemberName();
String LevelName1 = memberBean.getLevelName1();
if (!TextUtils.isEmpty(LevelName1)) {
memberInfo = LanguageUtils.get_language_system(this, "meal.info.member.name", "會員名稱:")
+ memberName
+ "(" + LevelName1 + ")";
} else {
memberInfo = LanguageUtils.get_language_system(this, "meal.info.member.name", "會員:") + memberName;
}
boolean showPoints = false;
if (mPresenter.getPointsAdd() != 0 && mPresenter.getPointsRedeem() != 0) {
memberInfo = memberInfo + ":" + memberBean.getMemberPoint() + " +" + mPresenter.getPointsAdd() + " -" + mPresenter.getPointsRedeem();
showPoints = true;
} else {
if (mPresenter.getPointsAdd() != 0) {
memberInfo = memberInfo + ":" + memberBean.getMemberPoint() + " +" + mPresenter.getPointsAdd();
showPoints = true;
}
if (mPresenter.getPointsRedeem() != 0) {
memberInfo = memberInfo + ":" + memberBean.getMemberPoint() + " -" + mPresenter.getPointsRedeem();
showPoints = true;
}
}
if(!showPoints){
memberInfo = memberInfo + ":" + memberBean.getMemberPoint();
}
// memberIntegral = memberBean.getMemberPoint();
// memberPointRedeemCash = memberBean.getPointRedeemCash();
// //獲取積分支付抵扣金額
// double consumptionPoints = mPresenter.getConsumptionPoints(memberPointRedeemCash);
// if (consumptionPoints > 0) {
// memberInfo = memberInfo + ": " + memberIntegral + " " + "-" + consumptionPoints;
// } else {
// memberInfo = memberInfo + ": " + memberIntegral;
// }
return memberInfo;
}
@Override @Override
public void setDifferenceText() { public void setDifferenceText() {
// double difference = mPresenter.getDifferenceMoney(); // double difference = mPresenter.getDifferenceMoney();
...@@ -503,9 +569,33 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements ...@@ -503,9 +569,33 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
setBillMoney(); setBillMoney();
if (!MyOrderManage.getInstance().isModifyOrder() && OpenTableManage.getDefault() != null && OpenTableManage.getDefault().getTableBean() != null) { if (!MyOrderManage.getInstance().isModifyOrder() && OpenTableManage.getDefault() != null && OpenTableManage.getDefault().getTableBean() != null) {
//通知更新餐台状态 //通知更新餐台状态
EventBus.getDefault().post(new InitTableEvent(OpenTableManage.getDefault().getTableBean().getId(), OpenTableManage.getDefault().getTableBean().getTableNumber()),"initTable_status_event"); EventBus.getDefault().post(new InitTableEvent(OpenTableManage.getDefault().getTableBean().getId(), OpenTableManage.getDefault().getTableBean().getTableNumber()), "initTable_status_event");
} }
showMessage("支付成功"); showMessage("支付成功");
//開錢箱
boolean openInstruction = false;
List<PayMethod> payMethods = gsaPayView.getBillMoneyList();
for (PayMethod payMethod : payMethods) {
if (payMethod.getWhetherOpenBox() == 1) {
openInstruction = true;
break;
}
}
if (openInstruction) {
CC.obtainBuilder("Component.Print")
.setActionName("printActivity")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_INSTRUCTION)
.build()
.callAsync((cc, result) -> {
printBill();
});
} else {
printBill();
}
}
private void printBill() {
//打印結賬單 //打印結賬單
CC.obtainBuilder("Component.Print") CC.obtainBuilder("Component.Print")
.setActionName("printActivity") .setActionName("printActivity")
......
package com.gingersoft.gsa.cloud.table.mvp.ui.activity; package com.gingersoft.gsa.cloud.table.mvp.ui.activity;
import android.content.Intent; import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle; import android.os.Bundle;
import android.os.Message; import android.os.Message;
import android.view.View; import android.view.View;
......
...@@ -402,20 +402,22 @@ public class OrderDetailActivity extends BaseActivity<OrderDetailPresenter> impl ...@@ -402,20 +402,22 @@ public class OrderDetailActivity extends BaseActivity<OrderDetailPresenter> impl
orderBean.setStatus(datasBean.getStatus()); orderBean.setStatus(datasBean.getStatus());
orderBean.setOrderNo(datasBean.getOrderNo()); orderBean.setOrderNo(datasBean.getOrderNo());
orderBean.setPerson(datasBean.getPerson()); orderBean.setPerson(datasBean.getPerson());
orderBean.setType(datasBean.getType()); // orderBean.setType(datasBean.getType());
orderBean.setRemark(datasBean.getRemark()); // orderBean.setRemark(datasBean.getRemark());
orderBean.setDiscountAmount(datasBean.getDiscountAmount()); // orderBean.setDiscountAmount(datasBean.getDiscountAmount());
orderBean.setDiscountValue(datasBean.getDiscountValue()); // orderBean.setDiscountValue(datasBean.getDiscountValue());
orderBean.setCreateTime(datasBean.getCreateTime()); orderBean.setCreateTime(datasBean.getCreateTime());
orderBean.setOrderDetails(datasBean.getOrderDetails()); orderBean.setOrderDetails(datasBean.getOrderDetails());
MyOrderManage.getInstance().setOrderBean(orderBean); MyOrderManage.getInstance().setOrderBean(orderBean);
TableBean.DataBean openTableBean = new TableBean.DataBean(); // TableBean.DataBean openTableBean = new TableBean.DataBean();
openTableBean.setCreateTime(TimeUtil.getStringByFormat(new Date(datasBean.getCreateTime()), TimeUtil.dateFormatYMDHM)); // openTableBean.setCreateTime(TimeUtil.getStringByFormat(new Date(datasBean.getCreateTime()), TimeUtil.dateFormatYMDHM));
openTableBean.setTableName(datasBean.getTableName()); // openTableBean.setTableName(datasBean.getTableName());
openTableBean.setId(datasBean.getTableId()); // openTableBean.setId(datasBean.getTableId());
// openTableBean.setServiceCharge(datasBean.getServiceAmount()/datasBean.getTotalAmount()); // OpenTableManage.getDefault().setTableBean(openTableBean);
OpenTableManage.getDefault().setTableBean(openTableBean); TableBean.DataBean tableBean = new TableBean.DataBean(datasBean.getRestaurantTable());
tableBean.setTableName(tableBean.getTableName() + "-" + tableBean.getTableNumber());
OpenTableManage.getDefault().setTableBean(tableBean);
OpenTableManage.getDefault().setPeopleNumber(datasBean.getPerson()); OpenTableManage.getDefault().setPeopleNumber(datasBean.getPerson());
List<OrderBean.OrderDetailsBean> orderDetailsBeans = datasBean.getOrderDetails(); List<OrderBean.OrderDetailsBean> orderDetailsBeans = datasBean.getOrderDetails();
...@@ -445,7 +447,6 @@ public class OrderDetailActivity extends BaseActivity<OrderDetailPresenter> impl ...@@ -445,7 +447,6 @@ public class OrderDetailActivity extends BaseActivity<OrderDetailPresenter> impl
dataBean.setCreateTime(TimeUtil.getStringByFormat(new Date(orderDetailItem.getCreateTime()), TimeUtil.dateFormatYMDHM)); dataBean.setCreateTime(TimeUtil.getStringByFormat(new Date(orderDetailItem.getCreateTime()), TimeUtil.dateFormatYMDHM));
OpenTableManage.getDefault().setTableBean(dataBean); OpenTableManage.getDefault().setTableBean(dataBean);
CC.obtainBuilder("Component.Print") CC.obtainBuilder("Component.Print")
.setActionName("printActivity") .setActionName("printActivity")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_BILL) .addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_BILL)
......
...@@ -89,7 +89,8 @@ public class OrderMoneyAdapter extends DefaultAdapter<BillOrderMoney> { ...@@ -89,7 +89,8 @@ public class OrderMoneyAdapter extends DefaultAdapter<BillOrderMoney> {
tv_money.setTextColor(datasBean.getTextColor()); tv_money.setTextColor(datasBean.getTextColor());
if (mContext instanceof OrderContentActivity && if (mContext instanceof OrderContentActivity &&
datasBean.getType() == BillOrderMoney.DISCOUNT_TYPE && datasBean.getType() == BillOrderMoney.ORDER_DISCOUNT_TYPE &&
datasBean.getType() != BillOrderMoney.MEMBER_DISCOUNT_TYPE &&
datasBean.getStatus() == 0) { datasBean.getStatus() == 0) {
iv_delete.setVisibility(View.VISIBLE); iv_delete.setVisibility(View.VISIBLE);
iv_delete.setOnClickListener(v -> { iv_delete.setOnClickListener(v -> {
......
...@@ -115,9 +115,9 @@ public class TableAdapter extends DefaultAdapter<TableBean.DataBean> { ...@@ -115,9 +115,9 @@ public class TableAdapter extends DefaultAdapter<TableBean.DataBean> {
TextView tv_open_duration; TextView tv_open_duration;
// @BindView(R2.id.btn_showMain) // @BindView(R2.id.btn_showMain)
// Button btn_showMain; // Button btn_showMain;
// @BindView(R2.id.iv_vip) @BindView(R2.id.iv_vip)
// ImageView iv_vip; TriangleLabelView iv_vip;
// @BindView(R2.id.tv_scan_flag) // @BindView(R2.id.tv_scan_flag)
// TextView tv_scan_flag; // TextView tv_scan_flag;
@BindView(R2.id.fl_table_type) @BindView(R2.id.fl_table_type)
FrameLayout fl_table_type; FrameLayout fl_table_type;
...@@ -207,6 +207,11 @@ public class TableAdapter extends DefaultAdapter<TableBean.DataBean> { ...@@ -207,6 +207,11 @@ public class TableAdapter extends DefaultAdapter<TableBean.DataBean> {
} else { } else {
fl_table_type.setVisibility(View.GONE); fl_table_type.setVisibility(View.GONE);
} }
if (item.getMemberId() > 0) {
iv_vip.setVisibility(View.VISIBLE);
} else {
iv_vip.setVisibility(View.GONE);
}
} }
private void initTableBackground(TableBean.DataBean item) { private void initTableBackground(TableBean.DataBean item) {
......
...@@ -185,6 +185,13 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> { ...@@ -185,6 +185,13 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> {
tv_D.setVisibility(View.INVISIBLE); tv_D.setVisibility(View.INVISIBLE);
} }
tv_D_1.setVisibility(View.INVISIBLE); tv_D_1.setVisibility(View.INVISIBLE);
if(datasBean.getScAble() == 0){
tv_S.setVisibility(View.VISIBLE);
}else {
tv_S.setVisibility(View.INVISIBLE);
}
tv_S_1.setVisibility(View.INVISIBLE);
tv_discount_money.setVisibility(View.INVISIBLE); tv_discount_money.setVisibility(View.INVISIBLE);
// if (datasBean.isModify()) { // if (datasBean.isModify()) {
......
...@@ -23,7 +23,10 @@ import android.widget.LinearLayout; ...@@ -23,7 +23,10 @@ import android.widget.LinearLayout;
import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseQuickAdapter;
import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo; import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
import com.gingersoft.gsa.cloud.base.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.table.R; import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.MemberInfoAdapter;
import com.gingersoft.gsa.cloud.ui.adapter.BasTextSectiontAdapter; import com.gingersoft.gsa.cloud.ui.adapter.BasTextSectiontAdapter;
import com.gingersoft.gsa.cloud.ui.bean.mode.BrandsBean; import com.gingersoft.gsa.cloud.ui.bean.mode.BrandsBean;
import com.gingersoft.gsa.cloud.ui.bean.view.SectionHeader; import com.gingersoft.gsa.cloud.ui.bean.view.SectionHeader;
...@@ -116,7 +119,6 @@ public class UseMemberDialog extends Dialog { ...@@ -116,7 +119,6 @@ public class UseMemberDialog extends Dialog {
super.setContentView(view); super.setContentView(view);
} }
/** /**
* BottomSheet升起动画 * BottomSheet升起动画
*/ */
...@@ -220,8 +222,6 @@ public class UseMemberDialog extends Dialog { ...@@ -220,8 +222,6 @@ public class UseMemberDialog extends Dialog {
private Context mContext; private Context mContext;
private UseMemberDialog mDialog; private UseMemberDialog mDialog;
private MemberInfo mMemberInfo;
private QMUITopBar mTopBar; private QMUITopBar mTopBar;
private RecyclerView.LayoutManager mLayoutManager; private RecyclerView.LayoutManager mLayoutManager;
...@@ -234,15 +234,13 @@ public class UseMemberDialog extends Dialog { ...@@ -234,15 +234,13 @@ public class UseMemberDialog extends Dialog {
private QMUIAlphaButton btn_use_member; private QMUIAlphaButton btn_use_member;
private QMUIAlphaButton btn_clear_member; private QMUIAlphaButton btn_clear_member;
private MemberInfoAdapter mMemberInfoAdapter;
private List<SectionTextItem> mMemberInfoList;
public BottomLayoutBuilder(Context context) { public BottomLayoutBuilder(Context context) {
mContext = context; mContext = context;
} }
public void setMemberInfo(MemberInfo mMemberInfo) {
this.mMemberInfo = mMemberInfo;
}
@Override @Override
public void onClick(View v) { public void onClick(View v) {
} }
...@@ -257,6 +255,7 @@ public class UseMemberDialog extends Dialog { ...@@ -257,6 +255,7 @@ public class UseMemberDialog extends Dialog {
if (mDismissListener != null) { if (mDismissListener != null) {
mDialog.setOnDismissListener(mDismissListener); mDialog.setOnDismissListener(mDismissListener);
} }
updateMemberInfo(MyOrderManage.getInstance().getMemberInfo());
// AndroidWorkaround.assistActivity(contentView); // AndroidWorkaround.assistActivity(contentView);
return mDialog; return mDialog;
} }
...@@ -269,12 +268,15 @@ public class UseMemberDialog extends Dialog { ...@@ -269,12 +268,15 @@ public class UseMemberDialog extends Dialog {
iv_no_data = view.findViewById(R.id.iv_no_data); iv_no_data = view.findViewById(R.id.iv_no_data);
btn_query_memeber = view.findViewById(R.id.btn_query_memeber); btn_query_memeber = view.findViewById(R.id.btn_query_memeber);
btn_scan = view.findViewById(R.id.btn_scan); btn_scan = view.findViewById(R.id.btn_scan);
ll_bottom = view.findViewById(R.id.ll_bottom); ll_bottom = view.findViewById(R.id.ll_bottom);
btn_use_member = view.findViewById(R.id.btn_use_member); btn_use_member = view.findViewById(R.id.btn_use_member);
btn_clear_member = view.findViewById(R.id.btn_clear_member); btn_clear_member = view.findViewById(R.id.btn_clear_member);
initTopbar(); initTopbar();
initRecyclerLayout(); initRecyclerLayout();
if (onLayoutClickListener != null) {
onLayoutClickListener.setBottomLayoutBuilder(this);
}
btn_query_memeber.setOnClickListener(new View.OnClickListener() { btn_query_memeber.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
...@@ -308,26 +310,15 @@ public class UseMemberDialog extends Dialog { ...@@ -308,26 +310,15 @@ public class UseMemberDialog extends Dialog {
public void onClick(View v) { public void onClick(View v) {
if (onLayoutClickListener != null) { if (onLayoutClickListener != null) {
onLayoutClickListener.clearMemberInfo(); onLayoutClickListener.clearMemberInfo();
clearMemberInfo();
} }
} }
}); });
if (onLayoutClickListener != null) {
onLayoutClickListener.setAdapter(recycler_member_info,this);
}
return view; return view;
} }
private void initTopbar() { private void initTopbar() {
mTopBar.setBackgroundColor(ContextCompat.getColor(mContext, R.color.theme_color)); mTopBar.setBackgroundColor(ContextCompat.getColor(mContext, R.color.theme_color));
// Button rightBtn = mTopBar.addRightTextButton("清除", R.id.btn_right);
// rightBtn.setTextColor(ContextCompat.getColor(mContext, R.color.theme_white_color));
// rightBtn.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View v) {
//
//
// }
// });
mTopBar.addLeftBackImageButton().setOnClickListener(new View.OnClickListener() { mTopBar.addLeftBackImageButton().setOnClickListener(new View.OnClickListener() {
@Override @Override
...@@ -358,9 +349,52 @@ public class UseMemberDialog extends Dialog { ...@@ -358,9 +349,52 @@ public class UseMemberDialog extends Dialog {
}; };
} }
public void showBottomLayoutVisibility(boolean show){ public void updateMemberInfo(MemberInfo memberInfo) {
ll_bottom.setVisibility(show?View.VISIBLE:View.GONE); if (memberInfo != null) {
btn_scan.setVisibility(!show?View.VISIBLE:View.GONE); if (mMemberInfoList == null) {
mMemberInfoList = new ArrayList<>();
}
if (mMemberInfoAdapter == null) {
mMemberInfoAdapter = new MemberInfoAdapter(mMemberInfoList);
recycler_member_info.setAdapter(mMemberInfoAdapter);
}
List<SectionTextItem> data = getMemberInfoItem(memberInfo);
if (mMemberInfoList.size() > 0) {
mMemberInfoList.clear();
}
mMemberInfoList.addAll(data);
mMemberInfoAdapter.notifyDataSetChanged();
showBottomLayoutVisibility(true);
}
}
public void clearMemberInfo() {
if (mMemberInfoList.size() > 0) {
mMemberInfoList.clear();
}
mMemberInfoAdapter.notifyDataSetChanged();
showBottomLayoutVisibility(false);
}
private List<SectionTextItem> getMemberInfoItem(MemberInfo memberInfo) {
List<SectionTextItem> textItems = new ArrayList<>();
String memberName = memberInfo.getMemberName();
String LevelName1 = memberInfo.getLevelName1();
if (!TextUtils.isEmpty(LevelName1)) {
memberName = memberName
+ "(" + LevelName1 + ")";
}
textItems.add(new SectionTextItem("會員號碼: " + memberInfo.getMemberNo()));
textItems.add(new SectionTextItem("會員電話: " + memberInfo.getPhone()));
textItems.add(new SectionTextItem("會員名稱: " + memberName));
textItems.add(new SectionTextItem("積分: " + memberInfo.getMemberPoint()));
return textItems;
}
public void showBottomLayoutVisibility(boolean show) {
ll_bottom.setVisibility(show ? View.VISIBLE : View.GONE);
btn_scan.setVisibility(!show ? View.VISIBLE : View.GONE);
} }
private String getTvPhone() { private String getTvPhone() {
...@@ -386,12 +420,12 @@ public class UseMemberDialog extends Dialog { ...@@ -386,12 +420,12 @@ public class UseMemberDialog extends Dialog {
public interface OnLayoutClickListener { public interface OnLayoutClickListener {
void setBottomLayoutBuilder(BottomLayoutBuilder layoutBuilder);
void onInputPhone(UseMemberDialog dialog, String phone); void onInputPhone(UseMemberDialog dialog, String phone);
void onScanAction(UseMemberDialog dialog); void onScanAction(UseMemberDialog dialog);
void setAdapter(RecyclerView recycler_member_info,BottomLayoutBuilder layoutBuilder);
void onUseMember(UseMemberDialog dialog); void onUseMember(UseMemberDialog dialog);
void clearMemberInfo(); void clearMemberInfo();
......
...@@ -2,7 +2,8 @@ ...@@ -2,7 +2,8 @@
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content"
android:background="@color/theme_white_color">
<Chronometer <Chronometer
android:id="@+id/ctime" android:id="@+id/ctime"
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="@color/theme_white_color"
android:orientation="vertical"> android:orientation="vertical">
<Chronometer <Chronometer
......
...@@ -89,6 +89,17 @@ ...@@ -89,6 +89,17 @@
</RelativeLayout> </RelativeLayout>
</LinearLayout> </LinearLayout>
<TextView
android:id="@+id/tv_member_info"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="會員信息"
android:textSize="@dimen/sp_14"
android:padding="@dimen/dp_5"
android:textStyle="bold"
android:textColor="@color/theme_white_color"
android:background="@color/app_color_theme_1"/>
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_food" android:id="@+id/rv_food"
android:layout_width="match_parent" android:layout_width="match_parent"
......
...@@ -2,7 +2,8 @@ ...@@ -2,7 +2,8 @@
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent"
android:background="@color/theme_white_color">
<com.qmuiteam.qmui.widget.QMUITopBar <com.qmuiteam.qmui.widget.QMUITopBar
android:id="@+id/topbar" android:id="@+id/topbar"
......
...@@ -93,7 +93,8 @@ ...@@ -93,7 +93,8 @@
app:corner="rightBottom" app:corner="rightBottom"
app:primaryText="堂" app:primaryText="堂"
app:primaryTextColor="#249B65" app:primaryTextColor="#249B65"
app:primaryTextSize="10sp" /> app:primaryTextSize="10sp"
app:isRestoreText="false"/>
<TextView <TextView
android:id="@+id/tv_type_labe" android:id="@+id/tv_type_labe"
...@@ -105,6 +106,18 @@ ...@@ -105,6 +106,18 @@
android:textSize="10sp" android:textSize="10sp"
android:padding="@dimen/dp_5"/> android:padding="@dimen/dp_5"/>
</FrameLayout> </FrameLayout>
<com.gingersoft.gsa.cloud.ui.view.TriangleLabelView
android:id="@+id/iv_vip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:backgroundColor="#FFDF713B"
app:corner="leftTop"
app:primaryText="VIP"
app:primaryTextColor="@color/theme_white_color"
app:primaryTextSize="@dimen/sp_12"
app:isRestoreText="true"/>
<!-- <ImageView--> <!-- <ImageView-->
<!-- android:id="@+id/iv_vip"--> <!-- android:id="@+id/iv_vip"-->
<!-- android:layout_width="50dp"--> <!-- android:layout_width="50dp"-->
...@@ -113,7 +126,7 @@ ...@@ -113,7 +126,7 @@
<!-- android:layout_alignParentTop="true"--> <!-- android:layout_alignParentTop="true"-->
<!-- android:scaleType="fitXY"--> <!-- android:scaleType="fitXY"-->
<!-- android:src="@drawable/qmui_icon_tip_new"--> <!-- android:src="@drawable/qmui_icon_tip_new"-->
<!-- android:visibility="gone" />--> <!-- android:visibility="visible" />-->
<!-- <TextView--> <!-- <TextView-->
<!-- android:id="@+id/tv_scan_flag"--> <!-- android:id="@+id/tv_scan_flag"-->
...@@ -127,4 +140,5 @@ ...@@ -127,4 +140,5 @@
<!-- android:gravity="center"--> <!-- android:gravity="center"-->
<!-- android:visibility="gone"--> <!-- android:visibility="gone"-->
<!-- android:textSize="@dimen/font_normal2" />--> <!-- android:textSize="@dimen/font_normal2" />-->
</com.qmuiteam.qmui.layout.QMUIRelativeLayout> </com.qmuiteam.qmui.layout.QMUIRelativeLayout>
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