Commit a3e7affc by 宁斌

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

parent a7c19cb0
......@@ -106,7 +106,7 @@ dependencies {
//多功能輸入框
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-baseadapter:1.2.9@aar'
implementation 'cn.bingoogolapple:bga-flowlayout:1.0.0@aar'
......
......@@ -186,6 +186,9 @@ public class GsaCloudApplication extends BaseApplication {
RetrofitUrlManager.getInstance().putDomain("yc_location", HttpsConstans.ROOT_SERVER_YOU_CHANG_HK);
//System請求地址
RetrofitUrlManager.getInstance().putDomain("system_url", HttpsConstans.SYSTEM_URL);
//後台遷移新地址
RetrofitUrlManager.getInstance().putDomain("new_base_url", HttpsConstans.ROOT_URL+"/ricepon-member/api/");
}
private void initPrint() {
......
......@@ -23,8 +23,9 @@ public class BillOrderMoney {
private int textColor = Color.parseColor("#000000");
private int bgColor;
private byte type = DISCOUNT_TYPE;
public static final byte DISCOUNT_TYPE = 1;
private byte type = ORDER_DISCOUNT_TYPE;
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 ROUNDING_TYPE = 3;
......
package com.gingersoft.gsa.cloud.base.common.bean;
import android.text.TextUtils;
import java.util.Date;
import lombok.Data;
......@@ -118,14 +120,17 @@ public class MemberInfo {
* MemberPoint : 3
*/
private CreateTimeBean createTime;
private UpdateTimeBean updateTime;
private MemberExpireDateBean memberExpireDate;
private VaildTimeBean vaildTime;
private long id;
private String memberNo;
private int memberDiscount;
//获取会员信息接口
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 int birthdaybonusratio;
private int creditPoints;
......@@ -141,7 +146,6 @@ public class MemberInfo {
private int points;
private int negativePoints;
private int couponTypeId;
private int id;
private int isdefault;
private int pointsVariable;
private String brandName;
......@@ -153,9 +157,6 @@ public class MemberInfo {
private int brandId;
private int pointRedeemCash;
private int ablediscount;
private String levelName3;
private String levelName2;
private String levelName1;
private int expireAfterDayClearPoints;
private int extendExpireAmount;
private String foodDesc3;
......@@ -182,8 +183,20 @@ public class MemberInfo {
private int pointUnit;
private int nextUpLevel;
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
public static class CreateTimeBean {
/**
......
......@@ -185,6 +185,19 @@ public class OrderDetail implements Serializable {
*/
private int discountStatus;
/**
* 是否参与折扣#0:不參與;1:參與;
**/
private byte scAble = 1;
/**
* 額外食品加分
*/
private double pointsAdd;
/**
* 換購食品所需積分
*/
private double pointsRedeem;
/**
* 食品組
*/
private String ftName;
......@@ -273,6 +286,7 @@ public class OrderDetail implements Serializable {
this.items = orderDetail.items;
this.createTime = orderDetail.createTime;
this.ablediscount = orderDetail.ablediscount;
this.scAble = orderDetail.scAble;
this.ftName = orderDetail.ftName;
this.majorName = orderDetail.majorName;
this.discount = orderDetail.discount;
......@@ -281,6 +295,8 @@ public class OrderDetail implements Serializable {
this.printSeting = orderDetail.printSeting;
this.ktPrintMainItem = orderDetail.ktPrintMainItem;
this.currentMaxNumber = orderDetail.currentMaxNumber;
this.pointsAdd = orderDetail.pointsAdd;
this.pointsRedeem = orderDetail.pointsRedeem;
}
public int getSelected() {
......@@ -875,6 +891,9 @@ public class OrderDetail implements Serializable {
orderDetail.setType(orderDetailsBean.getType());
orderDetail.setItemType(getItemType(orderDetailsBean, parentOrderDetail));
orderDetail.setAblediscount(orderDetailsBean.getAblediscount());
orderDetail.setScAble(orderDetailsBean.getScAble());
orderDetail.setPointsAdd(orderDetailsBean.getPointsAdd());
orderDetail.setPointsRedeem(orderDetailsBean.getPointsRedeem());
orderDetailList.add(orderDetail);
// if (orderDetail.isIsfood()) {
......@@ -986,6 +1005,9 @@ public class OrderDetail implements Serializable {
int comboLevel = food.isComboFood() ? 1 : 0;
orderDetail.setComboLevel(comboLevel);
orderDetail.setCurrentMaxNumber(food.getCurrentMaxNumber());
orderDetail.setScAble(food.getServiceCharge());
orderDetail.setPointsAdd(food.getPointsAdd());
orderDetail.setPointsRedeem(food.getPointsRedeem());
return orderDetail;
}
......@@ -1031,6 +1053,9 @@ public class OrderDetail implements Serializable {
orderDetail.setSelected(1);
}
orderDetail.setCurrentMaxNumber(foodCombo.getCurrentMaxNumber());
orderDetail.setScAble((byte) foodCombo.getServiceCharge());
orderDetail.setPointsAdd(foodCombo.getPointsAdd());
orderDetail.setPointsRedeem(foodCombo.getPointsRedeem());
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 {
private int orderPayType;
private int tableId;
private String tableNumber;
private long memberId;
//當前加的積分
private Double pointsAdd;
//當前減去的積分
private Double pointsUse;
private List<orderPay> orderPays = new ArrayList<>();
@Data
......
package com.gingersoft.gsa.cloud.base.common.bean;
import android.graphics.Color;
import android.text.TextUtils;
import com.google.gson.annotations.SerializedName;
import java.util.List;
import lombok.Data;
/**
* 作者:ELEGANT_BIN
......@@ -13,22 +14,157 @@ import java.util.List;
* 修订历史:2020-02-15
* 描述:
*/
@Data
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
* 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"}]
* id : 12
* brandId : 1
* 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 String payName;
private String createTime;
private String remarks;
private int brandId;
private int restaurantId;
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;
......@@ -41,148 +177,33 @@ public class PayMethod {
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 int getId() {
return id;
}
public void setId(int id) {
public PayMethod(int id, String nameFirst, String nameSecond, String nameThird) {
this.id = id;
this.nameFirst = nameFirst;
this.nameSecond = nameSecond;
this.nameThird = nameThird;
}
public String getPayName() {
return payName;
}
public void setPayName(String payName) {
this.payName = payName;
}
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;
if (!TextUtils.isEmpty(nameFirst))
return nameFirst;
if (!TextUtils.isEmpty(nameSecond))
return nameSecond;
if (!TextUtils.isEmpty(nameThird))
return nameThird;
return "";
}
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() {
return NAME3;
public void setPayName(String name){
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 {
MoneyUtil.ItemDecimals = expandInfo.getValueInt();
}
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;
import java.io.Serializable;
import java.util.List;
import lombok.Data;
......@@ -59,7 +60,7 @@ public class TableBean {
}
@Data
public static class DataBean {
public static class DataBean implements Serializable {
/**
* id : 25839
* tableName : ceshitai1*
......
......@@ -16,22 +16,23 @@ import java.util.concurrent.TimeUnit;
* 描述: 線程池管理類
*/
public class ThreadPoolManager {
private String TAG =this.getClass().getSimpleName();
private String TAG = this.getClass().getSimpleName();
private static ThreadPoolManager instence = null;
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个线程,那么超出核心线程数的两个线程就会被记录时间,超过该时间就会被杀死,如果没有超过核心线程数,那么线程是不会被倒计时的。
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() {
if (instence == null) {
......@@ -49,9 +50,9 @@ public class ThreadPoolManager {
* ArrayBlockingQueue是一个执行任务的容量,当调用mThreadPoolExecutor的execute,容量加1,执行run完后,容量减1
* ArrayBlockingQueue后面传入true就是以FIFO规则存储:先进先出
*/
public ThreadPoolManager(){
if(mThreadPoolExecutor==null){
mThreadPoolExecutor = new ThreadPoolExecutor(corePoolSize,maximumPoolSize,keepAliveTime, TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(capacity,true),handler);
public ThreadPoolManager() {
if (mThreadPoolExecutor == null) {
mThreadPoolExecutor = new ThreadPoolExecutor(CORE_POOL_SIZE, MAXIMUM_POOL_SIZE, KEEP_ALIVE_SECONDS, TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(capacity, true), handler);
}
//开启线程一直循环从等待队列里面取出可执行任务并执行
mThreadPoolExecutor.execute(runnable);
......@@ -60,9 +61,10 @@ public class ThreadPoolManager {
/**
* 往队列里面存入可执行任务
*
* @param runnable
*/
public void putExecutableTasks(Runnable runnable){
public void putExecutableTasks(Runnable runnable) {
try {
taskQueue.put(runnable);
} catch (InterruptedException e) {
......@@ -73,34 +75,33 @@ public class ThreadPoolManager {
/**
* ThreadPoolExecutor的run
*/
private Runnable runnable=new Runnable() {
private Runnable runnable = new Runnable() {
@Override
public void run() {
//开启循环
while(true){
while (true) {
//取出等待的执行任务
Runnable taskQueueRunnable = null;
try {
Log.d(TAG,"等待队列大小:"+taskQueue.size());
Log.d(TAG, "等待队列大小:" + taskQueue.size());
taskQueueRunnable = (Runnable) taskQueue.take();
} catch (InterruptedException e) {
e.printStackTrace();
}
if(runnable!=null){
if (runnable != null) {
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
public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) {
......
......@@ -12,7 +12,7 @@ public class ExpandConstant {
public final static String RoundingDecimal = "RoundingDecimal";
public final static String ItemDecimals = "ItemDecimals";
public final static String MergeSendFood = "MergeSendFood";
public final static String AutoPrinterParper = "AutoPrinterParper";
......
......@@ -149,6 +149,11 @@ public class ComboItem {
*/
@Transient
private long ablediscount;
/**
* 是否收取服務費
*/
@Transient
private int serviceCharge;
/*** 是否自動展開*/
@Transient
private int autoMode = 0;
......
......@@ -104,7 +104,19 @@ public class Discount {
// else {
// 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 {
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,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) {
sql = sql + " where r.FID='" + fid + "'";
......@@ -187,6 +187,7 @@ public class ComboItemDaoUtils {
order.setPointsAdd(c.getDouble(c.getColumnIndex("POINTS_ADD")));
order.setPointsRatio(c.getLong(c.getColumnIndex("POINTS_RATIO")));
order.setPointsRedeem(c.getDouble(c.getColumnIndex("POINTS_REDEEM")));
order.setServiceCharge(c.getInt(c.getColumnIndex("SERVICE_CHARGE")));
String defmodifier = c.getString(c.getColumnIndex("DEF_MODIFIER"));
if (!TextUtils.isEmpty(defmodifier) && !", ".equals(defmodifier)) {
order.setDefmodifier(defmodifier);
......
......@@ -117,6 +117,10 @@ public class FunctionStyleUtils {
* 送單是否自動合併未送食品(只處理未有細項的食品)
*/
private boolean MergeSendFood = true;
/**
* 送單是否自動打印上菜纸
*/
private boolean AutoPrinterParper = true;
private Set<String> customizeSetting = new HashSet<>();
......
......@@ -62,7 +62,7 @@ public class MyGlobalHttpHandler implements GlobalHttpHandler {
// return;
// }
//因为String的length是字符数量不是字节数量所以为了防止中文字符过多,
// 把4*1024的MAX字节打印长度改为2001字符数
//把4*1024的MAX字节打印长度改为2001字符数
// int max_str_length = 2001 - TAG.length();
//大于4000时
// while (msg.length() > max_str_length) {
......
......@@ -77,11 +77,11 @@ public class MyResponseErrorListener implements ResponseErrorListener {
showloggedDialog(activity, ArmsUtils.getString(context, R.string.response_error_request_logged));
}
} else {
if (httpException.code() == 400) {
//Bad Request
Activity activity = GsaCloudApplication.getAppContext().getCurrentActivity();
toLoginActivity(activity);
}
// if (httpException.code() == 400) {
// //Bad Request
// Activity activity = GsaCloudApplication.getAppContext().getCurrentActivity();
// toLoginActivity(activity);
// }
msg = httpException.message();
}
return msg;
......
......@@ -20,7 +20,7 @@ public class MyAppLifecycles implements AppLifecycles {
@Override
public void onCreate(Application application) {
// initTimber();
// initLeakCanary(application);
initLeakCanary(application);
initFragmentation();
// initARouter(application);
}
......
package com.gingersoft.gsa.cloud.ui.adapter;
import android.graphics.Color;
import android.text.TextUtils;
import androidx.annotation.Nullable;
......@@ -31,7 +32,8 @@ public class BillMethodAdapter extends BaseQuickAdapter<PayMethod, BaseViewHolde
}
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 {
if (mBillMoneyList.size() == 2) {
//替换掉第一个
mBillMoneyList.remove(0);
} else if (mBillMoneyList.size() == 1) {
//差一种支付方式 直接补足余额
}
//是否同步金額
//固定金額 (0:否 1:是)
if (method.getWhetherFixedAmount() == 1) {
//直接补足余额
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);
mBillMoneyAdapter.setSelect_position(mBillMoneyList.size() - 1);
......@@ -124,7 +142,6 @@ public class OrderPayView extends LinearLayout {
setDifferenceText(context);
}
});
mBillMoneyAdapter.setOnItemClickListener(new BillMoneyAdapter.OnItemClickListener() {
@Override
......@@ -173,7 +190,6 @@ public class OrderPayView extends LinearLayout {
if (mOnSureClickLisenter != null) {
mOnSureClickLisenter.onClick(mBillMoneyList);
}
});
//Keypad
......
......@@ -79,11 +79,14 @@ public class TriangleLabelView extends View {
private Corner corner;
private boolean isRestoreText = true;
public enum Corner {
TOP_LEFT(1),
TOP_RIGHT(2),
BOTTOM_LEFT(3),
BOTTOM_RIGHT(4),;
private final int type;
Corner(int type) {
......@@ -139,6 +142,8 @@ public class TriangleLabelView extends View {
this.primary.size = ta.getDimension(R.styleable.TriangleLabelView_primaryTextSize, sp2px(11));
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);
if (primary != null) {
this.primary.text = primary;
......@@ -335,13 +340,15 @@ public class TriangleLabelView extends View {
canvas.drawPath(path, trianglePaint);
// draw secondaryText
// if (corner.top()) {
// canvas.drawText(secondary.text, (width) / 2, topPadding + secondary.height, secondary.paint);
// canvas.drawText(primary.text, (width) / 2, (topPadding + secondary.height + centerPadding + primary.height), primary.paint);
// } else {
// 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);
// }
if (isRestoreText) {
if (corner.top()) {
canvas.drawText(secondary.text, (width) / 2, topPadding + secondary.height, secondary.paint);
canvas.drawText(primary.text, (width) / 2, (topPadding + secondary.height + centerPadding + primary.height), primary.paint);
} else {
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();
}
......
......@@ -34,7 +34,6 @@ import android.view.SurfaceView;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.base.R;
import com.gingersoft.gsa.cloud.base.R2;
......@@ -63,16 +62,15 @@ import com.jess.arms.utils.ArmsUtils;
import com.jess.arms.utils.DrawableProvider;
import com.qmuiteam.qmui.alpha.QMUIAlphaImageButton;
import com.qmuiteam.qmui.widget.QMUITopBar;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.IOException;
import java.net.URLDecoder;
import java.util.Hashtable;
import java.util.List;
import java.util.Vector;
import java.util.logging.LogManager;
import java.util.logging.Logger;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.app.ActivityCompat;
......@@ -82,12 +80,12 @@ import butterknife.OnClick;
import cn.bingoogolapple.photopicker.activity.BGAPhotoPickerActivity;
import cn.bingoogolapple.qrcode.core.QRCodeView;
import cn.bingoogolapple.qrcode.zxing.ZXingView;
import lombok.Builder;
import static com.jess.arms.utils.Preconditions.checkNotNull;
public class MipcaCaptureActivity extends BaseActivity<BasePresenter> implements IView, QRCodeView.Delegate, OnClickListener {
@BindView(R2.id.topbar)
QMUITopBar mTopBar;
@BindView(R2.id.btn_album)
......@@ -104,16 +102,14 @@ public class MipcaCaptureActivity extends BaseActivity<BasePresenter> implements
Manifest.permission.READ_EXTERNAL_STORAGE,
};
public static final int CALL_BACK_QR_RESULT = 100;
private static final int REQUEST_CODE_CHOOSE_QRCODE_FROM_GALLERY = 666;
public static final int CALL_BACK_QR_RESULT = 666;
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.putExtra("title", title);
context.startActivity(intent);
// context.startActivityForResult(intent, MealStandActivity.SCAN_REQUEST_CODE);
context.startActivityForResult(intent, MipcaCaptureActivity.CALL_BACK_QR_RESULT);
}
@Override
......@@ -134,6 +130,7 @@ public class MipcaCaptureActivity extends BaseActivity<BasePresenter> implements
@Override
public void initData(@Nullable Bundle savedInstanceState) {
mZXingView.setDelegate(this);
}
......@@ -216,18 +213,6 @@ public class MipcaCaptureActivity extends BaseActivity<BasePresenter> implements
intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");
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
Log.i(TAG, "onScanQRCodeSuccess:" + result);
showMessage("掃描結果: " + result);
vibrate();
mZXingView.startSpot(); // 开始识别
mZXingView.startSpot();
Intent intent = new Intent();
intent.putExtra("qrCodeResult",result);
setResult(CALL_BACK_QR_RESULT,intent);
killMyself();
}
@Override
......
......@@ -52,6 +52,8 @@
<attr name="labelCenterPadding" format="dimension" />
<attr name="labelBottomPadding" format="dimension" />
<attr name="isRestoreText" format="boolean" />
<attr name="primaryTextStyle">
<enum name="normal" value="0" />
<enum name="italic" value="1" />
......
......@@ -60,17 +60,17 @@ class BtnBuilder(var functions: List<Function>) {
}
private fun getBtn(key:String, btnCode:Int, btnContent: String, btnColor: Int, btnImg: Int): BtnBean? {
// for (value in functions) {
// if (value.resUrl == key) {
// return when {
// value.status == 3 -> BtnBean(btnCode, btnContent, R.color.color_ccc, btnImg)
//// value.status == 1 -> BtnBean(btnCode, btnContent, btnColor, btnImg)
// else -> BtnBean(btnCode, btnContent, btnColor, btnImg)
// }
// }
// }
// return null
return BtnBean(btnCode, btnContent, btnColor, btnImg)
for (value in functions) {
if (value.resUrl == key) {
return when {
value.status == 3 -> BtnBean(btnCode, btnContent, R.color.color_ccc, btnImg)
// value.status == 1 -> BtnBean(btnCode, btnContent, btnColor, btnImg)
else -> BtnBean(btnCode, btnContent, btnColor, btnImg)
}
}
}
return null
// return BtnBean(btnCode, btnContent, btnColor, btnImg)
}
}
......@@ -155,8 +155,8 @@ public class PayTypeInfo {
private int id;
private long isdefault;
private String payName;
private String remarks;
private String payName;
private String payName3;
private String payName2;
private boolean checked;
......@@ -229,7 +229,7 @@ public class PayTypeInfo {
return payMethods;
}
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);
}
return payMethods;
......
......@@ -262,53 +262,53 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl
List<Function> functions = new ArrayList<>();
//// if (!BuildConfig.DEBUG) {
functions.add(new Function((long) 150, 0, 5, "點餐", 0, 0));
if (BuildConfig.DEBUG) {
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) 150, 0, 5, "點餐", 0, 0));
// if (BuildConfig.DEBUG) {
// functions.add(new Function((long) 138, 150, 5, "餐檯模式", R.drawable.ic_dining_table_mode, 0));
// }
//
// 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);
// 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));
// }
//
// 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);
// 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);
}
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
}
}
}
// if (orderFuncations.size() > 0) {
initAdapter(parents, funMap, 0, R.layout.main_home_funcation_item, rvOrdering, 4);
// }
// if (managerFuncations.size() > 0) {
initAdapter(parents, funMap, 1, R.layout.main_home_management_funcation_item, rvManagement, 5);
// }
// if (employeeFuncations.size() > 0) {
initAdapter(parents, funMap, 2, R.layout.main_home_management_funcation_item, rvStaffManagement, 4);
// }
if (orderFuncations.size() > 0) {
initAdapter(parents, funMap, 0, R.layout.main_home_funcation_item, rvOrdering, 4);
}
if (managerFuncations.size() > 0) {
initAdapter(parents, funMap, 1, R.layout.main_home_management_funcation_item, rvManagement, 5);
}
if (employeeFuncations.size() > 0) {
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) {
......
......@@ -24,6 +24,7 @@ import retrofit2.http.Query;
*/
public interface TableManageService {
@POST("restaurant/addRestaurantRegion" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> addArea(@Body RequestBody requestBody);
......
......@@ -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.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.TableBean;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
......@@ -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.PrinterDeviceBean;
import com.gingersoft.gsa.cloud.database.utils.ExpandInfoDaoUtils;
import com.gingersoft.gsa.cloud.print.bean.OrderDetails;
import java.math.BigDecimal;
import java.util.ArrayList;
......@@ -101,10 +103,24 @@ public class PrintBill extends PrinterRoot {
layout.addView(getDiningBillPayMethod(mContext, MyOrderManage.getInstance().getBillMoney()));
layout.addView(getLine(mContext));
// layout.addView(getTableMealMemberIntegerView(mContext,));
layout.addView(getTableMealMemberIntegerView(mContext, getOrderDetail()));
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 {
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();
......
package com.gingersoft.gsa.cloud.table.mvp.contract;
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.table.mvp.model.bean.BaseRespose;
import com.gingersoft.gsa.cloud.base.common.bean.TableBean;
......@@ -67,6 +68,8 @@ public interface TableContract {
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends IModel {
List<Food> queryDB_AllFoodList();
List<Modifier> queryDB_ModifierList(long fid, int mode);
Observable<TableBean> getTables(int restaurantId);
......
......@@ -180,9 +180,21 @@ public class MealStandModel extends BaseModel implements MealStandContract.Model
}
@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)
.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
......
......@@ -4,8 +4,10 @@ import android.app.Application;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
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.utils.ComboItemDaoUtils;
import com.gingersoft.gsa.cloud.database.utils.FoodDaoUtils;
import com.gingersoft.gsa.cloud.database.utils.ModifierDaoUtils;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseRespose;
import com.gingersoft.gsa.cloud.base.common.bean.TableBean;
......@@ -59,6 +61,14 @@ public class TableModel extends BaseModel implements TableContract.Model {
this.mApplication = null;
}
@Override
public List<Food> queryDB_AllFoodList() {
FoodDaoUtils foodDaoUtils = new FoodDaoUtils(mApplication);
List<Food> foods = foodDaoUtils.queryAllFoodByQueryBuilder();
return foods;
}
@Override
public List<Modifier> queryDB_ModifierList(long fid, int mode) {
ModifierDaoUtils daoUtils = new ModifierDaoUtils(mApplication);
......
......@@ -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.OrderDetail;
import com.gingersoft.gsa.cloud.base.common.bean.TableBean;
import lombok.Data;
import java.io.Serializable;
import java.util.ArrayList;
......@@ -82,7 +84,7 @@ public class OrderDetailItem implements Serializable {
/**折扣金額*/
private double discountAmount;
/**折扣比例*/
private double discountValue;
private int discountValue;
/**折扣名稱*/
private String remark;
/**折扣類型*/
......@@ -94,6 +96,8 @@ public class OrderDetailItem implements Serializable {
private List<OrderBean.OrderDetailsBean> orderDetails;
private List<OrderPayBean> orderPays;
/**餐檯信息*/
private TableBean.DataBean restaurantTable;
/**
* 訂單狀態:0:未支付;1:待確認(已支付, 待餐廳確認);2:制作中(餐厅确认);3:派送中;4:确认收货(完成);5:是否评论;6:取消;
......@@ -120,8 +124,6 @@ public class OrderDetailItem implements Serializable {
private double paySales;
private String payName;
}
// public static List<OrderDetail> orderTransOrderDetails(List<OrderBean.OrderDetailsBean> orderDetails) {
// List<OrderDetail> orderDetailList = new ArrayList<>();
......
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.OrderDiscount;
import java.util.List;
import java.util.Map;
......@@ -20,11 +21,9 @@ public class AddOrderRequest {
private long orderId;
private long tableId;
private String tableNumber;
private Integer memberId;
/**賬單小數*/
private Double rounding;
/**整單折扣ID*/
private Long discountId;
private List<OrderDiscount.Request> discountDetails;
private Map<String, List<OrderBean.OrderDetailsBean>> maps;
}
......
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.OrderDiscount;
import java.util.List;
import java.util.Map;
......@@ -22,11 +23,9 @@ public class CreateOrderRequest {
private String tableNumber;
private String tableName;
private int restaurantId;
private Integer memberId;
/**賬單小數*/
private Double rounding;
/**整單折扣ID*/
private Long discountId;
private List<OrderDiscount.Request> discountDetails;
private Map<Long, List<OrderBean.OrderDetailsBean>> orderDetails;
......
......@@ -21,8 +21,13 @@ import retrofit2.http.Query;
public interface MemberService {
@Headers({"Domain-Name: update_version"})
@GET("member/getMemberInfo?" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult2> queryMember(@Query("type") int type, @Query("parm") String parm, @Query("gsposShopId") String shopName);
@Headers({"Domain-Name: new_base_url"})
@GET("member/checkMemberInfo" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
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;
import android.app.Application;
import android.content.Intent;
import android.graphics.Color;
import android.text.TextUtils;
import android.util.SparseArray;
import android.view.View;
import android.widget.Button;
import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.aspectj.XClickUtil;
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.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.OrderBean;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
......@@ -794,19 +797,22 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
* @param initTable 是否是開台
*/
private void printSendOrder(boolean initTable) {
// CC.obtainBuilder("Component.Print")
// .setActionName("printActivity")
// .addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_KITCHEN)
// .build()
// .callAsyncCallbackOnMainThread((cc, result) -> {
//// if (result.isSuccess()) {
// //打印成功
// IActivity.returnBeforeActivity(initTable);
//// } else {
//// mRootView.showMessage("打印失敗");
//// }
// });
IActivity.returnBeforeActivity(initTable);
if (GsaCloudApplication.androidSetting.isAutoPrinterParper()) {
CC.obtainBuilder("Component.Print")
.setActionName("printActivity")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_KITCHEN)
.build()
.callAsyncCallbackOnMainThread((cc, result) -> {
if (result.isSuccess()) {
} else {
mRootView.showMessage("打印失敗");
}
//打印成功
IActivity.returnBeforeActivity(initTable);
});
} else {
IActivity.returnBeforeActivity(initTable);
}
}
/**
......@@ -880,34 +886,102 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
});
}
public void queryMember(int type, String parm, String shopName) {
mModel.queryMember(type, parm, shopName)
public void queryMember(int type, String parm, String shopName, int tableId, String tableNumber) {
mModel.queryMember(type, parm, shopName, tableId, tableNumber)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult2>(mErrorHandler) {
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseResult2 info) {
if (info != null && info.getCode().equals("1")) {
public void onNext(@NonNull BaseResult info) {
if (info != null && info.isSuccess()) {
if (info.getData() != null) {
MemberInfo memberInfo = JsonUtils.parseObject(info.getData(), MemberInfo.class);
if (memberInfo != null) {
if (memberInfo != null && memberInfo.getId() != 0) {
//更新會員信息
mRootView.updateMemberInfo(memberInfo);
} else {
mRootView.showMessage("請輸入正確的會員號碼!");
}
} else {
mRootView.showMessage("獲取會員信息失敗!");
}
} 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() {
int brandId = GsaCloudApplication.getBrandId(mApplication);
int restaurantId = GsaCloudApplication.getRestaurantId(mApplication);
......@@ -1455,7 +1529,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
return false;
}
}
if (!memberPointsCondition(foodBean.getPointsRedeem(),foodBean.getFoodName())) {
if (!memberPointsCondition(foodBean.getPointsRedeem(), foodBean.getFoodName())) {
return false;
}
return true;
......@@ -1476,7 +1550,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
return false;
}
}
if (!memberPointsCondition(comboItem.getPointsRedeem(),comboItem.getName())) {
if (!memberPointsCondition(comboItem.getPointsRedeem(), comboItem.getName())) {
return false;
}
return true;
......@@ -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() {
......@@ -2056,4 +2143,5 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
public List<SoldoutCtrFood> getSoldoutCtrList() {
return mSoldoutCtrList;
}
}
......@@ -363,19 +363,21 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
* 送單
*/
private void printSendOrder(List<OrderDetail> newFoods) {
// MyOrderManage.getInstance().setNewFoodList(newFoods);
// CC.obtainBuilder("Component.Print")
// .setActionName("printActivity")
// .addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_KITCHEN)
// .build()
// .callAsyncCallbackOnMainThread((cc, result) -> {
// Log.e("error", "是否成功打印:" + result.isSuccess());
//// if (result.isSuccess()) {
//// //打印成功
////
//// }
mRootView.sendSuccess();
// });
if (GsaCloudApplication.androidSetting.isAutoPrinterParper()) {
CC.obtainBuilder("Component.Print")
.setActionName("printActivity")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_KITCHEN)
.build()
.callAsyncCallbackOnMainThread((cc, result) -> {
if (result.isSuccess()) {
} else {
mRootView.showMessage("打印失敗");
}
mRootView.sendSuccess();
});
} else {
mRootView.sendSuccess();
}
}
public void printOrder(long tableId, boolean isSend) {
......
......@@ -4,6 +4,7 @@ import android.app.Application;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo;
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.PayMethod;
......@@ -205,7 +206,7 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
* 結賬
*/
public void toOrderPay(boolean show) {
if(myOrderManage.isModifyOrder()){
if (myOrderManage.isModifyOrder()) {
//修改訂單
updateOrderPay();
return;
......@@ -233,11 +234,33 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
public void onNext(BaseResult baseResult) {
mRootView.hideLoading();
if (baseResult.isSuccess()) {
MemberInfo memberInfo = MyOrderManage.getInstance().getMemberInfo();
if (memberInfo != null) {
setPoints(memberInfo);
}
//結賬成功
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
public void onError(Throwable t) {
super.onError(t);
......@@ -255,6 +278,9 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
payRequest.setLinePayType(orderPayView.getLinePayType());
payRequest.setTableId(OpenTableManage.getDefault().getTableBean().getId());
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++) {
PayMethod payMethod = payMethodList.get(i);
......@@ -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
* @return
*/
private boolean isCashPayMethod(PayMethod datasBean) {
if (datasBean.getPAYWAY().equals(PayConstant.PAY_WAY_CASH)) {
return true;
} else {
return false;
}
// if (datasBean.getPayType().equals(PayConstant.PAY_WAY_CASH)) {
return true;
// } else {
// return false;
// }
}
/**
......@@ -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
......
......@@ -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.constans.GoldConstants;
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.Function;
import com.gingersoft.gsa.cloud.database.bean.Modifier;
......@@ -428,16 +429,21 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
}
OpenTableManage.getDefault().setPeopleNumber(orderBean.getPerson());
List<OrderBean.OrderDetailsBean> orderDetailsBeans = respose.getData().getOrderDetails();
List<OrderBean.OrderDetailsBean> orderDetailsBeans = orderBean.getOrderDetails();
//設置topId
setFoodPoints(orderDetailsBeans);
//設置套餐topId
setTopId(orderDetailsBeans);
//緩存訂單信息
MyOrderManage.getInstance().setOrderBean(new OrderBean(orderBean));
//緩存食品信息
List<OrderDetail> orderDetailList = OrderAssemblyUtil.assemblyOrder(OrderDetail.orderTransOrderDetails(orderDetailsBeans));
MyOrderManage.getInstance().setOrderFoodList(orderDetailList);
if (orderBean.getMemberInfo() != null) {
//设置会员信息
MyOrderManage.getInstance().setMemberInfo(orderBean.getMemberInfo());
}
} else {
MyOrderManage.getInstance().setOrderBean(null);
MyOrderManage.getInstance().setOrderFoodList(new ArrayList<>());
......@@ -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
*
* @param orderDetailsBeans
......@@ -850,7 +876,7 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
initTable(dataBean.getId(), dataBean.getTableNumber(), true);
break;
case TableOperatTypeConstant.move_table_4:
turnTable(originalTableId, targetTableId,originalTableNumber,targetTableNumber, finalIsMergeTable);
turnTable(originalTableId, targetTableId, originalTableNumber, targetTableNumber, finalIsMergeTable);
break;
case TableOperatTypeConstant.skyorder_mode_5:
......
......@@ -123,13 +123,15 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All
orderBean.setCreateTime(datasBean.getCreateTime());
MyOrderManage.getInstance().setOrderBean(orderBean);
TableBean.DataBean openTableBean = new TableBean.DataBean();
openTableBean.setCreateTime(TimeUtil.getStringByFormat(new Date(datasBean.getCreateTime()), TimeUtil.dateFormatYMDHM));
openTableBean.setTableName(datasBean.getTableName());
openTableBean.setId(datasBean.getTableId());
OpenTableManage.getDefault().setTableBean(openTableBean);
// TableBean.DataBean openTableBean = new TableBean.DataBean();
// openTableBean.setCreateTime(TimeUtil.getStringByFormat(new Date(datasBean.getCreateTime()), TimeUtil.dateFormatYMDHM));
// openTableBean.setTableName(datasBean.getTableName());
// openTableBean.setId(datasBean.getTableId());
TableBean.DataBean tableBean = new TableBean.DataBean(datasBean.getRestaurantTable());
tableBean.setTableName(tableBean.getTableName() + "-" + tableBean.getTableNumber());
OpenTableManage.getDefault().setTableBean(tableBean);
OpenTableManage.getDefault().setPeopleNumber(datasBean.getPerson());
List<OrderBean.OrderDetailsBean> orderDetailsBeans = datasBean.getOrderDetails();
List<OrderDetail> orderDetailList = OrderAssemblyUtil.assemblyOrder(OrderDetail.orderTransOrderDetails(orderDetailsBeans));
MyOrderManage.getInstance().setOrderFoodList(orderDetailList);
......
......@@ -5,6 +5,7 @@ import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import android.os.SystemClock;
......@@ -250,10 +251,8 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
private UseMemberDialog mUseMemberDialog;
private UseMemberDialog.BottomLayoutBuilder mUseMemberLayoutBuilder;
private MemberInfoAdapter mMemberInfoAdapter;
private List<SectionTextItem> mMemberInfoList;
private MemberInfo mMemberInfo;
/**
* 是否初始化细项布局
*/
......@@ -320,6 +319,9 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
//根据倒计时时间自动退出当前页面
initAutoQuit();
}
if (MyOrderManage.getInstance().getMemberInfo() != null) {
useMember();
}
mPresenter.getCurrentSoldoutFood();
// setViewDrawableColor();
......@@ -516,7 +518,6 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
showViewModeVisibility(MealConstant.fine_ViewMode, MealConstant.fine_tabs_ViewMode);
}
@Override
public void setCurrentFinePage() {
if (currentFinePage == 0) {
......@@ -562,8 +563,8 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
@OnClick(R2.id.btn_meal_discount)
void onClickDiscount() {
OrderDetail mainOrderDetail = mPresenter.getSelectMealAdapter().getCurrentMainOrderDetail();
if(mainOrderDetail != null && mainOrderDetail.getAblediscount() == 0){
OrderDetail mainOrderDetail = mPresenter.getSelectMealAdapter().getCurrentMainOrderDetail();
if (mainOrderDetail != null && mainOrderDetail.getAblediscount() == 0) {
showMessage("此食品不能參與折扣!");
return;
}
......@@ -576,52 +577,47 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
@OnClick(R2.id.btn_table)
void onClickTable() {
//type取值:1qrCdoetype,2:手機號,3:memberId
// mUseMemberDialog = new UseMemberDialog(this);
if (mUseMemberDialog == null) {
mUseMemberDialog = new UseMemberDialog.BottomLayoutBuilder(this)
.setOnLayoutClickListener(new UseMemberDialog.BottomLayoutBuilder.OnLayoutClickListener() {
@Override
public void onInputPhone(UseMemberDialog dialog, String phone) {
mPresenter.queryMember(2, phone, GsaCloudApplication.getGsPosShopId(mContext));
public void setBottomLayoutBuilder(UseMemberDialog.BottomLayoutBuilder layoutBuilder) {
mUseMemberLayoutBuilder = layoutBuilder;
}
@Override
public void onScanAction(UseMemberDialog dialog) {
mPresenter.startScanActivity();
public void onInputPhone(UseMemberDialog dialog, String phone) {
mPresenter.queryMember(2, phone, GsaCloudApplication.getGsPosShopId(mContext), OpenTableManage.getDefault().getTableBean().getId(), OpenTableManage.getDefault().getTableBean().getTableNumber());
}
@Override
public void setAdapter(RecyclerView recycler_member_info, UseMemberDialog.BottomLayoutBuilder layoutBuilder) {
mUseMemberLayoutBuilder = layoutBuilder;
if (mMemberInfoList == null) {
mMemberInfoList = new ArrayList<>();
}
if (mMemberInfoAdapter == null) {
mMemberInfoAdapter = new MemberInfoAdapter(mMemberInfoList);
}
recycler_member_info.setAdapter(mMemberInfoAdapter);
public void onScanAction(UseMemberDialog dialog) {
mPresenter.startScanActivity();
}
@Override
public void onUseMember(UseMemberDialog dialog) {
MyOrderManage.getInstance().setMemberInfo(mMemberInfo);
btn_table.setBackgroundResource(R.color.pink_300);
if (mMemberInfo != null) {
MyOrderManage.getInstance().setMemberInfo(mMemberInfo);
//添加会员折扣行
mPresenter.addMemberDiscount(mMemberInfo.getId(), mMemberInfo.getMemberDiscount(), mMemberInfo.getMemberName(), mMemberInfo.getLevelName1());
useMember();
} else {
showMessage("請輸入正確的會員號碼!");
}
}
@Override
public void clearMemberInfo() {
btn_table.setBackgroundColor(Color.parseColor("#336699"));
MyOrderManage.getInstance().setMemberInfo(null);
if (mMemberInfoList.size() > 0) {
mMemberInfoList.clear();
}
mMemberInfoAdapter.notifyDataSetChanged();
if (mUseMemberLayoutBuilder != null) {
mUseMemberLayoutBuilder.showBottomLayoutVisibility(false);
}
//刪除會員折扣行
mPresenter.removeMemberDiscountItem();
mPresenter.updateOrderMoneyItem();
}
}).setOnDismissListener(new DialogInterface.OnDismissListener() {
})
.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
}
......@@ -635,32 +631,12 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
public void updateMemberInfo(MemberInfo memberInfo) {
this.mMemberInfo = memberInfo;
if (mUseMemberDialog != null) {
List<SectionTextItem> data = getMemberInfoItem(memberInfo);
if (mMemberInfoList.size() > 0) {
mMemberInfoList.clear();
}
mMemberInfoList.addAll(data);
mMemberInfoAdapter.notifyDataSetChanged();
if (mUseMemberLayoutBuilder != null) {
mUseMemberLayoutBuilder.showBottomLayoutVisibility(true);
}
mUseMemberLayoutBuilder.updateMemberInfo(memberInfo);
}
}
private List<SectionTextItem> getMemberInfoItem(MemberInfo memberInfo) {
List<SectionTextItem> textItems = new ArrayList<>();
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;
private void useMember() {
btn_table.setBackgroundResource(R.color.pink_300);
}
@OnClick(R2.id.btn_multiple_selection)
......@@ -1250,10 +1226,6 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
return mFoodGroupAdapter;
}
public MemberInfo getMemberInfo() {
return mMemberInfo;
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
......
package com.gingersoft.gsa.cloud.table.mvp.ui.activity;
import android.app.Activity;
import android.app.NotificationManager;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.os.Looper;
import android.os.Message;
import android.os.SystemClock;
import android.view.View;
......@@ -214,7 +216,8 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese
String tableno = "";
if (!OpenTableManage.getDefault().isSplite() && OpenTableManage.getDefault().getTableBean() != null) {
tableno = OpenTableManage.getDefault().getTableBean().getTableName();
} else {//TODO 暫未分檯功能
} else {
//TODO 暫未分檯功能
// tableno = GSAApplication.tableContract.getTableno().trim() + "-" + GSAApplication.tableContract.getTableno_split().trim();
}
btn_table.setText(tableno);
......@@ -260,7 +263,6 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese
// backPressed();
// }
@Override
public void onBackPressedSupport() {
super.onBackPressedSupport();
......
......@@ -18,9 +18,11 @@ import androidx.recyclerview.widget.RecyclerView;
import com.billy.cc.core.component.CC;
import com.chad.library.adapter.base.BaseQuickAdapter;
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.mealManage.MyOrderManage;
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.gson.GsonUtils;
import com.gingersoft.gsa.cloud.base.utils.log.LogUtil;
......@@ -100,6 +102,9 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
@BindView(R2.id.tv_time)
TextView tv_time;
@BindView(R2.id.tv_member_info)
TextView tv_member_info;
// @BindView(R2.id.tv_difference_name)
// TextView tv_difference_name;
// @BindView(R2.id.tv_difference_money)
......@@ -128,6 +133,29 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
// private QMUITipDialog tipDialog;
@BindView(R2.id.gsa_pay_view)
OrderPayView gsaPayView;
/**
* 會員積分數
*/
private double memberIntegral = 0;
/**
* 額外食品加分
*/
private double pointsAdd;
/**
* 換購食品所需積分
*/
private double pointsRedeem;
/**
* 積分兌換現金比例(MemberPointRedeemCash=2 (理解為每2分=1元)
*/
private double memberPointRedeemCash = 0;
/**
* 積分規則
*/
private int pointRule;
/**
* N5相关
*/
......@@ -161,22 +189,6 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
.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
public int initView(@Nullable Bundle savedInstanceState) {
......@@ -190,6 +202,7 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
mPresenter.getPayMethods();
initTopInfo();
initOrderDetail();
initMemberInfo();
initN5RespCallBack();
}
......@@ -233,6 +246,59 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
// 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
public void setDifferenceText() {
// double difference = mPresenter.getDifferenceMoney();
......@@ -503,9 +569,33 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
setBillMoney();
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("支付成功");
//開錢箱
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")
.setActionName("printActivity")
......
package com.gingersoft.gsa.cloud.table.mvp.ui.activity;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Message;
import android.view.View;
......
......@@ -402,20 +402,22 @@ public class OrderDetailActivity extends BaseActivity<OrderDetailPresenter> impl
orderBean.setStatus(datasBean.getStatus());
orderBean.setOrderNo(datasBean.getOrderNo());
orderBean.setPerson(datasBean.getPerson());
orderBean.setType(datasBean.getType());
orderBean.setRemark(datasBean.getRemark());
orderBean.setDiscountAmount(datasBean.getDiscountAmount());
orderBean.setDiscountValue(datasBean.getDiscountValue());
// orderBean.setType(datasBean.getType());
// orderBean.setRemark(datasBean.getRemark());
// orderBean.setDiscountAmount(datasBean.getDiscountAmount());
// orderBean.setDiscountValue(datasBean.getDiscountValue());
orderBean.setCreateTime(datasBean.getCreateTime());
orderBean.setOrderDetails(datasBean.getOrderDetails());
MyOrderManage.getInstance().setOrderBean(orderBean);
TableBean.DataBean openTableBean = new TableBean.DataBean();
openTableBean.setCreateTime(TimeUtil.getStringByFormat(new Date(datasBean.getCreateTime()), TimeUtil.dateFormatYMDHM));
openTableBean.setTableName(datasBean.getTableName());
openTableBean.setId(datasBean.getTableId());
// openTableBean.setServiceCharge(datasBean.getServiceAmount()/datasBean.getTotalAmount());
OpenTableManage.getDefault().setTableBean(openTableBean);
// TableBean.DataBean openTableBean = new TableBean.DataBean();
// openTableBean.setCreateTime(TimeUtil.getStringByFormat(new Date(datasBean.getCreateTime()), TimeUtil.dateFormatYMDHM));
// openTableBean.setTableName(datasBean.getTableName());
// 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());
List<OrderBean.OrderDetailsBean> orderDetailsBeans = datasBean.getOrderDetails();
......@@ -445,7 +447,6 @@ public class OrderDetailActivity extends BaseActivity<OrderDetailPresenter> impl
dataBean.setCreateTime(TimeUtil.getStringByFormat(new Date(orderDetailItem.getCreateTime()), TimeUtil.dateFormatYMDHM));
OpenTableManage.getDefault().setTableBean(dataBean);
CC.obtainBuilder("Component.Print")
.setActionName("printActivity")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_BILL)
......
......@@ -89,7 +89,8 @@ public class OrderMoneyAdapter extends DefaultAdapter<BillOrderMoney> {
tv_money.setTextColor(datasBean.getTextColor());
if (mContext instanceof OrderContentActivity &&
datasBean.getType() == BillOrderMoney.DISCOUNT_TYPE &&
datasBean.getType() == BillOrderMoney.ORDER_DISCOUNT_TYPE &&
datasBean.getType() != BillOrderMoney.MEMBER_DISCOUNT_TYPE &&
datasBean.getStatus() == 0) {
iv_delete.setVisibility(View.VISIBLE);
iv_delete.setOnClickListener(v -> {
......
......@@ -115,9 +115,9 @@ public class TableAdapter extends DefaultAdapter<TableBean.DataBean> {
TextView tv_open_duration;
// @BindView(R2.id.btn_showMain)
// Button btn_showMain;
// @BindView(R2.id.iv_vip)
// ImageView iv_vip;
// @BindView(R2.id.tv_scan_flag)
@BindView(R2.id.iv_vip)
TriangleLabelView iv_vip;
// @BindView(R2.id.tv_scan_flag)
// TextView tv_scan_flag;
@BindView(R2.id.fl_table_type)
FrameLayout fl_table_type;
......@@ -207,6 +207,11 @@ public class TableAdapter extends DefaultAdapter<TableBean.DataBean> {
} else {
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) {
......
......@@ -185,6 +185,13 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> {
tv_D.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);
// if (datasBean.isModify()) {
......
......@@ -23,7 +23,10 @@ import android.widget.LinearLayout;
import com.chad.library.adapter.base.BaseQuickAdapter;
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.mvp.ui.adapter.MemberInfoAdapter;
import com.gingersoft.gsa.cloud.ui.adapter.BasTextSectiontAdapter;
import com.gingersoft.gsa.cloud.ui.bean.mode.BrandsBean;
import com.gingersoft.gsa.cloud.ui.bean.view.SectionHeader;
......@@ -116,7 +119,6 @@ public class UseMemberDialog extends Dialog {
super.setContentView(view);
}
/**
* BottomSheet升起动画
*/
......@@ -220,8 +222,6 @@ public class UseMemberDialog extends Dialog {
private Context mContext;
private UseMemberDialog mDialog;
private MemberInfo mMemberInfo;
private QMUITopBar mTopBar;
private RecyclerView.LayoutManager mLayoutManager;
......@@ -234,15 +234,13 @@ public class UseMemberDialog extends Dialog {
private QMUIAlphaButton btn_use_member;
private QMUIAlphaButton btn_clear_member;
private MemberInfoAdapter mMemberInfoAdapter;
private List<SectionTextItem> mMemberInfoList;
public BottomLayoutBuilder(Context context) {
mContext = context;
}
public void setMemberInfo(MemberInfo mMemberInfo) {
this.mMemberInfo = mMemberInfo;
}
@Override
public void onClick(View v) {
}
......@@ -257,6 +255,7 @@ public class UseMemberDialog extends Dialog {
if (mDismissListener != null) {
mDialog.setOnDismissListener(mDismissListener);
}
updateMemberInfo(MyOrderManage.getInstance().getMemberInfo());
// AndroidWorkaround.assistActivity(contentView);
return mDialog;
}
......@@ -269,12 +268,15 @@ public class UseMemberDialog extends Dialog {
iv_no_data = view.findViewById(R.id.iv_no_data);
btn_query_memeber = view.findViewById(R.id.btn_query_memeber);
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_clear_member = view.findViewById(R.id.btn_clear_member);
initTopbar();
initRecyclerLayout();
if (onLayoutClickListener != null) {
onLayoutClickListener.setBottomLayoutBuilder(this);
}
btn_query_memeber.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
......@@ -308,26 +310,15 @@ public class UseMemberDialog extends Dialog {
public void onClick(View v) {
if (onLayoutClickListener != null) {
onLayoutClickListener.clearMemberInfo();
clearMemberInfo();
}
}
});
if (onLayoutClickListener != null) {
onLayoutClickListener.setAdapter(recycler_member_info,this);
}
return view;
}
private void initTopbar() {
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() {
@Override
......@@ -358,9 +349,52 @@ public class UseMemberDialog extends Dialog {
};
}
public void showBottomLayoutVisibility(boolean show){
ll_bottom.setVisibility(show?View.VISIBLE:View.GONE);
btn_scan.setVisibility(!show?View.VISIBLE:View.GONE);
public void updateMemberInfo(MemberInfo memberInfo) {
if (memberInfo != null) {
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() {
......@@ -386,12 +420,12 @@ public class UseMemberDialog extends Dialog {
public interface OnLayoutClickListener {
void setBottomLayoutBuilder(BottomLayoutBuilder layoutBuilder);
void onInputPhone(UseMemberDialog dialog, String phone);
void onScanAction(UseMemberDialog dialog);
void setAdapter(RecyclerView recycler_member_info,BottomLayoutBuilder layoutBuilder);
void onUseMember(UseMemberDialog dialog);
void clearMemberInfo();
......
......@@ -2,7 +2,8 @@
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_height="wrap_content"
android:background="@color/theme_white_color">
<Chronometer
android:id="@+id/ctime"
......
......@@ -3,6 +3,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/theme_white_color"
android:orientation="vertical">
<Chronometer
......
......@@ -89,6 +89,17 @@
</RelativeLayout>
</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
android:id="@+id/rv_food"
android:layout_width="match_parent"
......
......@@ -2,7 +2,8 @@
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
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
android:id="@+id/topbar"
......
......@@ -93,7 +93,8 @@
app:corner="rightBottom"
app:primaryText="堂"
app:primaryTextColor="#249B65"
app:primaryTextSize="10sp" />
app:primaryTextSize="10sp"
app:isRestoreText="false"/>
<TextView
android:id="@+id/tv_type_labe"
......@@ -105,6 +106,18 @@
android:textSize="10sp"
android:padding="@dimen/dp_5"/>
</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-->
<!-- android:id="@+id/iv_vip"-->
<!-- android:layout_width="50dp"-->
......@@ -113,7 +126,7 @@
<!-- android:layout_alignParentTop="true"-->
<!-- android:scaleType="fitXY"-->
<!-- android:src="@drawable/qmui_icon_tip_new"-->
<!-- android:visibility="gone" />-->
<!-- android:visibility="visible" />-->
<!-- <TextView-->
<!-- android:id="@+id/tv_scan_flag"-->
......@@ -127,4 +140,5 @@
<!-- android:gravity="center"-->
<!-- android:visibility="gone"-->
<!-- android:textSize="@dimen/font_normal2" />-->
</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