Commit 2718aa3f by 宁斌

1、套餐細項顯示及表調整

2、未送單直接結賬 導致結賬失敗問題
parent 72663cb3
......@@ -99,6 +99,7 @@ public class DownloadActivity extends BaseActivity<DownloadPresenter> implements
@Override
public void onClick(View v) {
killMyself();
}
});
QMUIAlphaImageButton rightButton = mTopBar.addRightImageButton(R.drawable.icon_refresh, R.id.btn_back);
......@@ -188,7 +189,7 @@ public class DownloadActivity extends BaseActivity<DownloadPresenter> implements
return;
}
transparentStatusBar(activity);
// setRootView(activity);
setRootView(activity);
}
/**
......
......@@ -41,7 +41,7 @@ android {
/**
* 版本号
*/
schemaVersion 8
schemaVersion 14
/**
* greendao输出dao的数据库操作实体类文件夹(相对路径 包名+自定义路径名称,包将创建于包名的直接路径下)
*/
......
......@@ -39,7 +39,7 @@ public class CurrentAndroidSetting {
private int LayoutQuitHeight = 40;
private int LayoutFoodTypeHeight = 100;
private int FoodBtnHeight = 120;
private int ModBtnHeight = 55;
private int ModBtnHeight = 68;
private int FoodTypeCol = 4;
private int FoodTypeRow = 1;
private int FoodCol = 4;
......
......@@ -2,7 +2,6 @@ package com.gingersoft.gsa.cloud.base.common.bean;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage;
import com.gingersoft.gsa.cloud.database.bean.Food;
import java.util.ArrayList;
import java.util.List;
......@@ -32,6 +31,9 @@ public class OrderBean {
public OrderBean() {
}
public OrderBean(int orderId) {
this.id = orderId;
}
public OrderBean(OrderBean orderBean) {
this.id = orderBean.id;
this.status = orderBean.status;
......
package com.gingersoft.gsa.cloud.base.common.bean;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
import com.gingersoft.gsa.cloud.database.bean.ComboItem;
import com.gingersoft.gsa.cloud.database.bean.FoodCombo;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.bean.Modifier;
......@@ -567,12 +568,16 @@ public class OrderDetail implements Serializable {
* @param isRvMealClicked
* @return
*/
public static OrderDetail comboTransOrderDetail(FoodCombo foodCombo, int number, String prop, boolean isRvMealClicked) {
public static OrderDetail comboTransOrderDetail(ComboItem foodCombo, int number, long fid, String prop, boolean isRvMealClicked) {
OrderDetail orderDetail = new OrderDetail();
orderDetail.setProductName(foodCombo.getName());
orderDetail.setId(foodCombo.getId());
if (foodCombo.getFid() != null) {
orderDetail.setId(foodCombo.getFid());
}
if (foodCombo.getComId() != null) {
orderDetail.setProductId(foodCombo.getComId());
orderDetail.setParentId(foodCombo.getFid());
}
orderDetail.setParentId(fid);
orderDetail.setUnit_price(foodCombo.getPrice());
orderDetail.setPrice(number * orderDetail.getUnit_price());
orderDetail.setNumber(number);
......
......@@ -94,6 +94,12 @@ public class MyOrderManage {
return new Date();
}
public void setOrderId(double orderId) {
if (orderBean != null) {
orderBean.setId((int) orderId);
}
}
public void setOrderBean(OrderBean orderBean) {
this.orderBean = orderBean;
}
......
package com.gingersoft.gsa.cloud.database.bean;
import android.graphics.Color;
import org.greenrobot.greendao.annotation.Entity;
import org.greenrobot.greendao.annotation.Id;
import org.greenrobot.greendao.annotation.Property;
import java.util.Date;
import org.greenrobot.greendao.annotation.Generated;
import org.greenrobot.greendao.annotation.Transient;
/**
* 作者:ELEGANT_BIN
......@@ -54,6 +57,50 @@ public class ComboItem {
private Byte isMainAccount;
/**
* 自定義字段
*/
@Transient
private String name;
@Transient
private String name1;
@Transient
private String name2;
@Transient
private long parentId;
/**
* 價格
*/
@Transient
private double price = 0.00;
/**
* 是否自動展開
*/
@Transient
private int autoMode = 0;
/**
* 是否备注细项
*/
@Transient
private boolean isModifier;
/**
* 背景顏色
*/
@Transient
private int bgColor = Color.parseColor("#067878");
/**
* 字體顏色
*/
@Transient
private int fontColor = Color.parseColor("#FFFFFF");
/**
* 套餐細項
*/
@Transient
private Modifier modifier;
@Generated(hash = 1857315418)
public ComboItem(Long id, Long comId, Long fid, Long qty, Double diffAmt,
Long seqNo, Long visible, Date createTime, String createBy,
......@@ -146,6 +193,54 @@ public class ComboItem {
return isMainAccount;
}
public String getName() {
return name;
}
public String getName1() {
return name1;
}
public String getName2() {
return name2;
}
public long getParentId() {
return parentId;
}
public double getPrice() {
return price;
}
public int getAutoMode() {
return autoMode;
}
public boolean isModifier() {
return isModifier;
}
public int getBgColor() {
return bgColor;
}
public int getFontColor() {
return fontColor;
}
public void setName1(String name1) {
this.name1 = name1;
}
public void setName2(String name2) {
this.name2 = name2;
}
public Modifier getModifier() {
return modifier;
}
public void setId(Long id) {
this.id = id;
}
......@@ -209,4 +304,45 @@ public class ComboItem {
public void setIsMainAccount(Byte isMainAccount) {
this.isMainAccount = isMainAccount;
}
public void setName(String name) {
this.name = name;
}
public void setParentId(long parentId) {
this.parentId = parentId;
}
public void setPrice(double price) {
this.price = price;
}
public void setAutoMode(int autoMode) {
this.autoMode = autoMode;
}
public void setModifier(boolean modifier) {
isModifier = modifier;
}
public void setBgColor(int bgColor) {
this.bgColor = bgColor;
}
public void setFontColor(int fontColor) {
this.fontColor = fontColor;
}
public void setModifier(Modifier modifier) {
this.modifier = modifier;
}
public static ComboItem addFoodInfo(Food food, ComboItem foodCombo) {
foodCombo.setName(food.getFoodName());
foodCombo.setFid(food.getId());
foodCombo.setPrice(food.getPrice());
foodCombo.setAutoMode(food.getAutoMod());
return foodCombo;
}
}
......@@ -35,9 +35,6 @@ public class Food {
@Id(autoincrement = true)
private Long id;
@ToMany
@JoinEntity(entity = FoodCombo.class, sourceProperty = "fid", targetProperty = "comId")
private List<ComboItem> comboItems;
/**
* 上級ID (如0=最高級)
*/
......@@ -324,14 +321,6 @@ public class Food {
/**是否组合食品*/
private boolean isComboFood = false;
/** Used to resolve relations */
@Generated(hash = 2040040024)
private transient DaoSession daoSession;
/** Used for active entity operations. */
@Generated(hash = 1296197325)
private transient FoodDao myDao;
@Generated(hash = 866324199)
public Food() {
}
......@@ -1007,81 +996,4 @@ public class Food {
isComboFood = comboFood;
}
/**
* To-many relationship, resolved on first access (and after reset).
* Changes to to-many relations are not persisted, make changes to the target entity.
*/
@Generated(hash = 929118398)
public List<ComboItem> getComboItems() {
if (comboItems == null) {
final DaoSession daoSession = this.daoSession;
if (daoSession == null) {
throw new DaoException("Entity is detached from DAO context");
}
ComboItemDao targetDao = daoSession.getComboItemDao();
List<ComboItem> comboItemsNew = targetDao._queryFood_ComboItems(id);
synchronized (this) {
if (comboItems == null) {
comboItems = comboItemsNew;
}
}
}
return comboItems;
}
/** Resets a to-many relationship, making the next get call to query for a fresh result. */
@Generated(hash = 1344176234)
public synchronized void resetComboItems() {
comboItems = null;
}
/**
* Convenient call for {@link org.greenrobot.greendao.AbstractDao#delete(Object)}.
* Entity must attached to an entity context.
*/
@Generated(hash = 128553479)
public void delete() {
if (myDao == null) {
throw new DaoException("Entity is detached from DAO context");
}
myDao.delete(this);
}
/**
* Convenient call for {@link org.greenrobot.greendao.AbstractDao#refresh(Object)}.
* Entity must attached to an entity context.
*/
@Generated(hash = 1942392019)
public void refresh() {
if (myDao == null) {
throw new DaoException("Entity is detached from DAO context");
}
myDao.refresh(this);
}
/**
* Convenient call for {@link org.greenrobot.greendao.AbstractDao#update(Object)}.
* Entity must attached to an entity context.
*/
@Generated(hash = 713229351)
public void update() {
if (myDao == null) {
throw new DaoException("Entity is detached from DAO context");
}
myDao.update(this);
}
/** called by internal mechanisms, do not call yourself. */
@Generated(hash = 505459956)
public void __setDaoSession(DaoSession daoSession) {
this.daoSession = daoSession;
myDao = daoSession != null ? daoSession.getFoodDao() : null;
}
}
......@@ -27,46 +27,43 @@ public class FoodCombo {
private Long fid; //食品ID
private int comId;//套餐ID
// @ToMany
// @JoinEntity(entity = ComboItem.class, sourceProperty = "comId", targetProperty = "fid")
// private List<ComboItem> comboItems;
/**
* 自定義字段
*/
@Transient
private String name;
@Transient
private long parentId;
/**
* 價格
*/
@Transient
private double price = 0.00;
/**
* 是否自動展開
*/
@Transient
private int autoMode = 0;
/**
* 是否备注细项
*/
@Transient
private boolean isModifier;
/**
* 背景顏色
*/
@Transient
private int bgColor = Color.parseColor("#067878");
/**
* 字體顏色
*/
@Transient
private int fontColor = Color.parseColor("#FFFFFF");
/**
* 套餐細項
*/
@Transient
private Modifier modifier;
// /**
// * 自定義字段
// */
// @Transient
// private String name;
// @Transient
// private long parentId;
// /**
// * 價格
// */
// @Transient
// private double price = 0.00;
// /**
// * 是否自動展開
// */
// @Transient
// private int autoMode = 0;
// /**
// * 是否备注细项
// */
// @Transient
// private boolean isModifier;
// /**
// * 背景顏色
// */
// @Transient
// private int bgColor = Color.parseColor("#067878");
// /**
// * 字體顏色
// */
// @Transient
// private int fontColor = Color.parseColor("#FFFFFF");
// /**
// * 套餐細項
// */
// @Transient
// private Modifier modifier;
......@@ -81,26 +78,16 @@ public class FoodCombo {
public FoodCombo() {
}
public long getParentId() {
return parentId;
}
public void setParentId(long parentId) {
this.parentId = parentId;
}
public Long getId() {
return id;
return this.id;
}
public void setId(long id) {
public void setId(Long id) {
this.id = id;
}
public Long getFid() {
return fid;
return this.fid;
}
public void setFid(Long fid) {
......@@ -108,79 +95,13 @@ public class FoodCombo {
}
public int getComId() {
return comId;
return this.comId;
}
public void setComId(int comId) {
this.comId = comId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAutoMode() {
return autoMode;
}
public void setAutoMode(int autoMode) {
this.autoMode = autoMode;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public boolean isModifier() {
return isModifier;
}
public void setModifier(boolean modifier) {
isModifier = modifier;
}
public int getBgColor() {
return bgColor;
}
public void setBgColor(int bgColor) {
this.bgColor = bgColor;
}
public int getFontColor() {
return fontColor;
}
public void setFontColor(int fontColor) {
this.fontColor = fontColor;
}
public Modifier getModifier() {
return modifier;
}
public void setModifier(Modifier modifier) {
this.modifier = modifier;
}
public void setId(Long id) {
this.id = id;
}
public static FoodCombo addFoodInfo(Food food, FoodCombo foodCombo) {
foodCombo.setName(food.getFoodName());
foodCombo.setFid(food.getId());
foodCombo.setPrice(food.getPrice());
foodCombo.setAutoMode(food.getAutoMod());
return foodCombo;
}
}
package com.gingersoft.gsa.cloud.database.bean;
import com.google.gson.annotations.SerializedName;
import org.greenrobot.greendao.annotation.Entity;
import org.greenrobot.greendao.annotation.Generated;
import org.greenrobot.greendao.annotation.Id;
import org.greenrobot.greendao.annotation.NotNull;
import org.greenrobot.greendao.annotation.Property;
import org.greenrobot.greendao.annotation.Generated;
import org.greenrobot.greendao.annotation.ToMany;
import java.util.List;
import org.greenrobot.greendao.DaoException;
import com.gingersoft.gsa.cloud.database.greendao.DaoSession;
import com.gingersoft.gsa.cloud.database.greendao.FoodDao;
import com.gingersoft.gsa.cloud.database.greendao.FoodModifierDao;
import com.gingersoft.gsa.cloud.database.greendao.ModifierDao;
/**
* 作者:ELEGANT_BIN
......@@ -24,47 +20,62 @@ import com.gingersoft.gsa.cloud.database.greendao.ModifierDao;
@Entity
public class FoodModifier {
@Property(nameInDb = "_id")
@Id(autoincrement = true)
private Long dbid;
private Long id;
@NotNull
private Long id;
private Long fid;
private Long mid;
//關聯食品表
@ToMany(referencedJoinProperty = "mid")
private List<Modifier> modifiers;
/** Used to resolve relations */
@Generated(hash = 2040040024)
private transient DaoSession daoSession;
/** Used for active entity operations. */
@Generated(hash = 1456075793)
private transient FoodModifierDao myDao;
private Long fid;
private int minQty;
private int maxQty;
private int seqNo;
private String createTime;
private String createBy;
private String updateTime;
private int showType;
private int autoNext;
private int multipleSelect;
private String defmodifier;
private String excmodifier;
private int conditions;
private int isRT;
private int restaurantId;
private int preferentialPrice;
private int posId;
@Generated(hash = 969556490)
public FoodModifier(Long dbid, @NotNull Long id, Long fid, Long mid) {
this.dbid = dbid;
this.id = id;
this.fid = fid;
this.mid = mid;
}
@Generated(hash = 1385518392)
public FoodModifier() {
}
public Long getDbid() {
return dbid;
}
public void setDbid(Long dbid) {
this.dbid = dbid;
@Generated(hash = 101316338)
public FoodModifier(Long id, @NotNull Long mid, Long fid, int minQty,
int maxQty, int seqNo, String createTime, String createBy,
String updateTime, int showType, int autoNext, int multipleSelect,
String defmodifier, String excmodifier, int conditions, int isRT,
int restaurantId, int preferentialPrice, int posId) {
this.id = id;
this.mid = mid;
this.fid = fid;
this.minQty = minQty;
this.maxQty = maxQty;
this.seqNo = seqNo;
this.createTime = createTime;
this.createBy = createBy;
this.updateTime = updateTime;
this.showType = showType;
this.autoNext = autoNext;
this.multipleSelect = multipleSelect;
this.defmodifier = defmodifier;
this.excmodifier = excmodifier;
this.conditions = conditions;
this.isRT = isRT;
this.restaurantId = restaurantId;
this.preferentialPrice = preferentialPrice;
this.posId = posId;
}
public Long getId() {
......@@ -91,74 +102,132 @@ public class FoodModifier {
this.mid = mid;
}
/**
* Convenient call for {@link org.greenrobot.greendao.AbstractDao#delete(Object)}.
* Entity must attached to an entity context.
*/
@Generated(hash = 128553479)
public void delete() {
if (myDao == null) {
throw new DaoException("Entity is detached from DAO context");
public int getMinQty() {
return minQty;
}
myDao.delete(this);
public void setMinQty(int minQty) {
this.minQty = minQty;
}
/**
* Convenient call for {@link org.greenrobot.greendao.AbstractDao#refresh(Object)}.
* Entity must attached to an entity context.
*/
@Generated(hash = 1942392019)
public void refresh() {
if (myDao == null) {
throw new DaoException("Entity is detached from DAO context");
public int getMaxQty() {
return maxQty;
}
public void setMaxQty(int maxQty) {
this.maxQty = maxQty;
}
myDao.refresh(this);
public int getSeqNo() {
return seqNo;
}
/**
* Convenient call for {@link org.greenrobot.greendao.AbstractDao#update(Object)}.
* Entity must attached to an entity context.
*/
@Generated(hash = 713229351)
public void update() {
if (myDao == null) {
throw new DaoException("Entity is detached from DAO context");
public void setSeqNo(int seqNo) {
this.seqNo = seqNo;
}
myDao.update(this);
public String getCreateTime() {
return createTime;
}
/** called by internal mechanisms, do not call yourself. */
@Generated(hash = 638717814)
public void __setDaoSession(DaoSession daoSession) {
this.daoSession = daoSession;
myDao = daoSession != null ? daoSession.getFoodModifierDao() : null;
public void setCreateTime(String createTime) {
this.createTime = createTime;
}
/**
* To-many relationship, resolved on first access (and after reset).
* Changes to to-many relations are not persisted, make changes to the target entity.
*/
@Generated(hash = 1902490580)
public List<Modifier> getModifiers() {
if (modifiers == null) {
final DaoSession daoSession = this.daoSession;
if (daoSession == null) {
throw new DaoException("Entity is detached from DAO context");
public String getCreateBy() {
return createBy;
}
ModifierDao targetDao = daoSession.getModifierDao();
List<Modifier> modifiersNew = targetDao._queryFoodModifier_Modifiers(dbid);
synchronized (this) {
if (modifiers == null) {
modifiers = modifiersNew;
public void setCreateBy(String createBy) {
this.createBy = createBy;
}
public String getUpdateTime() {
return updateTime;
}
public void setUpdateTime(String updateTime) {
this.updateTime = updateTime;
}
return modifiers;
public int getShowType() {
return showType;
}
public void setShowType(int showType) {
this.showType = showType;
}
public int getAutoNext() {
return autoNext;
}
public void setAutoNext(int autoNext) {
this.autoNext = autoNext;
}
public int getMultipleSelect() {
return multipleSelect;
}
public void setMultipleSelect(int multipleSelect) {
this.multipleSelect = multipleSelect;
}
public String getDefmodifier() {
return defmodifier;
}
public void setDefmodifier(String defmodifier) {
this.defmodifier = defmodifier;
}
public String getExcmodifier() {
return excmodifier;
}
public void setExcmodifier(String excmodifier) {
this.excmodifier = excmodifier;
}
public int getConditions() {
return conditions;
}
public void setConditions(int conditions) {
this.conditions = conditions;
}
public int getIsRT() {
return isRT;
}
public void setIsRT(int isRT) {
this.isRT = isRT;
}
public int getRestaurantId() {
return restaurantId;
}
public void setRestaurantId(int restaurantId) {
this.restaurantId = restaurantId;
}
public int getPreferentialPrice() {
return preferentialPrice;
}
public void setPreferentialPrice(int preferentialPrice) {
this.preferentialPrice = preferentialPrice;
}
public int getPosId() {
return posId;
}
/** Resets a to-many relationship, making the next get call to query for a fresh result. */
@Generated(hash = 51124353)
public synchronized void resetModifiers() {
modifiers = null;
public void setPosId(int posId) {
this.posId = posId;
}
}
......@@ -207,8 +207,8 @@ public class Modifier {
/**
* 自定義字段
*/
@Transient
/**當前食品ID*/
@Transient
private long fid;
@Transient
/**選中數量*/
......@@ -308,7 +308,7 @@ public class Modifier {
return mid;
}
public long getTopId() {
public Long getTopId() {
return topId;
}
......@@ -328,7 +328,7 @@ public class Modifier {
return marketPrice;
}
public double getPrice() {
public Double getPrice() {
return price;
}
......@@ -417,9 +417,14 @@ public class Modifier {
}
public boolean isParent() {
if (isParent == null)
if (isParent == 1) {
return true;
}
return false;
return isParent == 1 ? true : false;
}
public Long getIsParent() {
return isParent;
}
public String getModifierName1() {
......@@ -757,8 +762,4 @@ public class Modifier {
public void setPId(String pId) {
this.pId = pId;
}
public Long getIsParent() {
return this.isParent;
}
}
package com.gingersoft.gsa.cloud.database.greendao;
import java.util.List;
import android.database.Cursor;
import android.database.sqlite.SQLiteStatement;
......@@ -9,10 +8,6 @@ import org.greenrobot.greendao.Property;
import org.greenrobot.greendao.internal.DaoConfig;
import org.greenrobot.greendao.database.Database;
import org.greenrobot.greendao.database.DatabaseStatement;
import org.greenrobot.greendao.query.Query;
import org.greenrobot.greendao.query.QueryBuilder;
import com.gingersoft.gsa.cloud.database.bean.FoodCombo;
import com.gingersoft.gsa.cloud.database.bean.ComboItem;
......@@ -47,7 +42,6 @@ public class ComboItemDao extends AbstractDao<ComboItem, Long> {
public final static Property IsMainAccount = new Property(15, Byte.class, "isMainAccount", false, "IS_MAIN_ACCOUNT");
}
private Query<ComboItem> food_ComboItemsQuery;
public ComboItemDao(DaoConfig config) {
super(config);
......@@ -328,19 +322,4 @@ public class ComboItemDao extends AbstractDao<ComboItem, Long> {
return true;
}
/** Internal query to resolve the "comboItems" to-many relationship of Food. */
public List<ComboItem> _queryFood_ComboItems(Long fid) {
synchronized (this) {
if (food_ComboItemsQuery == null) {
QueryBuilder<ComboItem> queryBuilder = queryBuilder();
queryBuilder.join(FoodCombo.class, FoodComboDao.Properties.ComId)
.where(FoodComboDao.Properties.Fid.eq(fid));
food_ComboItemsQuery = queryBuilder.build();
}
}
Query<ComboItem> query = food_ComboItemsQuery.forCurrentThread();
query.setParameter(0, fid);
return query.list();
}
}
......@@ -14,31 +14,31 @@ import org.greenrobot.greendao.identityscope.IdentityScopeType;
// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
/**
* Master of DAO (schema version 8): knows all DAOs.
* Master of DAO (schema version 14): knows all DAOs.
*/
public class DaoMaster extends AbstractDaoMaster {
public static final int SCHEMA_VERSION = 8;
public static final int SCHEMA_VERSION = 14;
/** Creates underlying database table using DAOs. */
public static void createAllTables(Database db, boolean ifNotExists) {
ComboItemDao.createTable(db, ifNotExists);
FoodDao.createTable(db, ifNotExists);
FoodComboDao.createTable(db, ifNotExists);
FoodModifierDao.createTable(db, ifNotExists);
FunctionDao.createTable(db, ifNotExists);
ModifierDao.createTable(db, ifNotExists);
PrinterDeviceBeanDao.createTable(db, ifNotExists);
ComboItemDao.createTable(db, ifNotExists);
FoodComboDao.createTable(db, ifNotExists);
}
/** Drops underlying database table using DAOs. */
public static void dropAllTables(Database db, boolean ifExists) {
ComboItemDao.dropTable(db, ifExists);
FoodDao.dropTable(db, ifExists);
FoodComboDao.dropTable(db, ifExists);
FoodModifierDao.dropTable(db, ifExists);
FunctionDao.dropTable(db, ifExists);
ModifierDao.dropTable(db, ifExists);
PrinterDeviceBeanDao.dropTable(db, ifExists);
ComboItemDao.dropTable(db, ifExists);
FoodComboDao.dropTable(db, ifExists);
}
/**
......@@ -57,13 +57,13 @@ public class DaoMaster extends AbstractDaoMaster {
public DaoMaster(Database db) {
super(db, SCHEMA_VERSION);
registerDaoClass(ComboItemDao.class);
registerDaoClass(FoodDao.class);
registerDaoClass(FoodComboDao.class);
registerDaoClass(FoodModifierDao.class);
registerDaoClass(FunctionDao.class);
registerDaoClass(ModifierDao.class);
registerDaoClass(PrinterDeviceBeanDao.class);
registerDaoClass(ComboItemDao.class);
registerDaoClass(FoodComboDao.class);
}
public DaoSession newSession() {
......
......@@ -8,21 +8,21 @@ import org.greenrobot.greendao.database.Database;
import org.greenrobot.greendao.identityscope.IdentityScopeType;
import org.greenrobot.greendao.internal.DaoConfig;
import com.gingersoft.gsa.cloud.database.bean.ComboItem;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.bean.FoodCombo;
import com.gingersoft.gsa.cloud.database.bean.FoodModifier;
import com.gingersoft.gsa.cloud.database.bean.Function;
import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
import com.gingersoft.gsa.cloud.database.bean.ComboItem;
import com.gingersoft.gsa.cloud.database.bean.FoodCombo;
import com.gingersoft.gsa.cloud.database.greendao.ComboItemDao;
import com.gingersoft.gsa.cloud.database.greendao.FoodDao;
import com.gingersoft.gsa.cloud.database.greendao.FoodComboDao;
import com.gingersoft.gsa.cloud.database.greendao.FoodModifierDao;
import com.gingersoft.gsa.cloud.database.greendao.FunctionDao;
import com.gingersoft.gsa.cloud.database.greendao.ModifierDao;
import com.gingersoft.gsa.cloud.database.greendao.PrinterDeviceBeanDao;
import com.gingersoft.gsa.cloud.database.greendao.ComboItemDao;
import com.gingersoft.gsa.cloud.database.greendao.FoodComboDao;
// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
......@@ -33,29 +33,35 @@ import com.gingersoft.gsa.cloud.database.greendao.FoodComboDao;
*/
public class DaoSession extends AbstractDaoSession {
private final DaoConfig comboItemDaoConfig;
private final DaoConfig foodDaoConfig;
private final DaoConfig foodComboDaoConfig;
private final DaoConfig foodModifierDaoConfig;
private final DaoConfig functionDaoConfig;
private final DaoConfig modifierDaoConfig;
private final DaoConfig printerDeviceBeanDaoConfig;
private final DaoConfig comboItemDaoConfig;
private final DaoConfig foodComboDaoConfig;
private final ComboItemDao comboItemDao;
private final FoodDao foodDao;
private final FoodComboDao foodComboDao;
private final FoodModifierDao foodModifierDao;
private final FunctionDao functionDao;
private final ModifierDao modifierDao;
private final PrinterDeviceBeanDao printerDeviceBeanDao;
private final ComboItemDao comboItemDao;
private final FoodComboDao foodComboDao;
public DaoSession(Database db, IdentityScopeType type, Map<Class<? extends AbstractDao<?, ?>>, DaoConfig>
daoConfigMap) {
super(db);
comboItemDaoConfig = daoConfigMap.get(ComboItemDao.class).clone();
comboItemDaoConfig.initIdentityScope(type);
foodDaoConfig = daoConfigMap.get(FoodDao.class).clone();
foodDaoConfig.initIdentityScope(type);
foodComboDaoConfig = daoConfigMap.get(FoodComboDao.class).clone();
foodComboDaoConfig.initIdentityScope(type);
foodModifierDaoConfig = daoConfigMap.get(FoodModifierDao.class).clone();
foodModifierDaoConfig.initIdentityScope(type);
......@@ -68,43 +74,45 @@ public class DaoSession extends AbstractDaoSession {
printerDeviceBeanDaoConfig = daoConfigMap.get(PrinterDeviceBeanDao.class).clone();
printerDeviceBeanDaoConfig.initIdentityScope(type);
comboItemDaoConfig = daoConfigMap.get(ComboItemDao.class).clone();
comboItemDaoConfig.initIdentityScope(type);
foodComboDaoConfig = daoConfigMap.get(FoodComboDao.class).clone();
foodComboDaoConfig.initIdentityScope(type);
comboItemDao = new ComboItemDao(comboItemDaoConfig, this);
foodDao = new FoodDao(foodDaoConfig, this);
foodComboDao = new FoodComboDao(foodComboDaoConfig, this);
foodModifierDao = new FoodModifierDao(foodModifierDaoConfig, this);
functionDao = new FunctionDao(functionDaoConfig, this);
modifierDao = new ModifierDao(modifierDaoConfig, this);
printerDeviceBeanDao = new PrinterDeviceBeanDao(printerDeviceBeanDaoConfig, this);
comboItemDao = new ComboItemDao(comboItemDaoConfig, this);
foodComboDao = new FoodComboDao(foodComboDaoConfig, this);
registerDao(ComboItem.class, comboItemDao);
registerDao(Food.class, foodDao);
registerDao(FoodCombo.class, foodComboDao);
registerDao(FoodModifier.class, foodModifierDao);
registerDao(Function.class, functionDao);
registerDao(Modifier.class, modifierDao);
registerDao(PrinterDeviceBean.class, printerDeviceBeanDao);
registerDao(ComboItem.class, comboItemDao);
registerDao(FoodCombo.class, foodComboDao);
}
public void clear() {
comboItemDaoConfig.clearIdentityScope();
foodDaoConfig.clearIdentityScope();
foodComboDaoConfig.clearIdentityScope();
foodModifierDaoConfig.clearIdentityScope();
functionDaoConfig.clearIdentityScope();
modifierDaoConfig.clearIdentityScope();
printerDeviceBeanDaoConfig.clearIdentityScope();
comboItemDaoConfig.clearIdentityScope();
foodComboDaoConfig.clearIdentityScope();
}
public ComboItemDao getComboItemDao() {
return comboItemDao;
}
public FoodDao getFoodDao() {
return foodDao;
}
public FoodComboDao getFoodComboDao() {
return foodComboDao;
}
public FoodModifierDao getFoodModifierDao() {
return foodModifierDao;
}
......@@ -121,12 +129,4 @@ public class DaoSession extends AbstractDaoSession {
return printerDeviceBeanDao;
}
public ComboItemDao getComboItemDao() {
return comboItemDao;
}
public FoodComboDao getFoodComboDao() {
return foodComboDao;
}
}
......@@ -93,8 +93,6 @@ public class FoodDao extends AbstractDao<Food, Long> {
public final static Property IsStatistic = new Property(66, Long.class, "isStatistic", false, "IS_STATISTIC");
}
private DaoSession daoSession;
public FoodDao(DaoConfig config) {
super(config);
......@@ -102,7 +100,6 @@ public class FoodDao extends AbstractDao<Food, Long> {
public FoodDao(DaoConfig config, DaoSession daoSession) {
super(config, daoSession);
this.daoSession = daoSession;
}
/** Creates the underlying database table. */
......@@ -865,12 +862,6 @@ public class FoodDao extends AbstractDao<Food, Long> {
}
@Override
protected final void attachEntity(Food entity) {
super.attachEntity(entity);
entity.__setDaoSession(daoSession);
}
@Override
public Long readKey(Cursor cursor, int offset) {
return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0);
}
......
......@@ -24,14 +24,27 @@ public class FoodModifierDao extends AbstractDao<FoodModifier, Long> {
* Can be used for QueryBuilder and for referencing column names.
*/
public static class Properties {
public final static Property Dbid = new Property(0, Long.class, "dbid", true, "_id");
public final static Property Id = new Property(1, Long.class, "id", false, "ID");
public final static Property Id = new Property(0, Long.class, "id", true, "_id");
public final static Property Mid = new Property(1, Long.class, "mid", false, "MID");
public final static Property Fid = new Property(2, Long.class, "fid", false, "FID");
public final static Property Mid = new Property(3, Long.class, "mid", false, "MID");
public final static Property MinQty = new Property(3, int.class, "minQty", false, "MIN_QTY");
public final static Property MaxQty = new Property(4, int.class, "maxQty", false, "MAX_QTY");
public final static Property SeqNo = new Property(5, int.class, "seqNo", false, "SEQ_NO");
public final static Property CreateTime = new Property(6, String.class, "createTime", false, "CREATE_TIME");
public final static Property CreateBy = new Property(7, String.class, "createBy", false, "CREATE_BY");
public final static Property UpdateTime = new Property(8, String.class, "updateTime", false, "UPDATE_TIME");
public final static Property ShowType = new Property(9, int.class, "showType", false, "SHOW_TYPE");
public final static Property AutoNext = new Property(10, int.class, "autoNext", false, "AUTO_NEXT");
public final static Property MultipleSelect = new Property(11, int.class, "multipleSelect", false, "MULTIPLE_SELECT");
public final static Property Defmodifier = new Property(12, String.class, "defmodifier", false, "DEFMODIFIER");
public final static Property Excmodifier = new Property(13, String.class, "excmodifier", false, "EXCMODIFIER");
public final static Property Conditions = new Property(14, int.class, "conditions", false, "CONDITIONS");
public final static Property IsRT = new Property(15, int.class, "isRT", false, "IS_RT");
public final static Property RestaurantId = new Property(16, int.class, "restaurantId", false, "RESTAURANT_ID");
public final static Property PreferentialPrice = new Property(17, int.class, "preferentialPrice", false, "PREFERENTIAL_PRICE");
public final static Property PosId = new Property(18, int.class, "posId", false, "POS_ID");
}
private DaoSession daoSession;
public FoodModifierDao(DaoConfig config) {
super(config);
......@@ -39,17 +52,31 @@ public class FoodModifierDao extends AbstractDao<FoodModifier, Long> {
public FoodModifierDao(DaoConfig config, DaoSession daoSession) {
super(config, daoSession);
this.daoSession = daoSession;
}
/** Creates the underlying database table. */
public static void createTable(Database db, boolean ifNotExists) {
String constraint = ifNotExists? "IF NOT EXISTS ": "";
db.execSQL("CREATE TABLE " + constraint + "\"FOOD_MODIFIER\" (" + //
"\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: dbid
"\"ID\" INTEGER NOT NULL ," + // 1: id
"\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id
"\"MID\" INTEGER NOT NULL ," + // 1: mid
"\"FID\" INTEGER," + // 2: fid
"\"MID\" INTEGER);"); // 3: mid
"\"MIN_QTY\" INTEGER NOT NULL ," + // 3: minQty
"\"MAX_QTY\" INTEGER NOT NULL ," + // 4: maxQty
"\"SEQ_NO\" INTEGER NOT NULL ," + // 5: seqNo
"\"CREATE_TIME\" TEXT," + // 6: createTime
"\"CREATE_BY\" TEXT," + // 7: createBy
"\"UPDATE_TIME\" TEXT," + // 8: updateTime
"\"SHOW_TYPE\" INTEGER NOT NULL ," + // 9: showType
"\"AUTO_NEXT\" INTEGER NOT NULL ," + // 10: autoNext
"\"MULTIPLE_SELECT\" INTEGER NOT NULL ," + // 11: multipleSelect
"\"DEFMODIFIER\" TEXT," + // 12: defmodifier
"\"EXCMODIFIER\" TEXT," + // 13: excmodifier
"\"CONDITIONS\" INTEGER NOT NULL ," + // 14: conditions
"\"IS_RT\" INTEGER NOT NULL ," + // 15: isRT
"\"RESTAURANT_ID\" INTEGER NOT NULL ," + // 16: restaurantId
"\"PREFERENTIAL_PRICE\" INTEGER NOT NULL ," + // 17: preferentialPrice
"\"POS_ID\" INTEGER NOT NULL );"); // 18: posId
}
/** Drops the underlying database table. */
......@@ -62,48 +89,104 @@ public class FoodModifierDao extends AbstractDao<FoodModifier, Long> {
protected final void bindValues(DatabaseStatement stmt, FoodModifier entity) {
stmt.clearBindings();
Long dbid = entity.getDbid();
if (dbid != null) {
stmt.bindLong(1, dbid);
Long id = entity.getId();
if (id != null) {
stmt.bindLong(1, id);
}
stmt.bindLong(2, entity.getId());
stmt.bindLong(2, entity.getMid());
Long fid = entity.getFid();
if (fid != null) {
stmt.bindLong(3, fid);
}
stmt.bindLong(4, entity.getMinQty());
stmt.bindLong(5, entity.getMaxQty());
stmt.bindLong(6, entity.getSeqNo());
String createTime = entity.getCreateTime();
if (createTime != null) {
stmt.bindString(7, createTime);
}
String createBy = entity.getCreateBy();
if (createBy != null) {
stmt.bindString(8, createBy);
}
String updateTime = entity.getUpdateTime();
if (updateTime != null) {
stmt.bindString(9, updateTime);
}
stmt.bindLong(10, entity.getShowType());
stmt.bindLong(11, entity.getAutoNext());
stmt.bindLong(12, entity.getMultipleSelect());
String defmodifier = entity.getDefmodifier();
if (defmodifier != null) {
stmt.bindString(13, defmodifier);
}
Long mid = entity.getMid();
if (mid != null) {
stmt.bindLong(4, mid);
String excmodifier = entity.getExcmodifier();
if (excmodifier != null) {
stmt.bindString(14, excmodifier);
}
stmt.bindLong(15, entity.getConditions());
stmt.bindLong(16, entity.getIsRT());
stmt.bindLong(17, entity.getRestaurantId());
stmt.bindLong(18, entity.getPreferentialPrice());
stmt.bindLong(19, entity.getPosId());
}
@Override
protected final void bindValues(SQLiteStatement stmt, FoodModifier entity) {
stmt.clearBindings();
Long dbid = entity.getDbid();
if (dbid != null) {
stmt.bindLong(1, dbid);
Long id = entity.getId();
if (id != null) {
stmt.bindLong(1, id);
}
stmt.bindLong(2, entity.getId());
stmt.bindLong(2, entity.getMid());
Long fid = entity.getFid();
if (fid != null) {
stmt.bindLong(3, fid);
}
stmt.bindLong(4, entity.getMinQty());
stmt.bindLong(5, entity.getMaxQty());
stmt.bindLong(6, entity.getSeqNo());
Long mid = entity.getMid();
if (mid != null) {
stmt.bindLong(4, mid);
String createTime = entity.getCreateTime();
if (createTime != null) {
stmt.bindString(7, createTime);
}
String createBy = entity.getCreateBy();
if (createBy != null) {
stmt.bindString(8, createBy);
}
@Override
protected final void attachEntity(FoodModifier entity) {
super.attachEntity(entity);
entity.__setDaoSession(daoSession);
String updateTime = entity.getUpdateTime();
if (updateTime != null) {
stmt.bindString(9, updateTime);
}
stmt.bindLong(10, entity.getShowType());
stmt.bindLong(11, entity.getAutoNext());
stmt.bindLong(12, entity.getMultipleSelect());
String defmodifier = entity.getDefmodifier();
if (defmodifier != null) {
stmt.bindString(13, defmodifier);
}
String excmodifier = entity.getExcmodifier();
if (excmodifier != null) {
stmt.bindString(14, excmodifier);
}
stmt.bindLong(15, entity.getConditions());
stmt.bindLong(16, entity.getIsRT());
stmt.bindLong(17, entity.getRestaurantId());
stmt.bindLong(18, entity.getPreferentialPrice());
stmt.bindLong(19, entity.getPosId());
}
@Override
......@@ -114,32 +197,62 @@ public class FoodModifierDao extends AbstractDao<FoodModifier, Long> {
@Override
public FoodModifier readEntity(Cursor cursor, int offset) {
FoodModifier entity = new FoodModifier( //
cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // dbid
cursor.getLong(offset + 1), // id
cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id
cursor.getLong(offset + 1), // mid
cursor.isNull(offset + 2) ? null : cursor.getLong(offset + 2), // fid
cursor.isNull(offset + 3) ? null : cursor.getLong(offset + 3) // mid
cursor.getInt(offset + 3), // minQty
cursor.getInt(offset + 4), // maxQty
cursor.getInt(offset + 5), // seqNo
cursor.isNull(offset + 6) ? null : cursor.getString(offset + 6), // createTime
cursor.isNull(offset + 7) ? null : cursor.getString(offset + 7), // createBy
cursor.isNull(offset + 8) ? null : cursor.getString(offset + 8), // updateTime
cursor.getInt(offset + 9), // showType
cursor.getInt(offset + 10), // autoNext
cursor.getInt(offset + 11), // multipleSelect
cursor.isNull(offset + 12) ? null : cursor.getString(offset + 12), // defmodifier
cursor.isNull(offset + 13) ? null : cursor.getString(offset + 13), // excmodifier
cursor.getInt(offset + 14), // conditions
cursor.getInt(offset + 15), // isRT
cursor.getInt(offset + 16), // restaurantId
cursor.getInt(offset + 17), // preferentialPrice
cursor.getInt(offset + 18) // posId
);
return entity;
}
@Override
public void readEntity(Cursor cursor, FoodModifier entity, int offset) {
entity.setDbid(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0));
entity.setId(cursor.getLong(offset + 1));
entity.setId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0));
entity.setMid(cursor.getLong(offset + 1));
entity.setFid(cursor.isNull(offset + 2) ? null : cursor.getLong(offset + 2));
entity.setMid(cursor.isNull(offset + 3) ? null : cursor.getLong(offset + 3));
entity.setMinQty(cursor.getInt(offset + 3));
entity.setMaxQty(cursor.getInt(offset + 4));
entity.setSeqNo(cursor.getInt(offset + 5));
entity.setCreateTime(cursor.isNull(offset + 6) ? null : cursor.getString(offset + 6));
entity.setCreateBy(cursor.isNull(offset + 7) ? null : cursor.getString(offset + 7));
entity.setUpdateTime(cursor.isNull(offset + 8) ? null : cursor.getString(offset + 8));
entity.setShowType(cursor.getInt(offset + 9));
entity.setAutoNext(cursor.getInt(offset + 10));
entity.setMultipleSelect(cursor.getInt(offset + 11));
entity.setDefmodifier(cursor.isNull(offset + 12) ? null : cursor.getString(offset + 12));
entity.setExcmodifier(cursor.isNull(offset + 13) ? null : cursor.getString(offset + 13));
entity.setConditions(cursor.getInt(offset + 14));
entity.setIsRT(cursor.getInt(offset + 15));
entity.setRestaurantId(cursor.getInt(offset + 16));
entity.setPreferentialPrice(cursor.getInt(offset + 17));
entity.setPosId(cursor.getInt(offset + 18));
}
@Override
protected final Long updateKeyAfterInsert(FoodModifier entity, long rowId) {
entity.setDbid(rowId);
entity.setId(rowId);
return rowId;
}
@Override
public Long getKey(FoodModifier entity) {
if(entity != null) {
return entity.getDbid();
return entity.getId();
} else {
return null;
}
......@@ -147,7 +260,7 @@ public class FoodModifierDao extends AbstractDao<FoodModifier, Long> {
@Override
public boolean hasKey(FoodModifier entity) {
return entity.getDbid() != null;
return entity.getId() != null;
}
@Override
......
package com.gingersoft.gsa.cloud.database.greendao;
import java.util.List;
import android.database.Cursor;
import android.database.sqlite.SQLiteStatement;
......@@ -9,8 +8,6 @@ import org.greenrobot.greendao.Property;
import org.greenrobot.greendao.internal.DaoConfig;
import org.greenrobot.greendao.database.Database;
import org.greenrobot.greendao.database.DatabaseStatement;
import org.greenrobot.greendao.query.Query;
import org.greenrobot.greendao.query.QueryBuilder;
import com.gingersoft.gsa.cloud.database.bean.Modifier;
......@@ -78,7 +75,6 @@ public class ModifierDao extends AbstractDao<Modifier, Long> {
public final static Property IsStatistic = new Property(48, Long.class, "isStatistic", false, "IS_STATISTIC");
}
private Query<Modifier> foodModifier_ModifiersQuery;
public ModifierDao(DaoConfig config) {
super(config);
......@@ -788,18 +784,4 @@ public class ModifierDao extends AbstractDao<Modifier, Long> {
return true;
}
/** Internal query to resolve the "modifiers" to-many relationship of FoodModifier. */
public List<Modifier> _queryFoodModifier_Modifiers(Long mid) {
synchronized (this) {
if (foodModifier_ModifiersQuery == null) {
QueryBuilder<Modifier> queryBuilder = queryBuilder();
queryBuilder.where(Properties.Mid.eq(null));
foodModifier_ModifiersQuery = queryBuilder.build();
}
}
Query<Modifier> query = foodModifier_ModifiersQuery.forCurrentThread();
query.setParameter(0, mid);
return query.list();
}
}
package com.gingersoft.gsa.cloud.database.utils;
import android.content.Context;
import android.database.Cursor;
import android.util.Log;
import com.gingersoft.gsa.cloud.database.DaoManager;
......@@ -157,6 +158,35 @@ public class ComboItemDaoUtils {
return mManager.getDaoSession().queryRaw(ComboItem.class, sql, conditions);
}
public ArrayList<ComboItem> queryComboItemsByFidQueryBuilder(long fid) {
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._id join FOOD_COMBO r on r.COM_ID=c.COM_ID ";
if (fid > 0) {
sql = sql + " where r.FID='" + fid + "'";
}
Cursor c = mManager.getDaoSession().getFoodDao().getDatabase().rawQuery(sql, null);
while (c.moveToNext()) {
ComboItem order = new ComboItem();
order.setFid(c.getLong(c.getColumnIndex("_id")));
order.setComId(c.getLong(c.getColumnIndex("COM_ID")));
order.setPrice(c.getDouble(c.getColumnIndex("PRICE")));
order.setSeqNo(c.getLong(c.getColumnIndex("SEQ_NO")));
order.setQty(c.getLong(c.getColumnIndex("QTY")));
order.setName(c.getString(c.getColumnIndex("FOOD_NAME")));
order.setName1(c.getString(c.getColumnIndex("FOOD_NAME1")));
order.setName2(c.getString(c.getColumnIndex("FOOD_NAME2")));
order.setVisible(c.getLong(c.getColumnIndex("VISIBLE")));
order.setAutoMode(c.getInt(c.getColumnIndex("AUTO_MOD")) );
// if (order.isVisible()) {
comboItems.add(order);
// }
}
c.close();
return comboItems;
}
/**
* 使用queryBuilder进行查询食品
*
......
......@@ -173,7 +173,7 @@ public class FoodComboDaoUtils {
for (int i = 0; i < foodCombos.size(); i++) {
Food food = foodDao.queryFoodByFidQueryBuilder(foodCombos.get(i).getFid());
if (food != null) {
list.add(FoodCombo.addFoodInfo(food, foodCombos.get(i)));
list.add(foodCombos.get(i));
}
}
}
......@@ -192,7 +192,7 @@ public class FoodComboDaoUtils {
for (int i = 0; i < foodCombos.size(); i++) {
Food food = foodDao.queryFoodByFidQueryBuilder(foodCombos.get(i).getFid());
if(food != null) {
list.add(FoodCombo.addFoodInfo(food, foodCombos.get(i)));
list.add(foodCombos.get(i));
}
}
}
......
package com.gingersoft.gsa.cloud.database.utils;
import android.content.Context;
import android.database.Cursor;
import android.util.Log;
import com.gingersoft.gsa.cloud.database.DaoManager;
import com.gingersoft.gsa.cloud.database.bean.ComboItem;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.bean.FoodCombo;
import com.gingersoft.gsa.cloud.database.greendao.FoodComboDao;
......@@ -203,21 +205,7 @@ public class FoodDaoUtils {
public Food queryFoodByQueryBuilder(String plu) {
QueryBuilder<Food> queryBuilder = mManager.getDaoSession().queryBuilder(Food.class);
return queryBuilder.where(FoodDao.Properties.Plu.eq(plu)).build().unique();
}
public Food queryFoodByFidQueryBuilder2(long fid) {
QueryBuilder<Food> queryBuilder = mManager.getDaoSession().queryBuilder(Food.class);
queryBuilder.join(FoodCombo.class, FoodComboDao.Properties.ComId).where(FoodComboDao.Properties.Fid.eq(fid));
String sql;
sql = "SELECT c.*,f.FOOD_NAME,f.FOOD_NAME1,f.FOOD_NAME2 FROM COMBO_ITEM c join FOOD f on c.FID=f._id join FOOD_COMBO r on r.COMID=c.COMID ";
if (fid > 0) {
sql = sql + " where r.FID='" + fid + "'";
}
List<Food> foodList = queryFoodByNativeSql(sql, null);
return queryBuilder.where(FoodDao.Properties.Id.eq(fid)).build().unique();
}
}
......@@ -147,19 +147,20 @@ public class FoodModifierDaoUtils {
* @return
*/
public List<Modifier> queryModifiersByQueryBuilder(long fid) {
List<FoodModifier> foodModifiers = queryFoodModifiersByMidQueryBuilder(fid);
List<Modifier> list = new ArrayList<>();
ModifierDaoUtils modifierDao = new ModifierDaoUtils(mContext);
if (foodModifiers != null) {
for (int i = 0; i < foodModifiers.size(); i++) {
Modifier modifier = modifierDao.queryModifierByQueryBuilder(foodModifiers.get(i).getMid());
if (modifier != null) {
modifier.setFid(fid);
list.add(modifier);
}
// Modifier modifier = modifierDao.queryModifierByQueryBuilder(foodModifiers.get(i).getMid());
// List<Modifier> modifiers = foodModifiers.get(i).getModifiers();
// if (modifiers != null) {
//// modifier.setFid(fid);
// list.addAll(modifiers);
// }
}
}
return list;
}
......
package com.gingersoft.gsa.cloud.database.utils;
import android.content.Context;
import android.database.Cursor;
import android.util.Log;
import com.gingersoft.gsa.cloud.database.DaoManager;
import com.gingersoft.gsa.cloud.database.bean.ComboItem;
import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.gingersoft.gsa.cloud.database.greendao.FoodDao;
import com.gingersoft.gsa.cloud.database.greendao.ModifierDao;
import org.greenrobot.greendao.query.Join;
import org.greenrobot.greendao.query.QueryBuilder;
import java.util.ArrayList;
import java.util.List;
/**
......@@ -24,7 +29,14 @@ public class ModifierDaoUtils {
private DaoManager mManager;
private Context mContext;
public ModifierDaoUtils(Context context){
public static final int modifierMode_All = 700;//本行及以下四行为明细制作 方式
public static final int modifierMode_Add = 701;
public static final int modifierMode_Msg = 702;
public static final int modifierMode_Add_2 = 703; //二级下的mod_taste=1
public static final int modifierMode_Msg_2 = 704; //二级下的mod_msg=1
public ModifierDaoUtils(Context context) {
mManager = DaoManager.getInstance();
mManager.init(context);
this.mContext = context;
......@@ -33,17 +45,18 @@ public class ModifierDaoUtils {
/**
* 清除緩存
*/
public void detachAll(){
public void detachAll() {
ModifierDao modifierDao = DaoManager.getInstance().getDaoSession().getModifierDao();
modifierDao.detachAll();
}
/**
* 完成Food记录的插入,如果表未创建,先创建Food表
*
* @param modifier
* @return
*/
public boolean insertModifier(Modifier modifier){
public boolean insertModifier(Modifier modifier) {
boolean flag = false;
flag = mManager.getDaoSession().getModifierDao().insert(modifier) == -1 ? false : true;
Log.i(TAG, "insert Modifier :" + flag + "-->" + modifier.toString());
......@@ -52,6 +65,7 @@ public class ModifierDaoUtils {
/**
* 插入多条数据,在子线程操作
*
* @param foodList
* @return
*/
......@@ -75,15 +89,16 @@ public class ModifierDaoUtils {
/**
* 修改一条数据
*
* @param modifier
* @return
*/
public boolean updateModifier(Modifier modifier){
public boolean updateModifier(Modifier modifier) {
boolean flag = false;
try {
mManager.getDaoSession().update(modifier);
flag = true;
}catch (Exception e){
} catch (Exception e) {
e.printStackTrace();
}
return flag;
......@@ -91,16 +106,17 @@ public class ModifierDaoUtils {
/**
* 删除单条记录
*
* @param modifier
* @return
*/
public boolean deleteModifier(Modifier modifier){
public boolean deleteModifier(Modifier modifier) {
boolean flag = false;
try {
//按照id删除
mManager.getDaoSession().delete(modifier);
flag = true;
}catch (Exception e){
} catch (Exception e) {
e.printStackTrace();
}
return flag;
......@@ -108,15 +124,16 @@ public class ModifierDaoUtils {
/**
* 删除所有记录
*
* @return
*/
public boolean deleteAll(){
public boolean deleteAll() {
boolean flag = false;
try {
//按照id删除
mManager.getDaoSession().deleteAll(Modifier.class);
flag = true;
}catch (Exception e){
} catch (Exception e) {
e.printStackTrace();
}
return flag;
......@@ -124,18 +141,20 @@ public class ModifierDaoUtils {
/**
* 查询所有记录
*
* @return
*/
public List<Modifier> queryAllModifier(){
public List<Modifier> queryAllModifier() {
return mManager.getDaoSession().loadAll(Modifier.class);
}
/**
* 根据主键id查询记录
*
* @param key
* @return
*/
public Modifier queryModifierById(long key){
public Modifier queryModifierById(long key) {
return mManager.getDaoSession().load(Modifier.class, key);
}
......@@ -143,22 +162,24 @@ public class ModifierDaoUtils {
/**
* 使用native sql进行查询操作
*/
public List<Modifier> queryModifierByNativeSql(String sql, String[] conditions){
public List<Modifier> queryModifierByNativeSql(String sql, String[] conditions) {
return mManager.getDaoSession().queryRaw(Modifier.class, sql, conditions);
}
/**
* 使用queryBuilder进行查询食品
*
* @return
*/
public Modifier queryModifierByQueryBuilder(long mid){
public Modifier queryModifierByQueryBuilder(long mid) {
QueryBuilder<Modifier> queryBuilder = mManager.getDaoSession().queryBuilder(Modifier.class);
return queryBuilder.where(ModifierDao.Properties.Mid.eq(mid)).build().unique();
}
/**
* 使用queryBuilder进行查询食品
*
* @param mid
* @return
*/
......@@ -169,35 +190,185 @@ public class ModifierDaoUtils {
/**
* 使用queryBuilder进行查询食品
*
* @param mod_msg
* @param visible
* @return
*/
public List<Modifier> queryModifierByModMsgAndVisibleQueryBuilder(String mod_msg,int visible) {
public List<Modifier> queryModifierByModMsgAndVisibleQueryBuilder(String mod_msg, int visible) {
ArrayList<Modifier> fms = new ArrayList<>();
QueryBuilder<Modifier> queryBuilder = mManager.getDaoSession().queryBuilder(Modifier.class);
return queryBuilder.where(ModifierDao.Properties.ModMsg.eq(mod_msg)).where(ModifierDao.Properties.Invisible.eq(visible)).list();
}
String parentSql = "SELECT * FROM MODIFIER WHERE MOD_MSG=1 and VISIBLE=0 and IS_PARENT=1";
// List<Modifier> parentModifiers = queryBuilder.where(queryBuilder.and(
// ModifierDao.Properties.ModMsg.eq(mod_msg),
// ModifierDao.Properties.Visible.eq(visible),
// ModifierDao.Properties.IsParent.eq(1))).orderAsc(ModifierDao.Properties.SeqNo).list();
List<Modifier> parentModifiers = query_modifier_Child_new(parentSql, 0);
String childSql = "SELECT * FROM MODIFIER WHERE MOD_MSG=1 and VISIBLE=0 and IS_PARENT=0";
// List<Modifier> childModifiers = queryBuilder.where(queryBuilder.and(
// ModifierDao.Properties.ModMsg.eq(mod_msg),
// ModifierDao.Properties.Visible.eq(visible))).list();
List<Modifier> childModifiers = query_modifier_Child_new(childSql, 0);
fms.addAll(parentModifiers);
fms.addAll(childModifiers);
return fms;
}
/**
* 使用queryBuilder进行查询食品
*
* @param mod_taste
* @param visible
* @return
*/
public List<Modifier> queryModifierByModModTasteVisibleQueryBuilder(long mod_taste,int visible) {
public List<Modifier> queryModifierByModModTasteVisibleQueryBuilder(long mod_taste, int visible) {
ArrayList<Modifier> fms = new ArrayList<>();
QueryBuilder<Modifier> queryBuilder = mManager.getDaoSession().queryBuilder(Modifier.class);
return queryBuilder.where(ModifierDao.Properties.ModTaste.eq(mod_taste)).where(ModifierDao.Properties.Invisible.eq(visible)).list();
// List<Modifier> parentModifiers = queryBuilder.where(queryBuilder.and(
// ModifierDao.Properties.ModTaste.eq(mod_taste),
// ModifierDao.Properties.Visible.eq(visible),
// ModifierDao.Properties.IsParent.eq(1))).orderAsc(ModifierDao.Properties.SeqNo).list();
//
// List<Modifier> childModifiers = queryBuilder.where(queryBuilder.and(
// ModifierDao.Properties.ModTaste.eq(mod_taste),
// ModifierDao.Properties.Visible.eq(visible),
// ModifierDao.Properties.IsParent.eq(0))).orderAsc(ModifierDao.Properties.SeqNo).list();
String parentSql = "SELECT * FROM MODIFIER WHERE MOD_TASTE=1 and VISIBLE=0 and IS_PARENT=1";
List<Modifier> parentModifiers = query_modifier_Child_new(parentSql, 0);
String childSql = "SELECT * FROM MODIFIER WHERE MOD_TASTE=1 and VISIBLE=0 and IS_PARENT=0";
List<Modifier> childModifiers = query_modifier_Child_new(childSql, 0);
fms.addAll(parentModifiers);
fms.addAll(childModifiers);
return fms;
}
/**
* 使用queryBuilder进行查询食品
*
* @param topid
* @param visible
* @return
*/
public List<Modifier> queryModifierByTopidAndVisibleQueryBuilder(long topid,int visible) {
public List<Modifier> queryModifierByTopidAndVisibleQueryBuilder(long topid) {
ArrayList<Modifier> fms = new ArrayList<>();
QueryBuilder<Modifier> queryBuilder = mManager.getDaoSession().queryBuilder(Modifier.class);
// List<Modifier> parentModifiers = queryBuilder.where(queryBuilder.and(
// ModifierDao.Properties.TopId.eq(topid),
// ModifierDao.Properties.Visible.eq(0),
// ModifierDao.Properties.IsParent.eq(1))).orderAsc(ModifierDao.Properties.SeqNo).list();
//
// List<Modifier> childModifiers = queryBuilder.where(queryBuilder.and(
// ModifierDao.Properties.TopId.eq(topid),
// ModifierDao.Properties.Visible.eq(0),
// ModifierDao.Properties.IsParent.eq(0))).orderAsc(ModifierDao.Properties.SeqNo).list();
String parentSql = "SELECT * FROM MODIFIER WHERE TOP_ID='" + topid + "' and VISIBLE=0 and IS_PARENT=1";
List<Modifier> parentModifiers = query_modifier_Child_new(parentSql, 0);
String childSql = "SELECT * FROM MODIFIER WHERE TOP_ID='" + topid + "' and VISIBLE=0 and IS_PARENT=0";
List<Modifier> childModifiers = query_modifier_Child_new(childSql, 0);
fms.addAll(parentModifiers);
fms.addAll(childModifiers);
return fms;
}
public List<Modifier> queryModifiersByFid(long fid, int mode) {
QueryBuilder<Modifier> queryBuilder = mManager.getDaoSession().queryBuilder(Modifier.class);
return queryBuilder.where(ModifierDao.Properties.TopId.eq(topid)).where(ModifierDao.Properties.Invisible.eq(visible)).list();
// String sql = " SELECT MODIFIER.mid,MODIFIER_NAME,MODIFIER_NAME1,MODIFIER_NAME2,TOP_ID,PRICE,MOD_COMM,MOD_TASTE,MOD_MSG,VISIBLE,MULTIPLE,IS_PARENT" +
// " FROM MODIFIER join FOOD_MODIFIER on MODIFIER.MID=FOOD_MODIFIER.MID where MODIFIER.VISIBLE=0 and FOOD_MODIFIER.FID='" + fid + "' order by FOOD_MODIFIER.seq,MODIFIER.SEQ_NO";
String sql = " SELECT MODIFIER.MID,MODIFIER_NAME,MODIFIER_NAME1,MODIFIER_NAME2,TOP_ID,PRICE,MOD_COMM,MOD_TASTE,MOD_MSG,VISIBLE,MULTIPLE,IS_PARENT" +
" FROM MODIFIER join FOOD_MODIFIER on MODIFIER.MID=FOOD_MODIFIER.MID where MODIFIER.VISIBLE=0 and FOOD_MODIFIER.FID='" + fid + "' order by FOOD_MODIFIER.SEQ_NO,MODIFIER.SEQ_NO";
List<Modifier> mfs_child = new ArrayList<>();
List<Modifier> mfs_child1 = new ArrayList<>();
String sqlstr = " TOP_ID IN (SELECT MID FROM FOOD_MODIFIER where FID='" + fid + "')";
// List<Modifier> fms1 = query_modifier_Child_new(sql, fid);
switch (mode) {
case modifierMode_All:
sqlstr = " SELECT MODIFIER.MID,MODIFIER_NAME,MODIFIER_NAME1,MODIFIER_NAME2,TOP_ID,PRICE,MOD_COMM,MOD_TASTE,MOD_MSG,VISIBLE,MULTIPLE,IS_PARENT" +
" FROM MODIFIER join FOOD_MODIFIER on MODIFIER.TOP_ID=FOOD_MODIFIER.MID where MODIFIER.VISIBLE=0 and MODIFIER.IS_PARENT=1 and FOOD_MODIFIER.FID='" + fid + "' order by FOOD_MODIFIER.SEQ_NO,MODIFIER.SEQ_NO";
mfs_child1 = query_modifier_Child_new(sqlstr, fid);
List<Modifier> mfs_child2 = new ArrayList<>();
sqlstr = " SELECT MODIFIER.MID,MODIFIER_NAME,MODIFIER_NAME1,MODIFIER_NAME2,TOP_ID,PRICE,MOD_COMM,MOD_TASTE,MOD_MSG,VISIBLE,MULTIPLE,IS_PARENT" +
" FROM MODIFIER join FOOD_MODIFIER on MODIFIER.TOP_ID=FOOD_MODIFIER.MID where MODIFIER.VISIBLE=0 and MODIFIER.IS_PARENT=0 and FOOD_MODIFIER.FID='" + fid + "' order by FOOD_MODIFIER.SEQ_NO,MODIFIER.SEQ_NO";
mfs_child2 = query_modifier_Child_new(sqlstr, fid);
mfs_child1.addAll(mfs_child2);
mfs_child2.clear();
break;
// case modifierMode_Add:
// sqlstr = " mod_taste=1 and visible=0";
// mfs_child1 = query_modifier_Child(sqlstr, fid);
// break;
// case modifierMode_Add_2:
// sqlstr = " topid='" + fid + "' and visible=0";
// mfs_child1 = query_modifier_Child(sqlstr, fid);
// break;
// case modifierMode_Msg:
// sqlstr = " mod_msg=1 and visible=0";
// mfs_child1 = query_modifier_Child(sqlstr, fid);
// break;
// case modifierMode_Msg_2:
// sqlstr = " topid='" + fid + "' and visible=0";
// mfs_child1 = query_modifier_Child(sqlstr, fid);
// break;
}
// mfs_child.addAll(fms1);
mfs_child.addAll(mfs_child1);
return mfs_child;
}
private List<Modifier> query_modifier_Child_new(String sql, long fid) {
ArrayList<Modifier> modifiers = new ArrayList<>();
Cursor c = mManager.getDaoSession().getModifierDao().getDatabase().rawQuery(sql, null);
while (c.moveToNext()) {
Modifier order = new Modifier();
order.setFid(fid);
order.setMid(c.getLong(c.getColumnIndex("MID")));
order.setPrice(c.getDouble(c.getColumnIndex("PRICE")));
order.setIsParent(c.getLong(c.getColumnIndex("IS_PARENT")));
// order.setSeqNo(c.getLong(c.getColumnIndex("SEQ_NO")));
order.setModifierName(c.getString(c.getColumnIndex("MODIFIER_NAME")));
order.setModifierName1(c.getString(c.getColumnIndex("MODIFIER_NAME1")));
order.setModifierName2(c.getString(c.getColumnIndex("MODIFIER_NAME2")));
// order.setVisible(c.getInt(c.getColumnIndex("VISIBLE")));
order.setTopId(c.getLong(c.getColumnIndex("TOP_ID")));
order.setModComm(c.getLong(c.getColumnIndex("MOD_COMM")));
order.setModMsg(c.getLong(c.getColumnIndex("MOD_MSG")));
order.setModTaste(c.getLong(c.getColumnIndex("MOD_TASTE")));
order.setMultiple(c.getDouble(c.getColumnIndex("MULTIPLE")));
// if (order.isVisible()) {
modifiers.add(order);
// }
}
c.close();
return modifiers;
}
}
......@@ -35,6 +35,10 @@ public interface BaseOrderContract {
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends IModel {
Observable<BaseResult> createOrder(RequestBody requestBody);
Observable<BaseResult> addFood(RequestBody requestBody);
Observable<BaseResult> updateOrderStatus(RequestBody formBody);
}
......
......@@ -4,6 +4,7 @@ import android.app.Activity;
import android.widget.BaseAdapter;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.database.bean.ComboItem;
import com.gingersoft.gsa.cloud.database.bean.FoodCombo;
import com.gingersoft.gsa.cloud.database.bean.FoodModifier;
import com.gingersoft.gsa.cloud.database.bean.Modifier;
......@@ -96,9 +97,9 @@ public interface MealStandContract {
Observable<BaseRespose> loadOrder(int orderId);
Observable<BaseResult> createOrder(RequestBody requestBody);
Observable<BaseResult> addFood(RequestBody requestBody);
// Observable<BaseResult> createOrder(RequestBody requestBody);
//
// Observable<BaseResult> addFood(RequestBody requestBody);
Observable<BaseRespose> deleteFood(RequestBody requestBody);
......@@ -110,7 +111,7 @@ public interface MealStandContract {
List<Modifier> queryDB_ModifierList(long fid);
List<FoodCombo> queryDB_ComboList(long fid);
List<ComboItem> queryDB_ComboList(long fid);
List<FoodCombo> isComboFood(long fid);
......
......@@ -54,9 +54,9 @@ public interface OrderContentContract {
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends BaseOrderContract.Model {
Observable<BaseResult> createOrder(RequestBody requestBody);
Observable<BaseResult> addFood(RequestBody requestBody);
// Observable<BaseResult> createOrder(RequestBody requestBody);
//
// Observable<BaseResult> addFood(RequestBody requestBody);
Observable<BaseRespose> printOrder(RequestBody request);
}
......
......@@ -8,8 +8,10 @@ import com.gingersoft.gsa.cloud.database.bean.ComboItem;
import com.gingersoft.gsa.cloud.database.bean.FoodCombo;
import com.gingersoft.gsa.cloud.database.bean.FoodModifier;
import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.gingersoft.gsa.cloud.database.utils.ComboItemDaoUtils;
import com.gingersoft.gsa.cloud.database.utils.FoodComboDaoUtils;
import com.gingersoft.gsa.cloud.database.utils.FoodModifierDaoUtils;
import com.gingersoft.gsa.cloud.database.utils.ModifierDaoUtils;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseRespose;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.utils.FoodDaoUtils;
......@@ -116,17 +118,14 @@ public class MealStandModel extends BaseModel implements MealStandContract.Model
@Override
public List<Modifier> queryDB_ModifierList(long fid) {
FoodModifierDaoUtils modifierDao = new FoodModifierDaoUtils(mApplication);
return modifierDao.queryModifiersByQueryBuilder(fid);
ModifierDaoUtils daoUtils = new ModifierDaoUtils(mApplication);
return daoUtils.queryModifiersByFid(fid,ModifierDaoUtils.modifierMode_All);
}
@Override
public List<FoodCombo> queryDB_ComboList(long fid) {
FoodComboDaoUtils foodComboDaoUtils = new FoodComboDaoUtils(mApplication);
List<FoodCombo> foodCombo = foodComboDaoUtils.queryCombosByQueryBuilder(fid);
FoodDaoUtils foodDaoUtils = new FoodDaoUtils(mApplication);
Food food = foodDaoUtils.queryFoodByFidQueryBuilder2(fid);
public List<ComboItem> queryDB_ComboList(long fid) {
ComboItemDaoUtils comboItemDao = new ComboItemDaoUtils(mApplication);
List<ComboItem> foodCombo = comboItemDao.queryComboItemsByFidQueryBuilder(fid);
return foodCombo;
}
......
......@@ -4,6 +4,7 @@ import android.app.Application;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.table.mvp.contract.OrderPayContract;
import com.gingersoft.gsa.cloud.table.mvp.model.service.MealService;
import com.gingersoft.gsa.cloud.table.mvp.model.service.OrderPayService;
import com.google.gson.Gson;
import com.jess.arms.di.scope.ActivityScope;
......@@ -54,6 +55,18 @@ public class OrderPayModel extends BaseModel implements OrderPayContract.Model {
}
@Override
public Observable<BaseResult> createOrder(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.createOrder(requestBody);
}
@Override
public Observable<BaseResult> addFood(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.addFood(requestBody);
}
@Override
public Observable<BaseResult> updateOrderStatus(RequestBody formBody) {
return mRepositoryManager.obtainRetrofitService(OrderPayService.class)
.updateOrderStatus(formBody);
......
......@@ -138,9 +138,9 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
if (datasBean.getNumber() == 1) {
mSelectMealAdapter.removeFoodItem();
} else {
MyOrderManage.getInstance().changeNumber(datasBean.getNumber() - 1);
changeNumber(datasBean.getNumber() - 1);
}
mSelectMealAdapter.notifyItemChanged(position);
mSelectMealAdapter.notifyDataSetChanged();
// recalcOrderMoneyCount(false, true);
if (mOrderContentActivity != null) {
mOrderContentActivity.initOrderDetail();
......@@ -149,8 +149,7 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
@Override
public void onMealCountAdd(OrderDetail datasBean, int position) {
MyOrderManage.getInstance().changeNumber(datasBean.getNumber() + 1);
mSelectMealAdapter.notifyItemChanged(position);
changeNumber(datasBean.getNumber() - 1);
if (mOrderContentActivity != null) {
mOrderContentActivity.initOrderDetail();
}
......@@ -214,6 +213,19 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
return true;
}
/**
* 創建訂單后保存OrderId
* @param orderId
*/
protected void setOrderId(double orderId){
OrderBean orderBean = new OrderBean();
orderBean.setId((int) orderId);
MyOrderManage.getInstance().setOrderBean(orderBean);
}
/**
* 重置選中狀態
*/
public void resetSelected() {
for (int i = 0; i < orderFoodList.size(); i++) {
OrderDetail datasBean = orderFoodList.get(i);
......@@ -307,6 +319,20 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
return orderDetails;
}
protected boolean hasNesOrderFoods() {
if (getNewOrderFoodLists().size() > 0) {
return true;
}
return false;
}
protected boolean hasOldOrderFoods() {
if (getOldOrderFoodLists().size() > 0) {
return true;
}
return false;
}
public List<OrderDetail> getOrderFoodLists() {
return myOrderManage.getOrderFoodList();
}
......
......@@ -259,7 +259,7 @@ public class FineItemAllPresenter extends BasePresenter<FineItemAllContract.Mode
//获取数据
ModifierDaoUtils modifierDaoUtils = new ModifierDaoUtils(mApplication);
List<Modifier> modifierList = modifierDaoUtils.queryModifierByTopidAndVisibleQueryBuilder(fid,0);
List<Modifier> modifierList = modifierDaoUtils.queryModifierByTopidAndVisibleQueryBuilder(fid);
if (modifierList == null || modifierList.size() == 0) {
return;
......
......@@ -266,7 +266,7 @@ public class FineItemKindPresenter extends BasePresenter<FineItemKindContract.Mo
//获取数据
ModifierDaoUtils modifierDaoUtils = new ModifierDaoUtils(mApplication);
List<Modifier> modifierList = modifierDaoUtils.queryModifierByTopidAndVisibleQueryBuilder(fid, 0);
List<Modifier> modifierList = modifierDaoUtils.queryModifierByTopidAndVisibleQueryBuilder(fid);
if (modifierList == null || modifierList.size() == 0) {
return;
......
......@@ -12,6 +12,7 @@ import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
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.JsonUtils;
import com.gingersoft.gsa.cloud.database.bean.ComboItem;
import com.gingersoft.gsa.cloud.database.bean.FoodCombo;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.bean.Modifier;
......@@ -82,9 +83,9 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
private List<Food> mFoodGroupList = new ArrayList<>();
private List<Food> mFoodList = new ArrayList<>();
//套餐细项数据
private List<FoodCombo> mFoodComboList = new ArrayList<>();
private List<ComboItem> mFoodComboList = new ArrayList<>();
private List<FoodCombo> mCurrentFoodComboList;
private List<ComboItem> mCurrentFoodComboList;
private OrderDetail mCurrentOrderDetailBean;
private boolean RvMealClicked;
......@@ -147,6 +148,10 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
public void onItemClick(OrderDetail datasBean, int position) {
RvMealClicked = true;
mRootView.recordOperat(true);
//设置当前操作的食品
mCurrentOrderDetailBean = datasBean;
mSelectMealAdapter.setMyOrderManageSelectPosition();
loadComboData(datasBean, true);
}
......@@ -178,7 +183,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
mComboAdapter.setOnItemClickListener(new ComboAdapter.OnItemClickListener() {
@Override
public void onItemClick(FoodCombo datasBean, int position) {
public void onItemClick(ComboItem datasBean, int position) {
mRootView.recordOperat(true);
......@@ -197,7 +202,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
addModifierItem(datasBean.getModifier());
} else {
//设置当前操作的套餐细项
mCurrentOrderDetailBean = OrderDetail.comboTransOrderDetail(datasBean, 1, "combo", RvMealClicked);
mCurrentOrderDetailBean = OrderDetail.comboTransOrderDetail(datasBean, 1, mCurrentOrderDetailBean.getId(), "combo", RvMealClicked);
//先清除上一次选择的子项最大数
// mModel.clearComboQty();
//添加子项
......@@ -222,16 +227,16 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
int addPosition = mSelectMealAdapter.addFoodItem(orderDetail);
if (orderDetail.getComboLevel() > 0) {
//自动添加组合子食品
if (mCurrentFoodComboList != null && mCurrentFoodComboList.size() > 0) {
for (int i = 0; i < mCurrentFoodComboList.size(); i++) {
FoodCombo foodComboItem = mCurrentFoodComboList.get(i);
mCurrentOrderDetailBean = OrderDetail.comboTransOrderDetail(foodComboItem, 1, "combo", RvMealClicked);
addPosition = addComboItem(mCurrentOrderDetailBean);
}
}
}
// if (orderDetail.getComboLevel() > 0) {
// //自动添加组合子食品
// if (mCurrentFoodComboList != null && mCurrentFoodComboList.size() > 0) {
// for (int i = 0; i < mCurrentFoodComboList.size(); i++) {
// ComboItem foodComboItem = mCurrentFoodComboList.get(i);
// mCurrentOrderDetailBean = OrderDetail.comboTransOrderDetail(foodComboItem, 1, mCurrentOrderDetailBean.getId(),"combo", RvMealClicked);
// addPosition = addComboItem(mCurrentOrderDetailBean);
// }
// }
// }
// if (mAutoModifierList != null && mAutoModifierList.size() > 0) {
// //自动添加mixqty>1細項
......@@ -282,7 +287,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
//设置备注细项背景、字体颜色
modfier.setBgColor(Color.parseColor("#ffeb3b"));
FoodCombo foodComboItem = new FoodCombo();
ComboItem foodComboItem = new ComboItem();
foodComboItem.setModifier(true);
// if (modfier.isParent()) {
// foodComboItem.setModKeyboard(modfier.isModKeyboard());
......@@ -296,7 +301,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
updateComboData(mCurrentFoodComboList);
// if (food.getAutoMod() == 1) {
if (isSelectedMeal) {
if (isSelectedMeal || mCurrentFoodComboList.size() > 0) {
mRootView.showViewModeVisibility(MealConstant.combo_ViewMode);
}
// }
......@@ -317,6 +322,9 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
@Override
public void onNext(@NonNull BaseResult info) {
if (info != null && info.isSuccess()) {
if (info.getData() != null) {
setOrderId((Double) info.getData());
}
mRootView.showMessage("送單成功");
printSendOrder(MyOrderManage.getInstance().getOrderFoodList());
IActivity.returnTableActivity(true);
......@@ -353,8 +361,8 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
printSendOrder(newFoods);
mRootView.killMyself();
} else {
if (getNewOrderFoodLists().size() == 0) {
//未新增食品點擊送單 後台不讓過直接提示即可
if (!hasNesOrderFoods()) {
//TODO 未新增食品點擊送單 後台不讓過直接提示即可
mRootView.showMessage("送單成功");
if (OpenTableManage.getDefault() != null) {
//通知更新餐台状态
......@@ -789,7 +797,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
mFoodAdapter.notifyDataSetChanged();
}
private void updateComboData(List<FoodCombo> foodComboList) {
private void updateComboData(List<ComboItem> foodComboList) {
mFoodComboList.clear();
mFoodComboList.addAll(foodComboList);
//根据Item个数显示每一行的个数
......
......@@ -144,6 +144,9 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
@Override
public void onNext(@NonNull BaseResult info) {
if (info != null && info.isSuccess()) {
if (info.getData() != null) {
setOrderId((Double) info.getData());
}
if (isPrint) {
printOrder(OpenTableManage.getDefault().getTableBean().getId());
} else {
......@@ -193,8 +196,8 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
if (isPrint) {
printOrder(OpenTableManage.getDefault().getTableBean().getId());
} else {
if(getNewOrderFoodLists().size() == 0){
//未新增食品點擊送單 後台不讓過直接提示即可
if(!hasNesOrderFoods()){
//TODO 未新增食品點擊送單 後台不讓過直接提示即可
mRootView.showMessage("送單成功");
printSendOrder(newFoods);
mRootView.sendSuccess();
......
......@@ -7,6 +7,8 @@ import android.view.View;
import com.chad.library.adapter.base.BaseQuickAdapter;
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.OrderBean;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
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.JsonUtils;
......@@ -14,6 +16,8 @@ import com.gingersoft.gsa.cloud.base.utils.MoneyUtil;
import com.gingersoft.gsa.cloud.table.app.payment.PayConstant;
import com.gingersoft.gsa.cloud.table.mvp.contract.OrderPayContract;
import com.gingersoft.gsa.cloud.base.common.bean.PayMethod;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.request.OrderRequest;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.MealStandActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.OrderPayActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.BillMethodAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.BillMoneyAdapter;
......@@ -28,10 +32,12 @@ import java.util.List;
import javax.inject.Inject;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.annotations.NonNull;
import io.reactivex.schedulers.Schedulers;
import me.jessyan.rxerrorhandler.core.RxErrorHandler;
import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber;
import okhttp3.FormBody;
import okhttp3.MediaType;
import okhttp3.RequestBody;
......@@ -187,12 +193,12 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
.build();
mModel.updateOrderStatus(requestBody)
.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(BaseResult baseResult) {
if (baseResult.isSuccess()) {
......@@ -203,6 +209,93 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
});
}
private void createOrder() {
OrderRequest request = getCreateOrderRequest(getOrderFoodLists());
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), JsonUtils.toJson(request));
mModel.createOrder(requestBody)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.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) {
setOrderId((Double) info.getData());
}
updateOrderState("4");
} else {
mRootView.showMessage("結賬失敗!");
}
}
@Override
public void onError(Throwable t) {
super.onError(t);
mRootView.hideLoading();
}
});
}
private void addOrderFood() {
List<OrderDetail> newFoods = getNewOrderFoodLists();
for (OrderDetail food : newFoods) {
food.setOrderId(MyOrderManage.getInstance().getOrderId());
}
List<OrderBean.OrderDetailsBean> orderBeans = OrderBean.transOrderDetails(newFoods);
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), JsonUtils.toJson(orderBeans));
mModel.addFood(requestBody)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseResult info) {
if (info != null && info.isSuccess()) {
updateOrderState("4");
} else {
mRootView.showMessage("結賬失敗!");
}
}
@Override
public void onError(Throwable t) {
super.onError(t);
mRootView.hideLoading();
}
});
}
/**
* 結賬
*/
public void sendOrderPay() {
if (hasNesOrderFoods()) {
//有食品未送單 先送單
sendOrder();
} else {
//直接結賬
updateOrderState("4");
}
}
/**
* 送單
*/
public void sendOrder() {
if (MyOrderManage.getInstance().getOrderId() == -1) {
createOrder();
} else {
addOrderFood();
}
}
public void pressExact() {
double differenceMoney = getDifferenceMoney();
PayMethod billMoneyBean = getSelectBillMoney();
......
......@@ -946,6 +946,10 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen
} else {
fineItemAllFragment.onMidEvent(mPresenter.getCurrentOrderDetailBean().getProductId());
fineItemKindFragment.onMidEvent(mPresenter.getCurrentOrderDetailBean().getProductId());
showFinePage();
showViewModeVisibility(MealConstant.fine_ViewMode, MealConstant.fine_tabs_ViewMode);
......
......@@ -300,7 +300,7 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
tipMoneyInsufficient();
return;
}
mPresenter.updateOrderState("4");
mPresenter.sendOrderPay();
} else if (id == R.id.btn_exact) {
if (mPresenter.getSelectBillMoney() == null) {
showMessage("請選擇支付方式");
......
......@@ -10,7 +10,7 @@ import android.widget.ImageView;
import android.widget.TextView;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.database.bean.FoodCombo;
import com.gingersoft.gsa.cloud.database.bean.ComboItem;
import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2;
......@@ -31,7 +31,7 @@ import butterknife.BindView;
* 描述:
*/
public class ComboAdapter extends DefaultAdapter<FoodCombo> {
public class ComboAdapter extends DefaultAdapter<ComboItem> {
private Context mContext;
......@@ -43,7 +43,7 @@ public class ComboAdapter extends DefaultAdapter<FoodCombo> {
private int OrderNumberChildFontSize;
public ComboAdapter(Context context, List<FoodCombo> infos) {
public ComboAdapter(Context context, List<ComboItem> infos) {
super(infos);
this.mContext = context;
......@@ -62,7 +62,7 @@ public class ComboAdapter extends DefaultAdapter<FoodCombo> {
}
@Override
public BaseHolder<FoodCombo> getHolder(View v, int viewType) {
public BaseHolder<ComboItem> getHolder(View v, int viewType) {
return new ComboItemHolder(v);
}
......@@ -71,7 +71,7 @@ public class ComboAdapter extends DefaultAdapter<FoodCombo> {
return R.layout.table_item_combo;
}
class ComboItemHolder extends BaseHolder<FoodCombo> {
class ComboItemHolder extends BaseHolder<ComboItem> {
@BindView(R2.id.tv_name)
TextView tv_name;
......@@ -88,7 +88,7 @@ public class ComboAdapter extends DefaultAdapter<FoodCombo> {
}
@Override
public void setData(FoodCombo datasBean, int position) {
public void setData(ComboItem datasBean, int position) {
iv_qty_sold.setVisibility(View.INVISIBLE);
tv_soldout.setVisibility(View.INVISIBLE);
......@@ -188,7 +188,7 @@ public class ComboAdapter extends DefaultAdapter<FoodCombo> {
tv_soldout.setTextSize(OrderNumberChildFontSize);
}
private void initComboName(FoodCombo datasBean) {
private void initComboName(ComboItem datasBean) {
String Fname = datasBean.getName();
tv_name.setText(Fname);
tv_name.setTextSize(FontSize);
......@@ -196,7 +196,7 @@ public class ComboAdapter extends DefaultAdapter<FoodCombo> {
initComboColor(datasBean);
}
private void initComboColor(FoodCombo datasBean) {
private void initComboColor(ComboItem datasBean) {
GradientDrawable drawable = new GradientDrawable();
drawable.setShape(GradientDrawable.RECTANGLE);
drawable.setGradientType(GradientDrawable.RECTANGLE);
......@@ -224,7 +224,7 @@ public class ComboAdapter extends DefaultAdapter<FoodCombo> {
public interface OnItemClickListener {
void onItemClick(FoodCombo datasBean, int position);
void onItemClick(ComboItem datasBean, int position);
}
}

1.87 KB | W: | H:

884 Bytes | W: | H:

table-mode/src/main/res/mipmap-xhdpi/meal_down.png
table-mode/src/main/res/mipmap-xhdpi/meal_down.png
table-mode/src/main/res/mipmap-xhdpi/meal_down.png
table-mode/src/main/res/mipmap-xhdpi/meal_down.png
  • 2-up
  • Swipe
  • Onion skin
......@@ -245,7 +245,7 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login
}
jumpDownloadActivity();
killMyself();
// killMyself();
// dialog.dismiss();
}
})
......
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