Commit dad8710e by Wyh

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	table-mode/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/activity/OrderCenterActivity.java
parents cf0481a6 b5dd920f
...@@ -810,21 +810,36 @@ public class DeviceUtils { ...@@ -810,21 +810,36 @@ public class DeviceUtils {
} }
public static boolean netIsConnected(Context context) { public static boolean netIsConnected(Context context) {
ConnectivityManager connectMgr = (ConnectivityManager) context.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE); // ConnectivityManager connectMgr = (ConnectivityManager) context.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
//手机网络连接状态 // //手机网络连接状态
NetworkInfo mobNetInfo = null; // NetworkInfo mobNetInfo = null;
try { // try {
mobNetInfo = connectMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); // mobNetInfo = connectMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
} catch (SecurityException e) { // } catch (SecurityException e) {
e.printStackTrace(); // e.printStackTrace();
} // }
//WIFI连接状态 // //WIFI连接状态
NetworkInfo wifiNetInfo = connectMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI); // NetworkInfo wifiNetInfo = connectMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (mobNetInfo != null && !mobNetInfo.isConnected() && !wifiNetInfo.isConnected()) { // if (mobNetInfo != null && !mobNetInfo.isConnected() && !wifiNetInfo.isConnected()) {
//当前无可用的网络 // //当前无可用的网络
return false; // return false;
// }
// return true;
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (cm == null) {
} else {
//如果仅仅是用来判断网络连接
//则可以使用 cm.getActiveNetworkInfo().isAvailable();
NetworkInfo[] info = cm.getAllNetworkInfo();
if (info != null) {
for (int i = 0; i < info.length; i++) {
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
}
} }
return true; return false;
} }
/** /**
......
...@@ -52,9 +52,9 @@ public class GsaCloudApplication extends BaseApplication { ...@@ -52,9 +52,9 @@ public class GsaCloudApplication extends BaseApplication {
private static GsaCloudApplication mAppContext; private static GsaCloudApplication mAppContext;
private Activity mCurrentActivity; private Activity mCurrentActivity;
/** /**
* 设置请求超时默认20秒钟 从后台获取超时时间 * 设置请求超时默认15秒钟
*/ */
public static int REQUEST_TIMEOUT = 20; public static int REQUEST_TIMEOUT = 15;
public static boolean isLogin = false; public static boolean isLogin = false;
public static CurrentAndroidSetting androidSetting; public static CurrentAndroidSetting androidSetting;
......
...@@ -2,6 +2,8 @@ package com.gingersoft.gsa.cloud.base.common.bean; ...@@ -2,6 +2,8 @@ package com.gingersoft.gsa.cloud.base.common.bean;
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.database.bean.Food;
import java.io.Serializable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -106,9 +108,11 @@ public class OrderBean { ...@@ -106,9 +108,11 @@ public class OrderBean {
this.orderDetails = orderDetails; this.orderDetails = orderDetails;
} }
public static class OrderDetailsBean { public static class OrderDetailsBean implements Serializable {
/** /**
* id : 1621502 * id : 1621502
* orderId : 47039
* parentId : 1639956
* productName : 胡椒排骨涼瓜煲 * productName : 胡椒排骨涼瓜煲
* productId : 4257 * productId : 4257
* price : 58.0 * price : 58.0
...@@ -138,8 +142,7 @@ public class OrderBean { ...@@ -138,8 +142,7 @@ public class OrderBean {
} }
public OrderDetailsBean(String productName, long productId,long parentId, double price, double lunchboxPrice, public OrderDetailsBean(String productName, long productId,long parentId, double price, double lunchboxPrice, int number,byte type, long orderId) {
int number,byte type, long orderId) {
this.productName = productName; this.productName = productName;
this.productId = productId; this.productId = productId;
this.parentId = parentId; this.parentId = parentId;
......
...@@ -508,7 +508,7 @@ public class OrderDetail implements Serializable { ...@@ -508,7 +508,7 @@ public class OrderDetail implements Serializable {
orderDetail.setParentId(orderDetailsBean.getParentId()); orderDetail.setParentId(orderDetailsBean.getParentId());
orderDetail.setProductName(orderDetailsBean.getProductName()); orderDetail.setProductName(orderDetailsBean.getProductName());
orderDetail.setNumber(orderDetailsBean.getNumber()); orderDetail.setNumber(orderDetailsBean.getNumber());
orderDetail.setPrice(orderDetailsBean.getNumber() * orderDetailsBean.getPrice()); orderDetail.setPrice(orderDetailsBean.getPrice() * orderDetailsBean.getNumber());
orderDetail.setVisible(orderDetailsBean.getStatus() == 0); orderDetail.setVisible(orderDetailsBean.getStatus() == 0);
// orderDetail.setAutomod(foods.getAutomod()); // orderDetail.setAutomod(foods.getAutomod());
orderDetail.setIsfood(orderDetailsBean.getType() == FOOD_TYPE); orderDetail.setIsfood(orderDetailsBean.getType() == FOOD_TYPE);
...@@ -588,7 +588,7 @@ public class OrderDetail implements Serializable { ...@@ -588,7 +588,7 @@ public class OrderDetail implements Serializable {
* @param isRvMealClicked * @param isRvMealClicked
* @return * @return
*/ */
public static OrderDetail comboTransOrderDetail(ComboItem foodCombo, long id,int number, String prop, boolean isRvMealClicked) { public static OrderDetail comboTransOrderDetail(ComboItem foodCombo, long id, int number, String prop, boolean isRvMealClicked) {
OrderDetail orderDetail = new OrderDetail(); OrderDetail orderDetail = new OrderDetail();
orderDetail.setProductName(foodCombo.getName()); orderDetail.setProductName(foodCombo.getName());
if (foodCombo.getFid() != null) { if (foodCombo.getFid() != null) {
...@@ -625,7 +625,7 @@ public class OrderDetail implements Serializable { ...@@ -625,7 +625,7 @@ public class OrderDetail implements Serializable {
* @param number * @param number
* @return * @return
*/ */
public static OrderDetail modifierTransOrderDetail(Modifier modifier,long id, int number) { public static OrderDetail modifierTransOrderDetail(Modifier modifier, long id, int number) {
OrderDetail orderDetail = new OrderDetail(); OrderDetail orderDetail = new OrderDetail();
orderDetail.setProductName(modifier.getModifierName()); orderDetail.setProductName(modifier.getModifierName());
orderDetail.setTopId(modifier.getFid()); orderDetail.setTopId(modifier.getFid());
......
...@@ -9,7 +9,9 @@ public class AppConstans { ...@@ -9,7 +9,9 @@ public class AppConstans {
public static final String APP_TYPE = "9"; public static final String APP_TYPE = "9";
public static final String VIBRATION_PROGRESS = "vibration_progress";//震动强度 public static final String VIBRATION_PROGRESS = "vibration_progress";//震动强度
public static final String PRESSSOUND_PROGRESS = "presssound_progress";//按键音量 public static final String PRESSSOUND_PROGRESS = "presssound_progress";//按键音量
} }
...@@ -12,5 +12,4 @@ public class Constans { ...@@ -12,5 +12,4 @@ public class Constans {
} }
...@@ -85,18 +85,14 @@ public class AppCrashHandler implements UncaughtExceptionHandler { ...@@ -85,18 +85,14 @@ public class AppCrashHandler implements UncaughtExceptionHandler {
**/ **/
private String ErrorStr = "發生錯誤, 請聯絡支援人員!"; private String ErrorStr = "發生錯誤, 請聯絡支援人員!";
/** /**
* 使用Properties来保存设备的信息和错误堆栈信息
*/
private static final String VERSION_NAME = "versionName";
private static final String VERSION_CODE = "versionCode";
private static final String STACK_TRACE = "STACK_TRACE";
/**
* 错误报告文件的扩展名 * 错误报告文件的扩展名
*/ */
private static final String CRASH_REPORTER_EXTENSION = ".cyposdebug"; private static final String CRASH_REPORTER_EXTENSION = ".json";
private SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd-HH:mm:ss");// 用于格式化日期,作为日志文件名的一部分 // 用于格式化日期,作为日志文件名的一部分
private Map<String, String> info = new HashMap<String, String>();// 用来存储设备信息和异常信息 private SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd-HH:mm:ss");
// 用来存储设备信息和异常信息
private Map<String, String> info = new HashMap<>();
/** /**
* 保证只有一个CrashHandler实例 * 保证只有一个CrashHandler实例
...@@ -125,7 +121,6 @@ public class AppCrashHandler implements UncaughtExceptionHandler { ...@@ -125,7 +121,6 @@ public class AppCrashHandler implements UncaughtExceptionHandler {
mContext = ctx; mContext = ctx;
mDefaultHandler = Thread.getDefaultUncaughtExceptionHandler(); mDefaultHandler = Thread.getDefaultUncaughtExceptionHandler();
Thread.setDefaultUncaughtExceptionHandler(this); Thread.setDefaultUncaughtExceptionHandler(this);
File file = new File(FileUtils.ERRORLOG_PATH); File file = new File(FileUtils.ERRORLOG_PATH);
if (file.exists()) { if (file.exists()) {
sendCrashReportsToServer(); sendCrashReportsToServer();
...@@ -206,14 +201,10 @@ public class AppCrashHandler implements UncaughtExceptionHandler { ...@@ -206,14 +201,10 @@ public class AppCrashHandler implements UncaughtExceptionHandler {
File file = new File(FileUtils.ERRORLOG_PATH); File file = new File(FileUtils.ERRORLOG_PATH);
File[] files = file.listFiles(); File[] files = file.listFiles();
if (files != null && files.length > 0) { if (files != null && files.length > 0) {
// List<File> fileList = Arrays.asList(files); List<File> fileList = Arrays.asList(files);
List<File> fileList = new ArrayList<>();
fileList.add(files[0]);
HashMap<String, String> params = new HashMap<>(); HashMap<String, String> params = new HashMap<>();
params.put("type", "1"); params.put("type", "1");
params.put("uid", String.valueOf(GsaCloudApplication.getMemberId(mContext))); params.put("uid", String.valueOf(GsaCloudApplication.getMemberId(mContext)));
String url = HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL + Api.upload_app_log; String url = HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL + Api.upload_app_log;
OkHttp3Utils.sendFileMultipart(url, "files", fileList, params) OkHttp3Utils.sendFileMultipart(url, "files", fileList, params)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
...@@ -230,10 +221,10 @@ public class AppCrashHandler implements UncaughtExceptionHandler { ...@@ -230,10 +221,10 @@ public class AppCrashHandler implements UncaughtExceptionHandler {
BaseResult result = JsonUtils.parseObject(data, BaseResult.class); BaseResult result = JsonUtils.parseObject(data, BaseResult.class);
if (result.isSuccess()) { if (result.isSuccess()) {
//上傳成功后刪除對應文件 //上傳成功后刪除對應文件
// for (File dfile : file.listFiles()) { for (File dfile : file.listFiles()) {
// boolean result = dfile.delete(); boolean delete = dfile.delete();
// LogUtil.d(TAG, "delete result : " + result); LogUtil.d(TAG, "delete result : " + delete);
// } }
} }
XLog.d(TAG, "sendFileMultipart onNext: " + data); XLog.d(TAG, "sendFileMultipart onNext: " + data);
} }
...@@ -273,7 +264,7 @@ public class AppCrashHandler implements UncaughtExceptionHandler { ...@@ -273,7 +264,7 @@ 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 MemberName = GsaCloudApplication.getMemberName(mContext); String MemberName = GsaCloudApplication.getMemberName(mContext);
String fileName = "crash-" + MemberName + "-" + time + "-" + timetamp + "-" + DeviceUtils.getVersionName(mContext) + ".xml"; String fileName = "crash-" + MemberName + "-" + time + "-" + timetamp + "-" + DeviceUtils.getVersionName(mContext) + CRASH_REPORTER_EXTENSION;
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);
......
...@@ -2,6 +2,7 @@ package com.gingersoft.gsa.cloud.globalconfig.applyOptions; ...@@ -2,6 +2,7 @@ package com.gingersoft.gsa.cloud.globalconfig.applyOptions;
import android.content.Context; import android.content.Context;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.jess.arms.di.module.ClientModule; import com.jess.arms.di.module.ClientModule;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
...@@ -17,12 +18,13 @@ import okhttp3.OkHttpClient; ...@@ -17,12 +18,13 @@ import okhttp3.OkHttpClient;
* description: * description:
*/ */
public class MyOkhttpConfiguration implements ClientModule.OkhttpConfiguration{ public class MyOkhttpConfiguration implements ClientModule.OkhttpConfiguration {
@Override @Override
public void configOkhttp(Context context, OkHttpClient.Builder builder) { public void configOkhttp(Context context, OkHttpClient.Builder builder) {
// builder.sslSocketFactory(); //支持 Https,详情请百度 // builder.sslSocketFactory(); //支持 Https,详情请百度
builder.writeTimeout(15, TimeUnit.SECONDS); builder.writeTimeout(GsaCloudApplication.REQUEST_TIMEOUT, TimeUnit.SECONDS);
builder.readTimeout(GsaCloudApplication.REQUEST_TIMEOUT, TimeUnit.SECONDS);
//使用一行代码监听 Retrofit/Okhttp 上传下载进度监听,以及 Glide 加载进度监听 详细使用方法查看 https://github.com/JessYanCoding/ProgressManager //使用一行代码监听 Retrofit/Okhttp 上传下载进度监听,以及 Glide 加载进度监听 详细使用方法查看 https://github.com/JessYanCoding/ProgressManager
ProgressManager.getInstance().with(builder); ProgressManager.getInstance().with(builder);
//让 Retrofit 同时支持多个 BaseUrl 以及动态改变 BaseUrl. 详细使用请方法查看 https://github.com/JessYanCoding/RetrofitUrlManager //让 Retrofit 同时支持多个 BaseUrl 以及动态改变 BaseUrl. 详细使用请方法查看 https://github.com/JessYanCoding/RetrofitUrlManager
......
...@@ -117,6 +117,13 @@ ...@@ -117,6 +117,13 @@
<string name="srl_footer_failed">加載失敗</string> <string name="srl_footer_failed">加載失敗</string>
<string name="srl_footer_nothing">沒有更多數據了</string> <string name="srl_footer_nothing">沒有更多數據了</string>
<!-- EmptyViewFragment 空界面展示界面 -->
<string name="emptyView_mode_title_loading">顯示Loading</string>
<string name="emptyView_mode_desc_fail_title">加載失敗</string>
<string name="emptyView_mode_desc_fail_desc">請檢測網絡是否正常連接</string>
<string name="emptyView_mode_desc_retry">點擊重試</string>
<string name="emptyView_mode_desc_double">未獲取到數據</string>
<!-- HttpError --> <!-- HttpError -->
<string name="response_error_unknown_error">未知錯誤</string> <string name="response_error_unknown_error">未知錯誤</string>
<string name="response_error_network_unavailable">網絡不可用</string> <string name="response_error_network_unavailable">網絡不可用</string>
......
...@@ -8,8 +8,8 @@ ...@@ -8,8 +8,8 @@
<activity android:name=".mvp.ui.activity.MealStandActivity"/> <activity android:name=".mvp.ui.activity.MealStandActivity"/>
<activity android:name=".mvp.ui.activity.OrderPayActivity" /> <activity android:name=".mvp.ui.activity.OrderPayActivity" />
<activity android:name=".mvp.ui.activity.OrderContentActivity" /> <activity android:name=".mvp.ui.activity.OrderContentActivity" />
<activity android:name=".mvp.ui.activity.OrderCenterActivity" /> <activity android:name=".mvp.ui.activity.orderManager.OrderCenterActivity" />
<activity android:name=".mvp.ui.activity.OrderDetailActivity" /> <activity android:name=".mvp.ui.activity.orderManager.OrderDetailActivity" />
<meta-data <meta-data
android:name="com.gingersoft.gsa.cloud.globalconfig.GlobalConfiguration" android:name="com.gingersoft.gsa.cloud.globalconfig.GlobalConfiguration"
android:value="ConfigModule" /> android:value="ConfigModule" />
......
...@@ -11,8 +11,8 @@ ...@@ -11,8 +11,8 @@
android:supportsRtl="true" android:supportsRtl="true"
android:networkSecurityConfig="@xml/network_android" android:networkSecurityConfig="@xml/network_android"
android:theme="@style/AppTheme.Base"> android:theme="@style/AppTheme.Base">
<activity android:name=".mvp.ui.activity.OrderDetailActivity"/> <activity android:name=".mvp.ui.activity.orderManager.OrderDetailActivity"/>
<activity android:name=".mvp.ui.activity.OrderCenterActivity" /> <activity android:name=".mvp.ui.activity.orderManager.OrderCenterActivity" />
<activity android:name=".mvp.ui.activity.TableActivity"> <activity android:name=".mvp.ui.activity.TableActivity">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
...@@ -32,12 +32,12 @@ ...@@ -32,12 +32,12 @@
android:name="design_height_in_dp" android:name="design_height_in_dp"
android:value="540" /> android:value="540" />
</application> </application>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" /> <uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
</manifest> </manifest>
\ No newline at end of file
...@@ -4,7 +4,7 @@ import com.billy.cc.core.component.CC; ...@@ -4,7 +4,7 @@ import com.billy.cc.core.component.CC;
import com.billy.cc.core.component.CCResult; import com.billy.cc.core.component.CCResult;
import com.billy.cc.core.component.CCUtil; import com.billy.cc.core.component.CCUtil;
import com.billy.cc.core.component.IComponent; import com.billy.cc.core.component.IComponent;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.OrderCenterActivity; import com.gingersoft.gsa.cloud.table.mvp.ui.activity.orderManager.OrderCenterActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.OrderPayActivity; import com.gingersoft.gsa.cloud.table.mvp.ui.activity.OrderPayActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.TableActivity; import com.gingersoft.gsa.cloud.table.mvp.ui.activity.TableActivity;
......
...@@ -9,7 +9,7 @@ import com.gingersoft.gsa.cloud.table.di.module.OrderCenterModule; ...@@ -9,7 +9,7 @@ import com.gingersoft.gsa.cloud.table.di.module.OrderCenterModule;
import com.gingersoft.gsa.cloud.table.mvp.contract.OrderCenterContract; import com.gingersoft.gsa.cloud.table.mvp.contract.OrderCenterContract;
import com.jess.arms.di.scope.ActivityScope; import com.jess.arms.di.scope.ActivityScope;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.OrderCenterActivity; import com.gingersoft.gsa.cloud.table.mvp.ui.activity.orderManager.OrderCenterActivity;
/** /**
......
...@@ -9,7 +9,7 @@ import com.gingersoft.gsa.cloud.table.di.module.OrderDetailModule; ...@@ -9,7 +9,7 @@ import com.gingersoft.gsa.cloud.table.di.module.OrderDetailModule;
import com.gingersoft.gsa.cloud.table.mvp.contract.OrderDetailContract; import com.gingersoft.gsa.cloud.table.mvp.contract.OrderDetailContract;
import com.jess.arms.di.scope.ActivityScope; import com.jess.arms.di.scope.ActivityScope;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.OrderDetailActivity; import com.gingersoft.gsa.cloud.table.mvp.ui.activity.orderManager.OrderDetailActivity;
/** /**
......
package com.gingersoft.gsa.cloud.table.mvp.contract; package com.gingersoft.gsa.cloud.table.mvp.contract;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.OrderDetailItem;
import com.jess.arms.mvp.IView; import com.jess.arms.mvp.IView;
import com.jess.arms.mvp.IModel; import com.jess.arms.mvp.IModel;
import java.util.List;
import io.reactivex.Observable;
/** /**
* ================================================ * ================================================
...@@ -20,10 +26,21 @@ public interface OrderCenterContract { ...@@ -20,10 +26,21 @@ public interface OrderCenterContract {
//对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息 //对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
interface View extends IView { interface View extends IView {
void showEmptyView(boolean isSuccess,int size,Throwable t);
void returnOrderItemList(List<OrderDetailItem> orderItemList);
void setPageIndex(int index);
int getPageIndex();
int getPageSize();
} }
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存 //Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends IModel { interface Model extends IModel {
Observable<BaseResult> loadOrderList(int restaurantId, int pageIndex, int pageSize);
} }
} }
...@@ -2,6 +2,9 @@ package com.gingersoft.gsa.cloud.table.mvp.model; ...@@ -2,6 +2,9 @@ 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.table.mvp.model.service.MealService;
import com.gingersoft.gsa.cloud.table.mvp.model.service.OrderService;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.jess.arms.integration.IRepositoryManager; import com.jess.arms.integration.IRepositoryManager;
import com.jess.arms.mvp.BaseModel; import com.jess.arms.mvp.BaseModel;
...@@ -12,6 +15,8 @@ import javax.inject.Inject; ...@@ -12,6 +15,8 @@ import javax.inject.Inject;
import com.gingersoft.gsa.cloud.table.mvp.contract.OrderCenterContract; import com.gingersoft.gsa.cloud.table.mvp.contract.OrderCenterContract;
import io.reactivex.Observable;
/** /**
* ================================================ * ================================================
...@@ -43,4 +48,10 @@ public class OrderCenterModel extends BaseModel implements OrderCenterContract.M ...@@ -43,4 +48,10 @@ public class OrderCenterModel extends BaseModel implements OrderCenterContract.M
this.mGson = null; this.mGson = null;
this.mApplication = null; this.mApplication = null;
} }
@Override
public Observable<BaseResult> loadOrderList(int restaurantId, int pageIndex, int pageSize) {
return mRepositoryManager.obtainRetrofitService(OrderService.class)
.loadOrderList(restaurantId,pageIndex,pageSize);
}
} }
\ No newline at end of file
package com.gingersoft.gsa.cloud.table.mvp.model.bean;
import com.gingersoft.gsa.cloud.base.common.bean.OrderBean;
import java.io.Serializable;
import java.util.List;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-03-14
* 修订历史:2020-03-14
* 描述:已結賬訂單
*/
public class OrderDetailItem implements Serializable {
/**
* success : true
* sysTime : 1584168902700
* data : [{"id":47040,"orderNo":"gs200371144969589","status":0,"totalAmount":10,"totalPoints":0,"createTime":"Mar 14, 2020 1:24:12 PM","person":2,"orderDetails":[{"id":1639952,"orderId":47040,"parentId":0,"productName":"包子","productId":"14520","price":5,"lunchboxPrice":0,"number":1,"type":3,"createTime":"Mar 14, 2020 2:55:02 PM","status":0},{"id":1639953,"orderId":47040,"parentId":0,"productName":"燒麥","productId":"14522","price":5,"lunchboxPrice":0,"number":1,"type":3,"createTime":"Mar 14, 2020 2:55:02 PM","status":0}]},{"id":47039,"orderNo":"gs200741188764794","status":4,"totalAmount":1015,"totalPoints":0,"createTime":"Mar 14, 2020 1:18:32 PM","person":5,"orderDetails":[{"id":1639951,"orderId":47039,"parentId":0,"productName":"餃子","productId":"14521","price":10,"lunchboxPrice":0,"number":1,"type":3,"createTime":"Mar 14, 2020 2:55:02 PM","status":0},{"id":1639956,"orderId":47039,"parentId":0,"productName":"火鍋","productId":"14527","price":200,"lunchboxPrice":0,"number":5,"type":3,"createTime":"Mar 14, 2020 2:55:02 PM","status":0},{"id":1639957,"orderId":47039,"parentId":1639956,"productName":"加醋","productId":"8563","price":1,"lunchboxPrice":0,"number":5,"type":4,"createTime":"Mar 14, 2020 2:55:02 PM","status":0},{"id":1639958,"orderId":47039,"parentId":1639956,"productName":"青菜","productId":"965","price":0,"lunchboxPrice":0,"number":5,"type":3,"createTime":"Mar 14, 2020 2:55:02 PM","status":0}]},{"id":47038,"orderNo":"gs200451176160673","status":4,"totalAmount":3325,"totalPoints":0,"createTime":"Mar 14, 2020 1:08:44 PM","person":5,"orderDetails":[{"id":1639946,"orderId":47038,"parentId":0,"productName":"壽司","productId":"14534","price":20,"lunchboxPrice":0,"number":50,"type":3,"createTime":"Mar 14, 2020 2:55:02 PM","status":0},{"id":1639947,"orderId":47038,"parentId":1639946,"productName":"加牛肉","productId":"8566","price":20,"lunchboxPrice":0,"number":50,"type":4,"createTime":"Mar 14, 2020 2:55:02 PM","status":0},{"id":1639948,"orderId":47038,"parentId":1639946,"productName":"木頭飯","productId":"963","price":25,"lunchboxPrice":0,"number":50,"type":3,"createTime":"Mar 14, 2020 2:55:02 PM","status":0},{"id":1639949,"orderId":47038,"parentId":0,"productName":"餃子","productId":"14521","price":10,"lunchboxPrice":0,"number":5,"type":3,"createTime":"Mar 14, 2020 2:55:02 PM","status":0},{"id":1639950,"orderId":47038,"parentId":0,"productName":"燒麥","productId":"14522","price":5,"lunchboxPrice":0,"number":5,"type":3,"createTime":"Mar 14, 2020 2:55:02 PM","status":0}]},{"id":47037,"orderNo":"gs200001100863294","status":4,"totalAmount":162555,"totalPoints":0,"createTime":"Mar 14, 2020 1:00:45 PM","person":2,"orderDetails":[{"id":1639940,"orderId":47037,"parentId":0,"productName":"雞米花","productId":"14536","price":20,"lunchboxPrice":0,"number":1,"type":3,"createTime":"Mar 14, 2020 2:55:02 PM","status":0},{"id":1639941,"orderId":47037,"parentId":0,"productName":"奶茶-顯示","productId":"14532","price":15,"lunchboxPrice":0,"number":1,"type":3,"createTime":"Mar 14, 2020 2:55:02 PM","status":0},{"id":1639942,"orderId":47037,"parentId":0,"productName":"壽司","productId":"14534","price":1000,"lunchboxPrice":0,"number":50,"type":3,"createTime":"Mar 14, 2020 2:55:02 PM","status":0},{"id":1639943,"orderId":47037,"parentId":1639942,"productName":"加牛肉","productId":"8566","price":1000,"lunchboxPrice":0,"number":50,"type":4,"createTime":"Mar 14, 2020 2:55:02 PM","status":0},{"id":1639944,"orderId":47037,"parentId":1639942,"productName":"木頭飯","productId":"963","price":1250,"lunchboxPrice":0,"number":50,"type":3,"createTime":"Mar 14, 2020 2:55:02 PM","status":0},{"id":1639945,"orderId":47037,"parentId":0,"productName":"西紅柿蛋湯","productId":"14526","price":20,"lunchboxPrice":0,"number":1,"type":3,"createTime":"Mar 14, 2020 2:55:02 PM","status":0}]},{"id":47036,"orderNo":"gs201841108269516","status":4,"totalAmount":15,"totalPoints":0,"createTime":"Mar 14, 2020 12:59:26 PM","person":2,"orderDetails":[{"id":1639938,"orderId":47036,"parentId":0,"productName":"餃子","productId":"14521","price":10,"lunchboxPrice":0,"number":1,"type":3,"createTime":"Mar 14, 2020 2:55:02 PM","status":0},{"id":1639939,"orderId":47036,"parentId":0,"productName":"燒麥","productId":"14522","price":5,"lunchboxPrice":0,"number":1,"type":3,"createTime":"Mar 14, 2020 2:55:02 PM","status":0}]},{"id":47035,"orderNo":"gs200511160960157","status":4,"totalAmount":502500,"totalPoints":0,"createTime":"Mar 14, 2020 12:43:10 PM","person":2,"orderDetails":[{"id":1639935,"orderId":47035,"parentId":0,"productName":"火鍋","productId":"14527","price":10000,"lunchboxPrice":0,"number":50,"type":3,"createTime":"Mar 14, 2020 2:55:02 PM","status":0},{"id":1639936,"orderId":47035,"parentId":1639935,"productName":"加醋","productId":"8563","price":50,"lunchboxPrice":0,"number":50,"type":4,"createTime":"Mar 14, 2020 2:55:02 PM","status":0},{"id":1639937,"orderId":47035,"parentId":1639935,"productName":"青菜","productId":"965","price":0,"lunchboxPrice":0,"number":50,"type":3,"createTime":"Mar 14, 2020 2:55:02 PM","status":0}]},{"id":47034,"orderNo":"gs201081124266644","status":4,"totalAmount":20,"totalPoints":0,"createTime":"Mar 14, 2020 12:41:22 PM","person":2,"orderDetails":[{"id":1639932,"orderId":47034,"parentId":0,"productName":"包子","productId":"14520","price":5,"lunchboxPrice":0,"number":1,"type":3,"createTime":"Mar 14, 2020 2:55:02 PM","status":0},{"id":1639933,"orderId":47034,"parentId":0,"productName":"燒麥","productId":"14522","price":5,"lunchboxPrice":0,"number":1,"type":3,"createTime":"Mar 14, 2020 2:55:02 PM","status":0},{"id":1639934,"orderId":47034,"parentId":0,"productName":"餃子","productId":"14521","price":10,"lunchboxPrice":0,"number":1,"type":3,"createTime":"Mar 14, 2020 2:55:02 PM","status":0}]},{"id":47033,"orderNo":"gs200771176264819","status":4,"totalAmount":1005,"totalPoints":0,"createTime":"Mar 14, 2020 12:27:24 PM","person":5,"orderDetails":[{"id":1639929,"orderId":47033,"parentId":0,"productName":"火鍋","productId":"14527","price":200,"lunchboxPrice":0,"number":5,"type":3,"createTime":"Mar 14, 2020 2:55:02 PM","status":0},{"id":1639930,"orderId":47033,"parentId":1639929,"productName":"加醋","productId":"8563","price":1,"lunchboxPrice":0,"number":5,"type":4,"createTime":"Mar 14, 2020 2:55:02 PM","status":0},{"id":1639931,"orderId":47033,"parentId":1639929,"productName":"青菜","productId":"965","price":0,"lunchboxPrice":0,"number":5,"type":3,"createTime":"Mar 14, 2020 2:55:02 PM","status":0}]},{"id":47029,"orderNo":"gs200551108069942","status":4,"totalAmount":1055,"totalPoints":0,"createTime":"Mar 14, 2020 12:17:27 PM","person":5,"orderDetails":[{"id":1639912,"orderId":47029,"parentId":0,"productName":"餃子","productId":"14521","price":10,"lunchboxPrice":0,"number":5,"type":3,"createTime":"Mar 14, 2020 2:55:02 PM","status":0},{"id":1639913,"orderId":47029,"parentId":0,"productName":"火鍋","productId":"14527","price":200,"lunchboxPrice":0,"number":5,"type":3,"createTime":"Mar 14, 2020 2:55:02 PM","status":0},{"id":1639914,"orderId":47029,"parentId":1639913,"productName":"加醋","productId":"8563","price":1,"lunchboxPrice":0,"number":5,"type":4,"createTime":"Mar 14, 2020 2:55:02 PM","status":0},{"id":1639915,"orderId":47029,"parentId":1639913,"productName":"青菜","productId":"965","price":0,"lunchboxPrice":0,"number":5,"type":3,"createTime":"Mar 14, 2020 2:55:02 PM","status":0}]},{"id":47028,"orderNo":"gs200441188067145","status":4,"totalAmount":330,"totalPoints":0,"createTime":"Mar 14, 2020 12:11:34 PM","person":5,"orderDetails":[{"id":1639908,"orderId":47028,"parentId":0,"productName":"拉麵","productId":"14529","price":50,"lunchboxPrice":0,"number":5,"type":3,"createTime":"Mar 14, 2020 2:55:02 PM","status":0},{"id":1639909,"orderId":47028,"parentId":1639908,"productName":"牛奶","productId":"964","price":5,"lunchboxPrice":0,"number":5,"type":3,"createTime":"Mar 14, 2020 2:55:02 PM","status":0},{"id":1639910,"orderId":47028,"parentId":0,"productName":"拉麵","productId":"14529","price":50,"lunchboxPrice":0,"number":1,"type":3,"createTime":"Mar 14, 2020 2:55:02 PM","status":0},{"id":1639911,"orderId":47028,"parentId":1639910,"productName":"牛奶","productId":"964","price":5,"lunchboxPrice":0,"number":1,"type":3,"createTime":"Mar 14, 2020 2:55:02 PM","status":0}]}]
*/
/**
* id : 47040
* orderNo : gs200371144969589
* status : 0
* totalAmount : 10
* totalPoints : 0
* createTime : Mar 14, 2020 1:24:12 PM
* person : 2
* orderDetails : [{"id":1639952,"orderId":47040,"parentId":0,"productName":"包子","productId":"14520","price":5,"lunchboxPrice":0,"number":1,"type":3,"createTime":"Mar 14, 2020 2:55:02 PM","status":0},{"id":1639953,"orderId":47040,"parentId":0,"productName":"燒麥","productId":"14522","price":5,"lunchboxPrice":0,"number":1,"type":3,"createTime":"Mar 14, 2020 2:55:02 PM","status":0}]
*/
private long id;
private String orderNo;
private int status;
private double totalAmount;
private int totalPoints;
private String createTime;
private int person;
private List<OrderBean.OrderDetailsBean> orderDetails;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getOrderNo() {
return orderNo;
}
public void setOrderNo(String orderNo) {
this.orderNo = orderNo;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public double getTotalAmount() {
return totalAmount;
}
public void setTotalAmount(double totalAmount) {
this.totalAmount = totalAmount;
}
public int getTotalPoints() {
return totalPoints;
}
public void setTotalPoints(int totalPoints) {
this.totalPoints = totalPoints;
}
public String getCreateTime() {
return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime;
}
public int getPerson() {
return person;
}
public void setPerson(int person) {
this.person = person;
}
public List<OrderBean.OrderDetailsBean> getOrderDetails() {
return orderDetails;
}
public void setOrderDetails(List<OrderBean.OrderDetailsBean> orderDetails) {
this.orderDetails = orderDetails;
}
}
package com.gingersoft.gsa.cloud.table.mvp.model.service;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import io.reactivex.Observable;
import me.jessyan.retrofiturlmanager.RetrofitUrlManager;
import okhttp3.RequestBody;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Query;
/**
* Created by Wyh on 2020/1/17.
*/
public interface OrderService {
@POST("order/list" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> loadOrderList(@Query("restaurantId") int restaurantId, @Query("pageIndex") int pageIndex, @Query("pageSize") int pageSize);
}
...@@ -2,11 +2,15 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter; ...@@ -2,11 +2,15 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter;
import android.app.Application; import android.app.Application;
import android.content.Context; import android.content.Context;
import android.content.Intent;
import android.view.View;
import com.gingersoft.gsa.cloud.base.common.bean.TableBean; import com.gingersoft.gsa.cloud.table.mvp.model.bean.OrderDetailItem;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.TableActivity; import com.gingersoft.gsa.cloud.table.mvp.ui.activity.orderManager.OrderCenterActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.orderManager.OrderDetailActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.OrderCenterAdapter; import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.OrderCenterAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.TableAdapter; import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.AllOrderFragment;
import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.integration.AppManager; import com.jess.arms.integration.AppManager;
import com.jess.arms.di.scope.FragmentScope; import com.jess.arms.di.scope.FragmentScope;
import com.jess.arms.mvp.BasePresenter; import com.jess.arms.mvp.BasePresenter;
...@@ -17,7 +21,6 @@ import me.jessyan.rxerrorhandler.core.RxErrorHandler; ...@@ -17,7 +21,6 @@ import me.jessyan.rxerrorhandler.core.RxErrorHandler;
import javax.inject.Inject; import javax.inject.Inject;
import com.gingersoft.gsa.cloud.table.mvp.contract.AllOrderContract; import com.gingersoft.gsa.cloud.table.mvp.contract.AllOrderContract;
import com.jess.arms.utils.DeviceUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -46,12 +49,15 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All ...@@ -46,12 +49,15 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All
@Inject @Inject
AppManager mAppManager; AppManager mAppManager;
private OrderCenterActivity IActivity;
private OrderCenterAdapter mOrderCenterAdapter; private OrderCenterAdapter mOrderCenterAdapter;
private List<Object> mTableList = new ArrayList<>(); private List<OrderDetailItem> mOrderItemList = new ArrayList<>();
@Inject @Inject
public AllOrderPresenter(AllOrderContract.Model model, AllOrderContract.View rootView) { public AllOrderPresenter(AllOrderContract.Model model, AllOrderContract.View rootView) {
super(model, rootView); super(model, rootView);
AllOrderFragment allOrderFragment = (AllOrderFragment) rootView;
this.IActivity = (OrderCenterActivity) allOrderFragment.getActivity();
} }
@Override @Override
...@@ -65,9 +71,32 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All ...@@ -65,9 +71,32 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All
public void initOrderAdapter(Context context) { public void initOrderAdapter(Context context) {
if (mOrderCenterAdapter == null) { if (mOrderCenterAdapter == null) {
mOrderCenterAdapter = new OrderCenterAdapter(context, mTableList); mOrderCenterAdapter = new OrderCenterAdapter(context, mOrderItemList);
mRootView.setAllOrderAdapter(mOrderCenterAdapter); mRootView.setAllOrderAdapter(mOrderCenterAdapter);
} }
mOrderCenterAdapter.setOnItemClickListener(new DefaultAdapter.OnRecyclerViewItemClickListener() {
@Override
public void onItemClick(View view, int viewType, Object data, int position) {
Intent intent = new Intent(IActivity, OrderDetailActivity.class);
intent.putExtra("orderDetailItem", (OrderDetailItem) data);
mRootView.launchActivity(intent);
}
});
}
public void updateOrderData(List<OrderDetailItem> orderItemList) {
if (orderItemList != null) {
mOrderItemList.clear();
mOrderItemList.addAll(orderItemList);
mOrderCenterAdapter.notifyDataSetChanged();
}
}
public void addOrderData(List<OrderDetailItem> orderItemList) {
if (orderItemList != null) {
mOrderItemList.addAll(orderItemList);
mOrderCenterAdapter.notifyDataSetChanged();
}
} }
} }
...@@ -2,16 +2,29 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter; ...@@ -2,16 +2,29 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter;
import android.app.Application; 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.utils.JsonUtils;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.OrderDetailItem;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.orderManager.OrderCenterActivity;
import com.jess.arms.integration.AppManager; import com.jess.arms.integration.AppManager;
import com.jess.arms.di.scope.ActivityScope; import com.jess.arms.di.scope.ActivityScope;
import com.jess.arms.mvp.BasePresenter; import com.jess.arms.mvp.BasePresenter;
import com.jess.arms.http.imageloader.ImageLoader; import com.jess.arms.http.imageloader.ImageLoader;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.annotations.NonNull;
import io.reactivex.schedulers.Schedulers;
import me.jessyan.rxerrorhandler.core.RxErrorHandler; import me.jessyan.rxerrorhandler.core.RxErrorHandler;
import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber;
import javax.inject.Inject; import javax.inject.Inject;
import com.gingersoft.gsa.cloud.table.mvp.contract.OrderCenterContract; import com.gingersoft.gsa.cloud.table.mvp.contract.OrderCenterContract;
import com.jess.arms.utils.RxLifecycleUtils;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import java.util.List;
/** /**
...@@ -37,9 +50,13 @@ public class OrderCenterPresenter extends BasePresenter<OrderCenterContract.Mode ...@@ -37,9 +50,13 @@ public class OrderCenterPresenter extends BasePresenter<OrderCenterContract.Mode
@Inject @Inject
AppManager mAppManager; AppManager mAppManager;
private OrderCenterActivity IActivity;
@Inject @Inject
public OrderCenterPresenter(OrderCenterContract.Model model, OrderCenterContract.View rootView) { public OrderCenterPresenter(OrderCenterContract.Model model, OrderCenterContract.View rootView) {
super(model, rootView); super(model, rootView);
this.IActivity = (OrderCenterActivity) rootView;
} }
@Override @Override
...@@ -51,5 +68,68 @@ public class OrderCenterPresenter extends BasePresenter<OrderCenterContract.Mode ...@@ -51,5 +68,68 @@ public class OrderCenterPresenter extends BasePresenter<OrderCenterContract.Mode
this.mApplication = null; this.mApplication = null;
} }
/**
* 獲取訂單列表
*
* @param pageIndex
* @param pageSize
* @param refreshLayout
* @param isLoadMore
*/
public void loadOrderList(int pageIndex, int pageSize, RefreshLayout refreshLayout, boolean isLoadMore) {
int restaurantId = GsaCloudApplication.getRestaurantId(mApplication);
mModel.loadOrderList(restaurantId, pageIndex, pageSize)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> {
if (refreshLayout == null) {
mRootView.showLoading(null);
}
})
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseResult result) {
if (result.isSuccess()) {
if (result.getData() != null) {
List<OrderDetailItem> orderItemList = JsonUtils.parseArray(result.getData(), OrderDetailItem.class);
if (orderItemList.size() > 0) {
mRootView.returnOrderItemList(orderItemList);
//每次更新完數據,頁碼+1
mRootView.setPageIndex(mRootView.getPageIndex() + 1);
} else {
mRootView.showEmptyView(true,0, null);
}
} else {
mRootView.showEmptyView(true,0, null);
}
} else {
mRootView.showEmptyView(false,0, null);
}
resetRefreshLayout();
}
@Override
public void onError(Throwable t) {
super.onError(t);
mRootView.showEmptyView(false,0, t);
resetRefreshLayout();
}
private void resetRefreshLayout() {
if (refreshLayout != null) {
if (isLoadMore) {
refreshLayout.finishLoadMore();
} else {
refreshLayout.finishRefresh();
refreshLayout.resetNoMoreData();//setNoMoreData(false);
}
}
}
});
}
} }
...@@ -156,25 +156,6 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont ...@@ -156,25 +156,6 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
}); });
return; return;
} }
// if (mBottomFunctionList.get(position).getResName().equals("↑")) {
// mBottomFunctionList.add(new Function((long) 5, 1, 2025, "skyorder", "", ""));
// mBottomFunctionList.add(new Function((long) 6, 1, 2025, "上菜紙", "", ""));
// for (int i = 0; i < mBottomFunctionList.size(); i++) {
// boolean isMore = mBottomFunctionList.get(i).getResName().equals("↑");
// if (isMore)
// mBottomFunctionList.get(i).setResName("↓");
// }
// mBottomFunctionAdapter.notifyDataSetChanged();
// } else if (mBottomFunctionList.get(position).getResName().equals("↓")) {
// mBottomFunctionList.remove(mBottomFunctionList.size() - 1);
// mBottomFunctionList.remove(mBottomFunctionList.size() - 1);
// for (int i = 0; i < mBottomFunctionList.size(); i++) {
// boolean isMore = mBottomFunctionList.get(i).getResName().equals("↓");
// if (isMore)
// mBottomFunctionList.get(i).setResName("↑");
// }
// mBottomFunctionAdapter.notifyDataSetChanged();
// }
} }
}); });
} }
......
...@@ -43,7 +43,7 @@ import static com.jess.arms.utils.Preconditions.checkNotNull; ...@@ -43,7 +43,7 @@ import static com.jess.arms.utils.Preconditions.checkNotNull;
/** /**
* ================================================ * ================================================
* Description: * Description: 賬單內容
* <p> * <p>
* Created by MVPArmsTemplate on 01/09/2020 19:23 * Created by MVPArmsTemplate on 01/09/2020 19:23
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a> * <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
......
package com.gingersoft.gsa.cloud.table.mvp.ui.activity;
import android.content.Intent;
import android.os.Bundle;
import com.gingersoft.gsa.cloud.table.mvp.presenter.OrderDetailPresenter;
import com.jess.arms.base.BaseActivity;
import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils;
import com.gingersoft.gsa.cloud.table.di.component.DaggerOrderDetailComponent;
import com.gingersoft.gsa.cloud.table.mvp.contract.OrderDetailContract;
import com.gingersoft.gsa.cloud.table.R;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import static com.jess.arms.utils.Preconditions.checkNotNull;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 03/13/2020 14:29
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
public class OrderDetailActivity extends BaseActivity<OrderDetailPresenter> implements OrderDetailContract.View {
@Override
public void setupActivityComponent(@NonNull AppComponent appComponent) {
DaggerOrderDetailComponent //如找不到该类,请编译一下项目
.builder()
.appComponent(appComponent)
.view(this)
.build()
.inject(this);
}
@Override
public int initView(@Nullable Bundle savedInstanceState) {
return R.layout.activity_order_detail; //如果你不需要框架帮你设置 setContentView(id) 需要自行设置,请返回 0
}
@Override
public void initData(@Nullable Bundle savedInstanceState) {
}
@Override
public void initIntent() {
}
@Override
public void initTopBar() {
}
@Override
public void initLanguage() {
}
@Override
public void initLayoutParams() {
}
@Override
public void initLayoutVisible() {
}
@Override
public void showLoading(String message) {
}
@Override
public void hideLoading() {
}
@Override
public void showMessage(@NonNull String message) {
checkNotNull(message);
ArmsUtils.snackbarText(message);
}
@Override
public void launchActivity(@NonNull Intent intent) {
checkNotNull(intent);
ArmsUtils.startActivity(intent);
}
@Override
public void killMyself() {
finish();
}
}
...@@ -130,7 +130,6 @@ public class TableActivity extends BaseActivity<TablePresenter> implements Table ...@@ -130,7 +130,6 @@ public class TableActivity extends BaseActivity<TablePresenter> implements Table
@Override @Override
public void initData(@Nullable Bundle savedInstanceState) { public void initData(@Nullable Bundle savedInstanceState) {
initTabBarViewPage(); initTabBarViewPage();
mPresenter.initBottomFunction(); mPresenter.initBottomFunction();
mPresenter.getTables(true); mPresenter.getTables(true);
......
package com.gingersoft.gsa.cloud.table.mvp.ui.activity.orderManager;
import android.content.Intent;
import android.net.ParseException;
import android.os.Bundle;
import android.os.Message;
import android.view.View;
import com.gingersoft.gsa.cloud.base.qmui.arch.QMUIFragmentPagerAdapter;
import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.OrderDetailItem;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.AllOrderFragment;
import com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog;
import com.google.gson.JsonIOException;
import com.google.gson.JsonParseException;
import com.jess.arms.base.BaseActivity;
import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils;
import com.gingersoft.gsa.cloud.table.di.component.DaggerOrderCenterComponent;
import com.gingersoft.gsa.cloud.table.mvp.contract.OrderCenterContract;
import com.gingersoft.gsa.cloud.table.mvp.presenter.OrderCenterPresenter;
import com.gingersoft.gsa.cloud.table.R;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.qmuiteam.qmui.widget.QMUIEmptyView;
import com.qmuiteam.qmui.widget.QMUITopBar;
import com.qmuiteam.qmui.widget.tab.QMUITabIndicator;
import com.qmuiteam.qmui.widget.tab.QMUITabSegment;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import org.json.JSONException;
import java.net.SocketTimeoutException;
import java.net.UnknownHostException;
import java.util.List;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import androidx.viewpager.widget.ViewPager;
import butterknife.BindView;
import static com.jess.arms.utils.Preconditions.checkNotNull;
/**
* ================================================
* Description: 訂單列表頁#顯示每個餐廳下所有已結賬單
* <p>
* Created by MVPArmsTemplate on 03/13/2020 14:28
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
public class OrderCenterActivity extends BaseActivity<OrderCenterPresenter> implements OrderCenterContract.View {
@BindView(R2.id.topbar)
QMUITopBar mTopBar;
@BindView(R2.id.tabSegment)
QMUITabSegment mTabSegment;
@BindView(R2.id.contentViewPager)
ViewPager mContentViewPager;
@BindView(R2.id.emptyView)
QMUIEmptyView mEmptyView;
private AllOrderFragment allOrderFragment, cancelOrderFragment, voidOrderFragment;
//當前顯示頁下標
private int currentPageIndex = 0;
//標題
private String[] tabTitles = {"全部", "已取消", "已退款"};
//是否已經初始化數據,默認初始化第一個頁面
private boolean[] pageDataInit = {true, false, false};
@Override
public void setupActivityComponent(@NonNull AppComponent appComponent) {
DaggerOrderCenterComponent //如找不到该类,请编译一下项目
.builder()
.appComponent(appComponent)
.view(this)
.build()
.inject(this);
}
@Override
public int initView(@Nullable Bundle savedInstanceState) {
return R.layout.activity_order_center; //如果你不需要框架帮你设置 setContentView(id) 需要自行设置,请返回 0
}
@Override
public void initData(@Nullable Bundle savedInstanceState) {
initTabAndPager();
mPresenter.loadOrderList(1, 10, null, false);
}
private void initTabAndPager() {
QMUIFragmentPagerAdapter pagerAdapter = new QMUIFragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public Fragment createFragment(int position) {
Bundle bundle = new Bundle();
switch (position) {
case 1:
if (cancelOrderFragment != null) {
return cancelOrderFragment;
}
cancelOrderFragment = new AllOrderFragment();
bundle.putInt("currentPageIndex", 1);
cancelOrderFragment.setArguments(bundle);
return cancelOrderFragment;
case 2:
if (voidOrderFragment != null) {
return voidOrderFragment;
}
voidOrderFragment = new AllOrderFragment();
bundle.putInt("currentPageIndex", 2);
voidOrderFragment.setArguments(bundle);
return voidOrderFragment;
default:
if (allOrderFragment != null) {
return allOrderFragment;
}
allOrderFragment = new AllOrderFragment();
bundle.putInt("currentPageIndex", 0);
allOrderFragment.setArguments(bundle);
return allOrderFragment;
}
}
@Override
public int getCount() {
return tabTitles.length;
}
@Override
public CharSequence getPageTitle(int position) {
switch (position) {
case 1:
return tabTitles[1];
case 2:
return tabTitles[2];
default:
return tabTitles[0];
}
}
};
mContentViewPager.setAdapter(pagerAdapter);
int space = QMUIDisplayHelper.dp2px(this, 16);
mTabSegment.setIndicator(new QMUITabIndicator(QMUIDisplayHelper.dp2px(this, 2), false, true));
mTabSegment.setDefaultTextSize(QMUIDisplayHelper.dp2px(this, 16), QMUIDisplayHelper.dp2px(this, 16));
mTabSegment.setPadding(space, 0, space, 0);
mTabSegment.setupWithViewPager(mContentViewPager);
mTabSegment.addOnTabSelectedListener(new QMUITabSegment.OnTabSelectedListener() {
@Override
public void onTabSelected(int index) {
//頁面切換
pagerAdapter.createFragment(index);
if (!pageDataInit[index]) {
//未初始化數據,獲取數據
loadOrderList(null, false);
}
currentPageIndex = index;
pageDataInit[currentPageIndex] = true;
}
@Override
public void onTabUnselected(int index) {
}
@Override
public void onTabReselected(int index) {
}
@Override
public void onDoubleTap(int index) {
}
});
}
@Override
public void initIntent() {
}
@Override
public void initTopBar() {
mTopBar.setBackgroundColor(ContextCompat.getColor(this, R.color.theme_color));
mTopBar.addLeftBackImageButton().setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
killMyself();
}
});
mTopBar.setTitle("張單管理");
}
@Override
public void initLanguage() {
}
@Override
public void initLayoutParams() {
}
@Override
public void initLayoutVisible() {
}
@Override
public void showLoading(String message) {
if (message != null)
LoadingDialog.showDialogForLoading(this, message, true);
else
LoadingDialog.showDialogForLoading(this);
}
@Override
public void hideLoading() {
LoadingDialog.cancelDialogForLoading();
}
@Override
public void showMessage(@NonNull String message) {
checkNotNull(message);
ArmsUtils.makeText(this, message);
}
@Override
public void launchActivity(@NonNull Intent intent) {
checkNotNull(intent);
ArmsUtils.startActivity(intent);
}
@Override
public void killMyself() {
finish();
}
private View.OnClickListener onRetryClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
//重新加載
setPageIndex(1);
loadOrderList(null, false);
}
};
@Override
public void showEmptyView(boolean isSuccess, int size, Throwable t) {
if (t != null) {
if (t instanceof UnknownHostException) {
//沒有網絡
mEmptyView.show(false, getResources().getString(R.string.emptyView_mode_desc_fail_title), getResources().getString(R.string.emptyView_mode_desc_fail_desc), getResources().getString(R.string.emptyView_mode_desc_retry), onRetryClickListener);
} else if (t instanceof SocketTimeoutException) {
//請求超時
mEmptyView.show(false, getResources().getString(R.string.emptyView_mode_desc_fail_title), getResources().getString(R.string.emptyView_mode_desc_fail_desc), getResources().getString(R.string.emptyView_mode_desc_retry), onRetryClickListener);
} else if (t instanceof JsonParseException || t instanceof ParseException || t instanceof JSONException || t instanceof JsonIOException) {
//數據解析錯誤
mEmptyView.show(false, getResources().getString(R.string.response_error_data_parsing_error), null, getResources().getString(R.string.emptyView_mode_desc_retry), onRetryClickListener);
} else {
//其他error
mEmptyView.show(false, getResources().getString(R.string.emptyView_mode_desc_fail_title), null, getResources().getString(R.string.emptyView_mode_desc_retry), onRetryClickListener);
}
mContentViewPager.setVisibility(View.INVISIBLE);
return;
}
if (!isSuccess) {
mEmptyView.show(false, getResources().getString(R.string.emptyView_mode_desc_fail_title), null, getResources().getString(R.string.emptyView_mode_desc_retry), onRetryClickListener);
mContentViewPager.setVisibility(View.INVISIBLE);
return;
}
if (size == 0) {
mEmptyView.show(getResources().getString(R.string.emptyView_mode_desc_double), null);
mContentViewPager.setVisibility(View.INVISIBLE);
return;
}
mEmptyView.hide();
mContentViewPager.setVisibility(View.VISIBLE);
}
@Override
public void returnOrderItemList(List<OrderDetailItem> orderItemList) {
Message message = Message.obtain();
message.obj = orderItemList;
if (getPageIndex() == 1) {
//刷新一頁數據
message.what = 0;
} else {
//加載更多數據
message.what = 1;
}
switch (currentPageIndex) {
case 0:
allOrderFragment.setData(message);
break;
case 1:
cancelOrderFragment.setData(message);
break;
case 2:
voidOrderFragment.setData(message);
break;
}
mEmptyView.hide();
mContentViewPager.setVisibility(View.VISIBLE);
}
public void loadOrderList(RefreshLayout refreshLayout, boolean isLoadMore) {
mPresenter.loadOrderList(getPageIndex(), getPageSize(), refreshLayout, isLoadMore);
}
@Override
public void setPageIndex(int index) {
switch (currentPageIndex) {
case 1:
cancelOrderFragment.setPageIndex(index);
break;
case 2:
voidOrderFragment.setPageIndex(index);
break;
default:
allOrderFragment.setPageIndex(index);
break;
}
}
@Override
public int getPageIndex() {
switch (currentPageIndex) {
case 1:
return cancelOrderFragment.getPageIndex();
case 2:
return voidOrderFragment.getPageIndex();
default:
return allOrderFragment.getPageIndex();
}
}
@Override
public int getPageSize() {
switch (currentPageIndex) {
case 1:
return cancelOrderFragment.getPageSize();
case 2:
return voidOrderFragment.getPageSize();
default:
return allOrderFragment.getPageSize();
}
}
}
package com.gingersoft.gsa.cloud.table.mvp.ui.activity.orderManager;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.TextView;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
import com.gingersoft.gsa.cloud.base.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.OrderDetailItem;
import com.gingersoft.gsa.cloud.table.mvp.model.utils.OrderAssemblyUtil;
import com.gingersoft.gsa.cloud.table.mvp.presenter.OrderDetailPresenter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.OrderDetailFoodAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.OrderDetailPayMethodAdapter;
import com.gingersoft.gsa.cloud.ui.recylcler.decorator.DividerItemDecoration;
import com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog;
import com.jess.arms.base.BaseActivity;
import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils;
import com.gingersoft.gsa.cloud.table.di.component.DaggerOrderDetailComponent;
import com.gingersoft.gsa.cloud.table.mvp.contract.OrderDetailContract;
import com.gingersoft.gsa.cloud.table.R;
import com.qmuiteam.qmui.alpha.QMUIAlphaButton;
import com.qmuiteam.qmui.widget.QMUITopBar;
import java.util.ArrayList;
import java.util.List;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView;
import static com.jess.arms.utils.Preconditions.checkNotNull;
/**
* ================================================
* Description: 訂單詳情頁#顯示單條該餐廳下已結賬單
* <p>
* Created by MVPArmsTemplate on 03/13/2020 14:29
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
public class OrderDetailActivity extends BaseActivity<OrderDetailPresenter> implements OrderDetailContract.View {
@BindView(R2.id.topbar)
QMUITopBar mTopBar;
@BindView(R2.id.scrollview)
ScrollView scrollview;
@BindView(R2.id.tv_table_name)
TextView tv_table_name;
@BindView(R2.id.tv_people_num)
TextView tv_people_num;
@BindView(R2.id.tv_order_num)
TextView tv_order_num;
@BindView(R2.id.tv_open_time)
TextView tv_open_time;
@BindView(R2.id.tv_pay_time)
TextView tv_pay_time;
@BindView(R2.id.tv_food_detail_text)
TextView tv_food_detail_text;
@BindView(R2.id.recycler_food)
RecyclerView recycler_food;
@BindView(R2.id.recycler_discount)
RecyclerView recycler_discount;
@BindView(R2.id.recycler_pay_method)
RecyclerView recycler_pay_method;
@BindView(R2.id.tv_total_text)
TextView tv_total_text;
@BindView(R2.id.tv_server_money_text)
TextView tv_server_money_text;
@BindView(R2.id.tv_total_money_text)
TextView tv_total_money_text;
@BindView(R2.id.tv_total)
TextView tv_total;
@BindView(R2.id.tv_server_money)
TextView tv_server_money;
@BindView(R2.id.tv_total_money)
TextView tv_total_money;
@BindView(R2.id.btn_print_order)
QMUIAlphaButton btn_print_order;
@BindView(R2.id.btn_tips)
QMUIAlphaButton btn_tips;
@BindView(R2.id.btn_refund)
QMUIAlphaButton btn_refund;
@BindView(R2.id.btn_cancel_order)
QMUIAlphaButton btn_cancel_order;
@BindView(R2.id.btn_modify_order)
QMUIAlphaButton btn_modify_order;
@BindView(R2.id.ll_bottom)
LinearLayout ll_bottom;
@BindView(R2.id.tv_order_status)
TextView tv_order_status;
private OrderDetailItem mOrderDetailItem;
private OrderDetailFoodAdapter mOrderDetailFoodAdapter;
private List<OrderDetail> mOrderDetailList = new ArrayList<>();
private OrderDetailPayMethodAdapter MOrderDetailPayMethodAdapter;
// private List<Object> mOrderDetailList;
@Override
public void setupActivityComponent(@NonNull AppComponent appComponent) {
DaggerOrderDetailComponent //如找不到该类,请编译一下项目
.builder()
.appComponent(appComponent)
.view(this)
.build()
.inject(this);
}
@Override
public int initView(@Nullable Bundle savedInstanceState) {
return R.layout.activity_order_detail; //如果你不需要框架帮你设置 setContentView(id) 需要自行设置,请返回 0
}
@Override
public void initData(@Nullable Bundle savedInstanceState) {
initOrderDetail(mOrderDetailItem);
}
private void initOrderDetail(OrderDetailItem mOrderDetailItem) {
if (mOrderDetailItem != null) {
String payBill = LanguageUtils.get_language_system(this, "opentable.paybill", "結賬") + ":";
String tableName = LanguageUtils.get_language_system(this, "table.number", "檯號̖") + ":";
String pax = LanguageUtils.get_language_system(this, "Meal.Mannumber", "人數") + ":";
String orderNumber = LanguageUtils.get_language_system(this, "order.number", "訂單號") + ":";
String openTable = LanguageUtils.get_language_system(this, "open.table", "開台") + ":";
tv_pay_time.setText(payBill + mOrderDetailItem.getCreateTime());
tv_table_name.setText(tableName + mOrderDetailItem.getId());
tv_people_num.setText(pax + mOrderDetailItem.getPerson());
tv_order_num.setText(orderNumber + mOrderDetailItem.getOrderNo());
tv_open_time.setText(openTable + mOrderDetailItem.getCreateTime());
tv_total.setText("$" + mOrderDetailItem.getTotalAmount());
// if (datasBean.getOrderMember().get(0).getSCAMOUNT() != 0) {
// tv_server_money.setText("$" + datasBean.getOrderMember().get(0).getSCAMOUNT());
// } else {
tv_server_money.setVisibility(View.GONE);
tv_server_money_text.setVisibility(View.GONE);
// }
tv_total_money.setText("$" + mOrderDetailItem.getTotalAmount());
List<OrderDetail> orderDetailList = OrderAssemblyUtil.assemblyOrder(OrderDetail.orderTransOrderDetails(mOrderDetailItem.getOrderDetails()));
mOrderDetailList.addAll(orderDetailList);
mOrderDetailFoodAdapter = new OrderDetailFoodAdapter(mOrderDetailList);
recycler_food.setAdapter(mOrderDetailFoodAdapter);
LinearLayoutManager mAllOrderRecycleLayoutManager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);
recycler_food.setLayoutManager(mAllOrderRecycleLayoutManager);
recycler_food.addItemDecoration(new DividerItemDecoration(this, LinearLayoutManager.VERTICAL));
}
}
@Override
public void initIntent() {
Intent intent = getIntent();
mOrderDetailItem = (OrderDetailItem) intent.getSerializableExtra("orderDetailItem");
}
@Override
public void initTopBar() {
mTopBar.setBackgroundColor(ContextCompat.getColor(this, R.color.theme_color));
mTopBar.addLeftBackImageButton().setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
killMyself();
// overridePendingTransition(R.anim.slide_still, R.anim.slide_out_right);
}
});
mTopBar.setTitle(LanguageUtils.get_language_system(this, "function.order.detail", "賬單詳情")).setTextColor(ArmsUtils.getColor(this,R.color.theme_white_color));
}
@Override
public void initLanguage() {
}
@Override
public void initLayoutParams() {
}
@Override
public void initLayoutVisible() {
}
@Override
public void showLoading(String message) {
if (message != null)
LoadingDialog.showDialogForLoading(this, message, true);
else
LoadingDialog.showDialogForLoading(this);
}
@Override
public void hideLoading() {
LoadingDialog.cancelDialogForLoading();
}
@Override
public void showMessage(@NonNull String message) {
checkNotNull(message);
ArmsUtils.makeText(this, message);
}
@Override
public void launchActivity(@NonNull Intent intent) {
checkNotNull(intent);
ArmsUtils.startActivity(intent);
}
@Override
public void killMyself() {
finish();
}
}
package com.gingersoft.gsa.cloud.table.mvp.ui.adapter; package com.gingersoft.gsa.cloud.table.mvp.ui.adapter;
import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.view.View; import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import com.gingersoft.gsa.cloud.base.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.table.R; import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2; import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.BillOrderMoney; import com.gingersoft.gsa.cloud.table.mvp.model.bean.OrderDetailItem;
import com.jess.arms.base.BaseHolder; import com.jess.arms.base.BaseHolder;
import com.jess.arms.base.DefaultAdapter; import com.jess.arms.base.DefaultAdapter;
import com.qmuiteam.qmui.alpha.QMUIAlphaButton; import com.qmuiteam.qmui.alpha.QMUIAlphaButton;
...@@ -25,11 +24,11 @@ import butterknife.BindView; ...@@ -25,11 +24,11 @@ import butterknife.BindView;
* 修订历史:2018/6/27 * 修订历史:2018/6/27
* 描述: * 描述:
*/ */
public class OrderCenterAdapter extends DefaultAdapter<Object> { public class OrderCenterAdapter extends DefaultAdapter<OrderDetailItem> {
private Context mContext; private Context mContext;
public OrderCenterAdapter(Context context, List<Object> infos) { public OrderCenterAdapter(Context context, List<OrderDetailItem> infos) {
super(infos); super(infos);
this.mContext = context; this.mContext = context;
} }
...@@ -40,7 +39,7 @@ public class OrderCenterAdapter extends DefaultAdapter<Object> { ...@@ -40,7 +39,7 @@ public class OrderCenterAdapter extends DefaultAdapter<Object> {
} }
@Override @Override
public BaseHolder<Object> getHolder(View v, int viewType) { public BaseHolder<OrderDetailItem> getHolder(View v, int viewType) {
return new OrderCenterItemHolder(v); return new OrderCenterItemHolder(v);
} }
...@@ -49,7 +48,7 @@ public class OrderCenterAdapter extends DefaultAdapter<Object> { ...@@ -49,7 +48,7 @@ public class OrderCenterAdapter extends DefaultAdapter<Object> {
return R.layout.item_order_center; return R.layout.item_order_center;
} }
class OrderCenterItemHolder extends BaseHolder<Object> { class OrderCenterItemHolder extends BaseHolder<OrderDetailItem> {
@BindView(R2.id.ll_root_container) @BindView(R2.id.ll_root_container)
LinearLayout ll_root_container; LinearLayout ll_root_container;
...@@ -79,29 +78,33 @@ public class OrderCenterAdapter extends DefaultAdapter<Object> { ...@@ -79,29 +78,33 @@ public class OrderCenterAdapter extends DefaultAdapter<Object> {
@BindView(R2.id.btn_order_status) @BindView(R2.id.btn_order_status)
QMUIAlphaButton btn_order_status; QMUIAlphaButton btn_order_status;
@BindView(R2.id.ll_bottom) @BindView(R2.id.ll_bottom)
QMUIAlphaButton ll_bottom; LinearLayout ll_bottom;
public OrderCenterItemHolder(View itemView) { public OrderCenterItemHolder(View itemView) {
super(itemView); super(itemView);
} }
@Override @Override
public void setData(Object datasBean, int position) { public void setData(OrderDetailItem datasBean, int position) {
String tableName = LanguageUtils.get_language_system(mContext, "table.number", "檯號") + ":";
String pax = LanguageUtils.get_language_system(mContext, "Meal.Mannumber", "人數") + ":";
String orderNumber = LanguageUtils.get_language_system(mContext, "order.number", "訂單號") + ":";
String openTable = LanguageUtils.get_language_system(mContext, "open.table", "開台") + ":";
String amount = LanguageUtils.get_language_system(mContext, "amount", "金額") + ":$";
tv_table_name.setText(tableName + datasBean.getId());
tv_order_num.setText(orderNumber + datasBean.getOrderNo());
tv_people_num.setText(pax + datasBean.getPerson());
tv_open_time.setText(openTable + datasBean.getCreateTime());
tv_pay_money.setText(amount + datasBean.getTotalAmount());
} btn_print_order.setText(LanguageUtils.get_language_system(mContext, "print.order", "打印賬單"));
} btn_tips.setText(LanguageUtils.get_language_system(mContext, "public.tips", "貼士"));
btn_modify_order.setText(LanguageUtils.get_language_system(mContext, "modify.order", "修改訂單"));
btn_cancel_order.setText(LanguageUtils.get_language_system(mContext, "cancel.order", "取消訂單"));
private OnItemClickListener mOnItemClickListener; }
public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
mOnItemClickListener = onItemClickListener;
} }
public interface OnItemClickListener {
void onItemClick(BillOrderMoney datasBean, int position);
}
} }
package com.gingersoft.gsa.cloud.table.mvp.ui.adapter;
import android.view.Gravity;
import android.widget.TextView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
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.PayMethod;
import com.gingersoft.gsa.cloud.base.utils.MoneyUtil;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.OrderDetailItem;
import java.util.List;
import androidx.annotation.Nullable;
public class OrderDetailFoodAdapter extends BaseQuickAdapter<OrderDetail, BaseViewHolder> {
public OrderDetailFoodAdapter(@Nullable List<OrderDetail> data) {
super(R.layout.item_order_detail_food, data);
}
@Override
protected void convert(BaseViewHolder helper, OrderDetail item) {
TextView tv_food_name = helper.getView(R.id.tv_food_name);
int flevel = item.getItemType();
String productName = item.getProductName();
switch (flevel) {
case 1:
tv_food_name.setGravity(Gravity.LEFT);
break;
case 2:
productName = " " + productName;
tv_food_name.setGravity(Gravity.CENTER);
break;
case 3:
productName = " " + productName;
tv_food_name.setGravity(Gravity.RIGHT);
break;
}
tv_food_name.setText(productName);
helper.setText(R.id.tv_food_number, String.valueOf(item.getNumber()));
helper.setText(R.id.tv_food_total, "$" + item.getPrice() * item.getNumber());
}
}
package com.gingersoft.gsa.cloud.table.mvp.ui.adapter;
import android.view.Gravity;
import android.widget.TextView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
import com.gingersoft.gsa.cloud.table.R;
import java.util.List;
import androidx.annotation.Nullable;
public class OrderDetailPayMethodAdapter extends BaseQuickAdapter<OrderDetail, BaseViewHolder> {
public OrderDetailPayMethodAdapter(@Nullable List<OrderDetail> data) {
super(R.layout.item_order_detail_pay_method, data);
}
@Override
protected void convert(BaseViewHolder helper, OrderDetail item) {
helper.setText(R.id.tv_name, String.valueOf(item.getNumber()));
helper.setText(R.id.tv_money, "$" + item.getPrice() * item.getNumber());
}
}
...@@ -6,8 +6,11 @@ import android.os.Message; ...@@ -6,8 +6,11 @@ import android.os.Message;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import com.gingersoft.gsa.cloud.table.R2; import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.ui.recylcler.decorator.GridDividerItemDecoration; import com.gingersoft.gsa.cloud.table.mvp.model.bean.OrderDetailItem;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.orderManager.OrderCenterActivity;
import com.gingersoft.gsa.cloud.ui.recylcler.decorator.DividerItemDecoration;
import com.jess.arms.base.BaseFragment; 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;
...@@ -16,10 +19,12 @@ import com.gingersoft.gsa.cloud.table.di.component.DaggerAllOrderComponent; ...@@ -16,10 +19,12 @@ import com.gingersoft.gsa.cloud.table.di.component.DaggerAllOrderComponent;
import com.gingersoft.gsa.cloud.table.mvp.contract.AllOrderContract; import com.gingersoft.gsa.cloud.table.mvp.contract.AllOrderContract;
import com.gingersoft.gsa.cloud.table.mvp.presenter.AllOrderPresenter; import com.gingersoft.gsa.cloud.table.mvp.presenter.AllOrderPresenter;
import com.gingersoft.gsa.cloud.table.R; import com.gingersoft.gsa.cloud.table.R;
import com.qmuiteam.qmui.util.QMUIDisplayHelper; import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.SmartRefreshLayout; import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
import java.util.List; import java.util.List;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
...@@ -44,11 +49,15 @@ import static com.jess.arms.utils.Preconditions.checkNotNull; ...@@ -44,11 +49,15 @@ import static com.jess.arms.utils.Preconditions.checkNotNull;
public class AllOrderFragment extends BaseFragment<AllOrderPresenter> implements AllOrderContract.View { public class AllOrderFragment extends BaseFragment<AllOrderPresenter> implements AllOrderContract.View {
@BindView(R2.id.refreshLayout) @BindView(R2.id.refreshLayout)
SmartRefreshLayout refreshLayout; RefreshLayout refreshLayout;
@BindView(R2.id.recycle_order) @BindView(R2.id.recycle_order)
RecyclerView recycle_order; RecyclerView recycle_order;
private int currentPageInde; private OrderCenterActivity orderCenterActivity;
private int currentPageIndex;
private int pageIndex = 1;
private int pageSize = 10;
public static AllOrderFragment newInstance() { public static AllOrderFragment newInstance() {
AllOrderFragment fragment = new AllOrderFragment(); AllOrderFragment fragment = new AllOrderFragment();
...@@ -72,9 +81,28 @@ public class AllOrderFragment extends BaseFragment<AllOrderPresenter> implements ...@@ -72,9 +81,28 @@ public class AllOrderFragment extends BaseFragment<AllOrderPresenter> implements
@Override @Override
public void initData(@Nullable Bundle savedInstanceState) { public void initData(@Nullable Bundle savedInstanceState) {
currentPageInde = (int) getArguments().getInt("currentPageIndex",0); currentPageIndex = getArguments().getInt("currentPageIndex", 0);
orderCenterActivity = (OrderCenterActivity) getActivity();
mPresenter.initOrderAdapter(getActivity()); mPresenter.initOrderAdapter(getActivity());
initRefreshLayout();
}
private void initRefreshLayout() {
refreshLayout.setOnRefreshListener(new OnRefreshListener() {
@Override
public void onRefresh(@NonNull final RefreshLayout refreshLayout) {
//重新獲取第一頁數據
pageIndex = 1;
orderCenterActivity.loadOrderList(refreshLayout, false);
}
});
refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
@Override
public void onLoadMore(@NonNull final RefreshLayout refreshLayout) {
orderCenterActivity.loadOrderList(refreshLayout, true);
}
});
} }
@Override @Override
...@@ -82,16 +110,17 @@ public class AllOrderFragment extends BaseFragment<AllOrderPresenter> implements ...@@ -82,16 +110,17 @@ public class AllOrderFragment extends BaseFragment<AllOrderPresenter> implements
if (data != null && data instanceof Message) { if (data != null && data instanceof Message) {
switch (((Message) data).what) { switch (((Message) data).what) {
case 0: case 0:
List<OrderDetailItem> datasBeans = (List<OrderDetailItem>) ((Message) data).obj;
if (mPresenter != null) {
mPresenter.updateOrderData(datasBeans);
}
break;
case 1:
List<OrderDetailItem> addDataItem = (List<OrderDetailItem>) ((Message) data).obj;
if (mPresenter != null) {
mPresenter.addOrderData(addDataItem);
}
break; break;
case 1://刷新全部数据
// datasBeans = (List<TableBean.DataBean>) ((Message) data).obj;
// if (mPresenter != null) {
// //recycleView正在滑动
// if (recycle_all_table.getScrollState() != 0) {
// } else {
// mPresenter.updateAllTableData(getActivity(), datasBeans);
// }
// }
default: default:
//do something //do something
break; break;
...@@ -123,8 +152,8 @@ public class AllOrderFragment extends BaseFragment<AllOrderPresenter> implements ...@@ -123,8 +152,8 @@ public class AllOrderFragment extends BaseFragment<AllOrderPresenter> implements
@Override @Override
public void killMyself() { public void killMyself() {
}
}
@Override @Override
public void setAllOrderAdapter(DefaultAdapter adapter) { public void setAllOrderAdapter(DefaultAdapter adapter) {
...@@ -135,7 +164,23 @@ public class AllOrderFragment extends BaseFragment<AllOrderPresenter> implements ...@@ -135,7 +164,23 @@ public class AllOrderFragment extends BaseFragment<AllOrderPresenter> implements
private void initAllOrderRecycleViewLayout() { private void initAllOrderRecycleViewLayout() {
LinearLayoutManager mAllOrderRecycleLayoutManager = new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false); LinearLayoutManager mAllOrderRecycleLayoutManager = new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false);
recycle_order.setLayoutManager(mAllOrderRecycleLayoutManager); recycle_order.setLayoutManager(mAllOrderRecycleLayoutManager);
recycle_order.addItemDecoration(new GridDividerItemDecoration(QMUIDisplayHelper.dpToPx(1), ArmsUtils.getColor(getActivity(), R.color.theme_grey_color))); recycle_order.addItemDecoration(new DividerItemDecoration(orderCenterActivity, LinearLayoutManager.VERTICAL));
} }
public int getPageIndex() {
return pageIndex;
}
public void setPageIndex(int pageIndex) {
this.pageIndex = pageIndex;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
} }
...@@ -33,4 +33,11 @@ ...@@ -33,4 +33,11 @@
android:fitsSystemWindows="true"/> android:fitsSystemWindows="true"/>
</LinearLayout> </LinearLayout>
<com.qmuiteam.qmui.widget.QMUIEmptyView
android:id="@+id/emptyView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="?attr/qmui_topbar_height"
android:fitsSystemWindows="true"/>
</com.qmuiteam.qmui.widget.QMUIWindowInsetLayout> </com.qmuiteam.qmui.widget.QMUIWindowInsetLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <com.qmuiteam.qmui.widget.QMUIWindowInsetLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent">
android:orientation="vertical">
</LinearLayout> <LinearLayout
\ No newline at end of file android:id="@+id/ll_bottom"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_40"
android:layout_gravity="bottom"
android:orientation="horizontal">
<com.qmuiteam.qmui.alpha.QMUIAlphaButton
android:id="@+id/btn_print_order"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_gravity="bottom"
android:layout_weight="1"
android:background="@color/orange_400"
android:clickable="true"
android:text="打印賬單"
android:textColor="@color/theme_white_color"
android:textSize="@dimen/sp_14" />
<com.qmuiteam.qmui.alpha.QMUIAlphaButton
android:id="@+id/btn_tips"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_gravity="bottom"
android:layout_weight="1"
android:background="@color/green_400"
android:clickable="true"
android:text="貼士"
android:visibility="gone"
android:textColor="@color/theme_white_color"
android:textSize="@dimen/sp_14" />
<com.qmuiteam.qmui.alpha.QMUIAlphaButton
android:id="@+id/btn_modify_order"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_gravity="bottom"
android:layout_weight="1"
android:background="@color/blue_400"
android:clickable="true"
android:visibility="visible"
android:text="修改訂單"
android:textColor="@color/theme_white_color"
android:textSize="@dimen/sp_14" />
<com.qmuiteam.qmui.alpha.QMUIAlphaButton
android:id="@+id/btn_cancel_order"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="取消訂單"
android:textSize="@dimen/sp_13"
android:textColor="@color/theme_white_color"
android:background="@color/red_300"/>
<com.qmuiteam.qmui.alpha.QMUIAlphaButton
android:id="@+id/btn_refund"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_gravity="bottom"
android:layout_weight="1"
android:background="@color/red_500"
android:clickable="true"
android:text="退款"
android:visibility="gone"
android:textColor="@color/theme_white_color"
android:textSize="@dimen/sp_14" />
</LinearLayout>
<TextView
android:id="@+id/tv_order_status"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_40"
android:layout_gravity="bottom"
android:text="已取消"
android:gravity="center"
android:visibility="gone"
android:textSize="@dimen/sp_16"
android:textColor="@color/theme_white_color"
android:background="@color/gray"
android:orientation="horizontal"/>
<ScrollView
android:id="@+id/scrollview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="@dimen/dp_40"
android:layout_marginTop="?attr/qmui_topbar_height"
android:background="@color/qmui_config_color_white"
android:fillViewport="true"
android:fitsSystemWindows="true"
android:focusable="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="@dimen/dp_8">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_table_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text=""
android:textColor="@color/black"
android:textSize="@dimen/sp_18"
android:textStyle="bold" />
<TextView
android:id="@+id/tv_people_num"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="@dimen/dp_20"
android:text=""
android:textColor="@color/black"
android:textSize="@dimen/sp_18"
android:textStyle="bold" />
<TextView
android:id="@+id/tv_order_num"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_table_name"
android:layout_marginTop="@dimen/dp_3"
android:text=""
android:textColor="@color/black"
android:textSize="@dimen/sp_14" />
<TextView
android:id="@+id/tv_open_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_order_num"
android:layout_marginTop="@dimen/dp_3"
android:text=""
android:textColor="@color/black"
android:textSize="@dimen/sp_14" />
<TextView
android:id="@+id/tv_pay_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_open_time"
android:layout_marginTop="@dimen/dp_3"
android:text=""
android:textColor="@color/black"
android:textSize="@dimen/sp_14" />
</RelativeLayout>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/dp_1"
android:layout_marginTop="@dimen/dp_8"
android:background="@color/theme_background_color" />
<TextView
android:id="@+id/tv_food_detail_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_open_time"
android:layout_marginTop="@dimen/dp_10"
android:text=""
android:textColor="@color/black"
android:textSize="@dimen/sp_16" />
<com.gingersoft.gsa.cloud.base.widget.NoScrollRecyclerView
android:id="@+id/recycler_food"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="@null"
android:layout_marginTop="@dimen/dp_5"
android:focusable="false"
android:scrollbars="none" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/dp_1"
android:layout_marginTop="@dimen/dp_8"
android:background="@color/theme_background_color" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/tv_total_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_10"
android:text=""
android:textColor="@color/black"
android:textSize="@dimen/sp_16" />
<TextView
android:id="@+id/tv_total"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginTop="@dimen/dp_10"
android:text=""
android:textColor="@color/black"
android:textSize="@dimen/sp_16" />
<TextView
android:id="@+id/tv_server_money_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_total_text"
android:layout_marginTop="@dimen/dp_10"
android:text=""
android:textColor="@color/black"
android:textSize="@dimen/sp_16" />
<TextView
android:id="@+id/tv_server_money"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="@+id/tv_total_text"
android:layout_marginTop="@dimen/dp_10"
android:text=""
android:textColor="@color/black"
android:textSize="@dimen/sp_16" />
<TextView
android:id="@+id/tv_total_money_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/recycler_discount"
android:layout_marginTop="@dimen/dp_10"
android:text=""
android:textColor="@color/black"
android:textSize="@dimen/sp_16" />
<TextView
android:id="@+id/tv_total_money"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="@+id/recycler_discount"
android:layout_marginTop="@dimen/dp_10"
android:text=""
android:textColor="@color/black"
android:textSize="@dimen/sp_16" />
<com.gingersoft.gsa.cloud.base.widget.NoScrollRecyclerView
android:id="@+id/recycler_discount"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_server_money_text"
android:divider="@null"
android:focusable="false"
android:visibility="gone"
android:scrollbars="none" />
</RelativeLayout>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/dp_1"
android:layout_marginTop="@dimen/dp_8"
android:background="@color/theme_background_color" />
<com.gingersoft.gsa.cloud.base.widget.NoScrollRecyclerView
android:id="@+id/recycler_pay_method"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_8"
android:layout_marginTop="@dimen/dp_8"
android:divider="@null"
android:focusable="false"
android:scrollbars="none" />
</LinearLayout>
</ScrollView>
<com.qmuiteam.qmui.widget.QMUITopBar
android:id="@+id/topbar"
android:layout_width="match_parent"
android:layout_height="?attr/qmui_topbar_height" />
</com.qmuiteam.qmui.widget.QMUIWindowInsetLayout>
\ No newline at end of file
...@@ -14,7 +14,8 @@ ...@@ -14,7 +14,8 @@
android:id="@+id/recycle_order" android:id="@+id/recycle_order"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:overScrollMode="never" /> android:overScrollMode="never"
android:background="@color/theme_background_color"/>
</com.scwang.smartrefresh.layout.SmartRefreshLayout> </com.scwang.smartrefresh.layout.SmartRefreshLayout>
</FrameLayout> </FrameLayout>
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
android:id="@+id/ll_root_container" android:id="@+id/ll_root_container"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_5"
android:background="@drawable/selector_item_background" android:background="@drawable/selector_item_background"
android:orientation="vertical" android:orientation="vertical"
android:padding="@dimen/dp_8"> android:padding="@dimen/dp_8">
...@@ -33,19 +34,38 @@ ...@@ -33,19 +34,38 @@
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="@dimen/sp_14" /> android:textSize="@dimen/sp_14" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_5"
android:orientation="horizontal">
<TextView <TextView
android:id="@+id/tv_people_num" android:id="@+id/tv_open_time"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="right|center_vertical" android:layout_gravity="center_vertical"
android:layout_weight="1" android:layout_weight="1"
android:text="開檯:2019-7-2"
android:textColor="@color/black"
android:textSize="@dimen/sp_14" />
<TextView
android:id="@+id/tv_people_num"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right|center_vertical"
android:gravity="right" android:gravity="right"
android:text="人數:2" android:text="人數:2"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="@dimen/sp_14" /> android:textSize="@dimen/sp_14" />
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
...@@ -53,12 +73,13 @@ ...@@ -53,12 +73,13 @@
android:orientation="horizontal"> android:orientation="horizontal">
<TextView <TextView
android:id="@+id/tv_open_time" android:id="@+id/tv_pay_time"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:layout_marginTop="@dimen/dp_3"
android:layout_weight="1" android:layout_weight="1"
android:text="開檯:2019-7-2" android:text="結賬:2019-7-2"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="@dimen/sp_14" /> android:textSize="@dimen/sp_14" />
...@@ -67,24 +88,13 @@ ...@@ -67,24 +88,13 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="right|center_vertical" android:layout_gravity="right|center_vertical"
android:gravity="right"
android:text="金額:$230" android:text="金額:$230"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="@dimen/sp_18" android:textSize="@dimen/sp_18"
android:textStyle="bold" /> android:textStyle="bold" />
</LinearLayout>
<TextView
android:id="@+id/tv_pay_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginTop="@dimen/dp_3"
android:text="結賬:2019-7-2"
android:textColor="@color/black"
android:textSize="@dimen/sp_14" />
</LinearLayout>
<LinearLayout <LinearLayout
android:id="@+id/ll_bottom" android:id="@+id/ll_bottom"
...@@ -111,17 +121,16 @@ ...@@ -111,17 +121,16 @@
android:layout_marginRight="@dimen/dp_10" android:layout_marginRight="@dimen/dp_10"
android:background="@color/green_400" android:background="@color/green_400"
android:text="貼士" android:text="貼士"
android:visibility="gone"
android:textColor="@color/theme_white_color" android:textColor="@color/theme_white_color"
android:textSize="@dimen/sp_13" /> android:textSize="@dimen/sp_13"
android:visibility="gone" />
<com.qmuiteam.qmui.alpha.QMUIAlphaButton <com.qmuiteam.qmui.alpha.QMUIAlphaButton
android:id="@+id/btn_cancel_order" android:id="@+id/btn_cancel_order"
android:layout_width="@dimen/dp_65" android:layout_width="@dimen/dp_65"
android:layout_height="@dimen/dp_35" android:layout_height="@dimen/dp_35"
android:background="@color/red_400"
android:layout_marginRight="@dimen/dp_10" android:layout_marginRight="@dimen/dp_10"
android:background="@color/red_400"
android:text="取消訂單" android:text="取消訂單"
android:textColor="@color/theme_white_color" android:textColor="@color/theme_white_color"
android:textSize="@dimen/sp_13" /> android:textSize="@dimen/sp_13" />
...@@ -135,7 +144,7 @@ ...@@ -135,7 +144,7 @@
android:text="退款" android:text="退款"
android:textColor="@color/theme_white_color" android:textColor="@color/theme_white_color"
android:textSize="@dimen/sp_13" android:textSize="@dimen/sp_13"
android:visibility="visible" /> android:visibility="gone" />
<com.qmuiteam.qmui.alpha.QMUIAlphaButton <com.qmuiteam.qmui.alpha.QMUIAlphaButton
android:id="@+id/btn_modify_order" android:id="@+id/btn_modify_order"
...@@ -143,18 +152,18 @@ ...@@ -143,18 +152,18 @@
android:layout_height="@dimen/dp_35" android:layout_height="@dimen/dp_35"
android:background="@color/blue_300" android:background="@color/blue_300"
android:text="修改訂單" android:text="修改訂單"
android:visibility="gone"
android:textColor="@color/theme_white_color" android:textColor="@color/theme_white_color"
android:textSize="@dimen/sp_13" /> android:textSize="@dimen/sp_13"
android:visibility="gone" />
<com.qmuiteam.qmui.alpha.QMUIAlphaButton <com.qmuiteam.qmui.alpha.QMUIAlphaButton
android:id="@+id/btn_order_status" android:id="@+id/btn_order_status"
android:layout_width="@dimen/dp_65" android:layout_width="@dimen/dp_65"
android:layout_height="@dimen/dp_35" android:layout_height="@dimen/dp_35"
android:background="@color/gray" android:background="@color/gray"
android:clickable="false"
android:text="已取消" android:text="已取消"
android:textColor="@color/theme_white_color" android:textColor="@color/theme_white_color"
android:clickable="false"
android:textSize="@dimen/sp_13" android:textSize="@dimen/sp_13"
android:visibility="gone" /> android:visibility="gone" />
</LinearLayout> </LinearLayout>
......
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ll_item_layout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="vertical"
android:paddingLeft="@dimen/dp_10"
android:paddingTop="@dimen/dp_5"
android:paddingBottom="@dimen/dp_5">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
android:weightSum="6">
<TextView
android:id="@+id/tv_food_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="3"
android:ellipsize="end"
android:textColor="@color/black"
android:textSize="@dimen/sp_14"
android:maxLines="1"
android:text="" />
<RelativeLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="3"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_food_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:text=""
android:textColor="@color/black"
android:textSize="@dimen/sp_14" />
<TextView
android:id="@+id/tv_food_total"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:text=""
android:textColor="@color/black"
android:textSize="@dimen/sp_14" />
</RelativeLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/ll_content_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" />
</LinearLayout>
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_10"
android:text=""
android:textColor="@color/black"
android:textSize="@dimen/sp_16" />
<TextView
android:id="@+id/tv_money"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginTop="@dimen/dp_10"
android:text=""
android:textColor="@color/black"
android:textSize="@dimen/sp_16" />
</RelativeLayout>
\ No newline at end of file
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