Commit a1cd212f by 王宇航

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	public-base/src/main/java/com/gingersoft/gsa/cloud/base/application/GsaCloudApplication.java
#	public-base/src/main/java/com/gingersoft/gsa/cloud/base/utils/crash/AppCrashHandler.java
#	table-mode/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/MealStandPresenter.java
parents e8c65531 0659130c
...@@ -27,7 +27,6 @@ dependencies { ...@@ -27,7 +27,6 @@ dependencies {
implementation 'org.jetbrains:annotations:15.0' implementation 'org.jetbrains:annotations:15.0'
//日誌管理 //日誌管理
implementation 'com.elvishew:xlog:1.6.1' implementation 'com.elvishew:xlog:1.6.1'
} }
//此文件是作为组件化配置的公共gradle脚本文件,在每个组件中都apply此文件,下载到工程根目录后,可以在下方添加一些自己工程中通用的配置 //此文件是作为组件化配置的公共gradle脚本文件,在每个组件中都apply此文件,下载到工程根目录后,可以在下方添加一些自己工程中通用的配置
......
...@@ -3,6 +3,7 @@ package com.gingersoft.gsa.cloud.download.mvp.presenter; ...@@ -3,6 +3,7 @@ package com.gingersoft.gsa.cloud.download.mvp.presenter;
import android.app.Application; import android.app.Application;
import com.billy.cc.core.component.CC; import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.FoodBean; import com.gingersoft.gsa.cloud.base.common.bean.FoodBean;
import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils; import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils;
import com.gingersoft.gsa.cloud.database.bean.Combo; import com.gingersoft.gsa.cloud.database.bean.Combo;
...@@ -111,10 +112,8 @@ public class DownloadPresenter extends BasePresenter<DownloadContract.Model, Dow ...@@ -111,10 +112,8 @@ public class DownloadPresenter extends BasePresenter<DownloadContract.Model, Dow
down_load_data(); down_load_data();
} }
public void down_load_data() { public void down_load_data() {
int restaurantId = 26; int restaurantId = GsaCloudApplication.getRestaurantId(IActivity);
// int restaurantId = GsaCloudApplication.getRestaurantId(IActivity);
Observable.mergeArray(mModel.downFunctionList(), mModel.downFoodList(restaurantId) Observable.mergeArray(mModel.downFunctionList(), mModel.downFoodList(restaurantId)
, mModel.downModifier(restaurantId), mModel.downCombo(restaurantId), , mModel.downModifier(restaurantId), mModel.downCombo(restaurantId),
mModel.downFoodModifier(restaurantId)) mModel.downFoodModifier(restaurantId))
...@@ -257,6 +256,8 @@ public class DownloadPresenter extends BasePresenter<DownloadContract.Model, Dow ...@@ -257,6 +256,8 @@ public class DownloadPresenter extends BasePresenter<DownloadContract.Model, Dow
//这里报错需要累加一 //这里报错需要累加一
downLoadCount++; downLoadCount++;
mRootView.showMessage("部分下載失敗,點擊刷新按鈕重新下載"); mRootView.showMessage("部分下載失敗,點擊刷新按鈕重新下載");
// downAllList();
} }
}); });
} }
......
...@@ -2,7 +2,6 @@ package com.joe.print.mvp.print; ...@@ -2,7 +2,6 @@ package com.joe.print.mvp.print;
import android.content.Context; import android.content.Context;
import android.os.RemoteException; import android.os.RemoteException;
import com.gingersoft.gsa.cloud.base.utils.LanguageUtils; import com.gingersoft.gsa.cloud.base.utils.LanguageUtils;
import com.hyweb.n5.lib.util.PrinterUtil; import com.hyweb.n5.lib.util.PrinterUtil;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
......
...@@ -59,13 +59,13 @@ dependencies { ...@@ -59,13 +59,13 @@ dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs') implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation files('libs/javabase64-1.2.jar') implementation files('libs/javabase64-1.2.jar')
implementation files('libs/sun.misc.BASE64Decoder.jar') implementation files('libs/sun.misc.BASE64Decoder.jar')
// test // test
testImplementation rootProject.ext.dependencies["junit"] testImplementation rootProject.ext.dependencies["junit"]
debugImplementation rootProject.ext.dependencies["canary-debug"] debugImplementation rootProject.ext.dependencies["canary-debug"]
releaseImplementation rootProject.ext.dependencies["canary-release"] releaseImplementation rootProject.ext.dependencies["canary-release"]
testImplementation rootProject.ext.dependencies["canary-release"] testImplementation rootProject.ext.dependencies["canary-release"]
annotationProcessor rootProject.ext.dependencies["dagger2-compiler"] annotationProcessor rootProject.ext.dependencies["dagger2-compiler"]
implementation rootProject.ext.dependencies["BaseRecyclerViewAdapter"]
// implementation 'androidx.appcompat:appcompat:1.1.0' // implementation 'androidx.appcompat:appcompat:1.1.0'
testImplementation 'junit:junit:4.12' testImplementation 'junit:junit:4.12'
...@@ -79,4 +79,6 @@ dependencies { ...@@ -79,4 +79,6 @@ dependencies {
implementation 'org.greenrobot:greendao-generator:3.2.2' implementation 'org.greenrobot:greendao-generator:3.2.2'
implementation rootProject.ext.dependencies["BaseRecyclerViewAdapter"] implementation rootProject.ext.dependencies["BaseRecyclerViewAdapter"]
implementation files('libs/ecracalib.jar')
implementation files('libs/nexgon5lib.jar')
} }
...@@ -19,8 +19,8 @@ public class FoodAdapter extends BaseQuickAdapter<OrderDetail, BaseViewHolder> { ...@@ -19,8 +19,8 @@ public class FoodAdapter extends BaseQuickAdapter<OrderDetail, BaseViewHolder> {
@Override @Override
protected void convert(BaseViewHolder helper, OrderDetail item) { protected void convert(BaseViewHolder helper, OrderDetail item) {
helper.setText(R.id.tv_food_name, item.getName()); helper.setText(R.id.tv_food_name, item.getProductName());
helper.setText(R.id.tv_food_quantity, String.valueOf(item.getNumber())); helper.setText(R.id.tv_food_quantity, String.valueOf(item.getNumber()));
helper.setText(R.id.tv_food_price, "$" + item.getAmount_price()); helper.setText(R.id.tv_food_price, "$" + item.getPrice());
} }
} }
package com.gingersoft.gsa.cloud.base.application; package com.gingersoft.gsa.cloud.base.application;
import android.content.Context; import android.content.Context;
import android.util.Log;
import com.billy.cc.core.component.CC; import com.billy.cc.core.component.CC;
import com.elvishew.xlog.LogConfiguration; import com.elvishew.xlog.LogConfiguration;
import com.elvishew.xlog.LogLevel; import com.elvishew.xlog.LogLevel;
import com.elvishew.xlog.XLog;
import com.elvishew.xlog.interceptor.BlacklistTagsFilterInterceptor; import com.elvishew.xlog.interceptor.BlacklistTagsFilterInterceptor;
import com.elvishew.xlog.printer.AndroidPrinter;
import com.elvishew.xlog.printer.ConsolePrinter;
import com.elvishew.xlog.printer.Printer;
import com.elvishew.xlog.printer.file.FilePrinter;
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.BuildConfig;
import com.gingersoft.gsa.cloud.base.common.bean.CurrentAndroidSetting; import com.gingersoft.gsa.cloud.base.common.bean.CurrentAndroidSetting;
import com.gingersoft.gsa.cloud.base.utils.constans.UserConstans; import com.gingersoft.gsa.cloud.base.utils.constans.UserConstans;
import com.gingersoft.gsa.cloud.base.utils.crash.AppCrashHandler; import com.gingersoft.gsa.cloud.base.utils.crash.AppCrashHandler;
import com.gingersoft.gsa.cloud.base.utils.file.FileUtils;
import com.gingersoft.gsa.cloud.base.utils.other.SPUtils; import com.gingersoft.gsa.cloud.base.utils.other.SPUtils;
import com.gingersoft.gsa.cloud.base.utils.xlog.MyBackupStrategy;
import com.gingersoft.gsa.cloud.database.DaoManager; import com.gingersoft.gsa.cloud.database.DaoManager;
import com.jess.arms.base.BaseApplication; import com.jess.arms.base.BaseApplication;
...@@ -37,20 +45,38 @@ public class GsaCloudApplication extends BaseApplication { ...@@ -37,20 +45,38 @@ public class GsaCloudApplication extends BaseApplication {
CC.enableVerboseLog(true); CC.enableVerboseLog(true);
CC.enableDebug(true); CC.enableDebug(true);
CC.enableRemoteCC(true); CC.enableRemoteCC(true);
// initXLog(); //初始化日誌管理庫
initXLog();
initGreenDao(); initGreenDao();
AppCrashHandler.getInstance().init(this,"test");
AppCrashHandler.getInstance().init(this, "test");
androidSetting = new CurrentAndroidSetting(); androidSetting = new CurrentAndroidSetting();
} }
private void initXLog(){
private void initXLog() {
LogConfiguration config = new LogConfiguration.Builder() LogConfiguration config = new LogConfiguration.Builder()
.logLevel(BuildConfig.DEBUG? LogLevel.ALL: LogLevel.NONE) .logLevel(BuildConfig.DEBUG ? LogLevel.ALL // 指定日志级别,低于该级别的日志将不会被打印,默认为 LogLevel.ALL
.tag("GSA-TAG") : LogLevel.NONE)
.addInterceptor(new BlacklistTagsFilterInterceptor("","","")) .tag("GSA_TAG") // 指定 TAG,默认为 "X-LOG"
.addInterceptor(new BlacklistTagsFilterInterceptor( // 添加黑名单 TAG 过滤器
"blacklist1", "blacklist2", "blacklist3"))
.build();
Printer androidPrinter = new AndroidPrinter(); // 通过 android.util.Log 打印日志的打印器
Printer consolePrinter = new ConsolePrinter(); // 通过 System.out 打印日志到控制台的打印器
Printer filePrinter = new FilePrinter // 打印日志到文件的打印器
.Builder(FileUtils.ACTIONLOG_PATH) // 指定保存日志文件的路径
.fileNameGenerator(new DateFileNameGenerator()) // 指定日志文件名生成器,默认为 ChangelessFileNameGenerator("log")
.backupStrategy(new MyBackupStrategy(FileUtils.ACTION_MAX_SIZE)) // 指定日志文件备份策略,默认为 FileSizeBackupStrategy(1024 * 1024)
.cleanStrategy(new FileLastModifiedCleanStrategy(FileUtils.ACTION_MAX_FILE_TIME)) // 指定日志文件清除策略,默认为 NeverCleanStrategy()
.build(); .build();
XLog.init( // 初始化 XLog
config, // 指定日志配置,如果不指定,会默认使用 new LogConfiguration.Builder().build()
androidPrinter, // 添加任意多的打印器。如果没有添加任何打印器,会默认使用 AndroidPrinter(Android)/ConsolePrinter(java)
consolePrinter,
filePrinter);
} }
private void initGreenDao() { private void initGreenDao() {
......
...@@ -39,7 +39,7 @@ public class CurrentAndroidSetting { ...@@ -39,7 +39,7 @@ public class CurrentAndroidSetting {
private int LayoutQuitHeight = 40; private int LayoutQuitHeight = 40;
private int LayoutFoodTypeHeight = 100; private int LayoutFoodTypeHeight = 100;
private int FoodBtnHeight = 120; private int FoodBtnHeight = 120;
private int ModBtnHeight = 48; private int ModBtnHeight = 55;
private int FoodTypeCol = 4; private int FoodTypeCol = 4;
private int FoodTypeRow = 1; private int FoodTypeRow = 1;
private int FoodCol = 4; private int FoodCol = 4;
......
package com.gingersoft.gsa.cloud.base.common.bean; 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.database.bean.Food;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -106,32 +107,30 @@ public class OrderBean { ...@@ -106,32 +107,30 @@ public class OrderBean {
*/ */
private int id; private int id;
private String productName; private String productName;
private String productId; private long productId;
private double price; private double price;
private double lunchboxPrice; private double lunchboxPrice;
private int number; private int number;
private String createTime; private String createTime;
private int status; private int status;
private byte type;
private long parentId;
private long orderId; private long orderId;
public OrderDetailsBean() { public OrderDetailsBean() {
} }
public OrderDetailsBean(String productName, String productId, double price, double lunchboxPrice, int number, long orderId) {
this.productName = productName;
this.productId = productId;
this.price = price;
this.lunchboxPrice = lunchboxPrice;
this.number = number;
this.orderId = orderId;
}
public OrderDetailsBean(String productName, String productId, double price, double lunchboxPrice, int number) { public OrderDetailsBean(String productName, long productId,long parentId, double price, double lunchboxPrice, int number,byte type, long orderId) {
this.productName = productName; this.productName = productName;
this.productId = productId; this.productId = productId;
this.parentId = parentId;
this.price = price; this.price = price;
this.lunchboxPrice = lunchboxPrice; this.lunchboxPrice = lunchboxPrice;
this.number = number; this.number = number;
this.type =type;
this.orderId = orderId;
} }
public int getId() { public int getId() {
...@@ -142,6 +141,22 @@ public class OrderBean { ...@@ -142,6 +141,22 @@ public class OrderBean {
this.id = id; this.id = id;
} }
public byte getType() {
return type;
}
public void setType(byte type) {
this.type = type;
}
public long getParentId() {
return parentId;
}
public void setParentId(long parentId) {
this.parentId = parentId;
}
public String getProductName() { public String getProductName() {
return productName; return productName;
} }
...@@ -150,11 +165,11 @@ public class OrderBean { ...@@ -150,11 +165,11 @@ public class OrderBean {
this.productName = productName; this.productName = productName;
} }
public String getProductId() { public long getProductId() {
return productId; return productId;
} }
public void setProductId(String productId) { public void setProductId(long productId) {
this.productId = productId; this.productId = productId;
} }
...@@ -207,7 +222,6 @@ public class OrderBean { ...@@ -207,7 +222,6 @@ public class OrderBean {
} }
} }
// public static List<OrderDetailsBean> transOrderDetails(List<Food> foods) { // public static List<OrderDetailsBean> transOrderDetails(List<Food> foods) {
// List<OrderDetailsBean> orderDetailsBeans = new ArrayList<>(); // List<OrderDetailsBean> orderDetailsBeans = new ArrayList<>();
// for (Food food : foods) { // for (Food food : foods) {
...@@ -220,8 +234,7 @@ public class OrderBean { ...@@ -220,8 +234,7 @@ public class OrderBean {
public static List<OrderDetailsBean> transOrderDetails(List<OrderDetail> foods) { public static List<OrderDetailsBean> transOrderDetails(List<OrderDetail> foods) {
List<OrderDetailsBean> orderDetailsBeans = new ArrayList<>(); List<OrderDetailsBean> orderDetailsBeans = new ArrayList<>();
for (OrderDetail food : foods) { for (OrderDetail food : foods) {
// OrderDetailsBean orderDetailsBean = new OrderDetailsBean(food.getName(), food.getParentId()+ "", food.getAmount_price(), food.getLunchboxPrice(), food.getNumber(), food.getOrderId()); OrderDetailsBean orderDetailsBean = new OrderDetailsBean(food.getProductName(), food.getProductId(), food.getParentId(),food.getPrice(), food.getLunchboxPrice(), food.getNumber(), food.getType(),food.getOrderId());
OrderDetailsBean orderDetailsBean = new OrderDetailsBean(food.getName(), food.getParentId()+ "", food.getAmount_price(), food.getLunchboxPrice(), food.getNumber());
orderDetailsBeans.add(orderDetailsBean); orderDetailsBeans.add(orderDetailsBean);
} }
return orderDetailsBeans; return orderDetailsBeans;
......
...@@ -732,7 +732,7 @@ public class MyOrderManage { ...@@ -732,7 +732,7 @@ public class MyOrderManage {
// datasBean.isManualMoney = true; // datasBean.isManualMoney = true;
// } // }
datasBean.setUnit_price(money); datasBean.setUnit_price(money);
datasBean.setAmount_price(money * datasBean.getNumber()); datasBean.setPrice(money * datasBean.getNumber());
} }
// /** // /**
......
...@@ -5,8 +5,8 @@ package com.gingersoft.gsa.cloud.base.utils.constans; ...@@ -5,8 +5,8 @@ package com.gingersoft.gsa.cloud.base.utils.constans;
*/ */
public class HttpsConstans { public class HttpsConstans {
public static String ROOT_SERVER_ADDRESS_FORMAL = "http://gingersoft.tpddns.cn:58201/ricepon-cloud-gsa/api/";// 正式服務 public static String ROOT_SERVER_ADDRESS_FORMAL = "http://gingersoft.tpddns.cn:58201/ricepon-cloud-gsa/api/";// 深圳服务
// public static String ROOT_SERVER_ADDRESS_FORMAL = "http://192.168.1.74:8201/ricepon-cloud-gsa/api/";// 正式服務 // public static String ROOT_SERVER_ADDRESS_FORMAL = "http://a.ricepon.com:58201/ricepon-cloud-gsa/api/";// 香港服务
public static String ROOT_SERVER_ADDRESS_FORMAL2 = "http://gingersoft.tpddns.cn:53000/mock/49/ricepon-cloud-gsa/api/";//測試服務器 public static String ROOT_SERVER_ADDRESS_FORMAL2 = "http://gingersoft.tpddns.cn:53000/mock/49/ricepon-cloud-gsa/api/";//測試服務器
......
...@@ -13,13 +13,11 @@ import android.util.Base64; ...@@ -13,13 +13,11 @@ import android.util.Base64;
import android.util.Log; import android.util.Log;
import android.widget.Toast; import android.widget.Toast;
import com.gingersoft.gsa.cloud.base.utils.FileUtils; import com.elvishew.xlog.XLog;
import com.gingersoft.gsa.cloud.base.utils.log.LogUtil; import com.gingersoft.gsa.cloud.base.utils.log.LogUtil;
import com.gingersoft.gsa.cloud.base.utils.other.AppUtils; import com.gingersoft.gsa.cloud.base.utils.other.AppUtils;
import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils;
import com.jess.arms.di.component.AppComponent; import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
import com.jess.arms.utils.DeviceUtils;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
...@@ -205,7 +203,8 @@ public class AppCrashHandler implements UncaughtExceptionHandler { ...@@ -205,7 +203,8 @@ public class AppCrashHandler implements UncaughtExceptionHandler {
// 把上面获取的堆栈信息转为字符串,打印出来 // 把上面获取的堆栈信息转为字符串,打印出来
String stacktrace = result.toString(); String stacktrace = result.toString();
printWriter.close(); printWriter.close();
LogUtil.d(TAG, stacktrace); LogUtil.d(TAG,stacktrace);
// XLog.tag(TAG).d(stacktrace);
//收集设备信息 //收集设备信息
collectCrashDeviceInfo(mContext); collectCrashDeviceInfo(mContext);
...@@ -410,22 +409,24 @@ public class AppCrashHandler implements UncaughtExceptionHandler { ...@@ -410,22 +409,24 @@ public class AppCrashHandler implements UncaughtExceptionHandler {
// 保存文件 // 保存文件
long timetamp = System.currentTimeMillis(); long timetamp = System.currentTimeMillis();
String time = format.format(new Date()); String time = format.format(new Date());
String fileName = "crash-" + "-" + DeviceUtils.getVersionName(mContext) + "-" + time + "-" + timetamp + "-" + info.get("versionName") + ".xml"; // String fileName = "crash-" + GSAApplication.machineName + "-" + DeviceUtils.getVersionName(GSAApplication.getAppContext()) + "-" + time + "-" + timetamp + "-" + info.get("versionName") + ".xml";
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {//外部存储卡 // if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {//外部存储卡
try { // try {
File dir = new File(FileUtils.ERRORLOG_PATH); // File dir = new File(FileUtils.ERRORLOG_PATH);
Log.i("CrashHandler", dir.toString()); // Log.i("CrashHandler", dir.toString());
//不存在就創建目錄 // //不存在就創建目錄
if (!dir.exists()) // if (!dir.exists())
dir.mkdirs(); // dir.mkdirs();
FileOutputStream fos = new FileOutputStream(new File(FileUtils.ERRORLOG_PATH, fileName)); // FileOutputStream fos = new FileOutputStream(new File(FileUtils.ERRORLOG_PATH, fileName));
fos.write(sb.toString().getBytes()); // fos.write(sb.toString().getBytes());
fos.close(); // fos.close();
return fileName; // return fileName;
} catch (IOException e) { // } catch (FileNotFoundException e) {
e.printStackTrace(); // e.printStackTrace();
} // } catch (IOException e) {
} // e.printStackTrace();
// }
// }
return null; return null;
} }
......
package com.gingersoft.gsa.cloud.base.utils.file;
import android.content.Context;
import android.os.Environment;
import android.text.TextUtils;
import com.elvishew.xlog.XLog;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2018/11/16
* 修订历史:2018/11/16
* 描述:7.0 兼容
* <files-path name="name" path="path" /> 对应getFilesDir()。
* <cache-path name="name" path="path" /> 对应getCacheDir()。
* <external-path name="name" path="path" /> 对应Environment.getExternalStorageDirectory()。
* <external-files-path name="name" path="path" /> 对应getExternalFilesDir()。
* <external-cache-path name="name" path="path" /> 对应getExternalCacheDir()。
*/
public class FileUtils {
public static String FirstFolder = "GsAndroid";//一级目录
public static String file = "file";//文件文件夹
public static String Image = "image";//图片文件夹
public static String Log = "xLog";//日志存储
public static String ActionLog = "actionLog";//操作日志
public static String ErrorLog = "errorLog";//错误日志存储
public static String APK = "Download";//安装包目录放在系统目录
/*ALBUM_PATH取得机器的SD卡位置,File.separator为分隔符“/”*/
public final static String ALBUM_PATH = Environment.getExternalStorageDirectory() + File.separator + FirstFolder + File.separator;
public final static String IMAGE_PATH = ALBUM_PATH + Image + File.separator;
public final static String File_PATH = ALBUM_PATH + file + File.separator;
public final static String LOG_PATH = ALBUM_PATH + Log + File.separator;
public final static String ACTIONLOG_PATH = LOG_PATH + ActionLog + File.separator;
public final static String ERRORLOG_PATH = LOG_PATH + ErrorLog + File.separator;
public final static String APK_PATH = Environment.getExternalStorageDirectory() + File.separator + APK + File.separator;
public final static String FILE_EXTENSION_SEPARATOR = ".";
//操作日志單最大文件大小
public final static int ACTION_MAX_SIZE = 1024 * 1024 * 5;
//操作日志文件按照時間刪除
public final static int ACTION_MAX_FILE_TIME = 1000 * 60 * 60 * 12;
private FileUtils() {
throw new AssertionError();
}
public static StringBuilder readFile(String filePath, String charsetName) {
File file = new File(filePath);
StringBuilder fileContent = new StringBuilder("");
if (file == null || !file.isFile()) {
return null;
}
BufferedReader reader = null;
try {
InputStreamReader is = new InputStreamReader(new FileInputStream(
file), charsetName);
reader = new BufferedReader(is);
String line = null;
while ((line = reader.readLine()) != null) {
if (!fileContent.toString().equals("")) {
fileContent.append("\r\n");
}
fileContent.append(line);
}
reader.close();
return fileContent;
} catch (IOException e) {
throw new RuntimeException("IOException occurred. ", e);
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
throw new RuntimeException("IOException occurred. ", e);
}
}
}
}
/**
* 写文件
*
* @param
* @return boolean 返回类型
*/
public static boolean writeFile(String filePath, String content,
boolean append) {
if (TextUtils.isEmpty(content)) {
return false;
}
FileWriter fileWriter = null;
try {
makeDirs(filePath);
fileWriter = new FileWriter(filePath, append);
fileWriter.write(content);
fileWriter.close();
return true;
} catch (IOException e) {
throw new RuntimeException("IOException occurred. ", e);
} finally {
if (fileWriter != null) {
try {
fileWriter.close();
} catch (IOException e) {
throw new RuntimeException("IOException occurred. ", e);
}
}
}
}
/**
* 创建文件的路径
*
* @param
* @return boolean 返回类型
*/
public static boolean makeDirs(String filePath) {
String folderName = getFolderName(filePath);
if (TextUtils.isEmpty(folderName)) {
return false;
}
File folder = new File(folderName);
return (folder.exists() && folder.isDirectory()) ? true : folder.mkdirs();
}
public static String getFolderName(String filePath) {
if (TextUtils.isEmpty(filePath)) {
return filePath;
}
int filePosi = filePath.lastIndexOf(File.separator);
return (filePosi == -1) ? "" : filePath.substring(0, filePosi);
}
/**
* 写文本文件 在Android系统中,文件保存在 /data/data/PACKAGE_NAME/files 目录下
*
* @param context
*/
public static void write(Context context, String fileName, String content) {
if (content == null)
content = "";
try {
FileOutputStream fos = context.openFileOutput(fileName,
Context.MODE_PRIVATE);
fos.write(content.getBytes());
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 读取文本文件 文件保存在 /data/data/PACKAGE_NAME/files
*
* @param context
* @param fileName
* @return
*/
public static String read(Context context, String fileName) {
try {
FileInputStream in = context.openFileInput(fileName);
return readInStream(in);
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
public static String readInStream(FileInputStream inStream) {
try {
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
byte[] buffer = new byte[512];
int length = -1;
while ((length = inStream.read(buffer)) != -1) {
outStream.write(buffer, 0, length);
}
outStream.close();
inStream.close();
return outStream.toString();
} catch (IOException e) {
XLog.tag("FileTest").d(e.getMessage());
}
return null;
}
/**
* 创建文件
*
* @param folderPath
* @param fileName
* @return
*/
public static File createFile(String folderPath, String fileName) {
File destDir = new File(folderPath);
if (!destDir.exists()) {
destDir.mkdirs();
}
return new File(folderPath, fileName + fileName);
}
/*
* 在SD卡上创建目录
*/
public static File creatSDDir(String dirName) {
File dir = new File(dirName);
if (!dir.exists()) {
dir.mkdirs();
}
return dir;
}
/**
* 获取文件大小
*
* @param filePath
* @return
*/
public static long getFileSize(String filePath) {
long size = 0;
File file = new File(filePath);
if (file != null && file.exists()) {
size = file.length();
}
return size;
}
/*
* Java文件操作 获取文件扩展名
* */
public static String getExtensionName(String filename) {
if ((filename != null) && (filename.length() > 0)) {
int dot = filename.lastIndexOf('.');
if ((dot > -1) && (dot < (filename.length() - 1))) {
return filename.substring(dot + 1);
}
}
return filename;
}
/*
* Java文件操作 获取不带扩展名的文件名
* */
public static String getFileNameNoEx(String filename) {
if ((filename != null) && (filename.length() > 0)) {
int dot = filename.lastIndexOf('.');
if ((dot > -1) && (dot < (filename.length()))) {
return filename.substring(0, dot);
}
}
return filename;
}
}
package com.gingersoft.gsa.cloud.base.utils.xlog;
import com.elvishew.xlog.printer.file.naming.FileNameGenerator;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.jess.arms.utils.DeviceUtils;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2019-12-06
* 修订历史:2019-12-06
* 描述:
*/
public class DateFileNameGenerator implements FileNameGenerator {
ThreadLocal<SimpleDateFormat> mLocalDateFormat = new ThreadLocal<SimpleDateFormat>() {
@Override
protected SimpleDateFormat initialValue() {
return new SimpleDateFormat("yyyy-MM-dd", Locale.US);
}
};
@Override
public boolean isFileNameChangeable() {
return true;
}
/**
* Generate a file name which represent a specific date.
*/
@Override
public String generateFileName(int logLevel, long timestamp) {
SimpleDateFormat sdf = mLocalDateFormat.get();
sdf.setTimeZone(TimeZone.getDefault());
String machineName = "test_machine";
String fileName = machineName + "-" + DeviceUtils.getVersionName(GsaCloudApplication.getAppContext()) + "-" + sdf.format(new Date(timestamp));
return fileName;
}
}
package com.gingersoft.gsa.cloud.base.utils.xlog;
import com.elvishew.xlog.printer.file.backup.BackupStrategy;
import java.io.File;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2019-12-05
* 修订历史:2019-12-05
* 描述:
*/
public class MyBackupStrategy implements BackupStrategy {
private long maxSize;
/**
* Constructor.
*
* @param maxSize the max size the file can reach
*/
public MyBackupStrategy(long maxSize) {
this.maxSize = maxSize;
}
@Override
public boolean shouldBackup(File file) {
return file.length() > maxSize;
}
}
...@@ -46,22 +46,36 @@ public class Combo { ...@@ -46,22 +46,36 @@ public class Combo {
*/ */
@Transient @Transient
private String name; private String name;
/**價格*/ @Transient
private long parentId;
/**
* 價格
*/
@Transient @Transient
private double price = 0.00; private double price = 0.00;
/**是否自動展開*/ /**
* 是否自動展開
*/
@Transient @Transient
private int autoMode = 0; private int autoMode = 0;
/**是否备注细项*/ /**
* 是否备注细项
*/
@Transient @Transient
private boolean isModifier; private boolean isModifier;
/**背景顏色*/ /**
* 背景顏色
*/
@Transient @Transient
private int bgColor = Color.parseColor("#067878"); private int bgColor = Color.parseColor("#067878");
/**字體顏色*/ /**
* 字體顏色
*/
@Transient @Transient
private int fontColor = Color.parseColor("#FFFFFF"); private int fontColor = Color.parseColor("#FFFFFF");
/**套餐細項*/ /**
* 套餐細項
*/
@Transient @Transient
private Modifier modifier; private Modifier modifier;
...@@ -104,6 +118,14 @@ public class Combo { ...@@ -104,6 +118,14 @@ public class Combo {
// } // }
public long getParentId() {
return parentId;
}
public void setParentId(long parentId) {
this.parentId = parentId;
}
public long getId() { public long getId() {
return id; return id;
} }
......
...@@ -328,7 +328,7 @@ public class Modifier { ...@@ -328,7 +328,7 @@ public class Modifier {
return marketPrice; return marketPrice;
} }
public Double getPrice() { public double getPrice() {
return price; return price;
} }
......
package com.gingersoft.gsa.cloud.database.bean;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-02-19
* 修订历史:2020-02-19
* 描述:
*/
public class Score {
}
...@@ -14,10 +14,10 @@ import org.greenrobot.greendao.identityscope.IdentityScopeType; ...@@ -14,10 +14,10 @@ import org.greenrobot.greendao.identityscope.IdentityScopeType;
// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. // THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
/** /**
* Master of DAO (schema version 13): knows all DAOs. * Master of DAO (schema version 1): knows all DAOs.
*/ */
public class DaoMaster extends AbstractDaoMaster { public class DaoMaster extends AbstractDaoMaster {
public static final int SCHEMA_VERSION = 13; public static final int SCHEMA_VERSION = 1;
/** Creates underlying database table using DAOs. */ /** Creates underlying database table using DAOs. */
public static void createAllTables(Database db, boolean ifNotExists) { public static void createAllTables(Database db, boolean ifNotExists) {
......
...@@ -30,7 +30,7 @@ public class ComboDaoUtils { ...@@ -30,7 +30,7 @@ public class ComboDaoUtils {
public ComboDaoUtils(Context context) { public ComboDaoUtils(Context context) {
mManager = DaoManager.getInstance(); mManager = DaoManager.getInstance();
mManager.init(context); mManager.init(context);
this.mContext =context; this.mContext = context;
} }
/** /**
...@@ -164,7 +164,28 @@ public class ComboDaoUtils { ...@@ -164,7 +164,28 @@ public class ComboDaoUtils {
if (combos != null) { if (combos != null) {
for (int i = 0; i < combos.size(); i++) { for (int i = 0; i < combos.size(); i++) {
Food food = foodDao.queryFoodByFidQueryBuilder(combos.get(i).getFid()); Food food = foodDao.queryFoodByFidQueryBuilder(combos.get(i).getFid());
list.add(Combo.addFoodInfo(food,combos.get(i))); if (food != null) {
list.add(Combo.addFoodInfo(food, combos.get(i)));
}
}
}
return list;
}
public List<Combo> queryCombosFoodsByQueryBuilder(long fid) {
List<Combo> combo = queryCombosByQueryBuilder(fid);
List<Combo> combos = null;
if (combo != null && combo.size() != 0) {
combos = queryCombosByComIdQueryBuilder(combo.get(0).getComId());
}
List<Combo> list = new ArrayList<>();
FoodDaoUtils foodDao = new FoodDaoUtils(mContext);
if (combos != null) {
for (int i = 0; i < combos.size(); i++) {
Food food = foodDao.queryFoodByFidQueryBuilder(combos.get(i).getFid());
if(food != null) {
list.add(Combo.addFoodInfo(food, combos.get(i)));
}
} }
} }
return list; return list;
...@@ -185,6 +206,16 @@ public class ComboDaoUtils { ...@@ -185,6 +206,16 @@ public class ComboDaoUtils {
* *
* @return * @return
*/ */
public List<Combo> queryCombosByQueryBuilder(long fid) {
QueryBuilder<Combo> queryBuilder = mManager.getDaoSession().queryBuilder(Combo.class);
return queryBuilder.where(ComboDao.Properties.Fid.eq(fid)).build().list();
}
/**
* 使用queryBuilder进行查询食品
*
* @return
*/
public List<Combo> queryCombosByComIdQueryBuilder(int comId) { public List<Combo> queryCombosByComIdQueryBuilder(int comId) {
QueryBuilder<Combo> queryBuilder = mManager.getDaoSession().queryBuilder(Combo.class); QueryBuilder<Combo> queryBuilder = mManager.getDaoSession().queryBuilder(Combo.class);
return queryBuilder.where(ComboDao.Properties.ComId.eq(comId)).list(); return queryBuilder.where(ComboDao.Properties.ComId.eq(comId)).list();
......
...@@ -158,9 +158,12 @@ public class FoodModifierDaoUtils { ...@@ -158,9 +158,12 @@ public class FoodModifierDaoUtils {
if (foodModifiers != null) { if (foodModifiers != null) {
for (int i = 0; i < foodModifiers.size(); i++) { for (int i = 0; i < foodModifiers.size(); i++) {
Modifier modifier = modifierDao.queryModifierByQueryBuilder(foodModifiers.get(i).getMid()); Modifier modifier = modifierDao.queryModifierByQueryBuilder(foodModifiers.get(i).getMid());
if (modifier != null) {
modifier.setFid(fid);
list.add(modifier); list.add(modifier);
} }
} }
}
return list; return list;
} }
......
...@@ -66,8 +66,5 @@ dependencies { ...@@ -66,8 +66,5 @@ dependencies {
// test // test
testImplementation rootProject.ext.dependencies["junit"] testImplementation rootProject.ext.dependencies["junit"]
implementation rootProject.ext.dependencies["BaseRecyclerViewAdapter"] implementation rootProject.ext.dependencies["BaseRecyclerViewAdapter"]
// debugImplementation rootProject.ext.dependencies["canary-debug"]
// releaseImplementation rootProject.ext.dependencies["canary-release"]
// testImplementation rootProject.ext.dependencies["canary-release"]
implementation files('libs/ecracalib.jar') implementation files('libs/ecracalib.jar')
} }
...@@ -17,6 +17,6 @@ public interface GoldConstants { ...@@ -17,6 +17,6 @@ public interface GoldConstants {
// boolean isRefreshData = false; // boolean isRefreshData = false;
int DetailColCount = 4; int DetailColCount = 4;
int foodGriupColCount = 5;//食品組列數 int foodGriupColCount = 5;//食品組列數
int foodGriupPageSize = 10;//食品組最大顯示數
} }
package com.gingersoft.gsa.cloud.table.app.payment;
import com.etps.aca.lib.constant.Constant;
import com.gingersoft.gsa.cloud.base.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.table.app.payment.bean.AdjustTipRespose;
import com.gingersoft.gsa.cloud.table.app.payment.bean.RefundRespose;
import com.gingersoft.gsa.cloud.table.app.payment.bean.RetrievalRespose;
import com.gingersoft.gsa.cloud.table.app.payment.bean.SaleRespose;
import com.gingersoft.gsa.cloud.table.app.payment.bean.SettlementRespose;
import com.gingersoft.gsa.cloud.table.app.payment.bean.VoidRespose;
import com.gingersoft.gsa.cloud.table.app.payment.contract.IN5Callback;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2019-11-01
* 修订历史:2019-11-01
* 描述:
*/
public final class N5CallbackManage {
private Map<Object, IN5Callback> mActionMap = new HashMap<>();
private Map<String, Boolean> mCallbackRecordMap = new HashMap<>();
private static N5CallbackManage sDefaultN5Callback;
public static N5CallbackManage getInstance() {
if (sDefaultN5Callback == null) {
synchronized (N5CallbackManage.class) {
if (sDefaultN5Callback == null) {
sDefaultN5Callback = new N5CallbackManage();
}
}
}
return sDefaultN5Callback;
}
public void post(Object className, String response, String action) {
if (className == null || !mActionMap.containsKey(className)) {
return;
}
Iterator<Object> iterator = mActionMap.keySet().iterator();
while (iterator.hasNext()) {
Object key = iterator.next();
if (key != null && key == className) {
IN5Callback callback = mActionMap.get(key);
switch (action) {
case Constant.EVENT.NAME.SALE_RESP:
SaleRespose saleRespose = GsonUtils.GsonToBean(response, SaleRespose.class);
callback.onSaleCall(saleRespose);
//回調記錄這裡支付使用操作類型+交易ID作為key,防止回調記錄被重疊
String saleCallKey = Constant.EVENT.NAME.SALE + "_" + saleRespose.getTXN_ID();
mCallbackRecordMap.put(saleCallKey, true);
break;
case Constant.EVENT.NAME.VOID_RESP:
VoidRespose voidRespose = GsonUtils.GsonToBean(response, VoidRespose.class);
callback.onVoidCall(voidRespose);
//回調記錄這裡使用取消操作類型+交易ID作為key,防止回調記錄被重疊
String voidCallKey = Constant.EVENT.NAME.VOID + "_" + voidRespose.getTXN_ID();
mCallbackRecordMap.put(voidCallKey, true);
break;
case Constant.EVENT.NAME.REFUND_RESP:
RefundRespose refundRespose = GsonUtils.GsonToBean(response, RefundRespose.class);
callback.onRefundCall(refundRespose);
//回調記錄這裡使用退款操作類型+交易ID作為key,防止回調記錄被重疊
String refundCallKey = Constant.EVENT.NAME.REFUND + "_" + refundRespose.getTXN_ID();
mCallbackRecordMap.put(refundCallKey, true);
break;
case Constant.EVENT.NAME.ADJUST_RESP:
AdjustTipRespose adjustTipRespose = GsonUtils.GsonToBean(response, AdjustTipRespose.class);
callback.onAdjustCall(adjustTipRespose);
//回調記錄這裡使用支付操作類型+交易ID作為key,防止回調記錄被重疊
String tipCallKey = Constant.EVENT.NAME.ADJUST + "_" + adjustTipRespose.getTXN_ID();
mCallbackRecordMap.put(tipCallKey, true);
break;
case Constant.EVENT.NAME.PRINT_RESP:
callback.onPrinterCall(response);
mCallbackRecordMap.put(Constant.EVENT.NAME.PRINT, true);
break;
case "RETRIEVAL_RESP":
RetrievalRespose retrievalRespose = GsonUtils.GsonToBean(response, RetrievalRespose.class);
callback.onRetrievalCall(retrievalRespose);
//回調記錄這裡使用支付操作類型+交易ID作為key,防止回調記錄被重疊
String retrievalCallKey = "RETRIEVAL" + "_" + retrievalRespose.getTXN_ID();
mCallbackRecordMap.put(retrievalCallKey, true);
break;
case "SETTLE_RESP":
callback.onSettleCall(GsonUtils.GsonToBean(response, SettlementRespose.class));
mCallbackRecordMap.put("SETTLE", true);
break;
}
}
}
}
public void register(Object className, IN5Callback callback) {
if (className == null) {
return;
}
synchronized (this) {
mActionMap.put(className, callback);
}
}
public void unregister(Object className) {
if (className == null) {
return;
}
synchronized (this) {
mActionMap.remove(className);
}
}
public Map<String, Boolean> getCallbackRecordMap() {
return mCallbackRecordMap;
}
}
...@@ -6,7 +6,7 @@ import dagger.Component; ...@@ -6,7 +6,7 @@ import dagger.Component;
import com.jess.arms.di.component.AppComponent; import com.jess.arms.di.component.AppComponent;
import com.gingersoft.gsa.cloud.table.di.module.FineItemKindModule; import com.gingersoft.gsa.cloud.table.di.module.FineItemKindModule;
import com.gingersoft.gsa.cloud.table.mvpcontract.FineItemKindContract; import com.gingersoft.gsa.cloud.table.mvp.contract.FineItemKindContract;
import com.jess.arms.di.scope.FragmentScope; import com.jess.arms.di.scope.FragmentScope;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.FineItemKindFragment; import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.FineItemKindFragment;
......
package com.gingersoft.gsa.cloud.table.di.module; package com.gingersoft.gsa.cloud.table.di.module;
import com.jess.arms.di.scope.FragmentScope;
import dagger.Binds; import dagger.Binds;
import dagger.Module; import dagger.Module;
import dagger.Provides;
import com.gingersoft.gsa.cloud.table.mvpcontract.FineItemKindContract; import com.gingersoft.gsa.cloud.table.mvp.contract.FineItemKindContract;
import com.gingersoft.gsa.cloud.table.mvp.model.FineItemKindModel; import com.gingersoft.gsa.cloud.table.mvp.model.FineItemKindModel;
......
package com.gingersoft.gsa.cloud.table.mvpcontract; package com.gingersoft.gsa.cloud.table.mvp.contract;
import android.app.Activity; import android.app.Activity;
......
...@@ -10,6 +10,8 @@ import com.gingersoft.gsa.cloud.database.bean.Modifier; ...@@ -10,6 +10,8 @@ import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseRespose; import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseRespose;
import com.gingersoft.gsa.cloud.database.bean.Food; import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.request.OrderRequest; import com.gingersoft.gsa.cloud.table.mvp.model.bean.request.OrderRequest;
import com.gingersoft.gsa.cloud.table.mvp.presenter.MealStandPresenter;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.MealStandActivity;
import com.jess.arms.base.DefaultAdapter; import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.mvp.IModel; import com.jess.arms.mvp.IModel;
import com.jess.arms.mvp.IView; import com.jess.arms.mvp.IView;
...@@ -89,7 +91,7 @@ public interface MealStandContract { ...@@ -89,7 +91,7 @@ public interface MealStandContract {
void setOrderFoodCount(String number); void setOrderFoodCount(String number);
void setMealRvScrollToPosition(int position) ; void setMealRvScrollToPosition(int position);
Activity getActivity(); Activity getActivity();
} }
...@@ -97,7 +99,7 @@ public interface MealStandContract { ...@@ -97,7 +99,7 @@ public interface MealStandContract {
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存 //Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends BaseOrderContract.Model { interface Model extends BaseOrderContract.Model {
// Observable<Object> loadOrder(int orderId); Observable<BaseRespose> loadOrder(int orderId);
Observable<BaseResult> createOrder(RequestBody requestBody); Observable<BaseResult> createOrder(RequestBody requestBody);
...@@ -115,6 +117,8 @@ public interface MealStandContract { ...@@ -115,6 +117,8 @@ public interface MealStandContract {
List<Combo> queryDB_ComboList(long fid); List<Combo> queryDB_ComboList(long fid);
List<Combo> isComboFood(long fid);
List<FoodModifier> queryDB_FoodModifierList(long fid); List<FoodModifier> queryDB_FoodModifierList(long fid);
} }
} }
...@@ -8,6 +8,7 @@ import com.gingersoft.gsa.cloud.table.app.payment.bean.SaleRespose; ...@@ -8,6 +8,7 @@ import com.gingersoft.gsa.cloud.table.app.payment.bean.SaleRespose;
import com.gingersoft.gsa.cloud.ui.widget.dialog.StatusLoadingDialog; import com.gingersoft.gsa.cloud.ui.widget.dialog.StatusLoadingDialog;
import io.reactivex.Observable; import io.reactivex.Observable;
import okhttp3.RequestBody;
/** /**
* ================================================ * ================================================
...@@ -56,6 +57,6 @@ public interface OrderPayContract { ...@@ -56,6 +57,6 @@ public interface OrderPayContract {
// Observable<Object> getN5SaleTxnId(String url); // Observable<Object> getN5SaleTxnId(String url);
// //
// Observable<Object> updateSaleStaus(String url, RequestBody formBody); Observable<BaseResult> updateOrderStatus( RequestBody formBody);
} }
} }
...@@ -10,7 +10,7 @@ import com.jess.arms.di.scope.FragmentScope; ...@@ -10,7 +10,7 @@ import com.jess.arms.di.scope.FragmentScope;
import javax.inject.Inject; import javax.inject.Inject;
import com.gingersoft.gsa.cloud.table.mvpcontract.FineItemKindContract; import com.gingersoft.gsa.cloud.table.mvp.contract.FineItemKindContract;
/** /**
......
...@@ -3,6 +3,7 @@ package com.gingersoft.gsa.cloud.table.mvp.model; ...@@ -3,6 +3,7 @@ package com.gingersoft.gsa.cloud.table.mvp.model;
import android.app.Application; import android.app.Application;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult; import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
import com.gingersoft.gsa.cloud.database.bean.Combo; import com.gingersoft.gsa.cloud.database.bean.Combo;
import com.gingersoft.gsa.cloud.database.bean.FoodModifier; import com.gingersoft.gsa.cloud.database.bean.FoodModifier;
import com.gingersoft.gsa.cloud.database.bean.Modifier; import com.gingersoft.gsa.cloud.database.bean.Modifier;
...@@ -10,12 +11,15 @@ import com.gingersoft.gsa.cloud.database.greendao.ModifierDao; ...@@ -10,12 +11,15 @@ import com.gingersoft.gsa.cloud.database.greendao.ModifierDao;
import com.gingersoft.gsa.cloud.database.utils.ComboDaoUtils; import com.gingersoft.gsa.cloud.database.utils.ComboDaoUtils;
import com.gingersoft.gsa.cloud.database.utils.FoodModifierDaoUtils; import com.gingersoft.gsa.cloud.database.utils.FoodModifierDaoUtils;
import com.gingersoft.gsa.cloud.database.utils.ModifierDaoUtils; import com.gingersoft.gsa.cloud.database.utils.ModifierDaoUtils;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseRespose; import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseRespose;
import com.gingersoft.gsa.cloud.database.bean.Food; import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.utils.FoodDaoUtils; import com.gingersoft.gsa.cloud.database.utils.FoodDaoUtils;
import com.gingersoft.gsa.cloud.table.mvp.contract.MealStandContract; import com.gingersoft.gsa.cloud.table.mvp.contract.MealStandContract;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.request.OrderRequest; import com.gingersoft.gsa.cloud.table.mvp.model.bean.request.OrderRequest;
import com.gingersoft.gsa.cloud.table.mvp.model.service.MealService; import com.gingersoft.gsa.cloud.table.mvp.model.service.MealService;
import com.gingersoft.gsa.cloud.table.mvp.presenter.MealStandPresenter;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.MealStandActivity;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.jess.arms.di.scope.ActivityScope; import com.jess.arms.di.scope.ActivityScope;
import com.jess.arms.integration.IRepositoryManager; import com.jess.arms.integration.IRepositoryManager;
...@@ -26,6 +30,11 @@ import java.util.List; ...@@ -26,6 +30,11 @@ import java.util.List;
import javax.inject.Inject; import javax.inject.Inject;
import io.reactivex.Observable; import io.reactivex.Observable;
import io.reactivex.ObservableSource;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.functions.Action;
import io.reactivex.functions.Function;
import io.reactivex.schedulers.Schedulers;
import okhttp3.RequestBody; import okhttp3.RequestBody;
...@@ -60,11 +69,11 @@ public class MealStandModel extends BaseModel implements MealStandContract.Model ...@@ -60,11 +69,11 @@ public class MealStandModel extends BaseModel implements MealStandContract.Model
this.mApplication = null; this.mApplication = null;
} }
// @Override @Override
// public Observable<Object> loadOrder(int orderId) { public Observable<BaseRespose> loadOrder(int orderId) {
// return mRepositoryManager.obtainRetrofitService(MealService.class) return mRepositoryManager.obtainRetrofitService(MealService.class)
// .loadOrder(orderId); .loadOrder(orderId);
// } }
@Override @Override
public Observable<BaseResult> createOrder(RequestBody requestBody) { public Observable<BaseResult> createOrder(RequestBody requestBody) {
...@@ -81,7 +90,16 @@ public class MealStandModel extends BaseModel implements MealStandContract.Model ...@@ -81,7 +90,16 @@ public class MealStandModel extends BaseModel implements MealStandContract.Model
@Override @Override
public Observable<BaseRespose> deleteFood(RequestBody requestBody) { public Observable<BaseRespose> deleteFood(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(MealService.class) return mRepositoryManager.obtainRetrofitService(MealService.class)
.deleteFood(requestBody); .deleteFood(requestBody)
.flatMap(new Function<BaseResult, Observable<BaseRespose>>() {
@Override
public Observable<BaseRespose> apply(BaseResult info) throws Exception {
if (info != null && info.isSuccess()) {
return loadOrder(MyOrderManage.getInstance().getOrderId());
}
return null;
}
});
} }
@Override @Override
...@@ -115,6 +133,12 @@ public class MealStandModel extends BaseModel implements MealStandContract.Model ...@@ -115,6 +133,12 @@ public class MealStandModel extends BaseModel implements MealStandContract.Model
} }
@Override @Override
public List<Combo> isComboFood(long fid) {
ComboDaoUtils comboDaoUtils = new ComboDaoUtils(mApplication);
return comboDaoUtils.queryCombosFoodsByQueryBuilder(fid);
}
@Override
public List<FoodModifier> queryDB_FoodModifierList(long fid) { public List<FoodModifier> queryDB_FoodModifierList(long fid) {
return null; return null;
} }
......
...@@ -13,6 +13,7 @@ import com.jess.arms.mvp.BaseModel; ...@@ -13,6 +13,7 @@ import com.jess.arms.mvp.BaseModel;
import javax.inject.Inject; import javax.inject.Inject;
import io.reactivex.Observable; import io.reactivex.Observable;
import okhttp3.RequestBody;
/** /**
...@@ -52,9 +53,10 @@ public class OrderPayModel extends BaseModel implements OrderPayContract.Model { ...@@ -52,9 +53,10 @@ public class OrderPayModel extends BaseModel implements OrderPayContract.Model {
.getPayMethods(); .getPayMethods();
} }
// @Override @Override
// public Observable<BaseResult> updateOrderStatus(RequestBody requestBody) { public Observable<BaseResult> updateOrderStatus(RequestBody formBody) {
// return mRepositoryManager.obtainRetrofitService(OrderPayService.class) return mRepositoryManager.obtainRetrofitService(OrderPayService.class)
// .updateOrderStatus(requestBody); .updateOrderStatus(formBody);
// } }
} }
\ No newline at end of file
package com.gingersoft.gsa.cloud.table.mvp.model.bean.request;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-02-22
* 修订历史:2020-02-22
* 描述:
*/
public class DeleteOrderRequest {
private String[]id;
public String[] getId() {
return id;
}
public void setId(String[] id) {
this.id = id;
}
}
package com.gingersoft.gsa.cloud.table.mvp.model.bean.request; package com.gingersoft.gsa.cloud.table.mvp.model.bean.request;
import com.gingersoft.gsa.cloud.base.common.bean.OrderBean;
import java.util.List; import java.util.List;
/** /**
...@@ -14,7 +16,7 @@ public class OrderRequest { ...@@ -14,7 +16,7 @@ public class OrderRequest {
private int person; private int person;
private int tableId; private int tableId;
private List<Request> orderDetails; private List<OrderBean.OrderDetailsBean> orderDetails;
public int getPerson() { public int getPerson() {
return person; return person;
...@@ -32,83 +34,83 @@ public class OrderRequest { ...@@ -32,83 +34,83 @@ public class OrderRequest {
this.tableId = tableId; this.tableId = tableId;
} }
public List<Request> getOrderDetails() { public List<OrderBean.OrderDetailsBean> getOrderDetails() {
return orderDetails; return orderDetails;
} }
public void setOrderDetails(List<Request> orderDetails) { public void setOrderDetails(List<OrderBean.OrderDetailsBean> orderDetails) {
this.orderDetails = orderDetails; this.orderDetails = orderDetails;
} }
public static class Request { // public static class Request {
private long productId; // private long productId;
private String productName; // private String productName;
private double price; // private double price;
private double lunchboxPrice; // private double lunchboxPrice;
private int number; // private int number;
//
public Request() { // public Request() {
} // }
//
public Request(long productId, String productName, double price, double lunchboxPrice, int number) { // public Request(long productId, String productName, double price, double lunchboxPrice, int number) {
this.productId = productId; // this.productId = productId;
this.productName = productName; // this.productName = productName;
this.price = price; // this.price = price;
this.lunchboxPrice = lunchboxPrice; // this.lunchboxPrice = lunchboxPrice;
this.number = number; // this.number = number;
} // }
//
public long getProductId() { // public long getProductId() {
return productId; // return productId;
} // }
//
public void setProductId(long productId) { // public void setProductId(long productId) {
this.productId = productId; // this.productId = productId;
} // }
//
public String getProductName() { // public String getProductName() {
return productName; // return productName;
} // }
//
public void setProductName(String productName) { // public void setProductName(String productName) {
this.productName = productName; // this.productName = productName;
} // }
//
public double getPrice() { // public double getPrice() {
return price; // return price;
} // }
//
public void setPrice(double price) { // public void setPrice(double price) {
this.price = price; // this.price = price;
} // }
//
public double getLunchboxPrice() { // public double getLunchboxPrice() {
return lunchboxPrice; // return lunchboxPrice;
} // }
//
public void setLunchboxPrice(double lunchboxPrice) { // public void setLunchboxPrice(double lunchboxPrice) {
this.lunchboxPrice = lunchboxPrice; // this.lunchboxPrice = lunchboxPrice;
} // }
//
public int getNumber() { // public int getNumber() {
return number; // return number;
} // }
//
public void setNumber(int number) { // public void setNumber(int number) {
this.number = number; // this.number = number;
} // }
//
@Override // @Override
public String toString() { // public String toString() {
return "Request{" + // return "Request{" +
"productId=" + productId + // "productId=" + productId +
", productName='" + productName + '\'' + // ", productName='" + productName + '\'' +
", price=" + price + // ", price=" + price +
", lunchboxPrice=" + lunchboxPrice + // ", lunchboxPrice=" + lunchboxPrice +
", number=" + number + // ", number=" + number +
'}'; // '}';
} // }
} // }
@Override @Override
public String toString() { public String toString() {
......
...@@ -29,12 +29,12 @@ public interface MealService { ...@@ -29,12 +29,12 @@ public interface MealService {
@POST("orderDetails/add" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2) @POST("orderDetails/add" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> addFood(@Body RequestBody requestBody); Observable<BaseResult> addFood(@Body RequestBody requestBody);
// @FormUrlEncoded @FormUrlEncoded
// @POST("order/get" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2) @POST("order/get" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
// Observable<Object> loadOrder(@Field("orderId") int orderId); Observable<BaseRespose> loadOrder(@Field("orderId") int orderId);
@POST("orderDetails/delete" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2) @POST("orderDetails/delete" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseRespose> deleteFood(@Body RequestBody requestBody); Observable<BaseResult> deleteFood(@Body RequestBody requestBody);
@POST("behavior/print" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2) @POST("behavior/print" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseRespose> printOrder(@Body RequestBody requestBody); Observable<BaseRespose> printOrder(@Body RequestBody requestBody);
......
...@@ -3,12 +3,13 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter; ...@@ -3,12 +3,13 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter;
import android.app.Activity; import android.app.Activity;
import android.app.Application; import android.app.Application;
import com.gingersoft.gsa.cloud.base.common.bean.OrderBean;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage; import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage; import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.table.mvp.contract.BaseOrderContract; import com.gingersoft.gsa.cloud.table.mvp.contract.BaseOrderContract;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.BillOrderMoney; import com.gingersoft.gsa.cloud.table.mvp.model.bean.BillOrderMoney;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail; import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.request.OrderRequest;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.OrderMoneyAdapter; import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.OrderMoneyAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.SelectMealAdapter; import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.SelectMealAdapter;
import com.jess.arms.di.scope.ActivityScope; import com.jess.arms.di.scope.ActivityScope;
...@@ -17,6 +18,8 @@ import com.jess.arms.integration.AppManager; ...@@ -17,6 +18,8 @@ import com.jess.arms.integration.AppManager;
import com.jess.arms.mvp.BasePresenter; import com.jess.arms.mvp.BasePresenter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List; import java.util.List;
import javax.inject.Inject; import javax.inject.Inject;
...@@ -60,7 +63,7 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas ...@@ -60,7 +63,7 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
protected List<BillOrderMoney> mOrderMoneyList = new ArrayList<>(); protected List<BillOrderMoney> mOrderMoneyList = new ArrayList<>();
//選中操作的食品下標 //選中操作的食品下標
protected int orderSelectPosition= -1; protected int orderSelectPosition = -1;
//食品數量 //食品數量
protected int foodCount; protected int foodCount;
...@@ -81,6 +84,7 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas ...@@ -81,6 +84,7 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
foodCount = initFoodCount(); foodCount = initFoodCount();
totalMoney = initFoodTotalMoney(); totalMoney = initFoodTotalMoney();
resetSelected();
initOrderAdapter(); initOrderAdapter();
} }
...@@ -96,6 +100,8 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas ...@@ -96,6 +100,8 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
private void initOrderAdapter() { private void initOrderAdapter() {
if (mSelectMealAdapter == null) { if (mSelectMealAdapter == null) {
mSelectMealAdapter = new SelectMealAdapter(IActivity, orderFoodList, this); mSelectMealAdapter = new SelectMealAdapter(IActivity, orderFoodList, this);
//設置子父級下標
mSelectMealAdapter.setIndex();
} }
if (mOrderMoneyAdapter == null) { if (mOrderMoneyAdapter == null) {
mOrderMoneyAdapter = new OrderMoneyAdapter(IActivity, mOrderMoneyList, cashStr); mOrderMoneyAdapter = new OrderMoneyAdapter(IActivity, mOrderMoneyList, cashStr);
...@@ -158,10 +164,17 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas ...@@ -158,10 +164,17 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
return true; return true;
} }
public void resetSelected() {
for (int i = 0; i < orderFoodList.size(); i++) {
OrderDetail datasBean = orderFoodList.get(i);
datasBean.setSelected(0);
}
}
public double initFoodTotalMoney() { public double initFoodTotalMoney() {
double total = 0.0; double total = 0.0;
for (OrderDetail food : myOrderManage.getOrderFoodList()) { for (OrderDetail food : myOrderManage.getOrderFoodList()) {
total += food.getAmount_price(); total += food.getPrice();
} }
return total; return total;
} }
...@@ -174,10 +187,101 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas ...@@ -174,10 +187,101 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
return cout; return cout;
} }
protected String getDeleteFoodIds() {
StringBuilder builder = new StringBuilder();
List<OrderDetail> orderDetails = getOldOrderFoodLists();
int start_position = mSelectMealAdapter.getSelect_full_start_position() + 1;
int end_position = mSelectMealAdapter.getSelect_full_end_position() + 1;
for (int i = orderDetails.size() - 1; i >= 0; i--) {
int my_index = orderDetails.get(i).getMyIndex();
if (start_position <= my_index && my_index <= end_position) {
OrderDetail orderDetail1 = orderDetails.get(i);
builder.append(orderDetail1.getId());
if (i <= (orderDetails.size() - 1)) {
builder.append(",");
}
}
}
String str = builder.toString();
if (str.endsWith(",")) {
str = str.substring(0, str.length() - 1);
}
return str;
}
protected OrderRequest getCreateOrderRequest(List<OrderDetail> foodList) {
OrderRequest request = new OrderRequest();
request.setOrderDetails(orderDetailBeanToFoodRequest(foodList));
request.setPerson(OpenTableManage.getDefault().getPeopleNumber());
request.setTableId(OpenTableManage.getDefault().getTableBean().getId());
return request;
}
private List<OrderBean.OrderDetailsBean> orderDetailBeanToFoodRequest(List<OrderDetail> foodList) {
List<OrderBean.OrderDetailsBean> requests = new ArrayList<>();
if (foodList != null) {
for (OrderDetail food : foodList) {
OrderBean.OrderDetailsBean request = new OrderBean.OrderDetailsBean();
request.setProductName(food.getProductName());
request.setProductId(food.getId());
request.setParentId(food.getParentId());
request.setNumber(food.getNumber());
request.setPrice(food.getPrice());
request.setType(food.getType());
request.setLunchboxPrice(0);
requests.add(request);
}
}
return requests;
}
protected List<OrderDetail> getNewOrderFoodLists() {
List<OrderDetail> orderDetails = new ArrayList<>();
for (int i = 0; i < getOrderFoodLists().size(); i++) {
OrderDetail orderDetail = getOrderFoodLists().get(i);
if (orderDetail.isNew()) {
orderDetails.add(orderDetail);
}
}
return orderDetails;
}
protected List<OrderDetail> getOldOrderFoodLists() {
List<OrderDetail> orderDetails = new ArrayList<>();
for (int i = 0; i < getOrderFoodLists().size(); i++) {
OrderDetail orderDetail = getOrderFoodLists().get(i);
if (!orderDetail.isNew()) {
orderDetails.add(orderDetail);
}
}
return orderDetails;
}
public List<OrderDetail> getOrderFoodLists() { public List<OrderDetail> getOrderFoodLists() {
return myOrderManage.getOrderFoodList(); return myOrderManage.getOrderFoodList();
} }
protected void sortSelectMealByIsNew() {
List<OrderDetail> orderDetail = orderFoodList;
List<OrderDetail> sortOrderList = new ArrayList<>();
for (int i = 0; i < orderDetail.size(); i++) {
sortOrderList.add(orderDetail.get(i));
}
Comparator c = new Comparator<OrderDetail>() {
@Override
public int compare(OrderDetail o1, OrderDetail o2) {
Boolean isnew1 = o1.isNew();
Boolean isnew2 = o2.isNew();
return isnew1.compareTo(isnew2);
}
};
Collections.sort(sortOrderList, c);
orderDetail.clear();
for (int i = 0; i < sortOrderList.size(); i++) {
orderDetail.add(sortOrderList.get(i));
}
}
protected String getTableName() { protected String getTableName() {
String tablename = ""; String tablename = "";
if (OpenTableManage.getDefault().isSplite()) { if (OpenTableManage.getDefault().isSplite()) {
......
...@@ -3,7 +3,6 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter; ...@@ -3,7 +3,6 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter;
import android.app.Activity; import android.app.Activity;
import android.app.Application; import android.app.Application;
import android.content.Context; import android.content.Context;
import android.text.TextUtils;
import android.view.View; import android.view.View;
import com.gingersoft.gsa.cloud.base.utils.VibratorUtils; import com.gingersoft.gsa.cloud.base.utils.VibratorUtils;
...@@ -24,7 +23,7 @@ import me.jessyan.rxerrorhandler.core.RxErrorHandler; ...@@ -24,7 +23,7 @@ import me.jessyan.rxerrorhandler.core.RxErrorHandler;
import javax.inject.Inject; import javax.inject.Inject;
import com.gingersoft.gsa.cloud.table.mvpcontract.FineItemKindContract; import com.gingersoft.gsa.cloud.table.mvp.contract.FineItemKindContract;
import org.simple.eventbus.EventBus; import org.simple.eventbus.EventBus;
......
...@@ -145,7 +145,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -145,7 +145,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), JsonUtils.toJson(request)); RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), JsonUtils.toJson(request));
mModel.createOrder(requestBody) mModel.createOrder(requestBody)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading("")) .doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread()) .subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading()) .doAfterTerminate(() -> mRootView.hideLoading())
...@@ -167,22 +167,15 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -167,22 +167,15 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
} }
private void addOrderFood() { private void addOrderFood() {
List<OrderDetail> foods = MyOrderManage.getInstance().getOrderFoodList(); List<OrderDetail> newFoods = getNewOrderFoodLists();
List<OrderDetail> newFoods = new ArrayList<>();
for (OrderDetail food : foods) {
if (food.isNew()) {
newFoods.add(food);
}
}
for (OrderDetail food : newFoods) { for (OrderDetail food : newFoods) {
food.setOrderId(MyOrderManage.getInstance().getOrderId()); food.setOrderId(MyOrderManage.getInstance().getOrderId());
} }
List<OrderBean.OrderDetailsBean> orderBeans = OrderBean.transOrderDetails(newFoods); List<OrderBean.OrderDetailsBean> orderBeans = OrderBean.transOrderDetails(newFoods);
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), JsonUtils.toJson(orderBeans)); RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), JsonUtils.toJson(orderBeans));
// RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), JsonUtils.toJson(getOrderFoodLists()));
mModel.addFood(requestBody) mModel.addFood(requestBody)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading("")) .doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread()) .subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading()) .doAfterTerminate(() -> mRootView.hideLoading())
...@@ -209,7 +202,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -209,7 +202,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
mModel.printOrder(requestBody) mModel.printOrder(requestBody)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading("")) .doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread()) .subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading()) .doAfterTerminate(() -> mRootView.hideLoading())
...@@ -252,7 +245,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -252,7 +245,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
// .call(); // .call();
// } // }
private OrderRequest getCreateOrderRequest(List<OrderDetail> foodList) { protected OrderRequest getCreateOrderRequest(List<OrderDetail> foodList) {
OrderRequest request = new OrderRequest(); OrderRequest request = new OrderRequest();
request.setOrderDetails(orderDetailBeanToFoodRequest(foodList)); request.setOrderDetails(orderDetailBeanToFoodRequest(foodList));
request.setPerson(OpenTableManage.getDefault().getPeopleNumber()); request.setPerson(OpenTableManage.getDefault().getPeopleNumber());
...@@ -260,21 +253,21 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -260,21 +253,21 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
return request; return request;
} }
private OrderRequest getAddOrderFoodRequest(List<OrderDetail> foodList) { protected OrderRequest getAddOrderFoodRequest(List<OrderDetail> foodList) {
OrderRequest request = new OrderRequest(); OrderRequest request = new OrderRequest();
request.setOrderDetails(orderDetailBeanToFoodRequest(foodList)); request.setOrderDetails(orderDetailBeanToFoodRequest(foodList));
return request; return request;
} }
private List<OrderRequest.Request> orderDetailBeanToFoodRequest(List<OrderDetail> foodList) { private List<OrderBean.OrderDetailsBean> orderDetailBeanToFoodRequest(List<OrderDetail> foodList) {
List<OrderRequest.Request> requests = new ArrayList<>(); List<OrderBean.OrderDetailsBean> requests = new ArrayList<>();
if (foodList != null) { if (foodList != null) {
for (OrderDetail food : foodList) { for (OrderDetail food : foodList) {
OrderRequest.Request request = new OrderRequest.Request(); OrderBean.OrderDetailsBean request = new OrderBean.OrderDetailsBean();
request.setProductName(food.getName()); request.setProductName(food.getProductName());
request.setProductId(food.getFid()); request.setProductId(food.getId());
request.setNumber(food.getNumber()); request.setNumber(food.getNumber());
request.setPrice(food.getAmount_price()); request.setPrice(food.getPrice());
request.setLunchboxPrice(0); request.setLunchboxPrice(0);
requests.add(request); requests.add(request);
} }
......
...@@ -102,15 +102,16 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model ...@@ -102,15 +102,16 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
@Override @Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) { public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
PayMethod method = (PayMethod) adapter.getItem(position); PayMethod method = (PayMethod) adapter.getItem(position);
if (!isCashPayMethod(method)) { // if (!isCashPayMethod(method)) {
PayMethod N5PayMethod = getSelectN5PayMethod(); // PayMethod N5PayMethod = getSelectN5PayMethod();
if (N5PayMethod != null) { // if (N5PayMethod != null) {
//最多選擇2中支付方式(現金+其他) // //最多選擇2中支付方式(現金+其他)
mBillMoneyList.remove(N5PayMethod); // mBillMoneyList.remove(N5PayMethod);
mBillMoneyAdapter.notifyDataSetChanged(); // mBillMoneyAdapter.notifyDataSetChanged();
} // }
} // }
if (!mBillMoneyList.contains(method)) { mBillMoneyList.clear();
// if (!mBillMoneyList.contains(method)) {
double differenceMoney = getDifferenceMoney(); double differenceMoney = getDifferenceMoney();
if (differenceMoney > -1) { if (differenceMoney > -1) {
//補足差額 //補足差額
...@@ -123,7 +124,7 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model ...@@ -123,7 +124,7 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
mRootView.setBillMoneyRvScrollToPosition(mBillMoneyList.size() - 1); mRootView.setBillMoneyRvScrollToPosition(mBillMoneyList.size() - 1);
//設置差額狀態 //設置差額狀態
mRootView.setDifferenceText(); mRootView.setDifferenceText();
} // }
} }
}); });
mBillMoneyAdapter.setOnItemClickListener(new BillMoneyAdapter.OnItemClickListener() { mBillMoneyAdapter.setOnItemClickListener(new BillMoneyAdapter.OnItemClickListener() {
...@@ -162,7 +163,6 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model ...@@ -162,7 +163,6 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
List<PayMethod> payMethods = JsonUtils.parseArray(baseResult.getData(), PayMethod.class); List<PayMethod> payMethods = JsonUtils.parseArray(baseResult.getData(), PayMethod.class);
mBillMethodList.addAll(payMethods); mBillMethodList.addAll(payMethods);
mBillMethodAdapter.notifyDataSetChanged(); mBillMethodAdapter.notifyDataSetChanged();
// mRootView.paySuccess();
} }
} }
}); });
...@@ -180,23 +180,24 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model ...@@ -180,23 +180,24 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
.add("orderId", MyOrderManage.getInstance().getOrderId() + "") .add("orderId", MyOrderManage.getInstance().getOrderId() + "")
.add("person", OpenTableManage.getDefault().getPeopleNumber() + "") .add("person", OpenTableManage.getDefault().getPeopleNumber() + "")
.add("status", statius) .add("status", statius)
.add("orderPayType", mBillMoneyList.get(0).getId()+"")
.build(); .build();
// mModel.updateOrderStatus(requestBody) mModel.updateOrderStatus(requestBody)
// .subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
// .doOnSubscribe(disposable -> mRootView.showLoading("")) .doOnSubscribe(disposable -> mRootView.showLoading(""))
// .subscribeOn(AndroidSchedulers.mainThread()) .subscribeOn(AndroidSchedulers.mainThread())
// .observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
// .doAfterTerminate(()-> mRootView.hideLoading()) .doAfterTerminate(() -> mRootView.hideLoading())
// .compose(RxLifecycleUtils.bindToLifecycle(mRootView)) .compose(RxLifecycleUtils.bindToLifecycle(mRootView))
// .subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) { .subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
// @Override @Override
// public void onNext(BaseResult baseResult) { public void onNext(BaseResult baseResult) {
// if(baseResult.isSuccess()){ if (baseResult.isSuccess()) {
// //結賬成功 //結賬成功
//// mRootView.paySuccess(); mRootView.paySuccess();
// } }
// } }
// }); });
} }
public void pressExact() { public void pressExact() {
......
...@@ -223,7 +223,7 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen ...@@ -223,7 +223,7 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen
//总的页数 //总的页数
private int totalPage; private int totalPage;
//每页显示的最大的数量 //每页显示的最大的数量
private int mPageSize = 12; // private int mPageSize = 10;
//GridView作为一个View对象添加到ViewPager集合中 //GridView作为一个View对象添加到ViewPager集合中
private List<View> viewPagerList; private List<View> viewPagerList;
private static final int FINISH = 101; private static final int FINISH = 101;
...@@ -288,13 +288,13 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen ...@@ -288,13 +288,13 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen
foodGroupList.get(0).setSelected(true); foodGroupList.get(0).setSelected(true);
//总的页数向上取整 //总的页数向上取整
totalPage = (int) Math.ceil(foodGroupList.size() * 1.0 / mPageSize); totalPage = (int) Math.ceil(foodGroupList.size() * 1.0 / GoldConstants.foodGriupPageSize);
viewPagerList = new ArrayList<>(); viewPagerList = new ArrayList<>();
for (int i = 0; i < totalPage; i++) { for (int i = 0; i < totalPage; i++) {
//每个页面都是inflate出一个新实例 //每个页面都是inflate出一个新实例
LineGridView gridView = (LineGridView) View.inflate(this, R.layout.meal_food_group_grid, null); LineGridView gridView = (LineGridView) View.inflate(this, R.layout.meal_food_group_grid, null);
gridView.setNumColumns(GoldConstants.foodGriupColCount); gridView.setNumColumns(GoldConstants.foodGriupColCount);
HorizontalGridViewAdpter horizontalGridViewAdpter = new HorizontalGridViewAdpter(this, foodGroupList, i, mPageSize); HorizontalGridViewAdpter horizontalGridViewAdpter = new HorizontalGridViewAdpter(this, foodGroupList, i, GoldConstants.foodGriupPageSize);
gridView.setAdapter(horizontalGridViewAdpter); gridView.setAdapter(horizontalGridViewAdpter);
if (i == 0) { if (i == 0) {
mFoodGroupGridViewAdapter = horizontalGridViewAdpter; mFoodGroupGridViewAdapter = horizontalGridViewAdpter;
...@@ -834,7 +834,7 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen ...@@ -834,7 +834,7 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen
@Override @Override
public void showLoading(String message) { public void showLoading(String message) {
if (!TextUtils.isEmpty(message)) if (message != null)
LoadingDialog.showDialogForLoading(this, message, true); LoadingDialog.showDialogForLoading(this, message, true);
else else
LoadingDialog.showDialogForLoading(this); LoadingDialog.showDialogForLoading(this);
...@@ -880,11 +880,11 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen ...@@ -880,11 +880,11 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen
initFineItemTabBarViewPage(); initFineItemTabBarViewPage();
fineItemAllFragment.onMidEvent(mPresenter.getCurrentOrderDetailBean().getFid()); fineItemAllFragment.onMidEvent(mPresenter.getCurrentOrderDetailBean().getProductId());
// EventBus.getDefault().post(mSoldoutList_full, "FineItemAllFragment_onCurrentSlodoutFoodList_FullEvent"); // EventBus.getDefault().post(mSoldoutList_full, "FineItemAllFragment_onCurrentSlodoutFoodList_FullEvent");
// EventBus.getDefault().post(mPresenter.getCurrentOrderDetailBean().getFid(), "FineItemAllFragment_onMidEvent"); // EventBus.getDefault().post(mPresenter.getCurrentOrderDetailBean().getFid(), "FineItemAllFragment_onMidEvent");
fineItemKindFragment.onMidEvent(mPresenter.getCurrentOrderDetailBean().getFid()); fineItemKindFragment.onMidEvent(mPresenter.getCurrentOrderDetailBean().getProductId());
// EventBus.getDefault().post(mSoldoutList_full, "FineItemKindFragment_onCurrentSlodoutFoodList_FullEvent"); // EventBus.getDefault().post(mSoldoutList_full, "FineItemKindFragment_onCurrentSlodoutFoodList_FullEvent");
// EventBus.getDefault().post(mPresenter.getCurrentOrderDetailBean().getFid(), "FineItemKindFragment_onMidEvent"); // EventBus.getDefault().post(mPresenter.getCurrentOrderDetailBean().getFid(), "FineItemKindFragment_onMidEvent");
......
package com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal; package com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal;
import android.content.Context; import android.content.Context;
import android.text.TextUtils;
import android.view.Gravity; import android.view.Gravity;
import android.view.View; import android.view.View;
import android.widget.ImageView; import android.widget.ImageView;
...@@ -224,7 +225,7 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> { ...@@ -224,7 +225,7 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> {
private void setName(OrderDetail datasBean) { private void setName(OrderDetail datasBean) {
int flevel = datasBean.getItemType(); int flevel = datasBean.getItemType();
String name = datasBean.getName(); String name = datasBean.getProductName();
switch (flevel) { switch (flevel) {
case 1: case 1:
tv_number.setGravity(Gravity.LEFT); tv_number.setGravity(Gravity.LEFT);
...@@ -239,6 +240,22 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> { ...@@ -239,6 +240,22 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> {
break; break;
} }
tv_name.setText(name); tv_name.setText(name);
int selected = datasBean.getSelected();
if (selected != 0) {
//作为主体被选中 开启跑马灯效果
tv_name.setFocusable(true);
tv_name.setEllipsize(TextUtils.TruncateAt.MARQUEE);//设置旋转
tv_name.setMarqueeRepeatLimit(-1);//-1为死循环,1为1次
tv_name.setSelected(true);//设置不获取焦点就可以转
tv_name.setFocusableInTouchMode(true);
} else {
//关闭跑马灯效果
tv_name.setFocusable(false);
tv_name.setMarqueeRepeatLimit(0);
tv_name.setSelected(false);
tv_name.setFocusableInTouchMode(false);
}
} }
private void setNumber(OrderDetail datasBean) { private void setNumber(OrderDetail datasBean) {
...@@ -252,7 +269,7 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> { ...@@ -252,7 +269,7 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> {
} }
private void setMoney(OrderDetail datasBean) { private void setMoney(OrderDetail datasBean) {
double price = datasBean.getAmount_price(); double price = datasBean.getPrice();
if (price != 0) { if (price != 0) {
tv_money.setText(carshStr + MoneyUtil.get_ItemDecimals_money(price)); tv_money.setText(carshStr + MoneyUtil.get_ItemDecimals_money(price));
} else { } else {
...@@ -368,7 +385,7 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> { ...@@ -368,7 +385,7 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> {
if (orderItem != null && orderItem.isNew()) { if (orderItem != null && orderItem.isNew()) {
mInfos.remove(i); mInfos.remove(i);
notifyItemChanged(i); notifyItemChanged(i);
Food orderBean = mMealStandPresenter.getOrderFoodById(orderItem.getFid()); Food orderBean = mMealStandPresenter.getOrderFoodById(orderItem.getId());
if (orderBean != null) { if (orderBean != null) {
mMealStandPresenter.setUserMaxQty(orderBean); mMealStandPresenter.setUserMaxQty(orderBean);
} }
...@@ -420,7 +437,93 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> { ...@@ -420,7 +437,93 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> {
* 删除食品子项及折扣 * 删除食品子项及折扣
*/ */
public void removeChildItem() { public void removeChildItem() {
OrderDetail orderDetail= mInfos.get(select_position);
if (select_position > -1) {
switch (orderDetail.getItemType()) {
case 1:
//第一层下方有细项 从下方往上删
if (select_end_position != 0 && select_end_position > select_position) {
for (int i = select_end_position; i > select_position; i--) {
OrderDetail orderBean = mInfos.get(i);
boolean isParentChild = orderBean.getParentIndex() == orderDetail.getMyIndex();
if (orderBean.getItemType() == 3 && !isParentChild) {
//第二层 下面有第三层子项也要一并删除
removeAllChild3ByCombo(orderBean);
} else {
mInfos.remove(i);
notifyItemChanged(i);
}
break;
}
} else {
//第一层没有子食品 直接退出
return;
}
break;
case 2:
if (select_end_position != 0 &&
select_end_position > select_position &&
hasChild3Food(orderDetail)) {
//第二层 下面有第三层子项也要一并删除
for (int i = select_end_position; i >= select_position; i--) {
mInfos.remove(i);
notifyItemChanged(i);
}
} else {
// if (mInfos.get(select_position).comid.equals("discount")) {
// //如果刪除的是折扣,這裡初始化父食品D標識
// int parent_index = mInfos.get(select_position).getParent_index() -1;
// if (parent_index > -1 && parent_index < mInfos.size()) {
// mInfos.get(parent_index).setDiscount_double1(true);
// }
// }
mInfos.remove(select_position);
notifyItemChanged(select_position);
}
break;
case 3:
mInfos.remove(select_position);
notifyItemChanged(select_position);
break;
}
}
if (select_position >= mInfos.size()) {
select_position = mInfos.size() - 1;
}
if (mInfos.size() == 0) {
//全部删除重置选中下标
select_position = -1;
} else {
switch (orderDetail.getItemType()) {
case 1:
break;
case 2:
int comboIndex = getComboEdgeIndex();
if (comboIndex != (orderDetail.getMyIndex() - 1)) {
select_position -= 1;
} else {
if (select_position == mInfos.size()) {
select_position -= 1;
}
}
break;
case 3:
int edgeIndex = getChild2EdgeIndex();
if (edgeIndex != (orderDetail.getMyIndex() - 1)) {
select_position -= 1;
} else {
if (select_position == mInfos.size()) {
select_position -= 1;
}
}
break;
}
}
setIndex();
setSelectPosition(select_position);
setMyOrderManageSelectPosition();
} }
private void removeIntactFoodItem() { private void removeIntactFoodItem() {
...@@ -437,6 +540,24 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> { ...@@ -437,6 +540,24 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> {
} }
} }
/**
* 删除第二层子食品下所有第三层备注
*
* @param orderDetail
* @return
*/
private boolean removeAllChild3ByCombo(OrderDetail orderDetail) {
boolean remove = false;
for (int i = mInfos.size() - 1; i >= 0; i--) {
boolean accordChild3 = mInfos.get(i).getParentIndex() == orderDetail.getParentIndex() || mInfos.get(i).getMyIndex() == orderDetail.getParentIndex();
if (mInfos.get(i).getItemType() != 1 && accordChild3) {
mInfos.remove(i);
notifyItemChanged(i);
remove = true;
}
}
return remove;
}
public void setMyOrderManageSelectPosition() { public void setMyOrderManageSelectPosition() {
MyOrderManage.getInstance().setSelstartpostion(select_start_position); MyOrderManage.getInstance().setSelstartpostion(select_start_position);
...@@ -504,17 +625,17 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> { ...@@ -504,17 +625,17 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> {
private void setItemNo(OrderDetail foodBean) { private void setItemNo(OrderDetail foodBean) {
switch (foodBean.getItemType()) { switch (foodBean.getItemType()) {
case 1: case 1:
foodBean.setParentId(foodBean.getFid()); // foodBean.setParentId(foodBean.getId());
break; break;
case 2: case 2:
case 3: case 3:
long itemno = -1; long itemno = -1;
if (select_position != -1 && select_position < mInfos.size()) { if (select_position != -1 && select_position < mInfos.size()) {
if (mInfos.get(select_position).isIsfood()) { if (mInfos.get(select_position).isIsfood()) {
itemno = mInfos.get(select_position).getFid(); itemno = mInfos.get(select_position).getId();
} else { } else {
if (select_start_position != -1 && select_start_position < mInfos.size()) { if (select_start_position != -1 && select_start_position < mInfos.size()) {
itemno = mInfos.get(select_start_position).getFid(); itemno = mInfos.get(select_start_position).getId();
} }
} }
} }
...@@ -752,12 +873,23 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> { ...@@ -752,12 +873,23 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> {
notifyDataSetChanged(); notifyDataSetChanged();
} }
private void resetSelected() {
/**
* 获取食品子项最后一个子项位置
*
* @return
*/
private int getComboEdgeIndex() {
int parent_index = getParentFoodIndex(mInfos.get(select_position));
int edgeIndex = parent_index;
for (int i = 0; i < mInfos.size(); i++) { for (int i = 0; i < mInfos.size(); i++) {
OrderDetail datasBean = mInfos.get(i); OrderDetail datasBean = mInfos.get(i);
// datasBean.setIsSelected(false); if (datasBean.getItemType() == 2 && datasBean.getParentIndex() == parent_index) {
edgeIndex = i;
} }
} }
return edgeIndex;
}
public List<OrderDetail> getInfos() { public List<OrderDetail> getInfos() {
return mInfos; return mInfos;
......
...@@ -3,7 +3,6 @@ package com.gingersoft.gsa.cloud.table.mvp.ui.fragment; ...@@ -3,7 +3,6 @@ package com.gingersoft.gsa.cloud.table.mvp.ui.fragment;
import android.app.Activity; import android.app.Activity;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.text.TextUtils;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
...@@ -16,7 +15,7 @@ import com.jess.arms.base.BaseFragment; ...@@ -16,7 +15,7 @@ import com.jess.arms.base.BaseFragment;
import com.jess.arms.base.DefaultAdapter; import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.di.component.AppComponent; import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
import com.gingersoft.gsa.cloud.table.mvpcontract.FineItemKindContract; import com.gingersoft.gsa.cloud.table.mvp.contract.FineItemKindContract;
import com.gingersoft.gsa.cloud.table.mvp.presenter.FineItemKindPresenter; import com.gingersoft.gsa.cloud.table.mvp.presenter.FineItemKindPresenter;
import org.simple.eventbus.Subscriber; import org.simple.eventbus.Subscriber;
......
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RelativeLayout
android:id="@+id/rl_container" android:id="@+id/rl_container"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
...@@ -10,11 +14,11 @@ ...@@ -10,11 +14,11 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginRight="2px" android:layout_marginRight="2px"
android:layout_marginTop="2px" android:layout_marginTop="2px"
android:text="food"
android:textSize="@dimen/sp_14"
android:gravity="center" android:gravity="center"
android:text="food"
android:textAppearance="?android:attr/textAppearanceLarge" android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@drawable/meal_selector_food_backgroup" /> android:textColor="@drawable/meal_selector_food_backgroup"
android:textSize="@dimen/sp_14" />
<TextView <TextView
android:id="@+id/tv_number" android:id="@+id/tv_number"
...@@ -34,9 +38,9 @@ ...@@ -34,9 +38,9 @@
android:layout_gravity="right" android:layout_gravity="right"
android:layout_marginRight="2px" android:layout_marginRight="2px"
android:layout_marginTop="2px" android:layout_marginTop="2px"
android:visibility="invisible"
android:background="@drawable/ui_selector_white_rect" android:background="@drawable/ui_selector_white_rect"
android:text="sold" /> android:text="sold"
android:visibility="invisible" />
<View <View
android:id="@+id/right_line" android:id="@+id/right_line"
...@@ -52,4 +56,5 @@ ...@@ -52,4 +56,5 @@
android:layout_alignParentTop="true" android:layout_alignParentTop="true"
android:background="@color/theme_black" /> android:background="@color/theme_black" />
</RelativeLayout>
</RelativeLayout> </RelativeLayout>
...@@ -70,6 +70,10 @@ public class LoginPresenter extends BasePresenter<LoginContract.Model, LoginCont ...@@ -70,6 +70,10 @@ public class LoginPresenter extends BasePresenter<LoginContract.Model, LoginCont
.add("userName", "admin") .add("userName", "admin")
.add("passWord", "123456") .add("passWord", "123456")
.build(); .build();
// requestBody = new FormBody.Builder()
// .add("userName", "19901001")
// .add("passWord", "123456")
// .build();
} else { } else {
requestBody = new FormBody.Builder() requestBody = new FormBody.Builder()
.add("userName", account.trim() + "") .add("userName", account.trim() + "")
......
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