Commit 2857da0d by 宁斌

1、新增積分支付 2、使用優惠券部分問題處理

parent d5d670d8
File deleted
......@@ -2,13 +2,14 @@ package com.gingersoft.gsa.cloud.base;
import android.content.Context;
import androidx.test.platform.app.InstrumentationRegistry;
import androidx.test.runner.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.*;
import androidx.test.filters.SmallTest;
import androidx.test.platform.app.InstrumentationRegistry;
import androidx.test.runner.AndroidJUnit4;
import static org.junit.Assert.assertEquals;
/**
* Instrumented test, which will execute on an Android device.
......@@ -16,7 +17,9 @@ import static org.junit.Assert.*;
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
@RunWith(AndroidJUnit4.class)
@SmallTest
public class ExampleInstrumentedTest {
@Test
public void useAppContext() {
// Context of the app under test.
......
......@@ -8,8 +8,6 @@ import android.content.res.Configuration;
import android.os.Build;
import android.os.RemoteException;
import androidx.annotation.NonNull;
import com.billy.cc.core.component.CC;
import com.elvishew.xlog.LogConfiguration;
import com.elvishew.xlog.LogLevel;
......@@ -23,7 +21,6 @@ import com.elvishew.xlog.printer.file.clean.FileLastModifiedCleanStrategy;
import com.elvishew.xlog.printer.file.naming.DateFileNameGenerator;
import com.gingersoft.gsa.cloud.base.BuildConfig;
import com.gingersoft.gsa.cloud.base.R;
import com.gingersoft.gsa.cloud.base.common.bean.RestaurantExpandInfo;
import com.gingersoft.gsa.cloud.base.utils.AidlUtil;
import com.gingersoft.gsa.cloud.base.utils.FileUtils;
import com.gingersoft.gsa.cloud.base.utils.crash.AppCrashHandler;
......@@ -44,6 +41,7 @@ import com.scwang.smartrefresh.layout.header.ClassicsHeader;
import java.util.Locale;
import androidx.annotation.NonNull;
import me.jessyan.autosize.AutoSize;
import me.jessyan.autosize.AutoSizeConfig;
import me.jessyan.autosize.onAdaptListener;
......@@ -60,11 +58,6 @@ public class GsaCloudApplication extends BaseApplication {
private static GsaCloudApplication mAppContext;
private Activity mCurrentActivity;
/**
* 餐廳擴展信息
*/
public static RestaurantExpandInfo restaurantExpandInfo;
public static FunctionStyleUtils androidSetting;
/**
* 是否開啟皮膚切換
......@@ -382,39 +375,39 @@ public class GsaCloudApplication extends BaseApplication {
//获取登陆token
public static String getLoginToken(Context context) {
return (String) SPUtils.get(context, UserConstans.token, "");
return (String) SPUtils.get(GsaCloudApplication.getAppContext(), UserConstans.token, "");
}
public static int getMemberId(Context context) {
return (int) SPUtils.get(context, UserConstans.memberId, 0);
return (int) SPUtils.get(GsaCloudApplication.getAppContext(), UserConstans.memberId, 0);
}
public static int getBrandId(Context context) {
return (int) SPUtils.get(context, UserConstans.brandId, 0);
return (int) SPUtils.get(GsaCloudApplication.getAppContext(), UserConstans.brandId, 0);
}
public static String getBrandName(Context context) {
return (String) SPUtils.get(context, UserConstans.brandName, "");
return (String) SPUtils.get(GsaCloudApplication.getAppContext(), UserConstans.brandName, "");
}
public static int getRestaurantId(Context context) {
return (int) SPUtils.get(context, UserConstans.restaurantId, 0);
return (int) SPUtils.get(GsaCloudApplication.getAppContext(), UserConstans.restaurantId, 0);
}
public static String getRestaurantName(Context context) {
return (String) SPUtils.get(context, UserConstans.restaurantName, "");
return (String) SPUtils.get(GsaCloudApplication.getAppContext(), UserConstans.restaurantName, "");
}
public static String getMemberName(Context context) {
return (String) SPUtils.get(context, UserConstans.memberName, "");
return (String) SPUtils.get(GsaCloudApplication.getAppContext(), UserConstans.memberName, "");
}
public static String getBrandRestaurantInfos(Context context) {
return (String) SPUtils.get(context, UserConstans.brandRestaurantInfos, "");
return (String) SPUtils.get(GsaCloudApplication.getAppContext(), UserConstans.brandRestaurantInfos, "");
}
public static String getGsPosShopId(Context context) {
return (String) SPUtils.get(context, UserConstans.gsPosShopId, "-1");
return (String) SPUtils.get(GsaCloudApplication.getAppContext(), UserConstans.gsPosShopId, "-1");
}
public static void logOut() {
......@@ -455,39 +448,39 @@ public class GsaCloudApplication extends BaseApplication {
}
public static void setLoginToken(Context context, String token) {
SPUtils.put(context, UserConstans.token, token);
SPUtils.put(GsaCloudApplication.getAppContext(), UserConstans.token, token);
}
public static void setMemberId(Context context, int memberId) {
SPUtils.put(context, UserConstans.memberId, memberId);
SPUtils.put(GsaCloudApplication.getAppContext(), UserConstans.memberId, memberId);
}
public static void setMemberName(Context context, String memberName) {
SPUtils.put(context, UserConstans.memberName, memberName);
SPUtils.put(GsaCloudApplication.getAppContext(), UserConstans.memberName, memberName);
}
public static void setBrandId(Context context, int restaurantId) {
SPUtils.put(context, UserConstans.brandId, restaurantId);
SPUtils.put(GsaCloudApplication.getAppContext(), UserConstans.brandId, restaurantId);
}
public static void setBrandName(Context context, String restaurantName) {
SPUtils.put(context, UserConstans.brandName, restaurantName);
SPUtils.put(GsaCloudApplication.getAppContext(), UserConstans.brandName, restaurantName);
}
public static void setRestaurantId(Context context, int restaurantId) {
SPUtils.put(context, UserConstans.restaurantId, restaurantId);
SPUtils.put(GsaCloudApplication.getAppContext(), UserConstans.restaurantId, restaurantId);
}
public static void setRestaurantName(Context context, String restaurantName) {
SPUtils.put(context, UserConstans.restaurantName, restaurantName);
SPUtils.put(GsaCloudApplication.getAppContext(), UserConstans.restaurantName, restaurantName);
}
public static void setBrandRestaurantInfos(Context context, String brandRestaurantIds) {
SPUtils.put(context, UserConstans.brandRestaurantInfos, brandRestaurantIds);
SPUtils.put(GsaCloudApplication.getAppContext(), UserConstans.brandRestaurantInfos, brandRestaurantIds);
}
public static void setGsPosShopId(Context context, String gsPosShopId) {
SPUtils.put(context, UserConstans.gsPosShopId, gsPosShopId);
SPUtils.put(GsaCloudApplication.getAppContext(), UserConstans.gsPosShopId, gsPosShopId);
}
public static void clearMemberInfo() {
......
package com.gingersoft.gsa.cloud.base.common.bean;
import lombok.Data;
/**
* Created by Wyh on 2020/1/15.
*/
@Data
public class BaseResult {
/**
......@@ -13,38 +16,8 @@ public class BaseResult {
private boolean success;
private long sysTime;
private String errCode;
private String errMsg;
private Object data;
public boolean isSuccess() {
return success;
}
public void setSuccess(boolean success) {
this.success = success;
}
public long getSysTime() {
return sysTime;
}
public void setSysTime(long sysTime) {
this.sysTime = sysTime;
}
public String getErrMsg() {
return errMsg;
}
public void setErrMsg(String errMsg) {
this.errMsg = errMsg;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
}
package com.gingersoft.gsa.cloud.base.common.bean;
import lombok.Data;
/**
* Created by Wyh on 2020/1/15.
*/
@Data
public class BaseResult2 {
private String code;
private String errorMsg;
private Object data;
}
package com.gingersoft.gsa.cloud.base.common.bean;
/**
* Created by Wyh on 2020/1/17.
* 結賬方式,打印和餐檯模塊用到
*/
public class BillMethodBean {
private int id;
private String name;
private double money;
public BillMethodBean() {
}
public BillMethodBean(int id, String name) {
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getMoney() {
return money;
}
public void setMoney(double money) {
this.money = money;
}
}
......@@ -4,6 +4,8 @@ import android.graphics.Color;
import com.gingersoft.gsa.cloud.database.bean.Discount;
import lombok.Data;
/**
* 作者:ELEGANT_BIN
......@@ -12,23 +14,35 @@ import com.gingersoft.gsa.cloud.database.bean.Discount;
* 修订历史:2020-01-19
* 描述:
*/
@Data
public class BillOrderMoney {
private String title;
private double money;
/**是否已送單#0=未送單;1=已送單*/
private int status = 0;
private int textSize;
private int textColor = Color.parseColor("#000000");
private int bgColor;
/**是否已送單#0=未送單;1=已送單*/
private int status = 0;
public static final byte BILL_ITEM_NO_ORDER_STATUS = 0;
public static final byte BILL_ITEM_ORDER_SENT_STATUS = 1;
private byte type = ORDER_DISCOUNT_TYPE;
/**整單折扣*/
public static final byte ORDER_DISCOUNT_TYPE = 0;
/**會員等級折扣*/
public static final byte MEMBER_DISCOUNT_TYPE = 1;
public static final byte SERVERCHARGE_TYPE = 2;
public static final byte ROUNDING_TYPE = 3;
/**會員優惠券折扣*/
public static final byte COUPON_DISCOUNT_TYPE = 2;
/**服務費*/
public static final byte SERVERCHARGE_TYPE = 3;
/**賬單小數*/
public static final byte ROUNDING_TYPE = 4;
/**折扣實體*/
private Discount discount;
public BillOrderMoney() {
......@@ -47,69 +61,6 @@ public class BillOrderMoney {
this.money = money;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public double getMoney() {
return money;
}
public void setMoney(double money) {
this.money = money;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public int getTextSize() {
return textSize;
}
public void setTextSize(int textSize) {
this.textSize = textSize;
}
public int getTextColor() {
return textColor;
}
public void setTextColor(int textColor) {
this.textColor = textColor;
}
public int getBgColor() {
return bgColor;
}
public void setBgColor(int bgColor) {
this.bgColor = bgColor;
}
public byte getType() {
return type;
}
public void setType(byte type) {
this.type = type;
}
public Discount getDiscount() {
return discount;
}
public void setDiscount(Discount discount) {
this.discount = discount;
}
}
......@@ -3,7 +3,6 @@ package com.gingersoft.gsa.cloud.base.common.bean;
import android.text.TextUtils;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
......@@ -123,15 +122,17 @@ public class MemberInfo implements Serializable {
private long id;
private String memberNo;
/**會員折扣比例*/
private int memberDiscount;
//获取会员信息接口
private int MemberPoint;
private float MemberPoint;
//开台接口返回
private int memberPoint;
private float memberPoint;
private String memberName = "";
private String levelName3;
private String levelName2;
private String levelName1;
private String levelName;
private String phone;
private int birthdaybonusratio;
private int creditPoints;
......@@ -156,14 +157,15 @@ public class MemberInfo implements Serializable {
private int isDisplay;
private int vaildDays;
private int brandId;
private int pointRedeemCash;
/**積分兌換現金列*/
private float pointRedeemCash;
private int ablediscount;
private int expireAfterDayClearPoints;
private int extendExpireAmount;
private float expireAfterDayClearPoints;
private double extendExpireAmount;
private String foodDesc3;
private int scCharge;
private int extendValidDays;
private int levelUpAmount;
private double levelUpAmount;
private int optTimes;
private int updateTimes;
private String foodDesc1;
......@@ -175,7 +177,6 @@ public class MemberInfo implements Serializable {
private String optTime;
private int createTimes;
private int brCouponNum;
private String levelName;
private int pointRule;
private int foodPrice;
private String createBy;
......@@ -189,15 +190,31 @@ public class MemberInfo implements Serializable {
private MemberExpireDateBean memberExpireDate;
private VaildTimeBean vaildTime;
public String getLevelName(){
if(!TextUtils.isEmpty(levelName1)) {
return levelName1;
}
if(!TextUtils.isEmpty(levelName2)) {
return levelName2;
}
if(!TextUtils.isEmpty(levelName3)) {
return levelName3;
}
return "";
}
public int getMemberPoint() {
if (MemberPoint != 0)
public float getMemberPoint() {
if (MemberPoint != 0) {
return MemberPoint;
if (memberPoint != 0)
}
if (memberPoint != 0) {
return memberPoint;
}
return 0;
}
@Data
public static class CreateTimeBean implements Serializable{
/**
......
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 com.gingersoft.gsa.cloud.base.common.bean.discount.OrderDiscount;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import lombok.Data;
......@@ -30,14 +28,6 @@ public class OrderBean {
private int person;
private double totalAmount;
private double totalPoints;
// /**折扣金額*/
// private double discountAmount;
// /**折扣比例*/
// private double discountValue;
// /**折扣類型*/
// private int type;
// /**折扣描述*/
// private String remark;
/**
* 生成訂單時間
*/
......@@ -57,10 +47,6 @@ public class OrderBean {
this.person = orderBean.person;
this.memberInfo = orderBean.memberInfo;
this.discountDetails = orderBean.discountDetails;
// this.discountAmount = orderBean.discountAmount;
// this.discountValue = orderBean.discountValue;
// this.type = orderBean.type;
// this.remark = orderBean.remark;
this.createTime = orderBean.createTime;
}
......
package com.gingersoft.gsa.cloud.base.common.bean;
import android.view.View;
import android.widget.LinearLayout;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
import com.gingersoft.gsa.cloud.base.common.bean.mealManger.MyOrderManage;
import com.gingersoft.gsa.cloud.base.utils.MoneyUtil;
import com.gingersoft.gsa.cloud.database.bean.ComboItem;
import com.gingersoft.gsa.cloud.database.bean.Discount;
......@@ -11,8 +8,6 @@ import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.gingersoft.gsa.cloud.print.bean.OrderDetails;
import org.greenrobot.greendao.annotation.Transient;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
......
package com.gingersoft.gsa.cloud.base.common.bean;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
import org.greenrobot.greendao.annotation.Entity;
import org.greenrobot.greendao.annotation.Generated;
import java.util.ArrayList;
import java.util.List;
......@@ -25,7 +20,8 @@ public class OrderPayRequest {
private int orderPayType;
private int tableId;
private String tableNumber;
private long memberId;
private Long memberId;
private Long couponId;
/**當前加的積分*/
private Double pointsAdd;
/**當前減去的積分*/
......@@ -34,13 +30,15 @@ public class OrderPayRequest {
* 是否免服務費(0:否 1:是)
*/
private int whetherFreeService;
private List<orderPay> orderPays = new ArrayList<>();
private List<OrderPay> orderPays = new ArrayList<>();
@Data
public static class orderPay {
public static class OrderPay {
private int payType;
private double amount;
private double tipsPrice;
/**積分支付 所消費的積分*/
private Double consumptionPoints;
}
......
......@@ -17,21 +17,6 @@ import lombok.Data;
@Data
public class PayMethod {
// /**
// * success : true
// * sysTime : 1582865195628
// * data : [{"id":11,"payName":"服務員確認","createTime":"May 7, 2018 11:47:27 AM"},{"id":1019,"payName":"轉數快支付","remarks":"","createTime":"Jul 10, 2019 4:56:21 PM"},{"id":9,"payName":"微信","createTime":"Jun 29, 2018 4:34:26 PM"},{"id":10,"payName":"Apple pay","createTime":"Aug 9, 2018 3:59:05 PM"},{"id":1010,"payName":"YedPay支付宝"},{"id":6,"payName":"支付寶HK","createTime":"Sep 12, 2017 2:45:12 PM"},{"id":8,"payName":"支付寶","createTime":"Jan 5, 2018 10:55:06 AM"},{"id":1020,"payName":"PayMe","createTime":"Nov 29, 2019 6:07:56 PM"}]
// */
// private int id;
// private String payName;
// private String createTime;
// private String remarks;
//
// private String NAME;
// private String NAME2;
// private String NAME3;
// private String PAYWAY;
/**
* id : 12
* brandId : 1
......@@ -104,7 +89,8 @@ public class PayMethod {
*/
private double amountValue;
/**
* 支付方式(1:寶達通 8:支付寶 1001:現金 1023:支付寶HK )
* 支付方式(1:寶達通 8:支付寶 1001:現金 1023:支付寶HK
* )
*/
private int payType;
/**
......@@ -178,7 +164,7 @@ public class PayMethod {
public static final int PAY_TYPE_CASH = 1001;
public static final int PAY_TYPE_INTEGRAL = 2000;
public PayMethod() {
}
......@@ -200,7 +186,6 @@ public class PayMethod {
return "";
}
public void setPayName(String name){
this.nameFirst = name;
this.nameSecond = name;
......
package com.gingersoft.gsa.cloud.base.common.bean;
import lombok.Data;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-07-28
* 修订历史:2020-07-28
* 描述:
*/
@Data
public class RestaurantExpandInfo {
}
package com.gingersoft.gsa.cloud.base.common.bean.discount;
import android.text.TextUtils;
import com.gingersoft.gsa.cloud.base.utils.MoneyUtil;
import lombok.Data;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-09-12
* 修订历史:2020-09-12
* 描述:优惠券折扣实体
*/
@Data
public class CouponDiscountBean {
private Long id;
// 店鋪ID
private Long restaurantId;
// 品牌ID
private Long brandId;
// 會員卡類型名稱
private String couponTypeName1;
// 會員卡類型名稱1
private String couponTypeName2;
private String couponTypeName3;
// 優惠券的有效開始日期
private String beginDate;
// 優惠券的有效期結束日期
private String endDate;
// 有效天數
private Integer periodDays;
// 會員卡有效期
private String periodDate;
// 使用次數上限
private Integer upperLimitTimes;
// 卡類型:1折扣,2現金券
private Byte couponType;
// 卡規則狀態:0正常,1失效
private Byte status;
// 單詞消費上限金額// BigDecimal
private Double billMinAmount;
// 同一個訂單同一規則券的使用次數,小於等於1=只可用1次, 大於1=無限次
private Integer samebillLimitTimes;
// 是否獨佔 0否,1是
private Byte exclusive;
// 是否免費服務 0否,1是
private Byte xSc;
// 卡面值
private double amount;
// 卡折扣比列 8折:20'
private int discount;
// 備註
private String remark;
// 是否免會員積分 0否,1是
private Byte xPoints;
// 優惠券使用類型:1 不限制,2 app外賣,3 gspos,4外賣自取
private Byte usageType;
// 1 常規劵 2 無庫存劵3.口令領取
private Byte isType;
// 消費滿
private Double spend;
// 是否累計滿減:0否,1是
private Byte accumulate;
public String getName(){
if(!TextUtils.isEmpty(couponTypeName1)) {
return couponTypeName1;
}
if(!TextUtils.isEmpty(couponTypeName2)) {
return couponTypeName2;
}
if(!TextUtils.isEmpty(couponTypeName3)) {
return couponTypeName3;
}
return "";
}
/**
* 計算優惠券金額
* @param discount
* @param amount
* @param sourcePrice
* @return
*/
public static double calculationCoupon(double discount,double amount, double sourcePrice) {
double discountPrice = 0;
if (amount != 0) {
//金額折扣
discountPrice = amount;
} else if(discount != 0){
//百分比折扣
discountPrice = MoneyUtil.divide(MoneyUtil.multiply(sourcePrice,discount), 100).doubleValue();
}
if (sourcePrice < discountPrice) {
//折扣金額不能超出總額
discountPrice = sourcePrice;
}
return -MoneyUtil.get_ItemDecimals_money(Math.abs(discountPrice));
}
}
package com.gingersoft.gsa.cloud.base.common.bean.discount;
import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo;
import lombok.Data;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-09-12
* 修订历史:2020-09-12
* 描述:扫码查询优惠券折扣返回实体
*/
@Data
public class CouponDiscountResult {
/**
* 會員優惠券信息
*/
private CouponDiscountBean couponBean;
/**
* 會員信息
*/
private MemberInfo memberInfo;
/**會已在其他餐廳使用*/
public static final String ERROR_CODE_0001 = "MEMBER.0001";
/**掃描的會員優惠券與當前品牌不一致*/
public static final String ERROR_CODE_0002 = "MEMBER.0002";
/**掃了其他會員的優惠券碼*/
public static final String ERROR_CODE_0003 = "MEMBER.0003";
}
package com.gingersoft.gsa.cloud.base.common.bean;
package com.gingersoft.gsa.cloud.base.common.bean.discount;
import com.gingersoft.gsa.cloud.base.common.bean.BillOrderMoney;
import java.io.Serializable;
......@@ -7,14 +9,15 @@ import lombok.Data;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-08-28
* 修订历史:2020-08-28
* 创建日期:2020-09-22
* 修订历史:2020-09-22
* 描述:
*/
public class OrderDiscount {
public static final int ORDER_DISCOUNT = 0;
public static final int MEMBER_DISCOUNT = 1;
public static final int COUPON_DISCOUNT = 2;
@Data
public static class Request {
......@@ -22,10 +25,11 @@ public class OrderDiscount {
/**
* 0#整單折扣
* 1#會員折扣
* 2#优惠券折扣
*/
private int type;
/**
* 整單折扣ID
* 折扣ID
*/
private Long discountId;
/**
......@@ -68,6 +72,19 @@ public class OrderDiscount {
request.setScAble(0);
return request;
}
public static Request couponDiscountTransRequest(BillOrderMoney discount) {
Request request = new Request();
request.setType(COUPON_DISCOUNT);
if(discount.getDiscount() != null) {
request.setMemberId(discount.getDiscount().getMemberId());
request.setDiscountId(discount.getDiscount().getId());
request.setMemberDiscountRate((int) discount.getDiscount().getDiscount_value());
}
request.setDiscountAmount(discount.getMoney());
request.setScAble(0);
return request;
}
}
@Data
......@@ -80,10 +97,11 @@ public class OrderDiscount {
/**折扣金額*/
private double discountAmount;
/**折扣比例*/
private double discountValue;
private int discountValue;
/**
* 0#整單折扣
* 1#會員折扣
* 2#优惠券折扣
*/
private int type;
/**折扣名称1*/
......@@ -92,10 +110,14 @@ public class OrderDiscount {
private String remark2;
/**折扣名称3*/
private String remark3;
/**
* 會員折扣比例
* 优惠券折扣相关
*/
private Integer memberDiscountRate;
// 消費滿
private Double spend;
// 是否累計滿減:0否,1是
private Byte accumulate;
public String getRemark() {
......
package com.gingersoft.gsa.cloud.base.common.bean.mealManage;
package com.gingersoft.gsa.cloud.base.common.bean.mealManger;
import android.app.Activity;
import android.text.TextUtils;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
......@@ -12,7 +11,6 @@ import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
import com.gingersoft.gsa.cloud.base.common.bean.PayMethod;
import com.gingersoft.gsa.cloud.print.bean.OrderDetails;
import com.gingersoft.gsa.cloud.ui.widget.dialog.CommonTipDialog;
import com.jess.arms.utils.ArmsUtils;
import java.util.ArrayList;
import java.util.Date;
......@@ -40,6 +38,8 @@ public class MyOrderManage {
return myOrderManage;
}
// private ShopCart shopCart;
private boolean overMaxQty = false;
private int Languageindex;
private boolean Edit_Send = false;
......
package com.gingersoft.gsa.cloud.base.common.bean.mealManage;
package com.gingersoft.gsa.cloud.base.common.bean.mealManger;
import com.gingersoft.gsa.cloud.base.common.bean.TableBean;
import com.gingersoft.gsa.cloud.base.common.bean.table.TableBean;
import lombok.Data;
......
package com.gingersoft.gsa.cloud.base.common.bean;
package com.gingersoft.gsa.cloud.base.common.bean.table;
import com.qmuiteam.qmui.widget.section.QMUISection;
import java.io.Serializable;
......@@ -15,9 +15,9 @@ import java.util.List;
public class TableArea implements Serializable, QMUISection.Model<TableArea> {
private Integer id;
// 餐桌id
//餐桌id
private Integer restaurantTableId;
// 區域名稱
//區域名稱
private String regionName;
//排序
private Integer sort;
......
package com.gingersoft.gsa.cloud.base.common.bean;
package com.gingersoft.gsa.cloud.base.common.bean.table;
import java.io.Serializable;
import java.util.List;
......
package com.gingersoft.gsa.cloud.base.common.bean;
package com.gingersoft.gsa.cloud.base.common.bean.table;
import java.util.List;
......
package com.gingersoft.gsa.cloud.base.common.bean;
package com.gingersoft.gsa.cloud.base.common.bean.table;
import com.qmuiteam.qmui.widget.section.QMUISection;
......
package com.gingersoft.gsa.cloud.base.threadPool;
import android.os.Process;
import android.util.Log;
import java.util.concurrent.ArrayBlockingQueue;
......
......@@ -12,7 +12,7 @@ import java.util.List;
* 版本:1.6.0
* 创建日期:2020-02-14
* 修订历史:2020-02-14
* 描述:常用配置
* 描述:餐牌常用配置
*/
public class CommonConfiguration {
......
package com.gingersoft.gsa.cloud.base.utils;
import com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean;
import java.util.List;
import com.gingersoft.gsa.cloud.base.common.bean.mealManger.MyOrderManage;
/**
* 作者:ELEGANT_BIN
......@@ -15,10 +13,31 @@ public class MemberInfoUtils {
/**
* 獲取消費前積分
*
* @return
*/
private double getLastPoint() {
double LastPoint = 0.0;
if (hasUseMember()) {
LastPoint = MyOrderManage.getInstance().getMemberInfo().getMemberPoint();
}
return LastPoint;
}
/**
* 是否有使用會員
*
* @return
*/
public boolean hasUseMember() {
if (MyOrderManage.getInstance().getMemberInfo() != null) {
return true;
}
return false;
}
}
package com.gingersoft.gsa.cloud.base.common.bean;
package com.gingersoft.gsa.cloud.base.utils;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.utils.MoneyUtil;
......
......@@ -3,11 +3,15 @@ package com.gingersoft.gsa.cloud.base.utils;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import freemarker.template.utility.StringUtil;
public class StringUtils {
public class StringUtils {
public static final String DEFAULT_QUERY_REGEX = "[!$^&*+=|{}';'\",<>/?~!#¥%……&*——|{}【】‘;:”“'。,、?]";
/**
* 生成指定长度字符串,不足位右补空格,超出換行
*
......@@ -186,5 +190,84 @@ public class StringUtils {
return value;
}
/**
* 特殊字符转义处理
* @param data
* @return
*/
public static String stringEscape(String data) {
data = data.replace(" ","%20");
data = data.replace("\"","%22");
data = data.replace("#","%23");
data = data.replace("%","%25");
data = data.replace("&","%26");
data = data.replace("(","%28");
data = data.replace(")","%29");
data = data.replace("+","%2B");
data = data.replace(",","%2C");
data = data.replace("/","%2F");
data = data.replace(":","%3A");
data = data.replace(";","%3B");
data = data.replace("<","%3C");
data = data.replace("=","%3D");
data = data.replace(">","%3E");
data = data.replace("?","%3F");
data = data.replace("@","%40");
data = data.replace("\\ ","%5C");
data = data.replace("|","%7C");
return data;
}
/**
* 判断是否含有特殊字符
*
* @param str
* @return true为包含,false为不包含
*/
public static boolean isSpecialChar(String str) {
String regEx = "[ _`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]|\n|\r|\t";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
return m.find();
}
/**
* 判断查询参数中是否以特殊字符开头,如果以特殊字符开头则返回true,否则返回false
*
* @param value
* @return
* @see {@link #getQueryRegex()}
* @see {@link #DEFAULT_QUERY_REGEX}
*/
public boolean specialSymbols(String value) {
if (value.equals(" ")) {
return false;
}
Pattern pattern = Pattern.compile(getQueryRegex());
Matcher matcher = pattern.matcher(value);
char[] specialSymbols = getQueryRegex().toCharArray();
boolean isStartWithSpecialSymbol = false; // 是否以特殊字符开头
for (int i = 0; i < specialSymbols.length; i++) {
char c = specialSymbols[i];
if (value.indexOf(c) == 0) {
isStartWithSpecialSymbol = true;
break;
}
}
return matcher.find() && isStartWithSpecialSymbol;
}
/**
* 获取查询过滤的非法字符
*
* @return
*/
protected String getQueryRegex() {
return DEFAULT_QUERY_REGEX;
}
}
\ No newline at end of file
......@@ -187,7 +187,7 @@ public class AppCrashHandler implements UncaughtExceptionHandler {
List<File> fileList = Arrays.asList(files);
HashMap<String, String> params = new HashMap<>();
params.put("type", "1");
params.put("uid", String.valueOf(GsaCloudApplication.getMemberId(mContext)));
params.put("uid", String.valueOf(GsaCloudApplication.getMemberId(GsaCloudApplication.getAppContext())));
String url = HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL + Api.upload_app_log;
OkHttp3Utils.sendFileMultipart(url, "files", fileList, params)
.subscribeOn(Schedulers.io())
......@@ -253,7 +253,7 @@ public class AppCrashHandler implements UncaughtExceptionHandler {
// 保存文件
long timetamp = System.currentTimeMillis();
String time = format.format(new Date());
String MemberName = GsaCloudApplication.getMemberName(mContext);
String MemberName = GsaCloudApplication.getMemberName(GsaCloudApplication.getAppContext());
String fileName = "crash-" + MemberName + "-" + time + "-" + timetamp + "-" + DeviceUtils.getVersionName(mContext) + CRASH_REPORTER_EXTENSION;
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {//外部存储卡
try {
......
......@@ -16,7 +16,7 @@ import Decoder.BASE64Encoder;
public class DESUtil {
private final static String DES = "DES";
private final static String KEY = "gingerso";
public final static String KEY = "gingerso";
public static String encrypt(String args) {
......
......@@ -3,12 +3,10 @@ package com.gingersoft.gsa.cloud.database.bean;
import com.gingersoft.gsa.cloud.base.utils.MoneyUtil;
import org.greenrobot.greendao.annotation.Entity;
import org.greenrobot.greendao.annotation.Generated;
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;
import lombok.Data;
......@@ -59,6 +57,13 @@ public class Discount {
private String end_time;
/**
* 自定義字段
*/
@Transient
private long memberId = -1;
@Generated(hash = 901376651)
public Discount(Long id, int restaurant_id, double amount, double discount_value,
int type, String discountType, int status, String remark, String begin_time,
......@@ -107,8 +112,8 @@ public class Discount {
return -MoneyUtil.get_ItemDecimals_money(Math.abs(discountPrice));
}
public static double calculationMemberDiscount(int memberDiscount, double sourcePrice) {
double discountPrice = MoneyUtil.divide(MoneyUtil.multiply(sourcePrice, memberDiscount), 100).doubleValue();
public static double calculationMemberDiscount(int discountRate, double sourcePrice) {
double discountPrice = MoneyUtil.divide(MoneyUtil.multiply(sourcePrice, discountRate), 100).doubleValue();
if (sourcePrice < discountPrice) {
//折扣金額不能超出總額
discountPrice = sourcePrice;
......@@ -170,6 +175,16 @@ public class Discount {
}
public String getDiscountType() {
return this.discountType;
}
public void setDiscountType(String discountType) {
this.discountType = discountType;
}
public int getStatus() {
return this.status;
}
......@@ -210,14 +225,4 @@ public class Discount {
}
public String getDiscountType() {
return this.discountType;
}
public void setDiscountType(String discountType) {
this.discountType = discountType;
}
}
......@@ -6,14 +6,12 @@ import android.net.ParseException;
import android.text.TextUtils;
import com.billy.cc.core.component.CC;
import com.billy.cc.core.component.CCResult;
import com.gingersoft.gsa.cloud.base.R;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage;
import com.gingersoft.gsa.cloud.base.common.bean.mealManger.MyOrderManage;
import com.gingersoft.gsa.cloud.base.common.bean.mealManger.OpenTableManage;
import com.gingersoft.gsa.cloud.base.utils.log.LogUtil;
import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils;
import com.gingersoft.gsa.cloud.ui.widget.dialog.CommonTipDialog;
import com.google.gson.JsonIOException;
import com.google.gson.JsonParseException;
import com.jess.arms.utils.ArmsUtils;
......
......@@ -6,8 +6,8 @@ import android.app.Application;
import android.os.Bundle;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage;
import com.gingersoft.gsa.cloud.base.common.bean.mealManger.MyOrderManage;
import com.gingersoft.gsa.cloud.base.common.bean.mealManger.OpenTableManage;
import com.gingersoft.gsa.cloud.base.utils.CommonConfiguration;
import com.gingersoft.gsa.cloud.database.utils.FoodComboDaoUtils;
import com.gingersoft.gsa.cloud.database.utils.ModifierDaoUtils;
......
......@@ -2,9 +2,7 @@ package com.gingersoft.gsa.cloud.ui.bean.view;
import com.gingersoft.gsa.cloud.base.R;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDiscount;
import com.gingersoft.gsa.cloud.base.common.bean.PayMethod;
import com.gingersoft.gsa.cloud.database.bean.Discount;
import java.util.ArrayList;
import java.util.List;
......@@ -121,16 +119,6 @@ public class SectionTextItem3 {
return sectionTextItem3List;
}
public static SectionTextItem3 discountTransSectionTextItem3(OrderDiscount.Respose discount) {
SectionTextItem3 sectionTextItem3 = new SectionTextItem3();
sectionTextItem3.setLeftText(discount.getRemark());
sectionTextItem3.setCenterText(String.valueOf(0));
sectionTextItem3.setRightText(String.valueOf(discount.getDiscountAmount()));
sectionTextItem3.setLeftTextStyle(R.style.order_paymethod_text_style);
sectionTextItem3.setRightTextStyle(R.style.order_paymethod_text_style);
return sectionTextItem3;
}
public static SectionTextItem3 roundingTransSectionTextItem3(double amuout) {
SectionTextItem3 sectionTextItem3 = new SectionTextItem3();
sectionTextItem3.setLeftText("賬單小數");
......
......@@ -2,11 +2,9 @@ package com.gingersoft.gsa.cloud.ui.recylcler.event;
import android.graphics.Color;
import com.gingersoft.gsa.cloud.base.common.bean.TableArea;
import com.gingersoft.gsa.cloud.base.common.bean.TableItem;
import com.gingersoft.gsa.cloud.base.utils.log.LogUtil;
import com.gingersoft.gsa.cloud.base.common.bean.table.TableArea;
import com.gingersoft.gsa.cloud.base.common.bean.table.TableItem;
import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.base.delegate.IActivity;
import com.qmuiteam.qmui.widget.section.QMUIDefaultStickySectionAdapter;
import com.qmuiteam.qmui.widget.section.QMUISection;
import com.qmuiteam.qmui.widget.section.QMUIStickySectionAdapter;
......
......@@ -10,7 +10,7 @@ import android.widget.ImageView;
import android.widget.LinearLayout;
import com.gingersoft.gsa.cloud.base.R;
import com.gingersoft.gsa.cloud.base.common.bean.TableBean;
import com.gingersoft.gsa.cloud.database.bean.Discount;
import com.google.gson.JsonIOException;
import com.google.gson.JsonParseException;
......
package com.gingersoft.gsa.cloud.zxing;
import android.Manifest;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.ContentUris;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnKeyListener;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.res.AssetFileDescriptor;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.graphics.PointF;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.Vibrator;
import android.provider.DocumentsContract;
import android.provider.MediaStore;
import android.text.TextUtils;
import android.util.Log;
import android.view.KeyEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceHolder.Callback;
import android.view.SurfaceView;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.base.R;
import com.gingersoft.gsa.cloud.base.R2;
import com.gingersoft.gsa.cloud.base.utils.JsonUtils;
import com.gingersoft.gsa.cloud.base.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.base.utils.log.LogUtil;
import com.gingersoft.gsa.cloud.base.utils.other.SPUtils;
import com.gingersoft.gsa.cloud.base.utils.view.BitmapUtil;
import com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.BinaryBitmap;
import com.google.zxing.ChecksumException;
import com.google.zxing.DecodeHintType;
......@@ -54,33 +33,22 @@ import com.google.zxing.Result;
import com.google.zxing.common.HybridBinarizer;
import com.google.zxing.qrcode.QRCodeReader;
import com.jess.arms.base.BaseActivity;
import com.jess.arms.base.delegate.IActivity;
import com.jess.arms.di.component.AppComponent;
import com.jess.arms.mvp.BasePresenter;
import com.jess.arms.mvp.IView;
import com.jess.arms.utils.ArmsUtils;
import com.jess.arms.utils.DrawableProvider;
import com.qmuiteam.qmui.alpha.QMUIAlphaImageButton;
import com.qmuiteam.qmui.widget.QMUITopBar;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.IOException;
import java.net.URLDecoder;
import java.util.Hashtable;
import java.util.List;
import java.util.Vector;
import java.util.logging.LogManager;
import java.util.logging.Logger;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import butterknife.BindView;
import butterknife.OnClick;
import cn.bingoogolapple.photopicker.activity.BGAPhotoPickerActivity;
import cn.bingoogolapple.qrcode.core.QRCodeView;
import cn.bingoogolapple.qrcode.zxing.ZXingView;
import lombok.Builder;
import static com.jess.arms.utils.Preconditions.checkNotNull;
public class MipcaCaptureActivity extends BaseActivity<BasePresenter> implements IView, QRCodeView.Delegate, OnClickListener {
......@@ -243,11 +211,11 @@ public class MipcaCaptureActivity extends BaseActivity<BasePresenter> implements
if (uri != null) {
Result result = parseQRcodeBitmap(uri);
if (result == null) {
// ToastUtil.toastInfo(mContext, ArmsUtils.getString(mContext, R.string.capture_fail));
finish();
showMessage("無法識別!");
killMyself();
return;
}
mZXingView.decodeQRCode(result.getText());
onScanQRCodeSuccess(result.getText());
}
} else {
finish();
......
......@@ -4,8 +4,5 @@
<style name="AppTheme" parent="PublicTheme">
<item name="QMUITopBarStyle">@style/QDTopBar</item>
<item name="QMUITabSegmentStyle">@style/QMUITabSegmentStyle</item>
<!-- <item name="android:windowActivityTransitions">false</item>-->
<!-- <item name="android:windowDisablePreview">true</item>-->
<!-- <item name="android:forceDarkAllowed"></item>-->
</style>
</resources>
\ No newline at end of file
......@@ -28,8 +28,7 @@
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:windowAnimationStyle">@style/ui_activityAnimation
</item><!-- 设置activity切换动画 -->
<item name="android:windowAnimationStyle">@style/ui_activityAnimation</item><!-- 设置activity切换动画 -->
<item name="android:windowIsTranslucent">false</item><!-- 防止Acitivity跳转黑屏 将背景设置成透明-->
<item name="android:windowDisablePreview">true</item>
</style>
......
......@@ -115,7 +115,7 @@ public class ColdChainMainPresenter extends BasePresenter<ColdChainMainContract.
}
public void getBalance() {
mModel.getBalance(GsaCloudApplication.getBrandId(GsaCloudApplication.getAppContext()) + "")
mModel.getBalance(GsaCloudApplication.getBrandId(GsaCloudApplication.getAppContext())+"")
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> {
})
......
......@@ -370,7 +370,7 @@ public class OrderDetailsPresenter extends BasePresenter<OrderDetailsContract.Mo
.add("memberId", GsaCloudApplication.getMemberId(GsaCloudApplication.getAppContext()) + "")
.add("orderId", orderId + "")
.add("status", "6")
.add("", GsaCloudApplication.getMemberName(GsaCloudApplication.getAppContext()) + "")
.add("", GsaCloudApplication.getMemberName(GsaCloudApplication.getAppContext()))
.build();
mModel.updateOrderStatus(requestBody)
.subscribeOn(Schedulers.io())
......
......@@ -229,16 +229,16 @@ public class OrderListFragment extends BaseFragment<OrderListPresenter> implemen
@Override
public void loadOrderTotalNum(OrderList.DataBeanX.DataBean bean) {
if(getActivity() instanceof ColdChainMainActivity && bean != null){
if(status.equals(((ColdChainMainActivity) getActivity()).getStatus().get(0))){
((ColdChainMainActivity) getActivity()).setOrderNum(bean);
if(_mActivity instanceof ColdChainMainActivity && bean != null){
if(status.equals(((ColdChainMainActivity) _mActivity).getStatus().get(0))){
((ColdChainMainActivity) _mActivity).setOrderNum(bean);
}
}
}
private void notifyActivityOrderNum(){
if(getActivity() instanceof ColdChainMainActivity){
((ColdChainMainActivity) getActivity()).getNumByOrderTypeInvoke("loadNumber");
if(_mActivity instanceof ColdChainMainActivity){
((ColdChainMainActivity) _mActivity).getNumByOrderTypeInvoke("loadNumber");
}
}
......
package com.gingersoft.coldchain_module;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* Example local unit test, which will execute on the development machine (host).
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
public class ExampleUnitTest {
@Test
public void addition_isCorrect() {
assertEquals(4, 2 + 2);
}
}
\ No newline at end of file
......@@ -8,7 +8,7 @@ ext {
//正式版: 1.0.3 3
//內部測試版:1.2.0 20
versionCode : 8,
versionName : "1.0.81"
versionName : "1.0.8"
]
version = [
......@@ -21,7 +21,7 @@ ext {
rxlifecycle2SdkVersion : "2.2.1",
espressoSdkVersion : "3.0.1",
fragmentationVersion : "1.3.8",
canarySdkVersion : "1.5.4"
canarySdkVersion : "1.5.4",
]
dependencies = [
......
......@@ -7,7 +7,7 @@ import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.billy.cc.core.component.CC
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage
import com.gingersoft.gsa.cloud.base.common.bean.mealManger.MyOrderManage
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils
import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils
import com.gingersoft.gsa.cloud.constans.PrintConstans
......
......@@ -15,7 +15,7 @@ import androidx.recyclerview.widget.RecyclerView
import com.billy.cc.core.component.CC
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication
import com.gingersoft.gsa.cloud.base.common.bean.PayMethod
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage
import com.gingersoft.gsa.cloud.base.common.bean.mealManger.MyOrderManage
import com.gingersoft.gsa.cloud.base.utils.gson.GsonUtils
import com.gingersoft.gsa.cloud.base.utils.okhttpUtils.OkHttp3Utils
import com.gingersoft.gsa.cloud.base.utils.other.TextUtil
......
......@@ -21,10 +21,12 @@ import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils
import com.gingersoft.gsa.cloud.base.widget.DialogUtils
import com.gingersoft.gsa.cloud.constans.AppConstans
import com.gingersoft.gsa.cloud.constans.ExpandConstant
import com.gingersoft.gsa.cloud.constans.HttpsConstans
import com.gingersoft.gsa.cloud.database.utils.ExpandInfoDaoUtils
import com.gingersoft.gsa.cloud.service.GetInfoUpdateService
import com.gingersoft.gsa.cloud.service.PostCallBack
import com.gingersoft.gsa.delivery_pick_mode.R
import com.gingersoft.gsa.delivery_pick_mode.data.network.ServiceCreator
import com.gingersoft.gsa.delivery_pick_mode.databinding.ActivityOtherOrderBinding
import com.gingersoft.gsa.delivery_pick_mode.model.viewModel.PageViewModel
import com.gingersoft.gsa.delivery_pick_mode.ui.adapter.SectionsPagerAdapter
......@@ -111,7 +113,7 @@ class DeliveryOrderMainActivity : BaseActivity() {
}
pageViewModel.apply {
getDeliveryInfo(restaurantId.toString(), memberId.toString())
getBanlance(GsaCloudApplication.getBrandId(this@DeliveryOrderMainActivity))
getBanlance(GsaCloudApplication.getBrandId(GsaCloudApplication.getAppContext()))
balanceBean.observe(this@DeliveryOrderMainActivity, Observer {
it?.data?.let { it ->
tv_balance.text = "餘額:${it.balance}" + "(保證金: ${it.bond} )"
......
......@@ -47,6 +47,8 @@ import com.gingersoft.gsa.delivery_pick_mode.util.showSelectDialog
import com.gingersoft.gsa.delivery_pick_mode.util.showWaringDialog
import com.qmuiteam.qmui.widget.QMUITopBar
import kotlinx.android.synthetic.main.activity_order_details.*
import java.lang.StringBuilder
import java.util.*
class OrderDetailsActivity : BaseActivity() {
......@@ -460,7 +462,7 @@ class OrderDetailsActivity : BaseActivity() {
private fun additionalServiceCharge(amount: Int) {
showLoading()
pageViewModel.additionalServiceCharge(GsaCloudApplication.getMemberId(this@OrderDetailsActivity).toString(), orderId, amount)
pageViewModel.additionalServiceCharge(GsaCloudApplication.getMemberId(GsaCloudApplication.getAppContext()).toString(), orderId, amount)
}
private fun PageViewModel.selectLalaMove(orderDetails: OrderDetails.DataBean, isPrint: Boolean, black: (it: List<TransportationBean.DataX.Transportation>, orderDetails: OrderDetails.DataBean) -> Unit) {
......@@ -508,7 +510,7 @@ class OrderDetailsActivity : BaseActivity() {
private fun PageViewModel.showSelectTransportation(transportationBeans: List<TransportationBean.DataX.Transportation>, orderDetails: OrderDetails.DataBean, isPrint: Boolean) {
//獲取實際金額
showLoading()
getActualAmount(orderId, GsaCloudApplication.getMemberId(this@OrderDetailsActivity), restaurantId) { it ->
getActualAmount(orderId, GsaCloudApplication.getMemberId(GsaCloudApplication.getAppContext()), restaurantId) { it ->
cancelDialogForLoading()
it?.let { transportAmountBean ->
transportAmountBean.data.let { transportData ->
......@@ -594,7 +596,7 @@ class OrderDetailsActivity : BaseActivity() {
private fun PageViewModel.cancelOrder(orderDetails: OrderDetails.DataBean) {
//獲取取消原因讓用戶選擇
showLoading()
getCancelReason(GsaCloudApplication.getBrandId(this@OrderDetailsActivity), restaurantId, 3) { cancelReson ->
getCancelReason(GsaCloudApplication.getBrandId(GsaCloudApplication.getAppContext()), restaurantId, 3) { cancelReson ->
cancelDialogForLoading()
if (cancelReson != null && cancelReson.data.isNotEmpty()) {
//如果有配置取消原因
......@@ -619,7 +621,7 @@ class OrderDetailsActivity : BaseActivity() {
if (orderDetails.isDelete == 0) {
//是第三方物流單,先取消物流,再取消訂單
cancelLogistics(restaurantId, orderId, reasonId, reasonDesc) {
cancelOrder(GsaCloudApplication.getMemberId(this@OrderDetailsActivity).toString(), GsaCloudApplication.getMemberName(this@OrderDetailsActivity), orderId, reasonId, reasonDesc) {
cancelOrder(GsaCloudApplication.getMemberId(GsaCloudApplication.getAppContext()).toString(), GsaCloudApplication.getMemberName(GsaCloudApplication.getAppContext()), orderId, reasonId, reasonDesc) {
cancelDialogForLoading()
if (it) {
finish()
......@@ -631,7 +633,7 @@ class OrderDetailsActivity : BaseActivity() {
}
} else {
//取消訂單
cancelOrder(GsaCloudApplication.getMemberId(this@OrderDetailsActivity).toString(), GsaCloudApplication.getMemberName(this@OrderDetailsActivity), orderId, reasonId, reasonDesc) {
cancelOrder(GsaCloudApplication.getMemberId(GsaCloudApplication.getAppContext()).toString(), GsaCloudApplication.getMemberName(GsaCloudApplication.getAppContext()), orderId, reasonId, reasonDesc) {
cancelDialogForLoading()
if (it) {
finish()
......@@ -652,7 +654,7 @@ class OrderDetailsActivity : BaseActivity() {
private fun PageViewModel.cancelLogistics(orderDetails: OrderDetails.DataBean) {
//獲取取消原因讓用戶選擇
showLoading()
getCancelReason(GsaCloudApplication.getBrandId(this@OrderDetailsActivity), restaurantId, 2) { cancelReson ->
getCancelReason(GsaCloudApplication.getBrandId(GsaCloudApplication.getAppContext()), restaurantId, 2) { cancelReson ->
cancelDialogForLoading()
if (cancelReson != null && cancelReson.data.isNotEmpty()) {
//如果有配置取消原因
......
......@@ -58,7 +58,7 @@ class PayActivity : BaseActivity() {
}
other_pay_view.loadInfo(this, ArrayList<PayMethod>(), MoneyUtil.sub(orderDetails.TOTAL_AMOUNT!!.toDouble(), orderDetails.discount_amount), foodCount)
pageViewModel.getPayMethod(GsaCloudApplication.getBrandId(this), GsaCloudApplication.getRestaurantId(this))
pageViewModel.getPayMethod(GsaCloudApplication.getBrandId(GsaCloudApplication.getAppContext()), GsaCloudApplication.getRestaurantId(this))
pageViewModel.payTypeBean.observe(this, Observer {
//獲取支付方式
// other_pay_view.loadInfo(this, PayTypeInfo.getPayMethodByPayType(it), MoneyUtil.sub(orderDetails.TOTAL_AMOUNT!!.toDouble(), orderDetails.discount_amount), foodCount)
......
package com.gingersoft.gsa.delivery_pick_mode.util
import com.gingersoft.gsa.delivery_pick_mode.data.model.bean.MessageBean
interface UpdateOrderStateListener {
fun onMessage(msg: MessageBean)
}
\ No newline at end of file
......@@ -7,7 +7,7 @@ import com.gingersoft.gsa.cloud.base.Api;
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.FoodBean;
import com.gingersoft.gsa.cloud.base.common.bean.RestaurantExpandInfoUtils;
import com.gingersoft.gsa.cloud.base.utils.RestaurantExpandInfoUtils;
import com.gingersoft.gsa.cloud.base.utils.CommonConfiguration;
import com.gingersoft.gsa.cloud.base.utils.JsonUtils;
import com.gingersoft.gsa.cloud.constans.HttpsConstans;
......
......@@ -26,6 +26,9 @@ android {
versionCode rootProject.ext.android["versionCode"]
versionName rootProject.ext.android["versionName"]
multiDexEnabled true
ndk{
abiFilters "armeabi","armeabi-v7a"
}
}
resourcePrefix "user_login"
......
......@@ -19,3 +19,102 @@
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
#---------------------------------1.反射相关的类和方法 開始-----------------------
#---------------------------------4.反射相关的类和方法 結束-----------------------
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService
-keep class * extends android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
-keep class android.view.inputmethod.** {
<fields>;
<methods>;
}
-keep class * extends android.view.inputmethod.InputMethodManager
# -keep class com.android.internal.view.** {*; }
# Gson specific classes
-keep class sun.misc.Unsafe {
<fields>;
<methods>;
}
# -keep class com.google.gson.stream.** { *; }
# Application classes that will be serialized/deserialized over Gson
-keep class com.google.gson.examples.android.model.** {
<fields>;
<methods>;
}
-keepclasseswithmembers,allowshrinking class * {
public <init>(android.content.Context,android.util.AttributeSet);
}
-keepclasseswithmembers,allowshrinking class * {
public <init>(android.content.Context,android.util.AttributeSet,int);
}
# Keep - Library. Keep all public and protected classes, fields, and methods.
-keep public class * {
public protected <fields>;
public protected <methods>;
}
# Also keep - Enumerations. Keep the special static methods that are required in
# enumeration classes.
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
# Keep names - Native method names. Keep all native class/method names.
-keepclasseswithmembers,allowshrinking class * {
native <methods>;
}
##---------------Begin: proguard configuration for Gson ----------
# Gson uses generic type information stored in a class file when working with fields. Proguard
# removes such information by default, so configure it to keep all of it.
-keepattributes Signature
# For using GSON @Expose annotation
-keepattributes *Annotation*
# Gson specific classes
-keep class sun.misc.Unsafe { *; }
#-keep class com.google.gson.stream.** { *; }
# Application classes that will be serialized/deserialized over Gson
-keep class com.google.gson.examples.android.model.** { *; }
# Explicitly preserve all serialization members. The Serializable interface
# is only a marker interface, so it wouldn't save them.
-keepclassmembers class * implements java.io.Serializable {
static final long serialVersionUID;
private static final java.io.ObjectStreamField[] serialPersistentFields;
private void writeObject(java.io.ObjectOutputStream);
private void readObject(java.io.ObjectInputStream);
java.lang.Object writeReplace();
java.lang.Object readResolve();
}
-keep public class * implements java.io.Serializable {*;}
......@@ -187,9 +187,9 @@ public class BusinessReportFragment extends BaseFragment<BusinessReportPresenter
@Override
public void showLoading(String message) {
if (message != null)
LoadingDialog.showDialogForLoading(getActivity(), message, true);
LoadingDialog.showDialogForLoading(_mActivity, message, true);
else
LoadingDialog.showDialogForLoading(getActivity());
LoadingDialog.showDialogForLoading(_mActivity);
}
@Override
......
......@@ -335,7 +335,7 @@ public class MainTopFragment extends BaseFragment<MainTopPresenter> implements M
@Override
public void loadChart(List<MainOrderInfoChartBean.DataBean> dataBeans) {
((NewMainActivity) getActivity()).onFinishRefresh();//結束刷新
((NewMainActivity)_mActivity).onFinishRefresh();//結束刷新
Object[] todayData = new Object[24];//今天的數據
Object[] yesterdayData = new Object[24];//昨天的數據
......
package com.gingersoft.gsa.cloud.manager.mvp.contract;
import com.gingersoft.gsa.cloud.base.common.bean.TableItem;
import com.gingersoft.gsa.cloud.base.common.bean.table.TableItem;
import com.jess.arms.mvp.IView;
import com.jess.arms.mvp.IModel;
......
package com.gingersoft.gsa.cloud.manager.mvp.contract;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.common.bean.TableItem;
import com.gingersoft.gsa.cloud.base.common.bean.TableArea;
import com.gingersoft.gsa.cloud.base.common.bean.table.TableItem;
import com.gingersoft.gsa.cloud.base.common.bean.table.TableArea;
import com.jess.arms.mvp.IView;
import com.jess.arms.mvp.IModel;
......
......@@ -4,8 +4,6 @@ import android.app.Application;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.common.bean.FoodBean;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
import com.gingersoft.gsa.cloud.manager.mvp.model.service.TableManageService;
import com.google.gson.Gson;
import com.jess.arms.integration.IRepositoryManager;
......
......@@ -2,8 +2,8 @@ package com.gingersoft.gsa.cloud.manager.mvp.presenter;
import android.app.Application;
import com.gingersoft.gsa.cloud.base.common.bean.TableItem;
import com.gingersoft.gsa.cloud.base.common.bean.TableArea;
import com.gingersoft.gsa.cloud.base.common.bean.table.TableItem;
import com.gingersoft.gsa.cloud.base.common.bean.table.TableArea;
import com.gingersoft.gsa.cloud.ui.bean.view.SectionHeader;
import com.jess.arms.integration.AppManager;
import com.jess.arms.di.scope.FragmentScope;
......
......@@ -5,12 +5,12 @@ import android.os.CountDownTimer;
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.TableItem;
import com.gingersoft.gsa.cloud.base.common.bean.table.TableItem;
import com.gingersoft.gsa.cloud.base.utils.JsonUtils;
import com.gingersoft.gsa.cloud.base.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.base.utils.log.LogUtil;
import com.gingersoft.gsa.cloud.constans.GoldConstants;
import com.gingersoft.gsa.cloud.base.common.bean.TableArea;
import com.gingersoft.gsa.cloud.base.common.bean.table.TableArea;
import com.gingersoft.gsa.cloud.manager.mvp.model.bean.request.AreaRequest;
import com.gingersoft.gsa.cloud.manager.mvp.model.bean.request.TableRequest;
import com.gingersoft.gsa.cloud.manager.mvp.ui.activity.TableManageActivity;
......
......@@ -3,8 +3,8 @@ package com.gingersoft.gsa.cloud.manager.mvp.ui.activity;
import android.content.Intent;
import android.os.Bundle;
import com.gingersoft.gsa.cloud.base.common.bean.TableItem;
import com.gingersoft.gsa.cloud.base.common.bean.TableArea;
import com.gingersoft.gsa.cloud.base.common.bean.table.TableItem;
import com.gingersoft.gsa.cloud.base.common.bean.table.TableArea;
import com.gingersoft.gsa.cloud.manager.mvp.model.bean.request.AreaRequest;
import com.gingersoft.gsa.cloud.manager.mvp.model.bean.request.TableRequest;
import com.gingersoft.gsa.cloud.manager.mvp.ui.fragment.AddTableFragment;
......
package com.gingersoft.gsa.cloud.manager.mvp.ui.adapter;
import android.content.Context;
import android.view.MotionEvent;
import android.view.View;
import android.widget.CheckBox;
import android.widget.CompoundButton;
......@@ -9,7 +8,7 @@ import android.widget.EditText;
import com.gingersoft.gsa.cloud.manager.R;
import com.gingersoft.gsa.cloud.manager.R2;
import com.gingersoft.gsa.cloud.base.common.bean.TableArea;
import com.gingersoft.gsa.cloud.base.common.bean.table.TableArea;
import com.jess.arms.base.BaseHolder;
import com.jess.arms.base.DefaultAdapter;
......
......@@ -2,7 +2,6 @@ package com.gingersoft.gsa.cloud.manager.mvp.ui.adapter;
import android.content.Context;
import android.graphics.Color;
import android.util.SparseArray;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
......@@ -12,16 +11,14 @@ import android.widget.FrameLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.gingersoft.gsa.cloud.base.common.bean.TableItem;
import com.gingersoft.gsa.cloud.base.common.bean.table.TableItem;
import com.gingersoft.gsa.cloud.base.utils.StringUtils;
import com.gingersoft.gsa.cloud.manager.R;
import com.gingersoft.gsa.cloud.manager.R2;
import com.gingersoft.gsa.cloud.ui.bean.view.SectionHeader;
import com.gingersoft.gsa.cloud.ui.view.TriangleLabelView;
import com.gingersoft.gsa.cloud.ui.view.TriangleView;
import com.gingersoft.gsa.cloud.ui.view.qm.QDLoadingItemView;
import com.gingersoft.gsa.cloud.ui.view.section.QDSectionHeaderView;
import com.jess.arms.utils.ArmsUtils;
import com.jess.arms.utils.DeviceUtils;
import com.qmuiteam.qmui.layout.QMUIRelativeLayout;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
......
......@@ -13,7 +13,7 @@ import android.widget.TextView;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.manager.R2;
import com.gingersoft.gsa.cloud.base.common.bean.TableArea;
import com.gingersoft.gsa.cloud.base.common.bean.table.TableArea;
import com.gingersoft.gsa.cloud.manager.mvp.model.bean.request.AreaRequest;
import com.gingersoft.gsa.cloud.manager.mvp.ui.activity.TableManageActivity;
import com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog;
......@@ -24,7 +24,6 @@ import com.gingersoft.gsa.cloud.manager.di.component.DaggerAddAreaComponent;
import com.gingersoft.gsa.cloud.manager.mvp.contract.AddAreaContract;
import com.gingersoft.gsa.cloud.manager.mvp.presenter.AddAreaPresenter;
import com.gingersoft.gsa.cloud.manager.R;
import com.jess.arms.utils.DeviceUtils;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.qmuiteam.qmui.util.QMUIResHelper;
import com.qmuiteam.qmui.widget.QMUITopBarLayout;
......
......@@ -16,7 +16,7 @@ import android.widget.FrameLayout;
import android.widget.TextView;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.TableItem;
import com.gingersoft.gsa.cloud.base.common.bean.table.TableItem;
import com.gingersoft.gsa.cloud.manager.R2;
import com.gingersoft.gsa.cloud.manager.mvp.model.bean.request.TableRequest;
import com.gingersoft.gsa.cloud.manager.mvp.ui.activity.TableManageActivity;
......@@ -351,7 +351,7 @@ public class AddTableFragment extends BaseFragment<AddTablePresenter> implements
String[] tableTypeList,
boolean allowDragDismiss,
boolean withMark) {
QMUIBottomSheet.BottomListSheetBuilder builder = new QMUIBottomSheet.BottomListSheetBuilder(getActivity());
QMUIBottomSheet.BottomListSheetBuilder builder = new QMUIBottomSheet.BottomListSheetBuilder(mContext);
builder.setGravityCenter(gravityCenter)
.setTitle(title)
.setAddCancelBtn(addCancelBtn)
......
......@@ -15,7 +15,7 @@ import android.widget.LinearLayout;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.manager.R2;
import com.gingersoft.gsa.cloud.base.common.bean.TableArea;
import com.gingersoft.gsa.cloud.base.common.bean.table.TableArea;
import com.gingersoft.gsa.cloud.manager.mvp.model.bean.request.AreaRequest;
import com.gingersoft.gsa.cloud.manager.mvp.ui.activity.TableManageActivity;
import com.gingersoft.gsa.cloud.manager.mvp.ui.adapter.AreaManageAdapter;
......
......@@ -19,10 +19,10 @@ import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.gingersoft.gsa.cloud.base.common.bean.TableItem;
import com.gingersoft.gsa.cloud.base.common.bean.table.TableItem;
import com.gingersoft.gsa.cloud.manager.R2;
import com.gingersoft.gsa.cloud.manager.di.component.DaggerTableListComponent;
import com.gingersoft.gsa.cloud.base.common.bean.TableArea;
import com.gingersoft.gsa.cloud.base.common.bean.table.TableArea;
import com.gingersoft.gsa.cloud.manager.mvp.model.bean.request.TableRequest;
import com.gingersoft.gsa.cloud.manager.mvp.ui.activity.TableManageActivity;
import com.gingersoft.gsa.cloud.manager.mvp.ui.adapter.TableManageSectiontAdapter;
......@@ -40,7 +40,6 @@ import com.gingersoft.gsa.cloud.manager.mvp.contract.TableListContract;
import com.gingersoft.gsa.cloud.manager.mvp.presenter.TableListPresenter;
import com.gingersoft.gsa.cloud.manager.R;
import com.qmuiteam.qmui.alpha.QMUIAlphaFrameLayout;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.qmuiteam.qmui.widget.QMUIEmptyView;
import com.qmuiteam.qmui.widget.QMUITopBarLayout;
......@@ -58,11 +57,7 @@ import org.json.JSONException;
import java.net.SocketTimeoutException;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
......
......@@ -8,10 +8,9 @@ import com.gingersoft.gsa.cloud.base.common.bean.BillOrderMoney;
import com.gingersoft.gsa.cloud.base.common.bean.BillingBean;
import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
import com.gingersoft.gsa.cloud.base.common.bean.TableBean;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage;
import com.gingersoft.gsa.cloud.base.utils.MoneyUtil;
import com.gingersoft.gsa.cloud.base.common.bean.table.TableBean;
import com.gingersoft.gsa.cloud.base.common.bean.mealManger.MyOrderManage;
import com.gingersoft.gsa.cloud.base.common.bean.mealManger.OpenTableManage;
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.constans.ExpandConstant;
import com.gingersoft.gsa.cloud.database.bean.ExpandInfo;
......@@ -19,7 +18,6 @@ import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
import com.gingersoft.gsa.cloud.database.utils.ExpandInfoDaoUtils;
import com.gingersoft.gsa.cloud.print.bean.OrderDetails;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
......
......@@ -12,8 +12,8 @@ import androidx.recyclerview.widget.RecyclerView;
import com.gingersoft.gsa.cloud.base.adapter.print.KitChenPrintFoodAdapter;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
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.common.bean.mealManger.MyOrderManage;
import com.gingersoft.gsa.cloud.base.common.bean.mealManger.OpenTableManage;
import com.gingersoft.gsa.cloud.base.utils.other.TextUtil;
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
......
......@@ -12,7 +12,7 @@ import androidx.recyclerview.widget.RecyclerView;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
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.mealManger.MyOrderManage;
import com.gingersoft.gsa.cloud.base.utils.MoneyUtil;
import com.gingersoft.gsa.cloud.base.utils.other.TextUtil;
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
......
......@@ -12,9 +12,8 @@ import androidx.recyclerview.widget.RecyclerView;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
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.mealManger.MyOrderManage;
import com.gingersoft.gsa.cloud.base.utils.MoneyUtil;
import com.gingersoft.gsa.cloud.base.utils.other.TextUtil;
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.constans.ExpandConstant;
import com.gingersoft.gsa.cloud.database.bean.ExpandInfo;
......
......@@ -14,9 +14,9 @@ import com.gingersoft.gsa.cloud.base.adapter.print.FoodAdapter;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.BillingBean;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
import com.gingersoft.gsa.cloud.base.common.bean.TableBean;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage;
import com.gingersoft.gsa.cloud.base.common.bean.table.TableBean;
import com.gingersoft.gsa.cloud.base.common.bean.mealManger.MyOrderManage;
import com.gingersoft.gsa.cloud.base.common.bean.mealManger.OpenTableManage;
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
import com.joe.print.R;
......
......@@ -8,9 +8,9 @@ import android.widget.LinearLayout;
import com.gingersoft.gsa.cloud.base.common.bean.BillOrderMoney;
import com.gingersoft.gsa.cloud.base.common.bean.BillingBean;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
import com.gingersoft.gsa.cloud.base.common.bean.TableBean;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage;
import com.gingersoft.gsa.cloud.base.common.bean.table.TableBean;
import com.gingersoft.gsa.cloud.base.common.bean.mealManger.MyOrderManage;
import com.gingersoft.gsa.cloud.base.common.bean.mealManger.OpenTableManage;
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.constans.ExpandConstant;
import com.gingersoft.gsa.cloud.database.bean.ExpandInfo;
......
......@@ -6,9 +6,6 @@ import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.gingersoft.gsa.cloud.base.adapter.print.BillAdapter;
import com.gingersoft.gsa.cloud.base.adapter.print.BillTypeAdapter;
import com.gingersoft.gsa.cloud.base.adapter.print.FoodAdapter;
......@@ -18,9 +15,9 @@ import com.gingersoft.gsa.cloud.base.common.bean.BillOrderMoney;
import com.gingersoft.gsa.cloud.base.common.bean.BillingBean;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
import com.gingersoft.gsa.cloud.base.common.bean.PayMethod;
import com.gingersoft.gsa.cloud.base.common.bean.TableBean;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage;
import com.gingersoft.gsa.cloud.base.common.bean.mealManger.MyOrderManage;
import com.gingersoft.gsa.cloud.base.common.bean.mealManger.OpenTableManage;
import com.gingersoft.gsa.cloud.base.common.bean.table.TableBean;
import com.gingersoft.gsa.cloud.base.utils.MoneyUtil;
import com.gingersoft.gsa.cloud.base.utils.PrintTransitUtils;
import com.gingersoft.gsa.cloud.base.utils.log.LogUtil;
......@@ -37,6 +34,9 @@ import java.util.List;
import java.util.Map;
import java.util.Objects;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
/**
* Created by Wyh on 2020/2/10.
* 打印工具類
......
......@@ -197,7 +197,7 @@ public class IpPrintListActivityFragment extends BaseFragment<IpPrintListActivit
@Override
public void loadPrinterList(List<PrinterDeviceBean> deviceBeans) {
PrinterDeviceDaoUtils printerDeviceDaoUtils = new PrinterDeviceDaoUtils(getActivity());
PrinterDeviceDaoUtils printerDeviceDaoUtils = new PrinterDeviceDaoUtils(_mActivity);
printerDeviceDaoUtils.deleteAll();
if (deviceBeans != null) {
printerDeviceDaoUtils.insertMultPrinterDeviceBean(deviceBeans);
......
......@@ -67,7 +67,7 @@ public class LocalPrintFragment extends BaseFragment<LocalPrintPresenter> implem
@Override
public void onResume() {
super.onResume();
mPresenter.getPrinterCurrencyList(GsaCloudApplication.getRestaurantId(getActivity()));
mPresenter.getPrinterCurrencyList(GsaCloudApplication.getRestaurantId(GsaCloudApplication.getAppContext()));
}
@Override
......@@ -158,7 +158,7 @@ public class LocalPrintFragment extends BaseFragment<LocalPrintPresenter> implem
public void loadView(List<PrintCurrencyBean> printCurrencyBeans) {
currencyContent.removeAllViews();
PrintCurrencyDaoUtils printCurrencyDaoUtils = new PrintCurrencyDaoUtils(getActivity());
PrintCurrencyDaoUtils printCurrencyDaoUtils = new PrintCurrencyDaoUtils(_mActivity);
printCurrencyDaoUtils.deleteAll();
if (printCurrencyBeans != null) {
printCurrencyDaoUtils.insertMultPrintCurrencyBean(printCurrencyBeans);
......@@ -166,7 +166,7 @@ public class LocalPrintFragment extends BaseFragment<LocalPrintPresenter> implem
if (printCurrencyBeans != null) {
for (int i = 0; i < printCurrencyBeans.size(); i++) {
View view = LayoutInflater.from(getActivity()).inflate(R.layout.print_currency_item, null);
View view = LayoutInflater.from(_mActivity).inflate(R.layout.print_currency_item, null);
TextView tvType = view.findViewById(R.id.tv_currency_print_type);
TextView tvFoodColor = view.findViewById(R.id.tv_currency_print_food_color);
TextView tvFoodItemColor = view.findViewById(R.id.tv_currency_print_food_items_color);
......
......@@ -23,6 +23,7 @@
#---------------------------------1.反射相关的类和方法 開始-----------------------
#---------------------------------4.反射相关的类和方法 結束-----------------------
-keep public class * extends android.app.Activity
......
......@@ -13,6 +13,7 @@
<application
android:networkSecurityConfig="@xml/network_android">
<activity android:name=".mvp.ui.activity.TableActivity"/>
<activity android:name=".mvp.ui.activity.MealStandActivity"/>
<activity android:name=".mvp.ui.activity.OrderPayActivity" />
......
......@@ -25,7 +25,7 @@ public interface AllOrderContract {
void setAllOrderAdapter(DefaultAdapter adapter);
byte getStatus();
String getOrderType();
}
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
......
package com.gingersoft.gsa.cloud.table.mvp.contract;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.common.bean.OrderPayRequest;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseRespose;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseOrderRespose;
import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.mvp.IModel;
import com.jess.arms.mvp.IView;
import java.util.List;
import io.reactivex.Observable;
import okhttp3.RequestBody;
......@@ -39,15 +36,11 @@ public interface BaseOrderContract {
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends IModel {
Observable<BaseResult> createOrder(RequestBody requestBody);
Observable<BaseResult> addFood(RequestBody requestBody);
Observable<BaseResult> toOrderPay(RequestBody requestBody);
Observable<BaseResult> updateOrder(RequestBody formBody);
Observable<BaseRespose> calculationPrice(long orderId);
Observable<BaseOrderRespose> calculationPrice(long orderId);
}
}
......@@ -11,7 +11,7 @@ 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.Modifier;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseRespose;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseOrderRespose;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.FoodReason;
import com.jess.arms.base.DefaultAdapter;
......@@ -116,20 +116,24 @@ public interface MealStandContract {
Observable<BaseResult> getCurrentSoldoutFood(RequestBody requestBody);
Observable<BaseRespose> loadOrder(long orderId);
Observable<BaseResult> createOrder(RequestBody requestBody);
// Observable<BaseRespose> deleteFood(List<Map<Byte, DeleteOrderRequest>> mapsDelete, long orderId, byte type, int reasonId);
Observable<BaseRespose> deleteFood(RequestBody requestBody);
Observable<BaseResult> addFood(RequestBody requestBody);
Observable<BaseRespose> printOrder(RequestBody requestBody);
Observable<BaseOrderRespose> loadOrder(long orderId);
// Observable<BaseOrderRespose> deleteFood(List<Map<Byte, DeleteOrderRequest>> mapsDelete, long orderId, byte type, int reasonId);
Observable<BaseOrderRespose> deleteFood(RequestBody requestBody);
Observable<BaseOrderRespose> printOrder(RequestBody requestBody);
Observable<FoodReason> getRestaurantFoodReason(int brandId, int restaurantId, int type);
Observable<BaseResult> queryMember(int type, String parm, String shopName,int tableId,String tableNumber);
Observable<BaseResult> memeberUse(int tableId, String tableNumber, long memberId);
Observable<BaseResult> memberUse(int tableId, String tableNumber, long memberId);
Observable<BaseResult> memeberUseCancel(int tableId, String tableNumber, long memberId);
Observable<BaseResult> memberUseCancel(int tableId, String tableNumber, long memberId);
List<Food> queryDB_AllFoodList();
......
......@@ -41,9 +41,9 @@ public interface OrderCenterContract {
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends IModel {
Observable<BaseResult> loadOrderList(int restaurantId, byte status, int pageIndex, int pageSize);
Observable<BaseResult> loadOrderList(int restaurantId, String orderType, int pageIndex, int pageSize);
Observable<BaseResult> cancelOrder(long orderId, int restaurantId, byte status);
Observable<BaseResult> cancelOrder(long orderId, int restaurantId, String orderType);
}
}
......@@ -3,9 +3,9 @@ package com.gingersoft.gsa.cloud.table.mvp.contract;
import android.content.Intent;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.common.bean.TableBean;
import com.gingersoft.gsa.cloud.base.common.bean.table.TableBean;
import com.gingersoft.gsa.cloud.database.bean.Discount;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseRespose;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseOrderRespose;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.TableDetail;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.AllTableFragment;
import com.jess.arms.base.DefaultAdapter;
......@@ -14,8 +14,6 @@ import java.util.List;
import io.reactivex.Observable;
import okhttp3.RequestBody;
import retrofit2.http.Body;
import retrofit2.http.Query;
/**
......@@ -77,16 +75,22 @@ public interface OrderContentContract {
List<Discount> queryDB_DiscountList(String discountType);
Observable<BaseRespose> loadOrder(long orderId);
Observable<BaseOrderRespose> createOrder(RequestBody requestBody);
Observable<BaseRespose> printOrder(RequestBody request);
Observable<BaseOrderRespose> addFood(RequestBody requestBody);
Observable<BaseOrderRespose> loadOrder(long orderId);
Observable<BaseOrderRespose> printOrder(RequestBody request);
Observable<TableBean> getTables(int restaurantId);
Observable<TableDetail> getTable(int tableId,String tableNumber);
Observable<BaseRespose> transferFood(RequestBody requestBody);
Observable<BaseOrderRespose> transferFood(RequestBody requestBody);
Observable<BaseResult> getSplitTables(int tableId);
Observable<BaseResult> queryCoupon(int tableId,Long memberId,long couponMemberId ,String couponNo, int restaurantId);
}
}
......@@ -3,10 +3,9 @@ package com.gingersoft.gsa.cloud.table.mvp.contract;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseRespose;
import com.gingersoft.gsa.cloud.base.common.bean.TableBean;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseOrderRespose;
import com.gingersoft.gsa.cloud.base.common.bean.table.TableBean;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.TableDetail;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.AllOrderFragment;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.AllTableFragment;
import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.mvp.IView;
......@@ -76,13 +75,13 @@ public interface TableContract {
Observable<TableDetail> getTable(int tableId,String tableNumber);
Observable<BaseRespose> getOrderById(long orderId);
Observable<BaseOrderRespose> getOrderById(long orderId);
Observable<BaseRespose> openTable(RequestBody requestBody);
Observable<BaseOrderRespose> openTable(RequestBody requestBody);
Observable<BaseRespose> turnTable(RequestBody requestBody);
Observable<BaseOrderRespose> turnTable(RequestBody requestBody);
Observable<BaseRespose> initTable(RequestBody requestBody);
Observable<BaseOrderRespose> initTable(RequestBody requestBody);
Observable<BaseResult> getSplitTables(int tableId);
......
......@@ -3,9 +3,7 @@ package com.gingersoft.gsa.cloud.table.mvp.model;
import android.app.Application;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult2;
import com.gingersoft.gsa.cloud.base.common.bean.OrderPayRequest;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
import com.gingersoft.gsa.cloud.base.common.bean.mealManger.MyOrderManage;
import com.gingersoft.gsa.cloud.database.bean.ComboItem;
import com.gingersoft.gsa.cloud.database.bean.Discount;
import com.gingersoft.gsa.cloud.database.bean.FoodCombo;
......@@ -15,7 +13,7 @@ import com.gingersoft.gsa.cloud.database.utils.ComboItemDaoUtils;
import com.gingersoft.gsa.cloud.database.utils.DiscountDaoUtils;
import com.gingersoft.gsa.cloud.database.utils.FoodComboDaoUtils;
import com.gingersoft.gsa.cloud.database.utils.ModifierDaoUtils;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseRespose;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseOrderRespose;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.utils.FoodDaoUtils;
import com.gingersoft.gsa.cloud.table.mvp.contract.MealStandContract;
......@@ -29,7 +27,6 @@ import com.jess.arms.integration.IRepositoryManager;
import com.jess.arms.mvp.BaseModel;
import java.util.List;
import java.util.Map;
import javax.inject.Inject;
......@@ -128,7 +125,7 @@ public class MealStandModel extends BaseModel implements MealStandContract.Model
}
@Override
public Observable<BaseRespose> loadOrder(long orderId) {
public Observable<BaseOrderRespose> loadOrder(long orderId) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.loadOrder(orderId);
}
......@@ -146,12 +143,12 @@ public class MealStandModel extends BaseModel implements MealStandContract.Model
}
@Override
public Observable<BaseRespose> deleteFood(RequestBody requestBody) {
public Observable<BaseOrderRespose> deleteFood(RequestBody requestBody) {
Observable ob = mRepositoryManager.obtainRetrofitService(MealService.class)
.deleteFood(requestBody)
.flatMap(new Function<BaseResult, Observable<BaseRespose>>() {
.flatMap(new Function<BaseResult, Observable<BaseOrderRespose>>() {
@Override
public Observable<BaseRespose> apply(BaseResult info) throws Exception {
public Observable<BaseOrderRespose> apply(BaseResult info) throws Exception {
if (info != null && info.isSuccess()) {
return loadOrder(MyOrderManage.getInstance().getOrderId());
}
......@@ -162,39 +159,39 @@ public class MealStandModel extends BaseModel implements MealStandContract.Model
}
@Override
public Observable<BaseRespose> calculationPrice(long orderId) {
public Observable<BaseOrderRespose> calculationPrice(long orderId) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.calculationPrice(orderId);
}
@Override
public Observable<BaseRespose> printOrder(RequestBody requestBody) {
public Observable<BaseOrderRespose> printOrder(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.printOrder(requestBody);
}
@Override
public Observable<FoodReason> getRestaurantFoodReason(int brandId,int restaurantId, int type) {
public Observable<FoodReason> getRestaurantFoodReason(int brandId, int restaurantId, int type) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.getRestaurantFoodReason(brandId,restaurantId,type);
.getRestaurantFoodReason(brandId, restaurantId, type);
}
@Override
public Observable<BaseResult> queryMember(int type, String parm, String shopName,int tableId,String tableNumber) {
public Observable<BaseResult> queryMember(int type, String parm, String shopName, int tableId, String tableNumber) {
return mRepositoryManager.obtainRetrofitService(MemberService.class)
.queryMember(type,parm,shopName,tableId,tableNumber);
.queryMember(type, parm, shopName, tableId, tableNumber);
}
@Override
public Observable<BaseResult> memeberUse(int tableId, String tableNumber, long memberId) {
public Observable<BaseResult> memberUse(int tableId, String tableNumber, long memberId) {
return mRepositoryManager.obtainRetrofitService(MemberService.class)
.memeberUse(tableId,tableNumber,memberId);
.memberUse(tableId, tableNumber, memberId);
}
@Override
public Observable<BaseResult> memeberUseCancel(int tableId, String tableNumber, long memberId) {
public Observable<BaseResult> memberUseCancel(int tableId, String tableNumber, long memberId) {
return mRepositoryManager.obtainRetrofitService(MemberService.class)
.memeberUseCancel(tableId,tableNumber,memberId);
.memberUseCancel(tableId, tableNumber, memberId);
}
@Override
......
......@@ -4,6 +4,7 @@ import android.app.Application;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.table.mvp.model.service.MealService;
import com.gingersoft.gsa.cloud.table.mvp.model.service.MemberService;
import com.gingersoft.gsa.cloud.table.mvp.model.service.OrderService;
import com.google.gson.Gson;
import com.jess.arms.integration.IRepositoryManager;
......@@ -51,23 +52,24 @@ public class OrderCenterModel extends BaseModel implements OrderCenterContract.M
}
@Override
public Observable<BaseResult> loadOrderList(int restaurantId,byte status, int pageIndex, int pageSize) {
public Observable<BaseResult> loadOrderList(int restaurantId,String orderType, int pageIndex, int pageSize) {
return mRepositoryManager.obtainRetrofitService(OrderService.class)
.loadOrderList(restaurantId, status,pageIndex, pageSize);
.loadOrderList(restaurantId, orderType,pageIndex, pageSize);
}
@Override
public Observable<BaseResult> cancelOrder(long orderId, int restaurantId,byte status) {
public Observable<BaseResult> cancelOrder(long orderId, int restaurantId,String orderType) {
return mRepositoryManager.obtainRetrofitService(OrderService.class)
.cancelOrder(orderId)
.flatMap(new Function<BaseResult, Observable<BaseResult>>() {
@Override
public Observable<BaseResult> apply(BaseResult info) throws Exception {
if (info != null && info.isSuccess()) {
return loadOrderList(restaurantId, status,0, 10);
return loadOrderList(restaurantId, orderType,0, 10);
}
return null;
}
});
}
}
\ No newline at end of file
......@@ -3,15 +3,17 @@ package com.gingersoft.gsa.cloud.table.mvp.model;
import android.app.Application;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.common.bean.OrderPayRequest;
import com.gingersoft.gsa.cloud.base.common.bean.TableBean;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
import com.gingersoft.gsa.cloud.base.common.bean.table.TableBean;
import com.gingersoft.gsa.cloud.base.common.bean.mealManger.MyOrderManage;
import com.gingersoft.gsa.cloud.base.common.bean.mealManger.OpenTableManage;
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.database.bean.Discount;
import com.gingersoft.gsa.cloud.database.utils.DiscountDaoUtils;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseRespose;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseOrderRespose;
import com.gingersoft.gsa.cloud.table.mvp.contract.OrderContentContract;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.TableDetail;
import com.gingersoft.gsa.cloud.table.mvp.model.service.MealService;
import com.gingersoft.gsa.cloud.table.mvp.model.service.MemberService;
import com.gingersoft.gsa.cloud.table.mvp.model.service.OrderPayService;
import com.gingersoft.gsa.cloud.table.mvp.model.service.TableService;
import com.google.gson.Gson;
......@@ -59,6 +61,13 @@ public class OrderContentModel extends BaseModel implements OrderContentContract
this.mApplication = null;
}
private void saveCreateTime(long createTime) {
if (OpenTableManage.getDefault().getTableBean() == null) {
OpenTableManage.getDefault().setTableBean(new TableBean.DataBean());
}
OpenTableManage.getDefault().getTableBean().setCreateTime(TimeUtils.getTime(createTime, TimeUtils.DEFAULT_DATE_FORMAT));
}
@Override
public List<Discount> queryDB_DiscountList(String discountType) {
DiscountDaoUtils discountDaoUtils = new DiscountDaoUtils(mApplication);
......@@ -66,25 +75,50 @@ public class OrderContentModel extends BaseModel implements OrderContentContract
}
@Override
public Observable<BaseRespose> loadOrder(long orderId) {
public Observable<BaseOrderRespose> loadOrder(long orderId) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.loadOrder(orderId);
}
@Override
public Observable<BaseResult> createOrder(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.createOrder(requestBody);
public Observable<BaseOrderRespose> createOrder(RequestBody requestBody) {
Observable ob = mRepositoryManager.obtainRetrofitService(MealService.class)
.createOrder(requestBody)
.flatMap(new Function<BaseResult, Observable<BaseOrderRespose>>() {
@Override
public Observable<BaseOrderRespose> apply(BaseResult info) throws Exception {
if (info != null && info.isSuccess()) {
saveCreateTime(info.getSysTime());
if (info.getData() != null) {
MyOrderManage.getInstance().setOrderId((Double) info.getData());
}
return loadOrder(MyOrderManage.getInstance().getOrderId());
}
return null;
}
});
return ob;
}
@Override
public Observable<BaseResult> addFood(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.addFood(requestBody);
public Observable<BaseOrderRespose> addFood(RequestBody requestBody) {
Observable ob = mRepositoryManager.obtainRetrofitService(MealService.class)
.addFood(requestBody)
.flatMap(new Function<BaseResult, Observable<BaseOrderRespose>>() {
@Override
public Observable<BaseOrderRespose> apply(BaseResult info) throws Exception {
if (info != null && info.isSuccess()) {
saveCreateTime(info.getSysTime());
return loadOrder(MyOrderManage.getInstance().getOrderId());
}
return null;
}
});
return ob;
}
@Override
public Observable<BaseRespose> printOrder(RequestBody request) {
public Observable<BaseOrderRespose> printOrder(RequestBody request) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.printOrder(request);
}
......@@ -96,18 +130,18 @@ public class OrderContentModel extends BaseModel implements OrderContentContract
}
@Override
public Observable<TableDetail> getTable(int tableId,String tableNumber) {
public Observable<TableDetail> getTable(int tableId, String tableNumber) {
return mRepositoryManager.obtainRetrofitService(TableService.class)
.getTable(tableId,tableNumber);
.getTable(tableId, tableNumber);
}
@Override
public Observable<BaseRespose> transferFood(RequestBody requestBody) {
public Observable<BaseOrderRespose> transferFood(RequestBody requestBody) {
Observable ob = mRepositoryManager.obtainRetrofitService(MealService.class)
.transferFood(requestBody)
.flatMap(new Function<BaseRespose, Observable<BaseRespose>>() {
.flatMap(new Function<BaseOrderRespose, Observable<BaseOrderRespose>>() {
@Override
public Observable<BaseRespose> apply(BaseRespose info) throws Exception {
public Observable<BaseOrderRespose> apply(BaseOrderRespose info) throws Exception {
if (info != null && info.isSuccess()) {
return loadOrder(MyOrderManage.getInstance().getOrderId());
}
......@@ -136,7 +170,13 @@ public class OrderContentModel extends BaseModel implements OrderContentContract
}
@Override
public Observable<BaseRespose> calculationPrice(long orderId) {
public Observable<BaseResult> queryCoupon(int tableId,Long memberId, long couponMemberId, String couponNo, int restaurantId) {
return mRepositoryManager.obtainRetrofitService(MemberService.class)
.queryCoupon(tableId,memberId, couponMemberId, couponNo, restaurantId);
}
@Override
public Observable<BaseOrderRespose> calculationPrice(long orderId) {
return null;
}
}
\ No newline at end of file
......@@ -3,8 +3,6 @@ package com.gingersoft.gsa.cloud.table.mvp.model;
import android.app.Application;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseRespose;
import com.gingersoft.gsa.cloud.table.mvp.model.service.OrderService;
import com.google.gson.Gson;
import com.jess.arms.integration.IRepositoryManager;
......
......@@ -3,9 +3,8 @@ package com.gingersoft.gsa.cloud.table.mvp.model;
import android.app.Application;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.common.bean.OrderPayRequest;
import com.gingersoft.gsa.cloud.table.mvp.contract.OrderPayContract;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseRespose;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseOrderRespose;
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;
......@@ -13,8 +12,6 @@ import com.jess.arms.di.scope.ActivityScope;
import com.jess.arms.integration.IRepositoryManager;
import com.jess.arms.mvp.BaseModel;
import java.util.List;
import javax.inject.Inject;
import io.reactivex.Observable;
......@@ -65,40 +62,12 @@ public class OrderPayModel extends BaseModel implements OrderPayContract.Model {
}
@Override
public Observable<BaseRespose> calculationPrice(long orderId) {
public Observable<BaseOrderRespose> calculationPrice(long orderId) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.calculationPrice(orderId);
}
@Override
public Observable<BaseResult> createOrder(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.createOrder(requestBody);
}
@Override
public Observable<BaseResult> addFood(RequestBody requestBody) {
Observable ob = mRepositoryManager.obtainRetrofitService(MealService.class)
.addFood(requestBody);
// if (MyOrderManage.getInstance().isModifyOrder()) {
// /**
// * 修改訂單
// * 添加食品后更新總金額
// */
// ob.flatMap(new Function<BaseResult, Observable<BaseRespose>>() {
// @Override
// public Observable<BaseRespose> apply(BaseResult info) throws Exception {
// if (info != null && info.isSuccess()) {
// return calculationPrice(MyOrderManage.getInstance().getOrderId());
// }
// return null;
// }
// });
// }
return ob;
}
@Override
public Observable<BaseResult> toOrderPay(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(OrderPayService.class)
.toOrderPay(requestBody);
......
......@@ -3,14 +3,12 @@ package com.gingersoft.gsa.cloud.table.mvp.model;
import android.app.Application;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.database.bean.ComboItem;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.gingersoft.gsa.cloud.database.utils.ComboItemDaoUtils;
import com.gingersoft.gsa.cloud.database.utils.FoodDaoUtils;
import com.gingersoft.gsa.cloud.database.utils.ModifierDaoUtils;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseRespose;
import com.gingersoft.gsa.cloud.base.common.bean.TableBean;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseOrderRespose;
import com.gingersoft.gsa.cloud.base.common.bean.table.TableBean;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.TableDetail;
import com.gingersoft.gsa.cloud.table.mvp.model.service.OrderService;
import com.gingersoft.gsa.cloud.table.mvp.model.service.TableService;
......@@ -88,25 +86,25 @@ public class TableModel extends BaseModel implements TableContract.Model {
}
@Override
public Observable<BaseRespose> getOrderById(long orderId) {
public Observable<BaseOrderRespose> getOrderById(long orderId) {
return mRepositoryManager.obtainRetrofitService(OrderService.class)
.getOrderById(orderId);
}
@Override
public Observable<BaseRespose> openTable(RequestBody requestBody) {
public Observable<BaseOrderRespose> openTable(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(TableService.class)
.openTable(requestBody);
}
@Override
public Observable<BaseRespose> turnTable(RequestBody requestBody) {
public Observable<BaseOrderRespose> turnTable(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(TableService.class)
.turnTable(requestBody);
}
@Override
public Observable<BaseRespose> initTable(RequestBody requestBody) {
public Observable<BaseOrderRespose> initTable(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(TableService.class)
.initTable(requestBody);
}
......
......@@ -6,6 +6,8 @@ import com.gingersoft.gsa.cloud.database.bean.Food;
import java.util.ArrayList;
import java.util.List;
import io.reactivex.Observable;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
......@@ -13,7 +15,7 @@ import java.util.List;
* 修订历史:2020-01-02
* 描述:
*/
public class BaseRespose {
public class BaseOrderRespose {
/**
* success : true
......
......@@ -2,17 +2,13 @@ package com.gingersoft.gsa.cloud.table.mvp.model.bean;
import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo;
import com.gingersoft.gsa.cloud.base.common.bean.OrderBean;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDiscount;
import com.gingersoft.gsa.cloud.base.common.bean.TableBean;
import com.gingersoft.gsa.cloud.base.common.bean.discount.OrderDiscount;
import com.gingersoft.gsa.cloud.base.common.bean.table.TableBean;
import lombok.Data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import static com.gingersoft.gsa.cloud.base.common.bean.OrderDetail.FOOD_TYPE;
import static com.gingersoft.gsa.cloud.base.common.bean.OrderDetail.getItemType;
import lombok.Data;
/**
* 作者:ELEGANT_BIN
......@@ -110,6 +106,13 @@ public class OrderDetailItem implements Serializable {
public static final byte STATUS_CANCEL = 6;
/**
* 订单类型1:堂食2:外賣3:掃碼點餐5:預點餐7:自取
*/
public static final byte ORDER_TYPE_DOSHOKU = 1;
public static final byte ORDER_TYPE_TAKEAWAY = 2;
public static final byte ORDER_TYPE_SELFCOLLECTION = 7;
@Data
public static final class OrderPayBean implements Serializable{
private long id;
......@@ -122,32 +125,6 @@ public class OrderDetailItem implements Serializable {
private int linePayType;
private double paySales;
private String payName;
}
// public static List<OrderDetail> orderTransOrderDetails(List<OrderBean.OrderDetailsBean> orderDetails) {
// List<OrderDetail> orderDetailList = new ArrayList<>();
// OrderDetail parentOrderDetail = null;
// for (OrderBean.OrderDetailsBean orderDetailsBean : orderDetails) {
// OrderDetail orderDetail = new OrderDetail();
// orderDetail.setId(orderDetailsBean.getId());
// orderDetail.setProductId(orderDetailsBean.getProductId());
// orderDetail.setOrderId(orderDetailsBean.getOrderId());
// orderDetail.setParentId(orderDetailsBean.getParentId());
// orderDetail.setProductName(orderDetailsBean.getProductName());
// orderDetail.setNumber(orderDetailsBean.getNumber());
// orderDetail.setPrice(orderDetailsBean.getPrice());
// orderDetail.setVisible(orderDetailsBean.getStatus() == 0);
//// orderDetail.setAutomod(foods.getAutomod());
// orderDetail.setIsfood(orderDetailsBean.getType() == FOOD_TYPE);
// orderDetail.setNew(false);
// orderDetail.setType(orderDetailsBean.getType());
// orderDetail.setItemType(getItemType(orderDetailsBean, parentOrderDetail));
// orderDetailList.add(orderDetail);
// if (orderDetail.isIsfood()) {
// parentOrderDetail = orderDetail;
// }
// }
// return orderDetailList;
// }
}
......@@ -20,11 +20,11 @@ public class OrderPayRespose implements Serializable {
*/
private String verifyCode;
//本次加减多少積分
/**本次加减多少積分*/
private float addPoints;
//上次積分
/**上次積分*/
private float oldPoints;
//结余積分
/**结余積分*/
private float nowPoints;
......
package com.gingersoft.gsa.cloud.table.mvp.model.bean;
import com.gingersoft.gsa.cloud.base.common.bean.TableBean;
import com.gingersoft.gsa.cloud.base.common.bean.table.TableBean;
import lombok.Data;
......
......@@ -2,7 +2,7 @@ package com.gingersoft.gsa.cloud.table.mvp.model.bean.request;
import com.gingersoft.gsa.cloud.base.common.bean.DeleteOrderRequest;
import com.gingersoft.gsa.cloud.base.common.bean.OrderBean;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDiscount;
import com.gingersoft.gsa.cloud.base.common.bean.discount.OrderDiscount;
import java.util.List;
import java.util.Map;
......
package com.gingersoft.gsa.cloud.table.mvp.model.bean.request;
import com.gingersoft.gsa.cloud.base.common.bean.OrderBean;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDiscount;
import com.gingersoft.gsa.cloud.base.common.bean.discount.OrderDiscount;
import java.util.List;
import java.util.Map;
......
package com.gingersoft.gsa.cloud.table.mvp.model.cart;
import com.gingersoft.gsa.cloud.base.common.bean.BillOrderMoney;
import com.gingersoft.gsa.cloud.base.common.bean.DeleteOrderRequest;
import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
import com.gingersoft.gsa.cloud.base.common.bean.discount.CouponDiscountBean;
import com.gingersoft.gsa.cloud.database.bean.Discount;
import com.gingersoft.gsa.cloud.table.mvp.model.discount.CouponDiscount;
import com.gingersoft.gsa.cloud.table.mvp.model.discount.MemberDiscount;
import com.gingersoft.gsa.cloud.table.mvp.model.discount.MultyDiscount;
import com.gingersoft.gsa.cloud.table.mvp.model.discount.NomalDiscount;
import java.util.ArrayList;
import java.util.List;
import lombok.Data;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-09-19
* 修订历史:2020-09-19
* 描述: 餐檯下單購物車
*/
@Data
public class ShoppingCart {
private static ShoppingCart shoppingCart;
private ShoppingCart() {
}
public static ShoppingCart getInstance() {
if (shoppingCart == null) {
shoppingCart = new ShoppingCart();
}
return shoppingCart;
}
private MultyDiscount multyDiscounts;
/**
* 食品列表
*/
private List<OrderDetail> orderFoodList = new ArrayList<>();
/**
* 記錄刪除的食品以及原因
*/
private List<DeleteOrderRequest> deleteOrders;
/**
* 整單折扣,服務費
*/
protected List<BillOrderMoney> orderMoneyList = new ArrayList<>();
public void addNomalDiscount(Discount discount) {
multyDiscounts = new NomalDiscount(multyDiscounts, discount);
}
public void addMemberDiscount(MemberInfo discount) {
multyDiscounts = new MemberDiscount(multyDiscounts, discount);
}
public void addCouponDiscount(CouponDiscountBean discount) {
multyDiscounts = new CouponDiscount(multyDiscounts, discount);
}
public static void main(String[] arg) {
Discount discount = new Discount();
discount.setType(1);
discount.setRemark("9折");
discount.setDiscount_value(10);
MemberInfo memberDiscount = new MemberInfo();
memberDiscount.setMemberName("斯八達");
memberDiscount.setDiscount(20);
CouponDiscountBean couponDiscount = new CouponDiscountBean();
couponDiscount.setCouponType((byte) 2);
couponDiscount.setCouponTypeName1("立減8元");
couponDiscount.setAmount(8);
ShoppingCart.getInstance().addNomalDiscount(discount);
ShoppingCart.getInstance().addMemberDiscount(memberDiscount);
ShoppingCart.getInstance().addCouponDiscount(couponDiscount);
MultyDiscount multyDiscount = ShoppingCart.getInstance().getMultyDiscounts();
double money = multyDiscount.calculate(100);
System.out.println("calculate : " + money);
}
/**
* 具體支付類需要實現的方法
*/
public void pay(double money) {
}
}
package com.gingersoft.gsa.cloud.table.mvp.model.discount;
import com.gingersoft.gsa.cloud.base.common.bean.discount.CouponDiscountBean;
import com.gingersoft.gsa.cloud.base.utils.MoneyUtil;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-09-19
* 修订历史:2020-09-19
* 描述: 優惠券折扣{@link CouponDiscountBean}
*/
public class CouponDiscount extends MultyDiscount {
private CouponDiscountBean couponDiscount;
/**
* 本次折扣金额
*/
private Double discountMoney;
public CouponDiscount(MultyDiscount nextMultyDiscount, CouponDiscountBean couponDiscount) {
super(nextMultyDiscount);
this.couponDiscount = couponDiscount;
}
@Override
public double calculate(double money) {
if (couponDiscount != null) {
//配置了消費滿減
double totalAmount = money;
if (couponDiscount.getSpend() != null && totalAmount > couponDiscount.getSpend()) {
//未滿足消費滿條件
} else {
discountMoney = calculationCoupon(couponDiscount, money);
money = MoneyUtil.sum(money,discountMoney);
}
}
return super.calculate(money);
}
/**
* 計算優惠券金額
*
* @param couponDiscount
* @param sourceMoney
* @return
*/
public static double calculationCoupon(CouponDiscountBean couponDiscount, double sourceMoney) {
double discountMoney = 0;
if (couponDiscount.getCouponType() == 2) {
//金額折扣
discountMoney = couponDiscount.getAmount();
} else{
//百分比折扣
discountMoney = MoneyUtil.divide(MoneyUtil.multiply(sourceMoney, couponDiscount.getDiscount()), 100).doubleValue();
}
if (sourceMoney < discountMoney) {
//折扣金額不能超出總額
discountMoney = sourceMoney;
}
return -MoneyUtil.get_ItemDecimals_money(Math.abs(discountMoney));
}
/**
* 獲取優惠券折扣ID
*
* @return
*/
public Long getCouponDiscountId() {
if (couponDiscount != null) {
return couponDiscount.getId();
}
return null;
}
}
package com.gingersoft.gsa.cloud.table.mvp.model.discount;
import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo;
import com.gingersoft.gsa.cloud.base.utils.MoneyUtil;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-09-19
* 修订历史:2020-09-19
* 描述: 會員折扣{@link MemberInfo#memberDiscount}
*/
public class MemberDiscount extends MultyDiscount {
private MemberInfo memberDiscount;
/**
* 本次折扣金额
*/
private Double discountMoney;
public MemberDiscount(MultyDiscount nextMultyDiscount, MemberInfo memberDiscount) {
super(nextMultyDiscount);
this.memberDiscount = memberDiscount;
}
@Override
public double calculate(double money) {
if (memberDiscount != null) {
discountMoney = calculationMemberDiscount(memberDiscount.getMemberDiscount(), money);
money = MoneyUtil.sum(money,discountMoney);
}
return super.calculate(money);
}
public static double calculationMemberDiscount(int discountRate, double sourceMoney) {
double discountMoney = MoneyUtil.divide(MoneyUtil.multiply(sourceMoney, discountRate), 100).doubleValue();
if (sourceMoney < discountMoney) {
//折扣金額不能超出總額
discountMoney = sourceMoney;
}
return -MoneyUtil.get_ItemDecimals_money(Math.abs(discountMoney));
}
}
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