Commit 8c343e7a by 宁斌

1、餐牌返回餐檯為紅檯問題

2、分檯重置
3、折扣結構邏輯問題
parent 70cf3b69
......@@ -44,7 +44,7 @@ android {
/**
* 版本号
*/
schemaVersion 11
schemaVersion 13
/**
* greendao输出dao的数据库操作实体类文件夹(相对路径 包名+自定义路径名称,包将创建于包名的直接路径下)
*/
......
......@@ -80,7 +80,7 @@ public class TableBean {
* maxSeatCount : 8
*/
private long id;
private int id;
private String tableName;
private int restaurantId;
private Long orderId;
......@@ -132,7 +132,7 @@ public class TableBean {
/**
* 分檯编号
*/
private String tableNumber;
private String tableNumber = "";
public DataBean() {
......@@ -160,169 +160,25 @@ public class TableBean {
this.type = dataBean.type;
this.tableNumber = dataBean.tableNumber;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getTableName() {
return tableName;
}
public void setTableName(String tableName) {
this.tableName = tableName;
}
public int getRestaurantId() {
return restaurantId;
}
public void setRestaurantId(int restaurantId) {
this.restaurantId = restaurantId;
}
public Long getOrderId() {
return orderId;
}
public void setOrderId(Long orderId) {
this.orderId = orderId;
}
public String getQrCode() {
return qrCode;
}
public void setQrCode(String qrCode) {
this.qrCode = qrCode;
}
public int getSeatCount() {
return seatCount;
}
public void setSeatCount(int seatCount) {
this.seatCount = seatCount;
}
public Integer getMaxSeatCount() {
return maxSeatCount;
}
public void setMaxSeatCount(Integer maxSeatCount) {
this.maxSeatCount = maxSeatCount;
}
public Integer getMinSeatCount() {
return minSeatCount;
}
public void setMinSeatCount(Integer minSeatCount) {
this.minSeatCount = minSeatCount;
}
public String getCreateTime() {
return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime;
}
public String getCreateBy() {
return createBy;
}
public void setCreateBy(String createBy) {
this.createBy = createBy;
}
public String getQrCodeImg() {
return qrCodeImg;
}
public void setQrCodeImg(String qrCodeImg) {
this.qrCodeImg = qrCodeImg;
}
public int getPosTableId() {
return posTableId;
}
public void setPosTableId(int posTableId) {
this.posTableId = posTableId;
}
public long getServiceCharge() {
return serviceCharge;
}
public void setServiceCharge(long serviceCharge) {
this.serviceCharge = serviceCharge;
}
public long getMemberId() {
return memberId;
}
public void setMemberId(long memberId) {
this.memberId = memberId;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public int getPerson() {
return person;
}
public void setPerson(int person) {
this.person = person;
}
public int getUseStatus() {
return useStatus;
}
public void setUseStatus(int useStatus) {
this.useStatus = useStatus;
}
public int getSort() {
return sort;
}
public void setSort(int sort) {
this.sort = sort;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public String getTableNumber() {
return tableNumber;
}
public void setTableNumber(String tableNumber) {
this.tableNumber = tableNumber;
}
public static TableBean.DataBean splitTableTransformTable( TableExtBean.DataBean dataBean) {
TableBean.DataBean tableBean = new TableBean.DataBean();
tableBean.setId(dataBean.getId());
tableBean.setTableName(dataBean.getTableName() + "-" + dataBean.getTableNumber());
tableBean.setOrderId(dataBean.getOrderId());
// tableBean.setRestaurantId();
// tableBean.setQrCode();
// tableBean.setQrCodeImg();
tableBean.setSeatCount(dataBean.getSeatCount());
// tableBean.setMaxSeatCount();
tableBean.setStatus(dataBean.getTableStatus());
tableBean.setUseStatus(dataBean.getInUse());
tableBean.setTableNumber(dataBean.getTableNumber());
return tableBean;
}
public static TableBean.DataBean splitTableTransformTable(TableBean.DataBean mainTable, TableExtBean.DataBean dataBean) {
public static TableBean.DataBean splitTableTransformTable2(TableBean.DataBean mainTable, TableExtBean.DataBean dataBean) {
TableBean.DataBean tableBean = new TableBean.DataBean();
tableBean.setId(dataBean.getId());
tableBean.setTableName(mainTable.getTableName() + "-" + dataBean.getTableNumber());
......@@ -330,10 +186,11 @@ public class TableBean {
// tableBean.setRestaurantId();
// tableBean.setQrCode();
// tableBean.setQrCodeImg();
// tableBean.setSeatCount();
tableBean.setSeatCount(dataBean.getSeatCount());
// tableBean.setMaxSeatCount();
tableBean.setStatus(dataBean.getTableStatus());
tableBean.setUseStatus(dataBean.getInUse());
tableBean.setTableNumber(dataBean.getTableNumber());
return tableBean;
}
}
......@@ -14,109 +14,40 @@ import lombok.Data;
@Data
public class TableExtBean {
private TableBean.DataBean restaurantTable;
private List<DataBean> restaurantTableExtList;
@Data
public static class DataBean{
private long id;
private long tableId;
/**
* id : 4
* tableId : 45089
* orderId : -1
* inUse : 2
* tableStatus : 0
* updateTime : 1596100189746
* createTime : 1596074076494
* deviceName : okhttp/3.12.0
* tableNumber : A
* tableName : 4
* seatCount: 2
* serviceCharge : 10
*/
private int id;
private int tableId;
private long orderId;
private int inUse;
private int tableStatus;
private long updateTime;
private long createTime;
private String deviceName;
private String tableNumber;
private String tableName;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public long getTableId() {
return tableId;
}
public void setTableId(long tableId) {
this.tableId = tableId;
}
public long getOrderId() {
return orderId;
}
public void setOrderId(long orderId) {
this.orderId = orderId;
}
public int getInUse() {
return inUse;
}
public void setInUse(int inUse) {
this.inUse = inUse;
}
public int getTableStatus() {
return tableStatus;
}
public void setTableStatus(int tableStatus) {
this.tableStatus = tableStatus;
}
private int seatCount;
private long serviceCharge;
public long getUpdateTime() {
return updateTime;
}
public void setUpdateTime(long updateTime) {
this.updateTime = updateTime;
}
public long getCreateTime() {
return createTime;
}
public void setCreateTime(long createTime) {
this.createTime = createTime;
}
public String getDeviceName() {
return deviceName;
}
public void setDeviceName(String deviceName) {
this.deviceName = deviceName;
}
public String getTableNumber() {
return tableNumber;
}
public void setTableNumber(String tableNumber) {
this.tableNumber = tableNumber;
}
}
public TableBean.DataBean getRestaurantTable() {
return restaurantTable;
}
public void setRestaurantTable(TableBean.DataBean restaurantTable) {
this.restaurantTable = restaurantTable;
}
private long updateTime;
private long createTime;
public List<DataBean> getRestaurantTableExtList() {
return restaurantTableExtList;
}
public void setRestaurantTableExtList(List<DataBean> restaurantTableExtList) {
this.restaurantTableExtList = restaurantTableExtList;
}
}
......@@ -3,6 +3,8 @@ package com.gingersoft.gsa.cloud.base.common.bean.mealManage;
import com.gingersoft.gsa.cloud.base.common.bean.TableBean;
import lombok.Data;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
......@@ -10,6 +12,7 @@ import com.gingersoft.gsa.cloud.base.common.bean.TableBean;
* 修订历史:2020-01-09
* 描述:保存開台返回的訂單數據
*/
@Data
public class OpenTableManage {
private String TAG = getClass().getSimpleName();
......@@ -40,51 +43,4 @@ public class OpenTableManage {
splitNo = "";
}
public TableBean.DataBean getTableBean() {
return tableBean;
}
public void setTableBean(TableBean.DataBean tableBean) {
this.tableBean = tableBean;
}
public int getUseStatus() {
return useStatus;
}
public void setUseStatus(int useStatus) {
this.useStatus = useStatus;
}
public int getPeopleNumber() {
return peopleNumber;
}
public void setPeopleNumber(int peopleNumber) {
this.peopleNumber = peopleNumber;
}
public boolean isSplite() {
return isSplite;
}
public void setSplite(boolean splite) {
isSplite = splite;
}
public String getSplitNo() {
return splitNo;
}
public void setSplitNo(String splitNo) {
this.splitNo = splitNo;
}
// public int getOrderId() {
// return orderId;
// }
//
// public void setOrderId(int orderId) {
// this.orderId = orderId;
// }
}
package com.gingersoft.gsa.cloud.base.utils.encryption;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
public class Md5 {
public static void main(String[] arg) {
Md5 md5 = new Md5();
System.out.println(md5.getMD5ofStr("axi7"));
System.out.println(md5.getMD5ofStr("AXI7"));
}
public String getMD5ofStr(String s) {
_$2();
_$1(s.getBytes(), s.length());
_$1();
digestHexStr = "";
for (int i = 0; i < 16; i++) {
digestHexStr = new StringBuffer().append(this.digestHexStr).append(byteHEX(_$1[i])).toString();
}
return digestHexStr;
}
public String getMD5ofStr(Map<String, String> map) {
String s = getMap2String(map);
_$2();
_$1(s.getBytes(), s.length());
_$1();
digestHexStr = "";
for (int i = 0; i < 16; i++) {
digestHexStr = new StringBuffer().append(this.digestHexStr).append(byteHEX(_$1[i])).toString();
}
return digestHexStr;
}
private String getMap2String(Map<String, String> map) {
StringBuffer sb = new StringBuffer(100);
Set<String> set = new TreeSet<String>();
Set<String> keyset = map.keySet();
for (String key : keyset) {
set.add(key);
}
for (String key : set) {
sb.append(key);
sb.append("=[");
sb.append(map.get(key));
sb.append("]");
}
return sb.toString();
}
public Md5() {
_$4 = new long[4];
_$3 = new long[2];
_$2 = new byte[64];
_$1 = new byte[16];
_$2();
}
private void _$2() {
_$3[0] = 0L;
_$3[1] = 0L;
_$4[0] = 0x67452301L;
_$4[1] = 0xefcdab89L;
_$4[2] = 0x98badcfeL;
_$4[3] = 0x10325476L;
}
private long _$4(long l, long l1, long l2) {
return l & l1 | ~l & l2;
}
private long _$3(long l, long l1, long l2) {
return l & l2 | l1 & ~l2;
}
private long _$2(long l, long l1, long l2) {
return l ^ l1 ^ l2;
}
private long _$1(long l, long l1, long l2) {
return l1 ^ (l | ~l2);
}
private long _$4(long l, long l1, long l2, long l3, long l4, long l5, long l6) {
l += _$4(l1, l2, l3) + l4 + l6;
l = (int) l << (int) l5 | (int) l >>> (int) (32L - l5);
l += l1;
return l;
}
private long _$3(long l, long l1, long l2, long l3, long l4, long l5, long l6) {
l += _$3(l1, l2, l3) + l4 + l6;
l = (int) l << (int) l5 | (int) l >>> (int) (32L - l5);
l += l1;
return l;
}
private long _$2(long l, long l1, long l2, long l3, long l4, long l5, long l6) {
l += _$2(l1, l2, l3) + l4 + l6;
l = (int) l << (int) l5 | (int) l >>> (int) (32L - l5);
l += l1;
return l;
}
private long _$1(long l, long l1, long l2, long l3, long l4, long l5, long l6) {
l += _$1(l1, l2, l3) + l4 + l6;
l = (int) l << (int) l5 | (int) l >>> (int) (32L - l5);
l += l1;
return l;
}
private void _$1(byte abyte0[], int i) {
byte abyte1[] = new byte[64];
int k = (int) (_$3[0] >>> 3) & 0x3f;
if ((_$3[0] += i << 3) < (long) (i << 3))
_$3[1]++;
_$3[1] += i >>> 29;
int l = 64 - k;
int j;
if (i >= l) {
_$1(_$2, abyte0, k, 0, l);
_$1(_$2);
for (j = l; j + 63 < i; j += 64) {
_$1(abyte1, abyte0, 0, j, 64);
_$1(abyte1);
}
k = 0;
} else {
j = 0;
}
_$1(_$2, abyte0, k, j, i - j);
}
private void _$1() {
byte abyte0[] = new byte[8];
_$1(abyte0, _$3, 8);
int i = (int) (_$3[0] >>> 3) & 0x3f;
int j = i >= 56 ? 120 - i : 56 - i;
_$1(_$5, j);
_$1(abyte0, 8);
_$1(_$1, _$4, 16);
}
private void _$1(byte abyte0[], byte abyte1[], int i, int j, int k) {
for (int l = 0; l < k; l++)
abyte0[i + l] = abyte1[j + l];
}
private void _$1(byte abyte0[]) {
long l = _$4[0];
long l1 = _$4[1];
long l2 = _$4[2];
long l3 = _$4[3];
long al[] = new long[16];
_$1(al, abyte0, 64);
l = _$4(l, l1, l2, l3, al[0], 7L, 0xd76aa478L);
l3 = _$4(l3, l, l1, l2, al[1], 12L, 0xe8c7b756L);
l2 = _$4(l2, l3, l, l1, al[2], 17L, 0x242070dbL);
l1 = _$4(l1, l2, l3, l, al[3], 22L, 0xc1bdceeeL);
l = _$4(l, l1, l2, l3, al[4], 7L, 0xf57c0fafL);
l3 = _$4(l3, l, l1, l2, al[5], 12L, 0x4787c62aL);
l2 = _$4(l2, l3, l, l1, al[6], 17L, 0xa8304613L);
l1 = _$4(l1, l2, l3, l, al[7], 22L, 0xfd469501L);
l = _$4(l, l1, l2, l3, al[8], 7L, 0x698098d8L);
l3 = _$4(l3, l, l1, l2, al[9], 12L, 0x8b44f7afL);
l2 = _$4(l2, l3, l, l1, al[10], 17L, 0xffff5bb1L);
l1 = _$4(l1, l2, l3, l, al[11], 22L, 0x895cd7beL);
l = _$4(l, l1, l2, l3, al[12], 7L, 0x6b901122L);
l3 = _$4(l3, l, l1, l2, al[13], 12L, 0xfd987193L);
l2 = _$4(l2, l3, l, l1, al[14], 17L, 0xa679438eL);
l1 = _$4(l1, l2, l3, l, al[15], 22L, 0x49b40821L);
l = _$3(l, l1, l2, l3, al[1], 5L, 0xf61e2562L);
l3 = _$3(l3, l, l1, l2, al[6], 9L, 0xc040b340L);
l2 = _$3(l2, l3, l, l1, al[11], 14L, 0x265e5a51L);
l1 = _$3(l1, l2, l3, l, al[0], 20L, 0xe9b6c7aaL);
l = _$3(l, l1, l2, l3, al[5], 5L, 0xd62f105dL);
l3 = _$3(l3, l, l1, l2, al[10], 9L, 0x2441453L);
l2 = _$3(l2, l3, l, l1, al[15], 14L, 0xd8a1e681L);
l1 = _$3(l1, l2, l3, l, al[4], 20L, 0xe7d3fbc8L);
l = _$3(l, l1, l2, l3, al[9], 5L, 0x21e1cde6L);
l3 = _$3(l3, l, l1, l2, al[14], 9L, 0xc33707d6L);
l2 = _$3(l2, l3, l, l1, al[3], 14L, 0xf4d50d87L);
l1 = _$3(l1, l2, l3, l, al[8], 20L, 0x455a14edL);
l = _$3(l, l1, l2, l3, al[13], 5L, 0xa9e3e905L);
l3 = _$3(l3, l, l1, l2, al[2], 9L, 0xfcefa3f8L);
l2 = _$3(l2, l3, l, l1, al[7], 14L, 0x676f02d9L);
l1 = _$3(l1, l2, l3, l, al[12], 20L, 0x8d2a4c8aL);
l = _$2(l, l1, l2, l3, al[5], 4L, 0xfffa3942L);
l3 = _$2(l3, l, l1, l2, al[8], 11L, 0x8771f681L);
l2 = _$2(l2, l3, l, l1, al[11], 16L, 0x6d9d6122L);
l1 = _$2(l1, l2, l3, l, al[14], 23L, 0xfde5380cL);
l = _$2(l, l1, l2, l3, al[1], 4L, 0xa4beea44L);
l3 = _$2(l3, l, l1, l2, al[4], 11L, 0x4bdecfa9L);
l2 = _$2(l2, l3, l, l1, al[7], 16L, 0xf6bb4b60L);
l1 = _$2(l1, l2, l3, l, al[10], 23L, 0xbebfbc70L);
l = _$2(l, l1, l2, l3, al[13], 4L, 0x289b7ec6L);
l3 = _$2(l3, l, l1, l2, al[0], 11L, 0xeaa127faL);
l2 = _$2(l2, l3, l, l1, al[3], 16L, 0xd4ef3085L);
l1 = _$2(l1, l2, l3, l, al[6], 23L, 0x4881d05L);
l = _$2(l, l1, l2, l3, al[9], 4L, 0xd9d4d039L);
l3 = _$2(l3, l, l1, l2, al[12], 11L, 0xe6db99e5L);
l2 = _$2(l2, l3, l, l1, al[15], 16L, 0x1fa27cf8L);
l1 = _$2(l1, l2, l3, l, al[2], 23L, 0xc4ac5665L);
l = _$1(l, l1, l2, l3, al[0], 6L, 0xf4292244L);
l3 = _$1(l3, l, l1, l2, al[7], 10L, 0x432aff97L);
l2 = _$1(l2, l3, l, l1, al[14], 15L, 0xab9423a7L);
l1 = _$1(l1, l2, l3, l, al[5], 21L, 0xfc93a039L);
l = _$1(l, l1, l2, l3, al[12], 6L, 0x655b59c3L);
l3 = _$1(l3, l, l1, l2, al[3], 10L, 0x8f0ccc92L);
l2 = _$1(l2, l3, l, l1, al[10], 15L, 0xffeff47dL);
l1 = _$1(l1, l2, l3, l, al[1], 21L, 0x85845dd1L);
l = _$1(l, l1, l2, l3, al[8], 6L, 0x6fa87e4fL);
l3 = _$1(l3, l, l1, l2, al[15], 10L, 0xfe2ce6e0L);
l2 = _$1(l2, l3, l, l1, al[6], 15L, 0xa3014314L);
l1 = _$1(l1, l2, l3, l, al[13], 21L, 0x4e0811a1L);
l = _$1(l, l1, l2, l3, al[4], 6L, 0xf7537e82L);
l3 = _$1(l3, l, l1, l2, al[11], 10L, 0xbd3af235L);
l2 = _$1(l2, l3, l, l1, al[2], 15L, 0x2ad7d2bbL);
l1 = _$1(l1, l2, l3, l, al[9], 21L, 0xeb86d391L);
_$4[0] += l;
_$4[1] += l1;
_$4[2] += l2;
_$4[3] += l3;
}
private void _$1(byte abyte0[], long al[], int i) {
int j = 0;
for (int k = 0; k < i; k += 4) {
abyte0[k] = (byte) (int) (al[j] & 255L);
abyte0[k + 1] = (byte) (int) (al[j] >>> 8 & 255L);
abyte0[k + 2] = (byte) (int) (al[j] >>> 16 & 255L);
abyte0[k + 3] = (byte) (int) (al[j] >>> 24 & 255L);
j++;
}
}
private void _$1(long al[], byte abyte0[], int i) {
int j = 0;
for (int k = 0; k < i; k += 4) {
al[j] = b2iu(abyte0[k]) | b2iu(abyte0[k + 1]) << 8 | b2iu(abyte0[k + 2]) << 16 | b2iu(abyte0[k + 3]) << 24;
j++;
}
}
public static long b2iu(byte byte0) {
return byte0 >= 0 ? byte0 : byte0 & 0xff;
}
public static String byteHEX(byte byte0) {
char ac2[] = new char[16];
ac2[0] = '0';
ac2[1] = '1';
ac2[2] = '2';
ac2[3] = '3';
ac2[4] = '4';
ac2[5] = '5';
ac2[6] = '6';
ac2[7] = '7';
ac2[8] = '8';
ac2[9] = '9';
ac2[10] = 'A';
ac2[11] = 'B';
ac2[12] = 'C';
ac2[13] = 'D';
ac2[14] = 'E';
ac2[15] = 'F';
char ac1[];
ac1 = new char[2];
ac1[0] = ac2[byte0 >>> 4 & 0xf];
ac1[1] = ac2[byte0 & 0xf];
return new String(ac1);
}
static final int _$21 = 7;
static final int _$20 = 12;
static final int _$19 = 17;
static final int _$18 = 22;
static final int _$17 = 5;
static final int _$16 = 9;
static final int _$15 = 14;
static final int _$14 = 20;
static final int _$13 = 4;
static final int _$12 = 11;
static final int _$11 = 16;
static final int _$10 = 23;
static final int _$9 = 6;
static final int _$8 = 10;
static final int _$7 = 15;
static final int _$6 = 21;
static final byte _$5[];
private long _$4[];
private long _$3[];
private byte _$2[];
public String digestHexStr;
private byte _$1[];
static {
byte abyte0[] = new byte[64];
abyte0[0] = -128;
abyte0[1] = 1;
abyte0[2] = 0;
abyte0[3] = 0;
abyte0[4] = 0;
abyte0[5] = 0;
abyte0[6] = 0;
abyte0[7] = 0;
abyte0[8] = 0;
abyte0[9] = 0;
abyte0[10] = 0;
abyte0[11] = 0;
abyte0[12] = 0;
abyte0[13] = 0;
abyte0[14] = 0;
abyte0[15] = 0;
abyte0[16] = 0;
abyte0[17] = 0;
abyte0[18] = 0;
abyte0[19] = 0;
abyte0[20] = 0;
abyte0[21] = 0;
abyte0[22] = 0;
abyte0[23] = 0;
abyte0[24] = 0;
abyte0[25] = 0;
abyte0[26] = 0;
abyte0[27] = 0;
abyte0[28] = 0;
abyte0[29] = 0;
abyte0[30] = 0;
abyte0[31] = 0;
abyte0[32] = 0;
abyte0[33] = 0;
abyte0[34] = 0;
abyte0[35] = 0;
abyte0[36] = 0;
abyte0[37] = 0;
abyte0[38] = 0;
abyte0[39] = 0;
abyte0[40] = 0;
abyte0[41] = 0;
abyte0[42] = 0;
abyte0[43] = 0;
abyte0[44] = 0;
abyte0[45] = 0;
abyte0[46] = 0;
abyte0[47] = 0;
abyte0[48] = 0;
abyte0[49] = 0;
abyte0[50] = 0;
abyte0[51] = 0;
abyte0[52] = 0;
abyte0[53] = 0;
abyte0[54] = 0;
abyte0[55] = 0;
abyte0[56] = 0;
abyte0[57] = 0;
abyte0[58] = 0;
abyte0[59] = 0;
abyte0[60] = 0;
abyte0[61] = 0;
abyte0[62] = 0;
abyte0[63] = 0;
_$5 = abyte0;
}
//直接返回md5加密的结果
public String getMD5(String srcString) {
StringBuffer destString = new StringBuffer();
java.security.MessageDigest md = null;
try {
md = java.security.MessageDigest.getInstance("MD5");
} catch (java.security.NoSuchAlgorithmException e) {
e.printStackTrace();
}
md.update(srcString.getBytes());
byte[] buf = md.digest();
String tempString = null;
for (int i = 0; i < buf.length; i++) {
tempString = Integer.toHexString(buf[i] & 0xFF);
if (tempString.length() == 1) {
destString.append("0");
}
destString.append(tempString);
}
return destString.toString();
}
}
......@@ -36,6 +36,8 @@ public class Discount {
private double discount_value;
/**类型#0:金额;1:折扣;*/
private int type;
/**折扣可使用范围#0:食品;1:账单;*/
private String discount_type;
/**状态#0:启用;1:禁用;*/
private int status;
/**折扣描述*/
......@@ -45,14 +47,19 @@ public class Discount {
@Generated(hash = 1828565109)
@Generated(hash = 650388607)
public Discount(Long id, int restaurant_id, double amount, double discount_value,
int type, int status, String remark, String begin_time, String end_time) {
int type, String discount_type, int status, String remark, String begin_time,
String end_time) {
this.id = id;
this.restaurant_id = restaurant_id;
this.amount = amount;
this.discount_value = discount_value;
this.type = type;
this.discount_type = discount_type;
this.status = status;
this.remark = remark;
this.begin_time = begin_time;
......@@ -61,12 +68,18 @@ public class Discount {
@Generated(hash = 1777606421)
public Discount() {
}
/**
* 計算折扣金額
* @param discount
......@@ -94,110 +107,185 @@ public class Discount {
public Long getId() {
return this.id;
}
public void setId(Long id) {
this.id = id;
}
public int getRestaurant_id() {
return this.restaurant_id;
}
public void setRestaurant_id(int restaurant_id) {
this.restaurant_id = restaurant_id;
}
public double getAmount() {
return this.amount;
}
public void setAmount(double amount) {
this.amount = amount;
}
public double getDiscount_value() {
return this.discount_value;
}
public void setDiscount_value(double discount_value) {
this.discount_value = discount_value;
}
public int getType() {
return this.type;
}
public void setType(int type) {
this.type = type;
}
public String getDiscount_type() {
return this.discount_type;
}
public void setDiscount_type(String discount_type) {
this.discount_type = discount_type;
}
public int getStatus() {
return this.status;
}
public void setStatus(int status) {
this.status = status;
}
public String getRemark() {
return this.remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public String getBegin_time() {
return this.begin_time;
}
public void setBegin_time(String begin_time) {
this.begin_time = begin_time;
}
public String getEnd_time() {
return this.end_time;
}
public void setEnd_time(String end_time) {
this.end_time = end_time;
}
}
......@@ -14,10 +14,10 @@ import org.greenrobot.greendao.identityscope.IdentityScopeType;
// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
/**
* Master of DAO (schema version 11): knows all DAOs.
* Master of DAO (schema version 13): knows all DAOs.
*/
public class DaoMaster extends AbstractDaoMaster {
public static final int SCHEMA_VERSION = 11;
public static final int SCHEMA_VERSION = 13;
/** Creates underlying database table using DAOs. */
public static void createAllTables(Database db, boolean ifNotExists) {
......
......@@ -29,10 +29,11 @@ public class DiscountDao extends AbstractDao<Discount, Long> {
public final static Property Amount = new Property(2, double.class, "amount", false, "AMOUNT");
public final static Property Discount_value = new Property(3, double.class, "discount_value", false, "DISCOUNT_VALUE");
public final static Property Type = new Property(4, int.class, "type", false, "TYPE");
public final static Property Status = new Property(5, int.class, "status", false, "STATUS");
public final static Property Remark = new Property(6, String.class, "remark", false, "REMARK");
public final static Property Begin_time = new Property(7, String.class, "begin_time", false, "BEGIN_TIME");
public final static Property End_time = new Property(8, String.class, "end_time", false, "END_TIME");
public final static Property Discount_type = new Property(5, String.class, "discount_type", false, "DISCOUNT_TYPE");
public final static Property Status = new Property(6, int.class, "status", false, "STATUS");
public final static Property Remark = new Property(7, String.class, "remark", false, "REMARK");
public final static Property Begin_time = new Property(8, String.class, "begin_time", false, "BEGIN_TIME");
public final static Property End_time = new Property(9, String.class, "end_time", false, "END_TIME");
}
......@@ -53,10 +54,11 @@ public class DiscountDao extends AbstractDao<Discount, Long> {
"\"AMOUNT\" REAL NOT NULL ," + // 2: amount
"\"DISCOUNT_VALUE\" REAL NOT NULL ," + // 3: discount_value
"\"TYPE\" INTEGER NOT NULL ," + // 4: type
"\"STATUS\" INTEGER NOT NULL ," + // 5: status
"\"REMARK\" TEXT," + // 6: remark
"\"BEGIN_TIME\" TEXT," + // 7: begin_time
"\"END_TIME\" TEXT);"); // 8: end_time
"\"DISCOUNT_TYPE\" TEXT," + // 5: discount_type
"\"STATUS\" INTEGER NOT NULL ," + // 6: status
"\"REMARK\" TEXT," + // 7: remark
"\"BEGIN_TIME\" TEXT," + // 8: begin_time
"\"END_TIME\" TEXT);"); // 9: end_time
}
/** Drops the underlying database table. */
......@@ -77,21 +79,26 @@ public class DiscountDao extends AbstractDao<Discount, Long> {
stmt.bindDouble(3, entity.getAmount());
stmt.bindDouble(4, entity.getDiscount_value());
stmt.bindLong(5, entity.getType());
stmt.bindLong(6, entity.getStatus());
String discount_type = entity.getDiscount_type();
if (discount_type != null) {
stmt.bindString(6, discount_type);
}
stmt.bindLong(7, entity.getStatus());
String remark = entity.getRemark();
if (remark != null) {
stmt.bindString(7, remark);
stmt.bindString(8, remark);
}
String begin_time = entity.getBegin_time();
if (begin_time != null) {
stmt.bindString(8, begin_time);
stmt.bindString(9, begin_time);
}
String end_time = entity.getEnd_time();
if (end_time != null) {
stmt.bindString(9, end_time);
stmt.bindString(10, end_time);
}
}
......@@ -107,21 +114,26 @@ public class DiscountDao extends AbstractDao<Discount, Long> {
stmt.bindDouble(3, entity.getAmount());
stmt.bindDouble(4, entity.getDiscount_value());
stmt.bindLong(5, entity.getType());
stmt.bindLong(6, entity.getStatus());
String discount_type = entity.getDiscount_type();
if (discount_type != null) {
stmt.bindString(6, discount_type);
}
stmt.bindLong(7, entity.getStatus());
String remark = entity.getRemark();
if (remark != null) {
stmt.bindString(7, remark);
stmt.bindString(8, remark);
}
String begin_time = entity.getBegin_time();
if (begin_time != null) {
stmt.bindString(8, begin_time);
stmt.bindString(9, begin_time);
}
String end_time = entity.getEnd_time();
if (end_time != null) {
stmt.bindString(9, end_time);
stmt.bindString(10, end_time);
}
}
......@@ -138,10 +150,11 @@ public class DiscountDao extends AbstractDao<Discount, Long> {
cursor.getDouble(offset + 2), // amount
cursor.getDouble(offset + 3), // discount_value
cursor.getInt(offset + 4), // type
cursor.getInt(offset + 5), // status
cursor.isNull(offset + 6) ? null : cursor.getString(offset + 6), // remark
cursor.isNull(offset + 7) ? null : cursor.getString(offset + 7), // begin_time
cursor.isNull(offset + 8) ? null : cursor.getString(offset + 8) // end_time
cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // discount_type
cursor.getInt(offset + 6), // status
cursor.isNull(offset + 7) ? null : cursor.getString(offset + 7), // remark
cursor.isNull(offset + 8) ? null : cursor.getString(offset + 8), // begin_time
cursor.isNull(offset + 9) ? null : cursor.getString(offset + 9) // end_time
);
return entity;
}
......@@ -153,10 +166,11 @@ public class DiscountDao extends AbstractDao<Discount, Long> {
entity.setAmount(cursor.getDouble(offset + 2));
entity.setDiscount_value(cursor.getDouble(offset + 3));
entity.setType(cursor.getInt(offset + 4));
entity.setStatus(cursor.getInt(offset + 5));
entity.setRemark(cursor.isNull(offset + 6) ? null : cursor.getString(offset + 6));
entity.setBegin_time(cursor.isNull(offset + 7) ? null : cursor.getString(offset + 7));
entity.setEnd_time(cursor.isNull(offset + 8) ? null : cursor.getString(offset + 8));
entity.setDiscount_type(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5));
entity.setStatus(cursor.getInt(offset + 6));
entity.setRemark(cursor.isNull(offset + 7) ? null : cursor.getString(offset + 7));
entity.setBegin_time(cursor.isNull(offset + 8) ? null : cursor.getString(offset + 8));
entity.setEnd_time(cursor.isNull(offset + 9) ? null : cursor.getString(offset + 9));
}
@Override
......
......@@ -150,6 +150,19 @@ public class DiscountDaoUtils {
return queryBuilder.where(DiscountDao.Properties.Status.eq(0)).list();
}
/**
* 使用queryBuilder进行查询
* @param discountType 折扣使用类型
* @return
*/
public List<Discount> queryDiscountByDiscountTypeQueryBuilder(String discountType){
QueryBuilder<Discount> queryBuilder = mManager.getDaoSession().queryBuilder(Discount.class);
long currentTime = System.currentTimeMillis();
// return queryBuilder.where(queryBuilder.and(
// DiscountDao.Properties.Status.eq(0),
// DiscountDao.Properties.Begin_time.le(currentTime),
// DiscountDao.Properties.End_time.ge(currentTime))).list();
return queryBuilder.where(DiscountDao.Properties.Discount_type.like(discountType)).list();
}
}
......@@ -48,12 +48,12 @@ public abstract class BaseRetryDialog extends Dialog {
public BaseRetryDialog(@NonNull Context context) {
super(context, R.style.MyDialogTheme2);
mContext = context;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mContext = getContext();
setCanceledOnTouchOutside(true);
}
......
......@@ -6,9 +6,9 @@ ext {
minSdkVersion : 19, //N5收銀機應用安卓開發環境要求Android OS Version: 5.1Android SDK Min Version: 19
targetSdkVersion : 28,
//正式版: 1.0.3 3
//內部測試版:1.1.7 17
versionCode : 19,
versionName : "1.1.9"
//內部測試版:1.2.0 20
versionCode : 20,
versionName : "1.2.0"
]
version = [
......
......@@ -232,6 +232,8 @@ public class TableManageSectiontAdapter extends QMUIDefaultStickySectionAdapter<
setBackGroundWork(viewHolder, Color.parseColor("#FFE5AC00"), R.color.theme_white_color, R.color.theme_white_color);
break;
case 4:
setBackGroundWork(viewHolder, ContextCompat.getColor(context, R.color.app_color_blue_2), R.color.theme_white_color, R.color.theme_white_color);
break;
case 5:
case 6:
setBackGroundWork(viewHolder, ContextCompat.getColor(context, R.color.Violet), R.color.theme_white_color, R.color.theme_white_color);
......
......@@ -143,6 +143,6 @@ public interface MealStandContract {
List<FoodModifier> queryDB_FoodModifierList(long fid);
List<Discount> queryDB_DiscountList();
List<Discount> queryDB_DiscountList(String discountType);
}
}
......@@ -73,7 +73,7 @@ public interface OrderContentContract {
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends BaseOrderContract.Model {
List<Discount> queryDB_DiscountList();
List<Discount> queryDB_DiscountList(String discountType);
Observable<BaseRespose> loadOrder(long orderId);
......@@ -81,7 +81,7 @@ public interface OrderContentContract {
Observable<TableBean> getTables(int restaurantId);
Observable<TableDetail> getTable(long tableId);
Observable<TableDetail> getTable(int tableId);
Observable<BaseRespose> transferFood(RequestBody requestBody);
}
......
......@@ -70,7 +70,7 @@ public interface TableContract {
Observable<TableBean> getTables(int restaurantId);
Observable<TableDetail> getTable(long tableId);
Observable<TableDetail> getTable(int tableId);
Observable<BaseRespose> getOrderById(long orderId);
......@@ -80,8 +80,8 @@ public interface TableContract {
Observable<BaseRespose> initTable(RequestBody requestBody);
Observable<BaseResult> getSplitTables(long tableId);
Observable<BaseResult> getSplitTables(int tableId);
Observable<BaseResult> splitTable(long tableId);
Observable<BaseResult> splitTable(int tableId);
}
}
......@@ -116,7 +116,7 @@ public class MealStandModel extends BaseModel implements MealStandContract.Model
}
@Override
public List<Discount> queryDB_DiscountList() {
public List<Discount> queryDB_DiscountList(String discountType) {
DiscountDaoUtils discountDaoUtils = new DiscountDaoUtils(mApplication);
return discountDaoUtils.queryDiscountByQueryBuilder();
}
......
......@@ -60,7 +60,7 @@ public class OrderContentModel extends BaseModel implements OrderContentContract
}
@Override
public List<Discount> queryDB_DiscountList() {
public List<Discount> queryDB_DiscountList(String discountType) {
DiscountDaoUtils discountDaoUtils = new DiscountDaoUtils(mApplication);
return discountDaoUtils.queryDiscountByQueryBuilder();
}
......@@ -96,7 +96,7 @@ public class OrderContentModel extends BaseModel implements OrderContentContract
}
@Override
public Observable<TableDetail> getTable(long tableId) {
public Observable<TableDetail> getTable(int tableId) {
return mRepositoryManager.obtainRetrofitService(TableService.class)
.getTable(tableId);
}
......
......@@ -72,7 +72,7 @@ public class TableModel extends BaseModel implements TableContract.Model {
}
@Override
public Observable<TableDetail> getTable(long tableId) {
public Observable<TableDetail> getTable(int tableId) {
return mRepositoryManager.obtainRetrofitService(TableService.class)
.getTable(tableId);
}
......@@ -102,13 +102,13 @@ public class TableModel extends BaseModel implements TableContract.Model {
}
@Override
public Observable<BaseResult> getSplitTables(long tableId) {
public Observable<BaseResult> getSplitTables(int tableId) {
return mRepositoryManager.obtainRetrofitService(TableService.class)
.getSplitTables(tableId);
}
@Override
public Observable<BaseResult> splitTable(long tableId) {
public Observable<BaseResult> splitTable(int tableId) {
return mRepositoryManager.obtainRetrofitService(TableService.class)
.splitTable(tableId);
}
......
......@@ -17,7 +17,7 @@ public class SplitTableNumber {
* id : 1
* tableNumber : A
*/
private int id;
private long id;
private String tableNumber;
}
package com.gingersoft.gsa.cloud.table.mvp.model.bean.event;
import lombok.Data;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-07-31
* 修订历史:2020-07-31
* 描述:
*/
@Data
public class InitTableEvent {
private int tableId;
private String tableNumber;
public InitTableEvent(int tableId, String tableNumber) {
this.tableId = tableId;
this.tableNumber = tableNumber;
}
}
......@@ -26,7 +26,7 @@ public interface TableService {
Observable<TableBean> getTables(@Query("restaurantId") int restaurantId);
@GET("restaurantTable/get" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<TableDetail> getTable(@Query("id") long table);
Observable<TableDetail> getTable(@Query("id") int table);
@POST("restaurantTable/kickOff" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseRespose> openTable(@Body RequestBody requestBody);
......@@ -38,8 +38,8 @@ public interface TableService {
Observable<BaseRespose> initTable(@Body RequestBody requestBody);
@GET("restaurantTable/getSplitTableAvailable" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> getSplitTables(@Query("tableId") long tableId);
Observable<BaseResult> getSplitTables(@Query("tableId") int tableId);
@GET("restaurantTable/getSplitTable" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> splitTable(@Query("tableId") long tableId);
Observable<BaseResult> splitTable(@Query("tableId") int tableId);
}
......@@ -34,8 +34,11 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.inject.Inject;
......@@ -738,6 +741,7 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
int restaurantId = GsaCloudApplication.getRestaurantId(mApplication);
CreateOrderRequest request = new CreateOrderRequest();
request.setTableNumber(OpenTableManage.getDefault().getTableBean().getTableNumber());
request.setOrderDetails(orderDetailBeanToFoodRequest(newFoodList));
request.setPerson(OpenTableManage.getDefault().getPeopleNumber());
request.setTableId(OpenTableManage.getDefault().getTableBean().getId());
......@@ -760,6 +764,7 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
}
AddOrderRequest request = new AddOrderRequest();
request.setTableNumber(OpenTableManage.getDefault().getTableBean().getTableNumber());
request.setMaps(orderDetailBeanToAddFoodRequest(newFoodList));
request.setOrderId(MyOrderManage.getInstance().getOrderId());
request.setTableId(OpenTableManage.getDefault().getTableBean().getId());
......@@ -926,6 +931,7 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
* @param foodList
*/
private void mergeMainFoodNumber(List<OrderDetail> foodList) {
List<Integer> removeIndexs = new ArrayList<>();
for (int i = 0; i < foodList.size(); i++) {
OrderDetail orderFood = foodList.get(i);
if (!orderFood.isNew() || orderFood.getItemType() != 1)
......@@ -942,12 +948,38 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
if (canMerge) {
//合并数量
mergeNum += mergeFood.getNumber();
//移除已合并的食品
foodList.remove(j);
if(!removeIndexs.contains(mergeFood.getMyIndex())){
//添加所需移除已合并的食品
removeIndexs.add(mergeFood.getMyIndex());
}
}
}
orderFood.setNumber(mergeNum);
}
for (int i = removeIndexs.size() - 1; i >= 0; i--) {
for (int j = foodList.size() - 1; j >= 0; j--) {
if(removeIndexs.get(i) == foodList.get(j).getMyIndex()){
foodList.remove(j);
break;
}
}
}
}
/**
* 过滤折扣类型
* @param discountList
* @return
*/
protected List<Discount> filterDiscountByType(List<Discount> discountList,String discountType) {
for (int i = discountList.size() - 1; i >= 0; i--) {
Discount discount = discountList.get(i);
if (!discount.getDiscount_type().contains(discountType)) {
discountList.remove(i);
}
}
return discountList;
}
/**
......
......@@ -757,19 +757,11 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
public void onNext(@NonNull BaseResult info) {
if (info != null && info.isSuccess()) {
mRootView.showMessage("送單成功");
if (OpenTableManage.getDefault() != null) {
//通知更新餐台状态
EventBus.getDefault().post(OpenTableManage.getDefault().getTableBean().getId(), "initTable_status_event");
}
printSendOrder(false);
} else {
if (!hasNesOrderFoods()) {
//TODO 未新增食品點擊送單 後台不讓過直接提示即可
mRootView.showMessage("送單成功");
if (OpenTableManage.getDefault() != null) {
//通知更新餐台状态
EventBus.getDefault().post(OpenTableManage.getDefault().getTableBean().getId(), "initTable_status_event");
}
printSendOrder(false);
} else {
mRootView.showMessage(info.getErrMsg());
......@@ -792,11 +784,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
.callAsyncCallbackOnMainThread((cc, result) -> {
// if (result.isSuccess()) {
//打印成功
if (initTable) {
IActivity.returnBeforeActivity(initTable);
} else {
mRootView.killMyself();
}
// } else {
// mRootView.showMessage("打印失敗");
// }
......@@ -1770,7 +1758,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
if (insertPosition != -1) {
if (insertPosition < newOrderList.size()) {
j = insertPosition + 1;
}else {
} else {
j = insertPosition;
}
}
......@@ -1868,7 +1856,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
}
mCurrentOrderDetailBean = currentOrderBean;
List<Discount> discountList = mModel.queryDB_DiscountList();
List<Discount> discountList = filterDiscountByType(mModel.queryDB_DiscountList("0"),"0");
mDiscountList.clear();
mDiscountList.addAll(discountList);
......@@ -1877,6 +1865,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
mDiscountAdapter.notifyDataSetChanged();
}
/**
* 獲取所要折扣金額
*
......
......@@ -506,7 +506,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
});
}
public void getTable(long tableId, TextView tv_table_name) {
public void getTable(int tableId, TextView tv_table_name) {
mModel.getTable(tableId)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null))
......@@ -607,7 +607,8 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
}
});
}
mDiscountDialog.addItems(mModel.queryDB_DiscountList());
List<Discount> discountList = filterDiscountByType(mModel.queryDB_DiscountList("1"), "1");
mDiscountDialog.addItems(discountList);
// mDiscountDialog.addItems(getDiscountList());
// mDiscountDialog.setTopBarBagcolor(mFunctionList.get(4).getBackgroundColor());
mDiscountDialog.build().show();
......
......@@ -2,6 +2,7 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter;
import android.app.Application;
import android.os.CountDownTimer;
import android.text.TextUtils;
import android.view.View;
import com.billy.cc.core.component.CC;
......@@ -372,7 +373,11 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
});
}
public void openTable(long tableId, String tableNumber) {
public void openTable(long tableId, TableBean.DataBean tableExtBean) {
String tableNumber = "";
if (tableExtBean != null) {
tableNumber = tableExtBean.getTableNumber();
}
RequestBody requestBody = new FormBody.Builder()
.add("id", String.valueOf(tableId))
.add("tableNumber", tableNumber)
......@@ -389,16 +394,18 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
@Override
public void onNext(@NonNull BaseRespose respose) {
if (respose.isSuccess()) {
OpenTableManage.getDefault().setPeopleNumber(0);
//設置當前開台數據1584427984728 1584428017196 1584428086282
TableBean.DataBean dataBean = getTableById(tableId);
TableBean.DataBean openTableBean = null;
if (dataBean != null) {
dataBean.setTableNumber(dataBean.getTableNumber());
openTableBean = new TableBean.DataBean(dataBean);
//設置當前開台數據
TableBean.DataBean openTableBean;
if (tableExtBean != null) {
openTableBean = tableExtBean;
if (IActivity.getSplitTableDialog() != null) {
IActivity.getSplitTableDialog().closeDialog();
}
OpenTableManage.getDefault().setPeopleNumber(dataBean.getSeatCount());
} else {
openTableBean = getTableById(tableId);
}
OpenTableManage.getDefault().setPeopleNumber(0);
OpenTableManage.getDefault().setPeopleNumber(openTableBean.getSeatCount());
OrderBean orderBean = respose.getData();
if (orderBean != null && respose.getData().getOrderDetails() != null) {
......@@ -473,7 +480,7 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
return 0;
}
public void getTable(long tableId) {
public void getTable(int tableId) {
mModel.getTable(tableId)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null))
......@@ -554,10 +561,11 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
});
}
public void initTable(long tableId, boolean showMessage) {
public void initTable(int tableId, String tableNumber, boolean showMessage) {
RequestBody requestBody = new FormBody.Builder()
.add("id", tableId + "")
.add("tableNumber", tableNumber)
.build();
mModel.initTable(requestBody)
......@@ -593,28 +601,24 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
mRootView.showMessage(respose.getErrMsg());
}
}
@Override
public void onError(Throwable t) {
super.onError(t);
}
});
}
public void getSplitTables(long tableId) {
public void getSplitTables(int tableId) {
SplitTableDialog splitTableDialog = IActivity.getSplitTableDialog();
mModel.getSplitTables(tableId)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null))
// .doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
// .doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onSubscribe(Disposable d) {
super.onSubscribe(d);
splitTableDialog.clearItems();
splitTableDialog.setProgressVisibility(true);
}
......@@ -625,7 +629,7 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
TableExtBean tableExtBean = JsonUtils.parseObject(info.getData(), TableExtBean.class);
List<TableBean.DataBean> dataBeanList = assemblyTableExt(tableExtBean.getRestaurantTable(), tableExtBean.getRestaurantTableExtList());
List<TableBean.DataBean> dataBeanList = assemblyTableExts(tableExtBean.getRestaurantTable(), tableExtBean.getRestaurantTableExtList());
splitTableDialog.addItems(dataBeanList);
splitTableDialog.notifyDataSetChanged();
......@@ -645,13 +649,13 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
splitTableDialog.showEmptyView(false, 0, t);
}
private List<TableBean.DataBean> assemblyTableExt(TableBean.DataBean mainTable, List<TableExtBean.DataBean> restaurantTableExtList) {
private List<TableBean.DataBean> assemblyTableExts(TableBean.DataBean mainTable, List<TableExtBean.DataBean> restaurantTableExtList) {
List<TableBean.DataBean> dataBeans = new ArrayList<>();
//添加主檯
dataBeans.add(mainTable);
//添加分檯
for (TableExtBean.DataBean dataBean : restaurantTableExtList) {
dataBeans.add(TableBean.splitTableTransformTable(mainTable, dataBean));
dataBeans.add(TableBean.splitTableTransformTable2(mainTable, dataBean));
}
return dataBeans;
}
......@@ -659,7 +663,7 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
}
public void splitTable(long tableId) {
public void splitTable(int tableId) {
mModel.splitTable(tableId)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null))
......@@ -673,11 +677,10 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
public void onNext(@NonNull BaseResult result) {
if (result.isSuccess()) {
if (result.getData() != null) {
SplitTableNumber splitTable = JsonUtils.parseObject(result.getData(), SplitTableNumber.class);
//分檯编号
String splitNumber = splitTable.getTableNumber();
TableExtBean.DataBean tableExtBean = JsonUtils.parseObject(result.getData(), TableExtBean.DataBean.class);
long tableExtId = tableExtBean.getId();
//分檯开檯
openTable(tableId, splitNumber);
openTable(tableExtId, TableBean.splitTableTransformTable(tableExtBean));
}
} else {
mRootView.showMessage(result.getErrMsg());
......@@ -686,6 +689,7 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
});
}
public void loadOrderList(long orderId, boolean isPrintParper) {
RequestBody requestBody = new FormBody.Builder()
......@@ -748,7 +752,7 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
break;
case TableOperatTypeConstant.init_table_3:
for (int i = 0; i < mTableList.size(); i++) {
if (mTableList.get(i).getUseStatus() == 1) {
if (mTableList.get(i).getUseStatus() == 1 || mTableList.get(i).getStatus() == 4) {
filterTableBeanList.add(mTableList.get(i));
}
}
......@@ -808,7 +812,7 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
loadOrderToPrint(dataBean.getId(), dataBean.getOrderId());
break;
case TableOperatTypeConstant.init_table_3:
initTable(dataBean.getId(), true);
initTable(dataBean.getId(), dataBean.getTableNumber(), true);
break;
case TableOperatTypeConstant.move_table_4:
turnTable(originalTableId, targetTableId, finalIsMergeTable);
......
......@@ -57,6 +57,7 @@ import com.gingersoft.gsa.cloud.table.di.component.DaggerMealStandComponent;
import com.gingersoft.gsa.cloud.table.mvp.contract.MealStandContract;
import com.gingersoft.gsa.cloud.constans.MealConstant;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.SoldoutCtrFood;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.event.InitTableEvent;
import com.gingersoft.gsa.cloud.table.mvp.presenter.MealStandPresenter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.BaseFragmentAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.MemberInfoAdapter;
......@@ -774,7 +775,7 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
SPUtils.put(this, MealConstant.EXIT_IS_PLU_MODE, isPluMode);
if (initTable && OpenTableManage.getDefault().getTableBean() != null && !MyOrderManage.getInstance().isModifyOrder()) {
//通知更新餐台状态
EventBus.getDefault().post(OpenTableManage.getDefault().getTableBean().getId(), "initTable_status_event");
EventBus.getDefault().post(new InitTableEvent(OpenTableManage.getDefault().getTableBean().getId(), OpenTableManage.getDefault().getTableBean().getTableNumber()), "initTable_status_event");
}
killMyself();
}
......
......@@ -34,6 +34,7 @@ import com.gingersoft.gsa.cloud.table.app.OrderConentOperatTypeConstant;
import com.gingersoft.gsa.cloud.table.app.TableOperatTypeConstant;
import com.gingersoft.gsa.cloud.table.di.component.DaggerOrderContentComponent;
import com.gingersoft.gsa.cloud.table.mvp.contract.OrderContentContract;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.event.InitTableEvent;
import com.gingersoft.gsa.cloud.table.mvp.presenter.OrderContentPresenter;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.AllTableFragment;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.InputTableFragment;
......@@ -465,7 +466,7 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese
public void returnTableActivity(boolean initTable) {
if (initTable && OpenTableManage.getDefault().getTableBean() != null && !MyOrderManage.getInstance().isModifyOrder()) {
//通知更新餐台状态
EventBus.getDefault().post(OpenTableManage.getDefault().getTableBean().getId(), "initTable_status_event");
EventBus.getDefault().post(new InitTableEvent(OpenTableManage.getDefault().getTableBean().getId(), OpenTableManage.getDefault().getTableBean().getTableNumber()), "initTable_status_event");
}
mAppManager.killActivity(MealStandActivity.class);
killMyself();
......@@ -531,7 +532,7 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese
// 设置返回码和返回携带的数据
if (OpenTableManage.getDefault() != null) {
//通知更新餐台状态
EventBus.getDefault().post(OpenTableManage.getDefault().getTableBean().getId(), "initTable_status_event");
EventBus.getDefault().post(new InitTableEvent(OpenTableManage.getDefault().getTableBean().getId(), OpenTableManage.getDefault().getTableBean().getTableNumber()), "initTable_status_event");
}
setResult(Activity.RESULT_OK, null);
killMyself();
......@@ -541,7 +542,7 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese
public void sendSuccess() {
if (OpenTableManage.getDefault() != null) {
//通知更新餐台状态
EventBus.getDefault().post(OpenTableManage.getDefault().getTableBean().getId(), "initTable_status_event");
EventBus.getDefault().post(new InitTableEvent(OpenTableManage.getDefault().getTableBean().getId(), OpenTableManage.getDefault().getTableBean().getTableNumber()), "initTable_status_event");
}
setResult(Activity.RESULT_OK, null);
killMyself();
......
......@@ -38,6 +38,7 @@ import com.gingersoft.gsa.cloud.table.app.payment.bean.VoidRespose;
import com.gingersoft.gsa.cloud.table.app.payment.contract.IN5Callback;
import com.gingersoft.gsa.cloud.table.di.component.DaggerOrderPayComponent;
import com.gingersoft.gsa.cloud.table.mvp.contract.OrderPayContract;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.event.InitTableEvent;
import com.gingersoft.gsa.cloud.table.mvp.presenter.OrderPayPresenter;
import com.gingersoft.gsa.cloud.ui.view.OrderPayView;
import com.gingersoft.gsa.cloud.ui.view.PayKeypadDialog;
......@@ -505,7 +506,7 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
setBillMoney();
if (!MyOrderManage.getInstance().isModifyOrder() && OpenTableManage.getDefault() != null && OpenTableManage.getDefault().getTableBean() != null) {
//通知更新餐台状态
EventBus.getDefault().post(OpenTableManage.getDefault().getTableBean().getId(), "initTable_status_event");
EventBus.getDefault().post(new InitTableEvent(OpenTableManage.getDefault().getTableBean().getId(), OpenTableManage.getDefault().getTableBean().getTableNumber()),"initTable_status_event");
}
showMessage("支付成功");
//打印結賬單
......
......@@ -15,11 +15,13 @@ 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.log.LogUtil;
import com.gingersoft.gsa.cloud.constans.GoldConstants;
import com.gingersoft.gsa.cloud.constans.MealConstant;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.table.app.TableOperatTypeConstant;
import com.gingersoft.gsa.cloud.table.di.component.DaggerTableComponent;
import com.gingersoft.gsa.cloud.base.common.bean.TableBean;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.event.InitTableEvent;
import com.gingersoft.gsa.cloud.table.mvp.presenter.OrderContentPresenter;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.AllTableFragment;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.InputTableFragment;
......@@ -163,11 +165,11 @@ public class TableActivity extends BaseFragmentActivity<TablePresenter> implemen
}
@Subscriber(tag = "initTable_status_event")
private void notifyUpdateTableStatus(int tableId) {
mPresenter.initTable(tableId, false);
private void notifyUpdateTableStatus(InitTableEvent tableEvent) {
mPresenter.initTable(tableEvent.getTableId(), tableEvent.getTableNumber(), false);
canceOperat();
}
@Override
protected void onResume() {
super.onResume();
......@@ -296,12 +298,13 @@ public class TableActivity extends BaseFragmentActivity<TablePresenter> implemen
mPresenter.splitTable(dataBean.getId());
break;
case TableOperatTypeConstant.print_parper_2:
setOperatContentText(dataBean.getTableName());
mPresenter.showOperatTipDialog(dataBean);
break;
case TableOperatTypeConstant.init_table_3:
setOperatContentText(dataBean.getTableName());
if (dataBean.getStatus() == 4) {
showSplitTableDialog(dataBean.getId());
} else {
mPresenter.showOperatTipDialog(dataBean);
}
break;
case TableOperatTypeConstant.move_table_4:
if (mPresenter.getOriginalTableId() == dataBean.getId()) {
......@@ -318,7 +321,7 @@ public class TableActivity extends BaseFragmentActivity<TablePresenter> implemen
if (dataBean.getStatus() == 4) {
showSplitTableDialog(dataBean.getId());
} else {
mPresenter.openTable(dataBean.getId(), "");
mPresenter.openTable(dataBean.getId(), null);
}
break;
}
......@@ -399,14 +402,32 @@ public class TableActivity extends BaseFragmentActivity<TablePresenter> implemen
mPresenter.filterTableByOperatType();
}
private void showSplitTableDialog(long tableId) {
private void showSplitTableDialog(int tableId) {
if (mSplitTableDialog == null) {
mSplitTableDialog = new SplitTableDialog(this);
mSplitTableDialog.setOnClickListener(new SplitTableDialog.OnClickListener() {
@Override
public void onItemClick(SplitTableDialog dialog,TableBean.DataBean item, int position) {
dialog.dismiss();
mPresenter.openTable(item.getId(),item.getTableNumber());
public void onItemClick(SplitTableDialog dialog, TableBean.DataBean dataBean, int position) {
int currentChooseOperatType = mPresenter.getCurrentChooseOperatType();
if (currentChooseOperatType == -1) {
mPresenter.openTable(dataBean.getId(), dataBean);
} else {
mPresenter.showOperatTipDialog(dataBean);
}
// switch (currentChooseOperatType) {
// case TableOperatTypeConstant.print_parper_2:
// mPresenter.loadOrderToPrint(dataBean.getId(), dataBean.getOrderId());
// break;
// case TableOperatTypeConstant.init_table_3:
// mPresenter. initTable(dataBean.getId(), dataBean.getTableNumber(), true);
// break;
// case TableOperatTypeConstant.skyorder_mode_5:
//
// break;
// default:
// mPresenter.openTable(dataBean.getId(), dataBean);
// break;
// }
}
});
mSplitTableDialog.setOnRetryListener(new BaseRetryDialog.OnRetryListener() {
......@@ -416,7 +437,7 @@ public class TableActivity extends BaseFragmentActivity<TablePresenter> implemen
}
});
}
mSplitTableDialog.show();
mSplitTableDialog.build().show();
mPresenter.getSplitTables(tableId);
}
......@@ -653,11 +674,6 @@ public class TableActivity extends BaseFragmentActivity<TablePresenter> implemen
rv_bottom_function.setVisibility(show == true ? View.VISIBLE : View.GONE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
}
public int getCurrentSelectTableStatus() {
return mCurrentSelectTableStatus;
}
......@@ -669,4 +685,5 @@ public class TableActivity extends BaseFragmentActivity<TablePresenter> implemen
public SplitTableDialog getSplitTableDialog() {
return mSplitTableDialog;
}
}
......@@ -18,6 +18,7 @@ import android.widget.TextView;
import com.gingersoft.gsa.cloud.aspectj.SingleClick;
import com.gingersoft.gsa.cloud.aspectj.XClickUtil;
import com.gingersoft.gsa.cloud.base.common.bean.TableItem;
import com.gingersoft.gsa.cloud.base.utils.log.LogUtil;
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtil;
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.table.R;
......@@ -73,6 +74,12 @@ public class TableAdapter extends DefaultAdapter<TableBean.DataBean> {
private float mShadowAlpha = 0.25f;
private int mShadowElevationDp = 14;
/**
* 1=餐檯页
* 2=分檯页
*/
private int formType = 1;
public TableAdapter(Context context, List<TableBean.DataBean> infos, float diaplayScreenHeight, int function) {
super(infos);
this.mContext = context;
......@@ -167,8 +174,10 @@ public class TableAdapter extends DefaultAdapter<TableBean.DataBean> {
tv_people.setVisibility(View.VISIBLE);
tv_people.setText(person + "人");
String createDate = item.getCreateTime();
if (!TextUtils.isEmpty(createDate)) {
String createTime = TimeUtil.getStringByFormat(new Date(createDate), TimeUtil.dateFormatYMDHMS);
if (!TextUtils.isEmpty(createDate) && createDate.startsWith("Jul")) {
LogUtil.d(TAG, "tableName: " + item.getTableName() + " " + "createDate: " + createDate);
Date date = new Date(createDate);
String createTime = TimeUtil.getStringByFormat(date, TimeUtil.dateFormatYMDHMS);
String currentTime = TimeUtil.getStringByFormat(System.currentTimeMillis(), TimeUtil.dateFormatYMDHMS);
long[] difference = TimeUtil.getDistanceTimes2(createTime, currentTime);
if (difference[0] != 0) {
......@@ -224,28 +233,6 @@ public class TableAdapter extends DefaultAdapter<TableBean.DataBean> {
if (item.getUseStatus() == 1) {
setBackGroundWork(item, Color.parseColor("#FFD14141"), R.color.theme_white_color, R.color.theme_black);
} else {
// switch (item.getStatus()) {
// case 0:
// setBackGroundWork(item, Color.parseColor("#FFFFFFFF"), R.color.black);
// break;
// case 1:
//// setBackGroundWork(item, "2", R.drawable.table_shape_table_send, R.drawable.tablebutton_glassgreen_new, R.color.theme_white_color); break;
// case 2:
// setBackGroundWork(item, Color.parseColor("#FF249B65"), R.color.theme_white_color);
// break;
// case 3:
// setBackGroundWork(item, Color.parseColor("#FFE5AC00"), R.color.theme_white_color);
// break;
// case 4:
// setBackGroundWork(item, ContextCompat.getColor(mContext, R.color.Violet), R.color.theme_white_color);
// break;
// case 5:
// setBackGroundWork(item, ContextCompat.getColor(mContext, R.color.Violet), R.color.theme_white_color);
// break;
// case 6:
// setBackGroundWork(item, ContextCompat.getColor(mContext, R.color.Violet), R.color.theme_white_color);
// break;
// }
switch (item.getStatus()) {
case 0:
setBackGroundWork(item, Color.parseColor("#FFFFFFFF"), R.color.black, R.color.theme_black);
......@@ -259,6 +246,8 @@ public class TableAdapter extends DefaultAdapter<TableBean.DataBean> {
setBackGroundWork(item, Color.parseColor("#FFE5AC00"), R.color.theme_white_color, R.color.theme_white_color);
break;
case 4:
setBackGroundWork(item, ContextCompat.getColor(mContext, R.color.app_color_blue_2), R.color.theme_white_color, R.color.theme_white_color);
break;
case 5:
case 6:
setBackGroundWork(item, ContextCompat.getColor(mContext, R.color.Violet), R.color.theme_white_color, R.color.theme_white_color);
......
......@@ -70,6 +70,11 @@ public class SplitTableDialog extends BaseRetryDialog {
mRadius = QMUIDisplayHelper.dp2px(mContext, 8);
}
@Override
public void show() {
super.show();
}
public void addItem(TableBean.DataBean item) {
mItems.add(item);
}
......@@ -80,7 +85,15 @@ public class SplitTableDialog extends BaseRetryDialog {
mItems.addAll(items);
}
public void notifyDataSetChanged(){
public void clearItems(){
if (mItems.size() > 0)
mItems.clear();
mAdapter.notifyDataSetChanged();
}
public void notifyDataSetChanged() {
mEmptyView.hide();
recycler_table.setVisibility(View.VISIBLE);
mAdapter.notifyDataSetChanged();
}
......@@ -90,8 +103,9 @@ public class SplitTableDialog extends BaseRetryDialog {
}
mDialog = new SplitTableDialog(mContext);
View contentView = buildViews();
int screenHeight = (int) (QMUIDisplayHelper.getScreenHeight(mContext) * 0.7);
mDialog.setContentView(contentView, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, screenHeight));
int screenHeight = (int) (QMUIDisplayHelper.getScreenHeight(mContext) * 0.5);
int screenWidth = (int) (QMUIDisplayHelper.getScreenWidth(mContext) * 0.8);
mDialog.setContentView(contentView, new LinearLayout.LayoutParams(screenWidth, screenHeight));
return mDialog;
}
......@@ -129,13 +143,12 @@ public class SplitTableDialog extends BaseRetryDialog {
if (mAdapter == null) {
mAdapter = new TableAdapter(mContext, mItems, DeviceUtils.getScreenHeight(mContext), TableActivity.FUNCTION_ALL_TABLE);
}
mAdapter.setOnItemClickListener(new DefaultAdapter.OnRecyclerViewItemClickListener() {
mAdapter.setOnItemClickListener(new TableAdapter.OnItemClickListener() {
@Override
public void onItemClick(View view, int viewType, Object data, int position) {
public void onItemClick(TableBean.DataBean datasBean, int position) {
if (onClickListener != null) {
onClickListener.onItemClick(SplitTableDialog.this,(TableBean.DataBean) data, position);
onClickListener.onItemClick(SplitTableDialog.this,datasBean, position);
}
// closeDialog();
}
});
recycler_table.setLayoutManager(createLayoutManager());
......@@ -152,7 +165,7 @@ public class SplitTableDialog extends BaseRetryDialog {
}
public void showEmptyView(boolean isSuccess, int size, Throwable t) {
showEmptyView(isSuccess, size, t,mEmptyView,recycler_table);
showEmptyView(isSuccess, size, t, mEmptyView, recycler_table);
}
public void setProgressVisibility(boolean show) {
......@@ -171,7 +184,6 @@ public class SplitTableDialog extends BaseRetryDialog {
return R.layout.table_dialog_split;
}
private SplitTableDialog.OnClickListener onClickListener;
public void setOnClickListener(SplitTableDialog.OnClickListener onClickListener) {
......@@ -180,7 +192,7 @@ public class SplitTableDialog extends BaseRetryDialog {
public interface OnClickListener {
void onItemClick(SplitTableDialog dialog,TableBean.DataBean item, int position);
void onItemClick(SplitTableDialog dialog, TableBean.DataBean item, int position);
}
}
......@@ -3,7 +3,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/ll_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_height="match_parent"
android:background="@color/theme_white_color"
android:orientation="vertical">
......@@ -15,7 +15,7 @@
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_height="match_parent">
<com.qmuiteam.qmui.widget.QMUIEmptyView
android:id="@+id/emptyView"
......@@ -33,7 +33,7 @@
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_table"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_height="match_parent"
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
app:spanCount="3" />
</FrameLayout>
......
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