Commit bb5e22ac by 宁斌

1、全部,狀態餐檯頁代碼合併

2、結賬接口調整
parent b3a5330a
...@@ -212,9 +212,10 @@ public class DownloadPresenter extends BasePresenter<DownloadContract.Model, Dow ...@@ -212,9 +212,10 @@ public class DownloadPresenter extends BasePresenter<DownloadContract.Model, Dow
private void stopDownDisposable() { private void stopDownDisposable() {
for (int i = 0; i < mDownDisposable.size(); i++) { for (int i = 0; i < mDownDisposable.size(); i++) {
if (mDownDisposable.get(i).isDisposed()) if (mDownDisposable.get(i) != null && mDownDisposable.get(i).isDisposed() == false)
mDownDisposable.get(i).dispose(); mDownDisposable.get(i).dispose();
} }
mDownDisposable.clear();
} }
public void downFun(int downTag) { public void downFun(int downTag) {
...@@ -535,10 +536,12 @@ public class DownloadPresenter extends BasePresenter<DownloadContract.Model, Dow ...@@ -535,10 +536,12 @@ public class DownloadPresenter extends BasePresenter<DownloadContract.Model, Dow
} }
private void endDownReturn() { private void endDownReturn() {
if(IActivity.getFromPage() == 1){
CC.obtainBuilder("Component.Main") CC.obtainBuilder("Component.Main")
.setActionName("showMainActivity") .setActionName("showMainActivity")
.build() .build()
.call(); .call();
}
mRootView.killMyself(); mRootView.killMyself();
} }
......
...@@ -10,14 +10,19 @@ import android.view.View; ...@@ -10,14 +10,19 @@ import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.WindowManager; import android.view.WindowManager;
import android.widget.Button; import android.widget.Button;
import android.widget.ImageButton;
import android.widget.TextView; import android.widget.TextView;
import com.billy.cc.core.component.CC;
import com.billy.cc.core.component.CCResult;
import com.billy.cc.core.component.CCUtil;
import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils; import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils;
import com.gingersoft.gsa.cloud.download.R; import com.gingersoft.gsa.cloud.download.R;
import com.gingersoft.gsa.cloud.download.R2; import com.gingersoft.gsa.cloud.download.R2;
import com.gingersoft.gsa.cloud.download.di.component.DaggerDownloadComponent; import com.gingersoft.gsa.cloud.download.di.component.DaggerDownloadComponent;
import com.gingersoft.gsa.cloud.download.mvp.contract.DownloadContract; import com.gingersoft.gsa.cloud.download.mvp.contract.DownloadContract;
import com.gingersoft.gsa.cloud.download.mvp.presenter.DownloadPresenter; import com.gingersoft.gsa.cloud.download.mvp.presenter.DownloadPresenter;
import com.gingersoft.gsa.cloud.ui.utils.AndroidWorkaround;
import com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog; import com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog;
import com.jess.arms.base.BaseActivity; import com.jess.arms.base.BaseActivity;
import com.jess.arms.base.DefaultAdapter; import com.jess.arms.base.DefaultAdapter;
...@@ -51,14 +56,25 @@ import static com.jess.arms.utils.Preconditions.checkNotNull; ...@@ -51,14 +56,25 @@ import static com.jess.arms.utils.Preconditions.checkNotNull;
*/ */
public class DownloadActivity extends BaseActivity<DownloadPresenter> implements DownloadContract.View { public class DownloadActivity extends BaseActivity<DownloadPresenter> implements DownloadContract.View {
@BindView(R2.id.topbar) @BindView(R2.id.btn_back)
QMUITopBar mTopBar; ImageButton btn_back;
@BindView(R2.id.btn_refresh)
ImageButton btn_refresh;
@BindView(R2.id.tv_title)
TextView tv_title;
@BindView(R2.id.recycle_download) @BindView(R2.id.recycle_download)
RecyclerView recycle_download; RecyclerView recycle_download;
@BindView(R2.id.tv_progress) @BindView(R2.id.tv_progress)
TextView tv_progress; TextView tv_progress;
/**
* 那個頁面跳轉下載
* 1#登錄頁選擇餐廳
* 2#其他
*/
private int fromPage =1;
@Override @Override
public void setupActivityComponent(@NonNull AppComponent appComponent) { public void setupActivityComponent(@NonNull AppComponent appComponent) {
DaggerDownloadComponent //如找不到该类,请编译一下项目 DaggerDownloadComponent //如找不到该类,请编译一下项目
...@@ -88,28 +104,24 @@ public class DownloadActivity extends BaseActivity<DownloadPresenter> implements ...@@ -88,28 +104,24 @@ public class DownloadActivity extends BaseActivity<DownloadPresenter> implements
@Override @Override
public void initIntent() { public void initIntent() {
fromPage = CCUtil.getNavigateParam(this, "fromPage", 1);
} }
@Override @Override
public void initTopBar() { public void initTopBar() {
QMUIAlphaImageButton leftButton = mTopBar.addLeftBackImageButton(); tv_title.setText("數據下載");
leftButton.setOnClickListener(new View.OnClickListener() { btn_back.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
killMyself(); killMyself();
} }
}); });
QMUIAlphaImageButton rightButton = mTopBar.addRightImageButton(R.drawable.icon_refresh, R.id.btn_back); btn_refresh.setOnClickListener(new View.OnClickListener() {
rightButton.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
mPresenter.downAllList(); mPresenter.downAllList();
} }
}); });
mTopBar.setTitle("數據下載").setTextColor(ArmsUtils.getColor(this, R.color.theme_white_color));
} }
@Override @Override
...@@ -189,7 +201,7 @@ public class DownloadActivity extends BaseActivity<DownloadPresenter> implements ...@@ -189,7 +201,7 @@ public class DownloadActivity extends BaseActivity<DownloadPresenter> implements
return; return;
} }
transparentStatusBar(activity); transparentStatusBar(activity);
setRootView(activity); // setRootView(activity);
} }
/** /**
...@@ -223,4 +235,8 @@ public class DownloadActivity extends BaseActivity<DownloadPresenter> implements ...@@ -223,4 +235,8 @@ public class DownloadActivity extends BaseActivity<DownloadPresenter> implements
} }
} }
} }
public int getFromPage() {
return fromPage;
}
} }
...@@ -5,17 +5,51 @@ ...@@ -5,17 +5,51 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="@mipmap/down_decoration"> android:background="@mipmap/down_decoration">
<com.qmuiteam.qmui.widget.QMUITopBar <!-- <com.qmuiteam.qmui.widget.QMUITopBar-->
android:id="@+id/topbar" <!-- android:id="@+id/topbar"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="?attr/qmui_topbar_height"-->
<!-- android:layout_marginTop="@dimen/dp_20"-->
<!-- android:background="@color/trans" />-->
<RelativeLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="?attr/qmui_topbar_height" android:layout_height="@dimen/dp_50"
android:layout_marginTop="@dimen/dp_20" android:layout_marginTop="@dimen/dp_30"
android:background="@color/trans" /> android:background="@color/trans">
<com.qmuiteam.qmui.alpha.QMUIAlphaImageButton
android:id="@+id/btn_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:src="@drawable/qmui_icon_topbar_back"
android:layout_marginLeft="@dimen/dp_15"/>
<TextView
android:id="@+id/tv_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/theme_white_color"
android:text="數據下載"
android:layout_centerInParent="true"
android:textSize="@dimen/sp_16"/>
<com.qmuiteam.qmui.alpha.QMUIAlphaImageButton
android:id="@+id/btn_refresh"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icon_refresh"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="@dimen/dp_15"/>
</RelativeLayout>
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical" android:orientation="vertical"
android:layout_marginTop="@dimen/dp_80"
android:weightSum="2"> android:weightSum="2">
<FrameLayout <FrameLayout
...@@ -40,7 +74,6 @@ ...@@ -40,7 +74,6 @@
android:textSize="@dimen/sp_24" /> android:textSize="@dimen/sp_24" />
</FrameLayout> </FrameLayout>
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycle_download" android:id="@+id/recycle_download"
android:layout_width="match_parent" android:layout_width="match_parent"
......
package com.gingersoft.gsa.cloud.main.mvp.ui.activity; package com.gingersoft.gsa.cloud.main.mvp.ui.activity;
import android.content.Intent; import android.content.Intent;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.GradientDrawable; import android.graphics.drawable.GradientDrawable;
import android.os.Bundle; import android.os.Bundle;
import android.os.Message; import android.os.Message;
...@@ -20,6 +22,7 @@ import androidx.recyclerview.widget.RecyclerView; ...@@ -20,6 +22,7 @@ import androidx.recyclerview.widget.RecyclerView;
import com.billy.cc.core.component.CC; import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication; import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.utils.JsonUtils; import com.gingersoft.gsa.cloud.base.utils.JsonUtils;
import com.gingersoft.gsa.cloud.base.utils.RestaurantInfoUtils;
import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils; import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils;
import com.gingersoft.gsa.cloud.database.bean.Function; import com.gingersoft.gsa.cloud.database.bean.Function;
import com.gingersoft.gsa.cloud.main.BuildConfig; import com.gingersoft.gsa.cloud.main.BuildConfig;
...@@ -151,7 +154,6 @@ public class NewMainActivity extends BaseActivity<NewMainPresenter> implements N ...@@ -151,7 +154,6 @@ public class NewMainActivity extends BaseActivity<NewMainPresenter> implements N
} }
refresh.setBackground(drawable); refresh.setBackground(drawable);
}); });
} }
/** /**
...@@ -278,6 +280,12 @@ public class NewMainActivity extends BaseActivity<NewMainPresenter> implements N ...@@ -278,6 +280,12 @@ public class NewMainActivity extends BaseActivity<NewMainPresenter> implements N
String restaurantName = GsaCloudApplication.getRestaurantName(this); String restaurantName = GsaCloudApplication.getRestaurantName(this);
String memberName = GsaCloudApplication.getMemberName(this); String memberName = GsaCloudApplication.getMemberName(this);
if (!TextUtils.isEmpty(restaurantName)) { if (!TextUtils.isEmpty(restaurantName)) {
if (RestaurantInfoUtils.getRestaurantSize(this) > 1) {
//顯示下拉圖標
Drawable drawable = getResources().getDrawable(R.drawable.ic_dropdown_white);
drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight());
tvRestaurantName.setCompoundDrawables(null, null, drawable, null);
}
tvRestaurantName.setText(restaurantName); tvRestaurantName.setText(restaurantName);
} }
if (!TextUtils.isEmpty(memberName)) { if (!TextUtils.isEmpty(memberName)) {
...@@ -294,7 +302,7 @@ public class NewMainActivity extends BaseActivity<NewMainPresenter> implements N ...@@ -294,7 +302,7 @@ public class NewMainActivity extends BaseActivity<NewMainPresenter> implements N
.addBrandItems(brandsBeans) .addBrandItems(brandsBeans)
.setOnItemClickListener((dialog, item, position) -> { .setOnItemClickListener((dialog, item, position) -> {
LoginBean.DataBean.UserBean.BrandsBean brandsBean = getBrandByRestaurantId(brandsBeans, item.getId()); LoginBean.DataBean.UserBean.BrandsBean brandsBean = RestaurantInfoUtils.getBrandByRestaurantId(brandsBeans, item.getId());
if (brandsBean != null) { if (brandsBean != null) {
saveBrandAndRestaurantInfo(brandsBean.getBrandId(), brandsBean.getBrandName(), item.getId(), item.getText()); saveBrandAndRestaurantInfo(brandsBean.getBrandId(), brandsBean.getBrandName(), item.getId(), item.getText());
...@@ -306,6 +314,7 @@ public class NewMainActivity extends BaseActivity<NewMainPresenter> implements N ...@@ -306,6 +314,7 @@ public class NewMainActivity extends BaseActivity<NewMainPresenter> implements N
setTitleInfo(); setTitleInfo();
CC.obtainBuilder("Component.Download") CC.obtainBuilder("Component.Download")
.setActionName("showDownloadActivity") .setActionName("showDownloadActivity")
.addParam("fromPage",2)
.build() .build()
.call(); .call();
dialog.dismiss(); dialog.dismiss();
...@@ -323,18 +332,6 @@ public class NewMainActivity extends BaseActivity<NewMainPresenter> implements N ...@@ -323,18 +332,6 @@ public class NewMainActivity extends BaseActivity<NewMainPresenter> implements N
GsaCloudApplication.setRestaurantName(this, restaurantName); GsaCloudApplication.setRestaurantName(this, restaurantName);
} }
private LoginBean.DataBean.UserBean.BrandsBean getBrandByRestaurantId(List<LoginBean.DataBean.UserBean.BrandsBean> brands, int restaurantId) {
for (int i = 0; i < brands.size(); i++) {
if (brands.get(i).getRestaurants() != null) {
for (int j = 0; j < brands.get(i).getRestaurants().size(); j++) {
if (brands.get(i).getRestaurants().get(j).getRestaurantId() == restaurantId) {
return brands.get(i);
}
}
}
}
return null;
}
@Override @Override
public void initIntent() { public void initIntent() {
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
<com.qmuiteam.qmui.widget.QMUITopBar <com.qmuiteam.qmui.widget.QMUITopBar
android:id="@+id/topbar" android:id="@+id/topbar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="?attr/qmui_topbar_height"/> android:layout_height="?attr/qmui_topbar_height" />
<TextView <TextView
android:id="@+id/tv_settlement_time" android:id="@+id/tv_settlement_time"
......
/build/
app.iml
proguard-rules.pro
apply from: rootProject.file('cc-settings.gradle')
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-android'
apply plugin: 'com.jakewharton.butterknife'
android {
compileSdkVersion rootProject.ext.android["compileSdkVersion"]
compileOptions {
targetCompatibility JavaVersion.VERSION_1_8
sourceCompatibility JavaVersion.VERSION_1_8
}
// 避免 lint 检测出错时停止构建
lintOptions {
abortOnError false
}
defaultConfig {
if (project.ext.runAsApp) {
applicationId "com.gingersoft.cloud.gsa.manager"
}
minSdkVersion rootProject.ext.android["minSdkVersion"]
targetSdkVersion rootProject.ext.android["targetSdkVersion"]
versionCode rootProject.ext.android["versionCode"]
versionName rootProject.ext.android["versionName"]
multiDexEnabled true
}
resourcePrefix "manager"
buildTypes {
debug {
buildConfigField "boolean", "LOG_DEBUG", "true"
buildConfigField "boolean", "USE_CANARY", "true"
minifyEnabled false
proguardFiles 'proguard.cfg'
}
release {
buildConfigField "boolean", "LOG_DEBUG", "false"
buildConfigField "boolean", "USE_CANARY", "false"
minifyEnabled false
shrinkResources false
zipAlignEnabled false
proguardFiles 'proguard.cfg'
}
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
annotationProcessor rootProject.ext.dependencies["dagger2-compiler"]
debugImplementation rootProject.ext.dependencies["canary-debug"]
releaseImplementation rootProject.ext.dependencies["canary-release"]
testImplementation rootProject.ext.dependencies["canary-release"]
testImplementation rootProject.ext.dependencies["junit"]
implementation rootProject.ext.dependencies["BaseRecyclerViewAdapter"]
compile "androidx.core:core-ktx:+"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
}
repositories {
mavenCentral()
}
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
package com.gingersoft.cloud.gsa;
import android.content.Context;
import androidx.test.platform.app.InstrumentationRegistry;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.*;
/**
* Instrumented test, which will execute on an Android device.
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
@Test
public void useAppContext() {
// Context of the app under test.
Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
assertEquals("com.gingersoft.cloud.gsa", appContext.getPackageName());
}
}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.gingersoft.gsa.cloud.manager">
<uses-permission android:name="android.permission.INTERNET" />
<application>
<!-- arms配置 -->
<meta-data
android:name="com.gingersoft.gsa.cloud.globalconfig.GlobalConfiguration"
android:value="ConfigModule" />
</application>
</manifest>
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.gingersoft.gsa.cloud.manager">
<application
android:name="com.gingersoft.gsa.cloud.base.application.GsaCloudApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:networkSecurityConfig="@xml/network_android"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<meta-data
android:name="com.gingersoft.gsa.cloud.globalconfig.GlobalConfiguration"
android:value="ConfigModule" />
<meta-data
android:name="design_width_in_dp"
android:value="360" />
<meta-data
android:name="design_height_in_dp"
android:value="540" />
</application>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />
</manifest>
package debug;
import com.billy.cc.core.component.CC;
import com.jess.arms.base.BaseApplication;
/**
* @author billy.qi
* @since 17/11/20 20:02
*/
public class MyApp extends BaseApplication {
@Override
public void onCreate() {
super.onCreate();
CC.enableVerboseLog(true);
CC.enableDebug(true);
CC.enableRemoteCC(true);
}
}
<resources>
<string name="main_app_name">Component_Main</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<resources>
</resources>
package com.gingersoft.gsa.cloud.table;
import com.billy.cc.core.component.CC;
import com.billy.cc.core.component.CCResult;
import com.billy.cc.core.component.CCUtil;
import com.billy.cc.core.component.IComponent;
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.TableActivity;
public class ComponentTable implements IComponent {
@Override
public String getName() {
//组件的名称,调用此组件的方式:
// CC.obtainBuilder("ComponentA")...build().callAsync()
return "Component.Manager";
}
/**
* 组件被调用时的入口
* 要确保每个逻辑分支都会调用到CC.sendCCResult,
* 包括try-catch,if-else,switch-case-default,startActivity
* @param cc 组件调用对象,可从此对象中获取相关信息
* @return true:将异步调用CC.sendCCResult(...),用于异步实现相关功能,例如:文件加载、网络请求等
* false:会同步调用CC.sendCCResult(...),即在onCall方法return之前调用,否则将被视为不合法的实现
*/
@Override
public boolean onCall(CC cc) {
String actionName = cc.getActionName();
switch (actionName) {
case "showOrderManagerActivity":
openOrderManagerActivity(cc);
break;
case "showTagManagerActivity":
openTagManagerActivity(cc);
break;
default:
//这个逻辑分支上没有调用CC.sendCCResult(...),是一种错误的示例
//并且方法的返回值为false,代表不会异步调用CC.sendCCResult(...)
//在LocalCCInterceptor中将会返回错误码为-10的CCResult
break;
}
return false;
}
private void openOrderManagerActivity(CC cc) {
// CCUtil.navigateTo(cc, TableActivity.class);
// CC.sendCCResult(cc.getCallId(), CCResult.success());
}
private void openTagManagerActivity(CC cc) {
// CCUtil.navigateTo(cc, OrderPayActivity.class);
// CC.sendCCResult(cc.getCallId(), CCResult.success());
}
}
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt"
android:width="108dp"
android:height="108dp"
android:viewportHeight="108"
android:viewportWidth="108">
<path
android:fillType="evenOdd"
android:pathData="M32,64C32,64 38.39,52.99 44.13,50.95C51.37,48.37 70.14,49.57 70.14,49.57L108.26,87.69L108,109.01L75.97,107.97L32,64Z"
android:strokeColor="#00000000"
android:strokeWidth="1">
<aapt:attr name="android:fillColor">
<gradient
android:endX="78.5885"
android:endY="90.9159"
android:startX="48.7653"
android:startY="61.0927"
android:type="linear">
<item
android:color="#44000000"
android:offset="0.0" />
<item
android:color="#00000000"
android:offset="1.0" />
</gradient>
</aapt:attr>
</path>
<path
android:fillColor="#FFFFFF"
android:fillType="nonZero"
android:pathData="M6.94,46.02L66.94,46.02C72.44,50.07 76,56.61 76,64L32,64C32,56.61 35.56,50.11 40.98,46.06L36.18,41.19C35.45,40.45 35.45,39.3 36.18,38.56C36.91,37.81 38.05,37.81 38.78,38.56L44.25,44.05C47.18,42.57 50.48,41.71 54,41.71C57.48,41.71 60.78,42.57 63.68,44.05L69.11,38.56C69.84,37.81 70.98,37.81 71.71,38.56C72.44,39.3 72.44,40.45 71.71,41.19L66.94,46.02ZM62.94,56.92C64.08,56.92 65,56.01 65,54.88C65,53.76 64.08,52.85 62.94,52.85C61.8,52.85 60.88,53.76 60.88,54.88C60.88,56.01 61.8,56.92 62.94,56.92ZM45.06,56.92C46.2,56.92 47.13,56.01 47.13,54.88C47.13,53.76 46.2,52.85 45.06,52.85C43.92,52.85 43,53.76 43,54.88C43,56.01 43.92,56.92 45.06,56.92Z"
android:strokeColor="#00000000"
android:strokeWidth="1" />
</vector>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="main_colorPrimary">#008577</color>
<color name="main_colorPrimaryDark">#00574B</color>
<color name="main_colorAccent">#D81B60</color>
<!-- 報表虛線顏色-->
<color name="report_dotted_line_color">#8CA0B3</color>
<color name="report_left_scale">#018EF2</color>
<!-- 報表“昨日”線條顏色-->
<color name="today_line">#FFCC8F</color>
<color name="payment_method_color1">#FF3F4E</color>
<color name="payment_method_color2">#8FC31F</color>
<color name="payment_method_color3">#F19EC2</color>
<color name="payment_method_color4">#EB6100</color>
<color name="payment_method_color5">#AA89BD</color>
<color name="payment_method_color6">#00A0E9</color>
<color name="payment_method_color7">#EFE75E</color>
<color name="payment_method_color8">#5358F1</color>
<color name="payment_method_color9">#ff2d51</color>
<color name="payment_method_color10">#426666</color>
<color name="payment_method_color11">#bce672</color>
<color name="payment_method_color12">#44cef6</color>
<color name="payment_method_color13">#ffa631</color>
<color name="payment_method_color14">#a3d900</color>
<color name="payment_method_color15">#f00056</color>
<color name="payment_method_color16">#bf242a</color>
<color name="payment_method_color17">#a1afc9</color>
<color name="payment_method_color18">#c89c23</color>
<color name="payment_method_color19">#e4c6d0</color>
<color name="payment_method_color20">#103371</color>
</resources>
<resources>
<dimen name="main_fab_margin">16dp</dimen>
<dimen name="main_recyclerview_marginLeft">@dimen/dp_15</dimen>
<dimen name="main_recyclerview_marginRight">@dimen/dp_15</dimen>
<dimen name="main_page_radius">@dimen/dp_12</dimen>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item name="main_home_refresh" type="id"/>
<item name="main_home_msg" type="id"/>
</resources>
\ No newline at end of file
<resources>
<string name="main_app_name">GSA-Cloud</string>
<string name="main">首頁</string>
<string name="report">报表</string>
<string name="my">我的</string>
<string name="turnover_today">今日營業額($)</string>
<string name="cutoff">截止</string>
<string name="total_amount_of_project">項目總金額</string>
<string name="number_of_consumers">消費人數</string>
<string name="bill_number">賬單數</string>
<string name="main_action_settings">Settings</string>
<string name="configuration">配置</string>
<string name="home_page">首頁</string>
<string name="minqing">沽清</string>
<string name="data_down">數據下載</string>
<string name="function_table_service">餐檯服務</string>
<string name="function_report">報表</string>
<string name="function_manage">管理选项</string>
<string name="function_soldout_ctrl">沽清控制</string>
<string name="quit_system">退出系統</string>
<string name="format_one_point">%1$.1f</string>
</resources>
<resources>
<!-- Base application theme. -->
<style name="main_AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/main_colorPrimary</item>
<item name="colorPrimaryDark">@color/main_colorPrimaryDark</item>
<item name="colorAccent">@color/main_colorAccent</item>
</style>
</resources>
package com.gingersoft.cloud.gsa;
import org.junit.Test;
import java.math.BigDecimal;
import static org.junit.Assert.*;
/**
* Example local unit test, which will execute on the development machine (host).
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
public class ExampleUnitTest {
@Test
public void addition_isCorrect() {
assertEquals(4, 2 + 2);
BigDecimal bigDecimal = new BigDecimal(13.456);
// BigDecimal bigDecimal2 = new BigDecimal(1.56);
System.out.println("bigDecimal: "+bigDecimal.setScale(2, BigDecimal.ROUND_DOWN).doubleValue());
}
}
\ No newline at end of file
...@@ -17,6 +17,7 @@ import com.gingersoft.gsa.cloud.base.adapter.print.KitChenPrintFoodAdapter; ...@@ -17,6 +17,7 @@ import com.gingersoft.gsa.cloud.base.adapter.print.KitChenPrintFoodAdapter;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication; import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.BillingBean; import com.gingersoft.gsa.cloud.base.common.bean.BillingBean;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail; import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
import com.gingersoft.gsa.cloud.base.common.bean.PayMethod;
import com.gingersoft.gsa.cloud.base.common.bean.TableBean; import com.gingersoft.gsa.cloud.base.common.bean.TableBean;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage; import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage; import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage;
...@@ -281,8 +282,9 @@ public class PrintUtils { ...@@ -281,8 +282,9 @@ public class PrintUtils {
//總金額 //總金額
mTvTotalAmount.setText(totalAmount + ""); mTvTotalAmount.setText(totalAmount + "");
List<PayMethod> payBillMoneys = MyOrderManage.getInstance().getBillMoney();
rvPayType.setLayoutManager(new LinearLayoutManager(context)); rvPayType.setLayoutManager(new LinearLayoutManager(context));
rvPayType.setAdapter(new BillTypeAdapter(MyOrderManage.getInstance().getBillMoney())); rvPayType.setAdapter(new BillTypeAdapter(payBillMoneys));
//加载条形码 //加载条形码
// ImageView ivBarCode = view.findViewById(R.id.iv_bar_code); // ImageView ivBarCode = view.findViewById(R.id.iv_bar_code);
// ivBarCode.setImageBitmap(BitmapUtil.generateBitmap("12312112131", 2, 450, 150)); // ivBarCode.setImageBitmap(BitmapUtil.generateBitmap("12312112131", 2, 450, 150));
......
...@@ -24,6 +24,6 @@ public class BillTypeAdapter extends BaseQuickAdapter<PayMethod, BaseViewHolder> ...@@ -24,6 +24,6 @@ public class BillTypeAdapter extends BaseQuickAdapter<PayMethod, BaseViewHolder>
@Override @Override
protected void convert(BaseViewHolder helper, PayMethod item) { protected void convert(BaseViewHolder helper, PayMethod item) {
helper.setText(R.id.tv_total_amount_text, item.getPayName()); helper.setText(R.id.tv_total_amount_text, item.getPayName());
helper.setText(R.id.tv_total_amount, item.getPayMoney() + ""); helper.setText(R.id.tv_total_amount, "$" + item.getPayMoney());
} }
} }
...@@ -68,7 +68,7 @@ public class CurrentAndroidSetting { ...@@ -68,7 +68,7 @@ public class CurrentAndroidSetting {
private boolean MemberLoginCover = true; private boolean MemberLoginCover = true;
private String LanageName = "中文,粵語,英文"; private String LanageName = "中文,粵語,英文";
private int DataLanguage = 2; private int DataLanguage = 2;
private int AutoQuitTime = 20; private int AutoQuitTime = 600;
private int ModFunctionBarHeight = 60; private int ModFunctionBarHeight = 60;
private int BottomBarHeight = 160; private int BottomBarHeight = 160;
private int ReportFontSize = 15; private int ReportFontSize = 15;
......
...@@ -55,8 +55,8 @@ public class MyOrderManage { ...@@ -55,8 +55,8 @@ public class MyOrderManage {
/**本次支付方式,用於打印*/ /**本次支付方式,用於打印*/
private List<PayMethod> billMoney = new ArrayList<>(); private List<PayMethod> billMoney = new ArrayList<>();
/**是不是修改訂單操作*/ /**記錄修改訂單操作*/
private boolean modifyOrder=false; private boolean modifyOrder = false;
public long getOrderId() { public long getOrderId() {
if (orderBean != null) { if (orderBean != null) {
......
...@@ -19,8 +19,6 @@ public class OpenTableManage { ...@@ -19,8 +19,6 @@ public class OpenTableManage {
private TableBean.DataBean tableBean; private TableBean.DataBean tableBean;
//使用狀態 //使用狀態
private int useStatus; private int useStatus;
//是否刷新數據
private boolean isRefresh = false;
//開台人數 //開台人數
private int peopleNumber = 0; private int peopleNumber = 0;
//是否分檯 //是否分檯
...@@ -28,9 +26,6 @@ public class OpenTableManage { ...@@ -28,9 +26,6 @@ public class OpenTableManage {
//分檯編號 //分檯編號
private String splitNo; private String splitNo;
//訂單ID
// private int orderId ;
public static OpenTableManage getDefault() { public static OpenTableManage getDefault() {
if (sDefaultOpenTableManage == null) { if (sDefaultOpenTableManage == null) {
sDefaultOpenTableManage = new OpenTableManage(); sDefaultOpenTableManage = new OpenTableManage();
...@@ -39,7 +34,10 @@ public class OpenTableManage { ...@@ -39,7 +34,10 @@ public class OpenTableManage {
} }
public void clear() { public void clear() {
tableBean = null;
peopleNumber = 0; peopleNumber = 0;
isSplite = false;
splitNo = "";
} }
public TableBean.DataBean getTableBean() { public TableBean.DataBean getTableBean() {
...@@ -58,14 +56,6 @@ public class OpenTableManage { ...@@ -58,14 +56,6 @@ public class OpenTableManage {
this.useStatus = useStatus; this.useStatus = useStatus;
} }
public boolean isRefresh() {
return isRefresh;
}
public void setRefresh(boolean refresh) {
isRefresh = refresh;
}
public int getPeopleNumber() { public int getPeopleNumber() {
return peopleNumber; return peopleNumber;
} }
......
package com.gingersoft.gsa.cloud.base.utils; package com.gingersoft.gsa.cloud.base.utils;
import android.content.Context;
import android.text.TextUtils;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean; import com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean;
import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
...@@ -13,12 +18,21 @@ import java.util.List; ...@@ -13,12 +18,21 @@ import java.util.List;
*/ */
public class RestaurantInfoUtils { public class RestaurantInfoUtils {
public static List<LoginBean.DataBean.UserBean.BrandsBean> getBrandList(Context context) {
String brandRestaurantInfos = GsaCloudApplication.getBrandRestaurantInfos(context);
if (!TextUtils.isEmpty(brandRestaurantInfos)) {
List<LoginBean.DataBean.UserBean.BrandsBean> brandsBeans = JsonUtils.parseArray(brandRestaurantInfos, LoginBean.DataBean.UserBean.BrandsBean.class);
return brandsBeans;
}
return new ArrayList<>();
}
public static int getRestaurantSize(List<LoginBean.DataBean.UserBean.BrandsBean> brands) { public static int getRestaurantSize(Context context) {
int size = 0; int size = 0;
for (int i = 0; i < brands.size(); i++) { List<LoginBean.DataBean.UserBean.BrandsBean> brandsBeans = getBrandList(context);
if (brands.get(i).getRestaurants() != null) for (int i = 0; i < getBrandList(context).size(); i++) {
size += brands.get(i).getRestaurants().size(); if (brandsBeans.get(i).getRestaurants() != null)
size += brandsBeans.get(i).getRestaurants().size();
} }
return size; return size;
} }
......
...@@ -24,10 +24,11 @@ import com.gingersoft.gsa.cloud.base.utils.constans.HttpsConstans; ...@@ -24,10 +24,11 @@ import com.gingersoft.gsa.cloud.base.utils.constans.HttpsConstans;
import com.gingersoft.gsa.cloud.base.utils.file.FileUtils; import com.gingersoft.gsa.cloud.base.utils.file.FileUtils;
import com.gingersoft.gsa.cloud.base.utils.log.LogUtil; import com.gingersoft.gsa.cloud.base.utils.log.LogUtil;
import com.gingersoft.gsa.cloud.base.utils.okhttpUtils.OkHttp3Utils; import com.gingersoft.gsa.cloud.base.utils.okhttpUtils.OkHttp3Utils;
import com.gingersoft.gsa.cloud.base.utils.other.AppUtils;
import com.jess.arms.di.component.AppComponent; import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
import com.jess.arms.utils.DeviceUtils; import com.jess.arms.utils.DeviceUtils;
import com.qmuiteam.qmui.util.QMUIDeviceHelper;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
...@@ -176,8 +177,8 @@ public class AppCrashHandler implements UncaughtExceptionHandler { ...@@ -176,8 +177,8 @@ public class AppCrashHandler implements UncaughtExceptionHandler {
System.arraycopy(trace, 0, trace2, 0, trace.length); System.arraycopy(trace, 0, trace2, 0, trace.length);
trace2[trace.length + 0] = new StackTraceElement("Android", "MODEL", Build.MODEL, -1); trace2[trace.length + 0] = new StackTraceElement("Android", "MODEL", Build.MODEL, -1);
trace2[trace.length + 1] = new StackTraceElement("Android", "VERSION", Build.VERSION.RELEASE, -1); trace2[trace.length + 1] = new StackTraceElement("Android", "VERSION", Build.VERSION.RELEASE, -1);
trace2[trace.length + 2] = new StackTraceElement("Gsa-Could", "APP_VERSION_CODE", AppUtils.getVerCode(mContext) + "", -1); trace2[trace.length + 2] = new StackTraceElement("Gsa-Could", "APP_VERSION_CODE", DeviceUtils.getVersionCode(mContext) + "", -1);
trace2[trace.length + 3] = new StackTraceElement("Gsa-Could", "APP_VERSION_NAME", AppUtils.getVerName(mContext), -1); trace2[trace.length + 3] = new StackTraceElement("Gsa-Could", "APP_VERSION_NAME", DeviceUtils.getVersionName(mContext), -1);
trace2[trace.length + 4] = new StackTraceElement("Android", "FINGERPRINT", Build.FINGERPRINT, -1); trace2[trace.length + 4] = new StackTraceElement("Android", "FINGERPRINT", Build.FINGERPRINT, -1);
// 追加信息,因为后面会回调默认的处理方法 // 追加信息,因为后面会回调默认的处理方法
ex.setStackTrace(trace2); ex.setStackTrace(trace2);
......
package com.gingersoft.gsa.cloud.base.utils.mobile;
import android.content.Context;
import android.content.SharedPreferences;
import android.provider.Settings;
import android.telephony.TelephonyManager;
import java.io.UnsupportedEncodingException;
import java.util.UUID;
/**
* 生成手机设备唯一UUID
*/
public class DeviceUuidFactory {
protected static final String PREFS_FILE = "device_id.xml";
protected static final String PREFS_DEVICE_ID = "device_id";
protected static UUID uuid;
public DeviceUuidFactory(Context context) {
if (uuid == null) {
synchronized (DeviceUuidFactory.class) {
if (uuid == null) {
final SharedPreferences prefs = context.getSharedPreferences(PREFS_FILE, 0);
final String id = prefs.getString(PREFS_DEVICE_ID, null);
if (id != null) {
// Use the ids previously computed and stored in the prefs file
uuid = UUID.fromString(id);
} else {
final String androidId = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID);
// Use the Android ID unless it's broken, in which case fallback on deviceId,
// unless it's not available, then fallback on a random number which we store
// to a prefs file
try {
if (!"9774d56d682e549c".equals(androidId)) {
uuid = UUID.nameUUIDFromBytes(androidId.getBytes("utf8"));
} else {
final String deviceId = ((TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE)).getDeviceId();
uuid = deviceId != null ? UUID.nameUUIDFromBytes(deviceId.getBytes("utf8")) : UUID.randomUUID();
}
} catch (UnsupportedEncodingException e) {
throw new RuntimeException(e);
}
// Write the value out to the prefs file
prefs.edit().putString(PREFS_DEVICE_ID, uuid.toString()).commit();
}
}
}
}
}
/**
* 返回当前Android设备的唯一UUID。与所有UUID一样,这个独特的ID“非常可靠”
* 在所有Android设备上都是独一无二的。比ANDROID_ID好多了。
* UUID是通过使用ANDROID_ID作为基本密钥(如果适用)生成的
* TelephonyManager.getDeviceID()如果ANDROID_ID已知不正确,最后回落
* 在一个随机的UUID上,如果getDeviceID()不返回,那么它会持续到SharedPreferences
* 可用价值。
* 在极少数情况下,此ID可能会改变。特别是,如果设备出厂设置了新的设备ID
* 可能会生成。另外,如果用户从Android2.2的某些错误实施中升级他们的手机
* 到更新的,非bug的版本的Android,设备ID可能会改变。或者,如果用户卸载您的应用程序
* 没有适当的Android ID和设备ID的设备,此ID可能会在重新安装时更改。
* 请注意,如果代码使用TelephonyManager.getDeviceId()返回,则生成的ID不会
* 出厂复位后更换。需要注意的事项
* 在直接使用ANDROID_ID时,适用于许多设备的Android2.2中的错误。**
*
* @http ://code.google.com/p/android/issues/detail?id=10603
* @返回一个UUID ,可用于为大多数用途唯一标识您的设备。
**/
public UUID getDeviceUuid() {
return uuid;
}
}
package com.gingersoft.gsa.cloud.base.utils.mobile;
import android.content.Context;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.util.UUID;
/**
* 应用安装唯一ID
*这种方式的原理是在程序安装后第一次运行时生成一个ID,
*该方式和设备唯一标识不一样,不同的应用程序会产生不同的ID,
*同一个程序重新安装也会不同。所以这不是设备的唯一ID,
*但是可以保证每个用户的ID是不同的。
*可以说是用来标识每一份应用程序的唯一ID(即Installtion ID),
*可以用来跟踪应用的安装数量等
*/
public class Installation {
private static String sID = null;
private static final String INSTALLATION = "INSTALLATION";
public synchronized static String id(Context context) {
if (sID == null) {
File installation = new File(context.getFilesDir(), INSTALLATION);
try {
if (!installation.exists())
writeInstallationFile(installation);
sID = readInstallationFile(installation);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
return sID;
}
private static String readInstallationFile(File installation) throws IOException {
RandomAccessFile f = new RandomAccessFile(installation, "r");
byte[] bytes = new byte[(int) f.length()];
f.readFully(bytes);
f.close();
return new String(bytes);
}
private static void writeInstallationFile(File installation) throws IOException {
FileOutputStream out = new FileOutputStream(installation);
String id = UUID.randomUUID().toString();
out.write(id.getBytes());
out.close();
}
}
...@@ -3,14 +3,13 @@ package com.gingersoft.gsa.cloud.base.utils.okhttpUtils; ...@@ -3,14 +3,13 @@ package com.gingersoft.gsa.cloud.base.utils.okhttpUtils;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication; import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.utils.constans.AppConstans; import com.gingersoft.gsa.cloud.base.utils.constans.AppConstans;
import com.gingersoft.gsa.cloud.base.utils.encryption.Aes; import com.gingersoft.gsa.cloud.base.utils.encryption.Aes;
import com.gingersoft.gsa.cloud.base.utils.other.AppUtils; import com.jess.arms.utils.DeviceUtils;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import io.reactivex.Observable; import io.reactivex.Observable;
import io.reactivex.ObservableEmitter; import io.reactivex.ObservableEmitter;
import io.reactivex.ObservableOnSubscribe; import io.reactivex.ObservableOnSubscribe;
...@@ -248,7 +247,7 @@ public class OkHttp3Utils { ...@@ -248,7 +247,7 @@ public class OkHttp3Utils {
builder.set("mobileVersion", android.os.Build.VERSION.RELEASE);//set表示name1是唯一的,会覆盖掉已经存在的,add不会覆盖已经存在的头,可以存在多个 builder.set("mobileVersion", android.os.Build.VERSION.RELEASE);//set表示name1是唯一的,会覆盖掉已经存在的,add不会覆盖已经存在的头,可以存在多个
builder.set("mobielModel", android.os.Build.MODEL); builder.set("mobielModel", android.os.Build.MODEL);
builder.set("apptype", AppConstans.APP_TYPE); builder.set("apptype", AppConstans.APP_TYPE);
builder.set("appinfo", AppUtils.getVerName(GsaCloudApplication.getAppContext())); builder.set("appinfo", DeviceUtils.getVersionName(GsaCloudApplication.getAppContext()));
builder.set("mobileId", "1"); builder.set("mobileId", "1");
if (GsaCloudApplication.isLogin) if (GsaCloudApplication.isLogin)
builder.set("token", token); builder.set("token", token);
......
package com.gingersoft.gsa.cloud.base.utils.other;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.text.TextUtils;
import com.gingersoft.gsa.cloud.base.utils.log.LogUtil;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
* @ClassName: AppUtil
* @Description:TODO(App相关的辅助类)
*/
public class AppUtils {
/**
* 获取应用程序名称
*
* @param context
* @return
*/
public static String getAppName(Context context) {
try {
PackageManager packageManager = context.getPackageManager();
PackageInfo packageInfo = packageManager.getPackageInfo(
context.getPackageName(), 0);
int labelRes = packageInfo.applicationInfo.labelRes;
return context.getResources().getString(labelRes);
} catch (NameNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
/**
* 获取版本号
*
* @param context
* @return
*/
public static int getVerCode(Context context) {
int verCode = -1;
try {
verCode = context.getPackageManager().getPackageInfo(
context.getPackageName(), 0).versionCode;
} catch (NameNotFoundException e) {
e.printStackTrace();
LogUtil.e(e.getMessage());
}
return verCode;
}
/**
* 获取版本名称
*
* @param context
* @return
*/
public static String getVerName(Context context) {
String verName = "";
try {
verName = context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionName;
} catch (NameNotFoundException e) {
LogUtil.e(e.getMessage());
}
return verName;
}
/**
* 获取手机mac地址
*
* @param context
* @return
*/
public static String getLocalMacAddress(Context context) {
WifiManager wifi = (WifiManager) context
.getSystemService(Context.WIFI_SERVICE);
WifiInfo info = wifi.getConnectionInfo();
return info.getMacAddress();
}
/**
* 启动到应用商店app详情界面
*
* @param appPkg 目标App的包名
* @param marketPkg 应用商店包名 ,如果为""则由系统弹出应用商店列表供用户选择,否则调转到目标市场的应用详情界面,某些应用商店可能会失败
*/
public static void launchAppDetail(Context mContext, String appPkg, String marketPkg) throws Exception {
if (TextUtils.isEmpty(appPkg)) return;
Uri uri = Uri.parse("market://details?id=" + appPkg);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
if (!TextUtils.isEmpty(marketPkg)) {
intent.setPackage(marketPkg);
}
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mContext.startActivity(intent);
}
/**
* 验证是否已安装应用并返回apk信息
*
* @param system//是否过滤掉系统app
* @param packageManager
* @param packageNames//需要验证的apk包名 mapsPackageName==null 返回手机所有已安装apk信息
* @return
*/
public static List<MyAppInfo> scanLocalInstallAppList(boolean system, PackageManager packageManager, ArrayList<String> packageNames) {
List<MyAppInfo> myAppInfos = new ArrayList<MyAppInfo>();
try {
List<PackageInfo> packageInfos = packageManager.getInstalledPackages(0);
for (int i = 0; i < packageInfos.size(); i++) {
PackageInfo packageInfo = packageInfos.get(i);
if (system) {
//过滤掉系统app
if ((ApplicationInfo.FLAG_SYSTEM & packageInfo.applicationInfo.flags) != 0) {
continue;
}
}
String packageName = packageInfo.packageName;
int index = i;
if (packageNames != null && packageNames.size() > 0) {
index = packageNames.indexOf(packageName);
if (index == -1) {
continue;
}
LogUtil.e("------------------------" + packageName);
}
MyAppInfo myAppInfo = new MyAppInfo();
myAppInfo.setSort(index);
myAppInfo.setPackageName(packageName);
String str_name = packageInfo.applicationInfo.loadLabel(packageManager).toString();
myAppInfo.setAppName(str_name);
if (packageInfo.applicationInfo.loadIcon(packageManager) == null) {
continue;
}
myAppInfo.setImage(packageInfo.applicationInfo.loadIcon(packageManager));
myAppInfos.add(myAppInfo);
}
} catch (Exception e) {
e.printStackTrace();
}
return myAppInfos;
}
public static class MyAppInfo implements Serializable {
private int sort;
private Drawable image;
private String appName;
private String packageName;
public MyAppInfo(int sort, Drawable image, String appName, String packageName) {
this.sort = sort;
this.image = image;
this.appName = appName;
this.packageName = packageName;
}
public MyAppInfo() {
}
public int getSort() {
return sort;
}
public void setSort(int sort) {
this.sort = sort;
}
public Drawable getImage() {
return image;
}
public void setImage(Drawable image) {
this.image = image;
}
public String getAppName() {
return appName;
}
public void setAppName(String appName) {
this.appName = appName;
}
public String getPackageName() {
return packageName;
}
public void setPackageName(String packageName) {
this.packageName = packageName;
}
}
}
package com.gingersoft.gsa.cloud.base.utils.request;
import android.content.Context;
import android.text.TextUtils;
import android.util.Log;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.utils.constans.UserConstans;
import com.gingersoft.gsa.cloud.base.utils.encryption.MD5;
import com.gingersoft.gsa.cloud.base.utils.mobile.DeviceUuidFactory;
import com.gingersoft.gsa.cloud.base.utils.mobile.Installation;
import com.gingersoft.gsa.cloud.base.utils.other.SPUtils;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
import java.util.UUID;
import static com.gingersoft.gsa.cloud.base.application.GsaCloudApplication.getLoginToken;
/**
* autour: ELEGANT_BIN
* date: 2018/4/9 18:56
* update: 2018/4/9 18:56
* description:
*/
public class RequestUtils {
/**
* @param dataMap
* @param times
* @return
* @Title: getSign
* @Description: TODO(获取签名)
*/
public static String getSign(Context context, Map<String, Object> dataMap, long times) {
String sign = "";
String token = GsaCloudApplication.getLoginToken(context);
if (!TextUtils.isEmpty(token)) {
MD5 md5 = new MD5();
Set<String> set = new TreeSet<>();
Set<String> keys = dataMap.keySet();
set.addAll(keys);
StringBuffer buffer = new StringBuffer();
for (String key : set) {
buffer.append(key);
buffer.append("=");
buffer.append(dataMap.get(key) + "");
}
buffer.append("token=" + token + "");
buffer.append("times=" + times + "");
sign = md5.GetMD5Code(buffer.toString());
Log.e("joe", "bufferStr=====> " + buffer.toString());
}
return sign;
}
private static String getuUid(Context context) {
DeviceUuidFactory deviceUuidFactory = new DeviceUuidFactory(context);
UUID deviceUuid = deviceUuidFactory.getDeviceUuid();
if (deviceUuid != null) {
return deviceUuid.toString();
} else {
return Installation.id(context);
}
}
}
/**
* @company: JOE工作室
* @Copyright: Copyright © 2013 - 2016 joe.All Rights Reserved.
* @Filename: ConvertDpAndPx.java
* @Description: TODO(用一句话描述该文件做什么)
* @Author: JOE
* @Date: 2016-9-2 下午6:16:29
**/
package com.gingersoft.gsa.cloud.base.utils.screen;
/**
* @company: JOE工作室
* @ClassName: ConvertDpAndPx
* @Description: TODO(这里用一句话描述这个类的作用)
* @Author: JOE
* @Date: 2016-9-2 下午6:16:29
*/
import android.content.Context;
public class ConvertDpAndPx {
/**
* dp转换成px,代码写的是像素,而XML中写的是单位密度
* @param context
* @param dp
* @return
*/
public static int Dp2Px(Context context, float dp) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (dp * scale + 0.5f);
}
/**
* px转换成dp,代码写的是像素,而XML中(dp)写的是单位密度
* @param context
* @param px
* @return
*/
public static int Px2Dp(Context context, float px) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (px / scale + 0.5f);
}
}
...@@ -3,9 +3,8 @@ package com.gingersoft.gsa.cloud.globalconfig.applyOptions; ...@@ -3,9 +3,8 @@ package com.gingersoft.gsa.cloud.globalconfig.applyOptions;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication; import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.utils.constans.AppConstans; import com.gingersoft.gsa.cloud.base.utils.constans.AppConstans;
import com.gingersoft.gsa.cloud.base.utils.encryption.Aes; import com.gingersoft.gsa.cloud.base.utils.encryption.Aes;
import com.gingersoft.gsa.cloud.base.utils.other.AppUtils;
import com.jess.arms.http.GlobalHttpHandler; import com.jess.arms.http.GlobalHttpHandler;
import com.jess.arms.utils.DeviceUtils;
import okhttp3.Headers; import okhttp3.Headers;
import okhttp3.Interceptor; import okhttp3.Interceptor;
import okhttp3.Request; import okhttp3.Request;
...@@ -41,7 +40,7 @@ public class MyGlobalHttpHandler implements GlobalHttpHandler { ...@@ -41,7 +40,7 @@ public class MyGlobalHttpHandler implements GlobalHttpHandler {
builder.set("mobileVersion", android.os.Build.VERSION.RELEASE);//set表示name1是唯一的,会覆盖掉已经存在的,add不会覆盖已经存在的头,可以存在多个 builder.set("mobileVersion", android.os.Build.VERSION.RELEASE);//set表示name1是唯一的,会覆盖掉已经存在的,add不会覆盖已经存在的头,可以存在多个
builder.set("mobielModel", android.os.Build.MODEL); builder.set("mobielModel", android.os.Build.MODEL);
builder.set("apptype", AppConstans.APP_TYPE); builder.set("apptype", AppConstans.APP_TYPE);
builder.set("appinfo", AppUtils.getVerName(GsaCloudApplication.getAppContext())); builder.set("appinfo", DeviceUtils.getVersionName(GsaCloudApplication.getAppContext()));
builder.set("mobileId", "1"); builder.set("mobileId", "1");
Headers headers = request.headers(); Headers headers = request.headers();
if (headers != null) { if (headers != null) {
......
...@@ -8,6 +8,8 @@ import android.text.TextUtils; ...@@ -8,6 +8,8 @@ import android.text.TextUtils;
import com.billy.cc.core.component.CC; import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.base.R; import com.gingersoft.gsa.cloud.base.R;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication; import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage;
import com.gingersoft.gsa.cloud.base.utils.log.LogUtil; import com.gingersoft.gsa.cloud.base.utils.log.LogUtil;
import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils; import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils;
import com.google.gson.JsonIOException; import com.google.gson.JsonIOException;
...@@ -84,6 +86,11 @@ public class MyResponseErrorListener implements ResponseErrorListener { ...@@ -84,6 +86,11 @@ public class MyResponseErrorListener implements ResponseErrorListener {
dialogBuilder.setTitle("溫馨提示"); dialogBuilder.setTitle("溫馨提示");
dialogBuilder.setMessage(msg); dialogBuilder.setMessage(msg);
dialogBuilder.addAction(0, "確認", QMUIDialogAction.ACTION_PROP_NEGATIVE, (dialog, index) -> { dialogBuilder.addAction(0, "確認", QMUIDialogAction.ACTION_PROP_NEGATIVE, (dialog, index) -> {
//清空賬單數據
MyOrderManage.getInstance().clear();
//清空開檯數據
OpenTableManage.getDefault().clear();
//修改登錄狀態
GsaCloudApplication.isLogin = false; GsaCloudApplication.isLogin = false;
CC.obtainBuilder("User.Component.Login") CC.obtainBuilder("User.Component.Login")
.setActionName("showActivityA") .setActionName("showActivityA")
......
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="wrap_content"
android:orientation="horizontal"> android:orientation="horizontal">
<TextView <TextView
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginLeft="@dimen/dp_5" android:layout_marginLeft="@dimen/dp_5"
android:text="微信" /> android:text="微信: " />
<TextView <TextView
android:id="@+id/tv_amount" android:id="@+id/tv_amount"
......
...@@ -91,7 +91,7 @@ ...@@ -91,7 +91,7 @@
android:layout_marginLeft="20dp" android:layout_marginLeft="20dp"
android:layout_weight="2" android:layout_weight="2"
android:background="@drawable/shape_rect_fillet_white_5" android:background="@drawable/shape_rect_fillet_white_5"
android:drawableRight="@drawable/black_dropdown" android:drawableRight="@drawable/ic_dropdown_black"
android:gravity="center" android:gravity="center"
android:paddingLeft="@dimen/normal_space" android:paddingLeft="@dimen/normal_space"
android:paddingRight="@dimen/normal_space" android:paddingRight="@dimen/normal_space"
...@@ -116,7 +116,7 @@ ...@@ -116,7 +116,7 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_weight="2" android:layout_weight="2"
android:background="@drawable/shape_rect_fillet_white_5" android:background="@drawable/shape_rect_fillet_white_5"
android:drawableRight="@drawable/black_dropdown" android:drawableRight="@drawable/ic_dropdown_black"
android:gravity="center" android:gravity="center"
android:paddingLeft="@dimen/normal_space" android:paddingLeft="@dimen/normal_space"
android:paddingRight="@dimen/normal_space" android:paddingRight="@dimen/normal_space"
......
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android" <TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tv_name" android:id="@+id/tv_name"
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingTop="@dimen/dp_15" android:paddingTop="@dimen/dp_15"
android:paddingBottom="@dimen/dp_15" android:paddingBottom="@dimen/dp_15"
......
...@@ -10,11 +10,24 @@ package com.gingersoft.gsa.cloud.table.app; ...@@ -10,11 +10,24 @@ package com.gingersoft.gsa.cloud.table.app;
public interface TableOperatTypeConstant { public interface TableOperatTypeConstant {
/** /**
* 1、分台 * 0#全部
* 2、上菜纸 * 1#可使用
* 3、重置 * 2#已使用
* 4、转台 * 3#已送單
* 5、sky_order * 4#已印單
*/
int table_status_0 = 0;
int table_status_1 = 1;
int table_status_2 = 2;
int table_status_3 = 3;
int table_status_4 = 4;
/**
* 1#分台
* 2#上菜纸
* 3#重置
* 4#转台
* 5#sky_order
*/ */
int splite_table_1 = 1; int splite_table_1 = 1;
int print_parper_2 = 2; int print_parper_2 = 2;
......
...@@ -21,6 +21,8 @@ public interface AllTableContract { ...@@ -21,6 +21,8 @@ public interface AllTableContract {
//对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息 //对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
interface View extends IView { interface View extends IView {
void showEmptyView(boolean isSuccess, int size, Throwable t);
void setAllTableAdapter(DefaultAdapter adapter); void setAllTableAdapter(DefaultAdapter adapter);
} }
......
...@@ -27,8 +27,6 @@ public interface OrderCenterContract { ...@@ -27,8 +27,6 @@ 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 returnOrderItemList(List<OrderDetailItem> orderItemList);
void setPageIndex(int index); void setPageIndex(int index);
...@@ -38,7 +36,6 @@ public interface OrderCenterContract { ...@@ -38,7 +36,6 @@ public interface OrderCenterContract {
AllOrderFragment getCurrentOrderFragment(); AllOrderFragment getCurrentOrderFragment();
int getPageSize(); int getPageSize();
} }
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存 //Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
......
...@@ -4,6 +4,8 @@ import com.gingersoft.gsa.cloud.base.common.bean.BaseResult; ...@@ -4,6 +4,8 @@ import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseRespose; import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseRespose;
import com.gingersoft.gsa.cloud.base.common.bean.TableBean; import com.gingersoft.gsa.cloud.base.common.bean.TableBean;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.TableDetail; import com.gingersoft.gsa.cloud.table.mvp.model.bean.TableDetail;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.AllOrderFragment;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.AllTableFragment;
import com.jess.arms.base.DefaultAdapter; import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.mvp.IView; import com.jess.arms.mvp.IView;
import com.jess.arms.mvp.IModel; import com.jess.arms.mvp.IModel;
...@@ -32,6 +34,8 @@ public interface TableContract { ...@@ -32,6 +34,8 @@ public interface TableContract {
void returnTableList(List<TableBean.DataBean> dataBeanList); void returnTableList(List<TableBean.DataBean> dataBeanList);
AllTableFragment getCurrentTableFragment();
void clickTableItem(TableBean.DataBean dataBean); void clickTableItem(TableBean.DataBean dataBean);
void onStartRefreshTableData(); void onStartRefreshTableData();
...@@ -48,9 +52,12 @@ public interface TableContract { ...@@ -48,9 +52,12 @@ public interface TableContract {
String getOperatContentText(); String getOperatContentText();
void setOperatTitle();
void canceOperat(); void canceOperat();
void startMealStandActivity(); void startMealStandActivity();
} }
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存 //Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
......
...@@ -125,17 +125,6 @@ public class MealStandModel extends BaseModel implements MealStandContract.Model ...@@ -125,17 +125,6 @@ public class MealStandModel extends BaseModel implements MealStandContract.Model
public Observable<BaseRespose> deleteFood(RequestBody requestBody) { public Observable<BaseRespose> deleteFood(RequestBody requestBody) {
Observable ob = mRepositoryManager.obtainRetrofitService(MealService.class) Observable ob = mRepositoryManager.obtainRetrofitService(MealService.class)
.deleteFood(requestBody) .deleteFood(requestBody)
// .flatMap(new Function<BaseResult, Observable<BaseRespose>>() {
// @Override
// public Observable<BaseRespose> apply(BaseResult info) throws Exception {
// if (MyOrderManage.getInstance().isModifyOrder()) {
// if (info != null && info.isSuccess()) {
// return calculationPrice(MyOrderManage.getInstance().getOrderId());
// }
// }
// return null;
// }
// })
.flatMap(new Function<BaseResult, Observable<BaseRespose>>() { .flatMap(new Function<BaseResult, Observable<BaseRespose>>() {
@Override @Override
public Observable<BaseRespose> apply(BaseResult info) throws Exception { public Observable<BaseRespose> apply(BaseResult info) throws Exception {
......
...@@ -33,11 +33,14 @@ public class OrderDetailItem implements Serializable { ...@@ -33,11 +33,14 @@ public class OrderDetailItem implements Serializable {
* status : 0 * status : 0
* totalAmount : 10 * totalAmount : 10
* totalPoints : 0 * totalPoints : 0
* amount : 15
* createTime : Mar 14, 2020 1:24:12 PM * createTime : Mar 14, 2020 1:24:12 PM
* endTime : Mar 14, 2020 1:24:12 PM * endTime : Mar 14, 2020 1:24:12 PM
* person : 2 * person : 2
* payName : 支付寶 * payName : 支付寶
* orderPayType : 0 * orderPayType : 0
* tipsPrice : 5
* linePayType : 1
* 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}] * 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 long id;
...@@ -45,10 +48,15 @@ public class OrderDetailItem implements Serializable { ...@@ -45,10 +48,15 @@ public class OrderDetailItem implements Serializable {
private String orderNo; private String orderNo;
private String tableName; private String tableName;
private int tableId; private int tableId;
/**總金額*/
private double totalAmount; private double totalAmount;
private int totalPoints; private int totalPoints;
/**支付金額*/
private double amount;
private String payName; private String payName;
private String orderPayType; private String orderPayType;
private double tipsPrice;
private byte linePayType;
/**生成訂單時間*/ /**生成訂單時間*/
private String createTime; private String createTime;
/**結賬時間*/ /**結賬時間*/
...@@ -107,6 +115,22 @@ public class OrderDetailItem implements Serializable { ...@@ -107,6 +115,22 @@ public class OrderDetailItem implements Serializable {
this.orderPayType = orderPayType; this.orderPayType = orderPayType;
} }
public double getTipsPrice() {
return tipsPrice;
}
public void setTipsPrice(double tipsPrice) {
this.tipsPrice = tipsPrice;
}
public byte getLinePayType() {
return linePayType;
}
public void setLinePayType(byte linePayType) {
this.linePayType = linePayType;
}
public String getPayName() { public String getPayName() {
return payName; return payName;
} }
...@@ -139,6 +163,14 @@ public class OrderDetailItem implements Serializable { ...@@ -139,6 +163,14 @@ public class OrderDetailItem implements Serializable {
this.totalPoints = totalPoints; this.totalPoints = totalPoints;
} }
public double getAmount() {
return amount;
}
public void setAmount(double amount) {
this.amount = amount;
}
public String getCreateTime() { public String getCreateTime() {
return createTime; return createTime;
} }
......
...@@ -21,6 +21,7 @@ import retrofit2.http.POST; ...@@ -21,6 +21,7 @@ import retrofit2.http.POST;
*/ */
public interface MealService { public interface MealService {
@POST("order/send" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2) @POST("order/send" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> createOrder(@Body RequestBody requestBody); Observable<BaseResult> createOrder(@Body RequestBody requestBody);
......
...@@ -22,7 +22,7 @@ public interface OrderPayService { ...@@ -22,7 +22,7 @@ public interface OrderPayService {
@POST("orderPay/update" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2) @POST("orderPay/update" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> updateOrderPay(@Body RequestBody requestBody); Observable<BaseResult> updateOrderPay(@Body RequestBody requestBody);
@POST("order/Pay" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2) @POST("orderPay/add" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> toOrderPay(@Body RequestBody requestBody); Observable<BaseResult> toOrderPay(@Body RequestBody requestBody);
@GET("restaurant/pay/get" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2) @GET("restaurant/pay/get" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
......
...@@ -5,6 +5,7 @@ import android.content.Context; ...@@ -5,6 +5,7 @@ import android.content.Context;
import com.gingersoft.gsa.cloud.base.utils.VibratorUtils; import com.gingersoft.gsa.cloud.base.utils.VibratorUtils;
import com.gingersoft.gsa.cloud.base.common.bean.TableBean; import com.gingersoft.gsa.cloud.base.common.bean.TableBean;
import com.gingersoft.gsa.cloud.table.app.TableOperatTypeConstant;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.TableActivity; import com.gingersoft.gsa.cloud.table.mvp.ui.activity.TableActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.TableAdapter; import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.TableAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.AllTableFragment; import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.AllTableFragment;
...@@ -92,15 +93,6 @@ public class AllTablePresenter extends BasePresenter<AllTableContract.Model, All ...@@ -92,15 +93,6 @@ public class AllTablePresenter extends BasePresenter<AllTableContract.Model, All
}); });
} }
public void updateAllTableData(Context context, List<TableBean.DataBean> tableList) {
if (tableList != null) {
mTableList.clear();
initTableByZoneId(tableList);
initTableAdapter(context);
mTableAdapter.notifyDataSetChanged();
}
}
private void initTableByZoneId(List<TableBean.DataBean> tableList) { private void initTableByZoneId(List<TableBean.DataBean> tableList) {
// int zoneId = GSAApplication.tableContract.getZoneid(); // int zoneId = GSAApplication.tableContract.getZoneid();
// if (zoneId == -1) { // if (zoneId == -1) {
...@@ -115,6 +107,135 @@ public class AllTablePresenter extends BasePresenter<AllTableContract.Model, All ...@@ -115,6 +107,135 @@ public class AllTablePresenter extends BasePresenter<AllTableContract.Model, All
// } // }
} }
/**
* 更新全部頁餐檯數據
* @param context
* @param tableList
*/
public void updateAllTableData(Context context, List<TableBean.DataBean> tableList) {
if (tableList != null) {
mTableList.clear();
initTableByZoneId(tableList);
initTableAdapter(context);
mTableAdapter.notifyDataSetChanged();
}
}
/**
* 更新狀態頁餐檯數據
*
* @param context
* @param tableList
*/
public void updateStateTableData(Context context, List<TableBean.DataBean> tableList, int status) {
this.mActivity = (TableActivity) context;
if (tableList != null) {
//这里先清空
mTableList.clear();
if (status == TableOperatTypeConstant.table_status_0) {
//显示全部台号 按照狀態排序
initTableByStauts(tableList);
} else {
//根据状态只显示相应状态台号
filterTableByTableStatus(tableList, status);
}
initTableAdapter(context);
mTableAdapter.notifyDataSetChanged();
}
}
/**
* 根据餐台状态 过滤餐台
* 0#全部
* 1#可使用
* 2#已使用
* 3#已送單
* 4#已印單
* 5#已分檯
*/
public void filterTableByTableStatus(List<TableBean.DataBean> datasBeans, int status) {
if (datasBeans.size() == 0) {
return;
}
switch (status) {
case TableOperatTypeConstant.table_status_1:
for (int i = 0; i < datasBeans.size(); i++) {
if (datasBeans.get(i).getStatus() == 0 && datasBeans.get(i).getUseStatus() == 0) {
mTableList.add(datasBeans.get(i));
}
}
break;
case TableOperatTypeConstant.table_status_2:
for (int i = 0; i < datasBeans.size(); i++) {
if (datasBeans.get(i).getUseStatus() == 1) {
mTableList.add(datasBeans.get(i));
}
}
break;
case TableOperatTypeConstant.table_status_3:
for (int i = 0; i < datasBeans.size(); i++) {
if (datasBeans.get(i).getStatus() == 2 && datasBeans.get(i).getUseStatus() == 0) {
mTableList.add(datasBeans.get(i));
}
}
break;
case TableOperatTypeConstant.table_status_4:
for (int i = 0; i < datasBeans.size(); i++) {
if (datasBeans.get(i).getStatus() == 3 && datasBeans.get(i).getUseStatus() == 0) {
mTableList.add(datasBeans.get(i));
}
}
break;
default:
mTableList.addAll(datasBeans);
break;
}
}
private void initTableByStauts(List<TableBean.DataBean> tableList) {
List<TableBean.DataBean> tb_yellow = new ArrayList<>();
List<TableBean.DataBean> tb_green = new ArrayList<>();
List<TableBean.DataBean> tb_red = new ArrayList<>();
List<TableBean.DataBean> tb_white = new ArrayList<>();
List<TableBean.DataBean> tb_w6 = new ArrayList<>();
List<TableBean.DataBean> tb_unkown = new ArrayList<>();
//黃色=状态=3 , 綠色=2, 紅色=using=1, 白色=0
for (TableBean.DataBean datasBean : tableList) {
if (datasBean.getUseStatus() == 1) {
tb_red.add(datasBean);
} else {
switch (datasBean.getStatus()) {
case 0:
tb_white.add(datasBean);
break;
case 2:
tb_green.add(datasBean);
break;
case 3:
tb_yellow.add(datasBean);
break;
case 6:
tb_w6.add(datasBean);
break;
default:
tb_unkown.add(datasBean);
break;
}
}
}
mTableList.addAll(tb_yellow);
mTableList.addAll(tb_green);
mTableList.addAll(tb_red);
mTableList.addAll(tb_w6);
mTableList.addAll(tb_unkown);
mTableList.addAll(tb_white);
}
/** /**
* 更新状态以改变餐台 * 更新状态以改变餐台
...@@ -122,11 +243,11 @@ public class AllTablePresenter extends BasePresenter<AllTableContract.Model, All ...@@ -122,11 +243,11 @@ public class AllTablePresenter extends BasePresenter<AllTableContract.Model, All
* @param newTableList * @param newTableList
*/ */
public void updataTableItem(List<TableBean.DataBean> newTableList) { public void updataTableItem(List<TableBean.DataBean> newTableList) {
for (int i = 0; i < newTableList.size(); i++) { // for (int i = 0; i < newTableList.size(); i++) {
TableBean.DataBean newTableBean = newTableList.get(i); // TableBean.DataBean newTableBean = newTableList.get(i);
for (int j = 0; j < mTableList.size(); j++) { // for (int j = 0; j < mTableList.size(); j++) {
TableBean.DataBean tableBean = mTableList.get(j); // TableBean.DataBean tableBean = mTableList.get(j);
if (tableBean.getId() == newTableBean.getId()) { // if (tableBean.getTableno() == newTableBean.getTableno()) {
// tableBean.setOrderid(newTableBean.getOrderid()); // tableBean.setOrderid(newTableBean.getOrderid());
// tableBean.setOrderid_1(newTableBean.getOrderid_1()); // tableBean.setOrderid_1(newTableBean.getOrderid_1());
// tableBean.setStatus(newTableBean.getStatus()); // tableBean.setStatus(newTableBean.getStatus());
...@@ -142,12 +263,10 @@ public class AllTablePresenter extends BasePresenter<AllTableContract.Model, All ...@@ -142,12 +263,10 @@ public class AllTablePresenter extends BasePresenter<AllTableContract.Model, All
// tableBean.setPax(newTableBean.getPax()); // tableBean.setPax(newTableBean.getPax());
// tableBean.setQr_code(newTableBean.getQr_code()); // tableBean.setQr_code(newTableBean.getQr_code());
// tableBean.setRiceponorderid(newTableBean.getRiceponorderid()); // tableBean.setRiceponorderid(newTableBean.getRiceponorderid());
if (!TableActivity.isRefreshData) { //
return; // mTableAdapter.notifyItemChanged(j);
} // }
mTableAdapter.notifyItemChanged(j); // }
} // }
}
}
} }
} }
...@@ -12,12 +12,14 @@ import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail; ...@@ -12,12 +12,14 @@ import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
import com.gingersoft.gsa.cloud.base.common.bean.TableBean; import com.gingersoft.gsa.cloud.base.common.bean.TableBean;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage; import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage; import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage;
import com.gingersoft.gsa.cloud.base.utils.other.SPUtils;
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils; import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.table.R; import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.mvp.contract.BaseOrderContract; import com.gingersoft.gsa.cloud.table.mvp.contract.BaseOrderContract;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.BillOrderMoney; import com.gingersoft.gsa.cloud.table.mvp.model.bean.BillOrderMoney;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.request.AddOrderRequest; import com.gingersoft.gsa.cloud.table.mvp.model.bean.request.AddOrderRequest;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.request.CreateOrderRequest; import com.gingersoft.gsa.cloud.table.mvp.model.bean.request.CreateOrderRequest;
import com.gingersoft.gsa.cloud.table.mvp.model.constant.MealConstant;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.OrderContentActivity; import com.gingersoft.gsa.cloud.table.mvp.ui.activity.OrderContentActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.OrderMoneyAdapter; import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.OrderMoneyAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.SelectMealAdapter; import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.SelectMealAdapter;
...@@ -30,6 +32,9 @@ import com.jess.arms.utils.RxLifecycleUtils; ...@@ -30,6 +32,9 @@ import com.jess.arms.utils.RxLifecycleUtils;
import com.qmuiteam.qmui.widget.dialog.QMUIDialog; import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
import org.simple.eventbus.EventBus;
import java.net.URLDecoder;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
...@@ -98,8 +103,8 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas ...@@ -98,8 +103,8 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
private final String noFoodDeliveryTip = "賬單沒有食品,是否開台?"; private final String noFoodDeliveryTip = "賬單沒有食品,是否開台?";
void saveCreateTime(long createTime){ void saveCreateTime(long createTime) {
if(OpenTableManage.getDefault().getTableBean() == null){ if (OpenTableManage.getDefault().getTableBean() == null) {
OpenTableManage.getDefault().setTableBean(new TableBean.DataBean()); OpenTableManage.getDefault().setTableBean(new TableBean.DataBean());
} }
OpenTableManage.getDefault().getTableBean().setCreateTime(TimeUtils.getTime(createTime, TimeUtils.DEFAULT_DATE_FORMAT)); OpenTableManage.getDefault().getTableBean().setCreateTime(TimeUtils.getTime(createTime, TimeUtils.DEFAULT_DATE_FORMAT));
...@@ -161,12 +166,14 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas ...@@ -161,12 +166,14 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
@Override @Override
public void onItemClick(OrderDetail datasBean, int position) { public void onItemClick(OrderDetail datasBean, int position) {
mRootView.recordOperat(true);
orderSelectPosition = position; orderSelectPosition = position;
mSelectMealAdapter.setMyOrderManageSelectPosition(); mSelectMealAdapter.setMyOrderManageSelectPosition();
} }
@Override @Override
public void onMealCountDelete(OrderDetail datasBean, int position) { public void onMealCountDelete(OrderDetail datasBean, int position) {
mRootView.recordOperat(true);
if (datasBean.getNumber() == 1) { if (datasBean.getNumber() == 1) {
mSelectMealAdapter.removeFoodItem(); mSelectMealAdapter.removeFoodItem();
} else { } else {
...@@ -181,6 +188,7 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas ...@@ -181,6 +188,7 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
@Override @Override
public void onMealCountAdd(OrderDetail datasBean, int position) { public void onMealCountAdd(OrderDetail datasBean, int position) {
mRootView.recordOperat(true);
changeNumber(datasBean.getNumber() + 1); changeNumber(datasBean.getNumber() + 1);
recalcOrderMoneyCount(); recalcOrderMoneyCount();
if (mOrderContentActivity != null) { if (mOrderContentActivity != null) {
...@@ -194,6 +202,7 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas ...@@ -194,6 +202,7 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
}); });
} }
/** /**
* 修改訂單 * 修改訂單
* *
...@@ -539,6 +548,17 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas ...@@ -539,6 +548,17 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
return tablename; return tablename;
} }
// protected String replacer(String str) {
// String data = str;
// try {
// data = data.replaceAll("%(?![0-9a-fA-F]{2})", "%25").replaceAll("\\+", "%2B");
//// data = URLDecoder.decode(data);
// } catch (Exception e) {
// e.printStackTrace();
// }
// return data;
// }
protected void showTipDialog(Activity context, String msg) { protected void showTipDialog(Activity context, String msg) {
QMUIDialog.MessageDialogBuilder dialogBuilder = new QMUIDialog.MessageDialogBuilder(context); QMUIDialog.MessageDialogBuilder dialogBuilder = new QMUIDialog.MessageDialogBuilder(context);
dialogBuilder.setTitle("溫馨提示"); dialogBuilder.setTitle("溫馨提示");
......
...@@ -29,6 +29,7 @@ import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.FoodAdapter; ...@@ -29,6 +29,7 @@ import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.FoodAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.FoodGroupAdapter; import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.FoodGroupAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.ModifierAdapter; import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.ModifierAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.SelectMealAdapter; import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.SelectMealAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.widget.CancelFoodDialog;
import com.jess.arms.di.scope.ActivityScope; import com.jess.arms.di.scope.ActivityScope;
import com.jess.arms.http.imageloader.ImageLoader; import com.jess.arms.http.imageloader.ImageLoader;
import com.jess.arms.integration.AppManager; import com.jess.arms.integration.AppManager;
...@@ -39,6 +40,7 @@ import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; ...@@ -39,6 +40,7 @@ import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
import org.simple.eventbus.EventBus; import org.simple.eventbus.EventBus;
import org.simple.eventbus.Subscriber; import org.simple.eventbus.Subscriber;
import java.net.URLDecoder;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -153,9 +155,9 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod ...@@ -153,9 +155,9 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
@Override @Override
public void onItemClick(OrderDetail datasBean, int position) { public void onItemClick(OrderDetail datasBean, int position) {
RvMealClicked = true;
mRootView.recordOperat(true); mRootView.recordOperat(true);
RvMealClicked = true;
//设置当前操作的食品 //设置当前操作的食品
mCurrentOrderDetailBean = datasBean; mCurrentOrderDetailBean = datasBean;
...@@ -443,9 +445,11 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod ...@@ -443,9 +445,11 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
if (TextUtils.isEmpty(ids)) { if (TextUtils.isEmpty(ids)) {
return; return;
} }
int type = myOrderManage.isModifyOrder() ? 2 : 1;
RequestBody requestBody = new FormBody.Builder() RequestBody requestBody = new FormBody.Builder()
.add("ids", ids) .add("ids", ids)
.add("orderId", String.valueOf(MyOrderManage.getInstance().getOrderId())) .add("orderId", String.valueOf(MyOrderManage.getInstance().getOrderId()))
.add("type", String.valueOf(type))
.build(); .build();
mModel.deleteFood(requestBody) mModel.deleteFood(requestBody)
...@@ -459,7 +463,12 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod ...@@ -459,7 +463,12 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
@Override @Override
public void onNext(@NonNull BaseRespose info) { public void onNext(@NonNull BaseRespose info) {
if (info != null && info.isSuccess()) { if (info == null) {
mRootView.showMessage("刪除失敗");
return;
}
if (info.isSuccess()) {
mRootView.showMessage("刪除成功"); mRootView.showMessage("刪除成功");
...@@ -485,13 +494,14 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod ...@@ -485,13 +494,14 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
mRootView.showViewModeVisibility(MealConstant.food_group_ViewMode, MealConstant.food_ViewMode); mRootView.showViewModeVisibility(MealConstant.food_group_ViewMode, MealConstant.food_ViewMode);
} else { } else {
mRootView.showMessage("刪除失敗"); mRootView.showMessage("獲取訂單數據失敗");
} }
} }
}); });
} }
private void deleteWithOrderedFoodById(OrderDetail deleteFood) { private void deleteWithOrderedFoodById(OrderDetail deleteFood) {
// new CancelFoodDialog.Builder(IActivity).build().show();
QMUIDialog.MessageDialogBuilder dialogBuilder = new QMUIDialog.MessageDialogBuilder(IActivity); QMUIDialog.MessageDialogBuilder dialogBuilder = new QMUIDialog.MessageDialogBuilder(IActivity);
dialogBuilder.setTitle("溫馨提示"); dialogBuilder.setTitle("溫馨提示");
dialogBuilder.setMessage("是否確認刪除該食品?"); dialogBuilder.setMessage("是否確認刪除該食品?");
...@@ -591,7 +601,6 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod ...@@ -591,7 +601,6 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
mRootView.showViewModeVisibility(MealConstant.food_ViewMode, MealConstant.food_group_ViewMode); mRootView.showViewModeVisibility(MealConstant.food_ViewMode, MealConstant.food_group_ViewMode);
} }
/** /**
* 按键入的食品号查找食品 * 按键入的食品号查找食品
* meal_uid:即可以是食品的fid也可以是PLU码。 * meal_uid:即可以是食品的fid也可以是PLU码。
......
...@@ -107,6 +107,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -107,6 +107,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
@Override @Override
public void onItemClick(View view, int viewType, Object data, int position) { public void onItemClick(View view, int viewType, Object data, int position) {
mRootView.recordOperat(true);
if (XClickUtil.isFastDoubleClick(view, 1000)) { if (XClickUtil.isFastDoubleClick(view, 1000)) {
return; return;
} }
...@@ -116,8 +117,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -116,8 +117,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
sendOrder(false); sendOrder(false);
break; break;
case "印單": case "印單":
if (getFoodCount() == 0) { if (!canPrint()) {
showTipDialog(IActivity, "沒有食品,不能印單");
return; return;
} }
if (hasNesOrderFoods()) { if (hasNesOrderFoods()) {
...@@ -128,6 +128,9 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -128,6 +128,9 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
} }
break; break;
case "結賬": case "結賬":
if(!canPay()){
return;
}
mRootView.startActivityForResult(OrderContentActivity.BILL_CODE, OrderPayActivity.class, null); mRootView.startActivityForResult(OrderContentActivity.BILL_CODE, OrderPayActivity.class, null);
break; break;
} }
...@@ -338,6 +341,22 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -338,6 +341,22 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
}); });
} }
private boolean canPrint(){
if(getFoodCount() == 0){
mRootView.showMessage("沒有食品,不能印單");
return false;
}
return true;
}
private boolean canPay(){
if(getFoodCount() == 0){
mRootView.showMessage("沒有食品,不能結賬");
return false;
}
return true;
}
// private void printOrder() { // private void printOrder() {
// CC.obtainBuilder("Component.Print") // CC.obtainBuilder("Component.Print")
// .setActionName("showPrintActivity") // .setActionName("showPrintActivity")
......
...@@ -76,7 +76,14 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model ...@@ -76,7 +76,14 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
* 1#貨到付款 * 1#貨到付款
* 2#在線支付 * 2#在線支付
*/ */
private final int orderPayType =0; private final int orderPayType = 0;
/**找零*/
public static final int LINE_PAY_TYPE_CHANGE = 1;
/**貼士*/
public static final int LINE_PAY_TYPE_TIPS = 2;
@Inject @Inject
public OrderPayPresenter(OrderPayContract.Model model, OrderPayContract.View rootView) { public OrderPayPresenter(OrderPayContract.Model model, OrderPayContract.View rootView) {
...@@ -114,6 +121,9 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model ...@@ -114,6 +121,9 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
mBillMethodAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() { mBillMethodAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
@Override @Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) { public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
mRootView.recordOperat(true);
PayMethod method = (PayMethod) adapter.getItem(position); PayMethod method = (PayMethod) adapter.getItem(position);
// if (!isCashPayMethod(method)) { // if (!isCashPayMethod(method)) {
// PayMethod N5PayMethod = getSelectN5PayMethod(); // PayMethod N5PayMethod = getSelectN5PayMethod();
...@@ -144,12 +154,14 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model ...@@ -144,12 +154,14 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
@Override @Override
public void onItemClick(PayMethod datasBean, int position) { public void onItemClick(PayMethod datasBean, int position) {
mRootView.recordOperat(true);
mBillMoneyAdapter.setSelect_position(position); mBillMoneyAdapter.setSelect_position(position);
mBillMoneyAdapter.notifyDataSetChanged(); mBillMoneyAdapter.notifyDataSetChanged();
} }
@Override @Override
public void onItemDeleteClick(PayMethod datasBean, int position) { public void onItemDeleteClick(PayMethod datasBean, int position) {
mRootView.recordOperat(true);
//刪除當前付款方式 //刪除當前付款方式
mBillMoneyList.remove(position); mBillMoneyList.remove(position);
mBillMoneyAdapter.setSelect_position(mBillMoneyList.size() - 1); mBillMoneyAdapter.setSelect_position(mBillMoneyList.size() - 1);
...@@ -187,10 +199,12 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model ...@@ -187,10 +199,12 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
*/ */
public void toOrderPay(boolean show) { public void toOrderPay(boolean show) {
RequestBody requestBody = new FormBody.Builder() RequestBody requestBody = new FormBody.Builder()
.add("orderPayType",String.valueOf(orderPayType)) .add("orderPayType", String.valueOf(orderPayType))
.add("payType", String.valueOf(mBillMoneyList.get(0).getId())) .add("payType", String.valueOf(mBillMoneyList.get(0).getId()))
.add("orderId", String.valueOf(MyOrderManage.getInstance().getOrderId())) .add("orderId", String.valueOf(MyOrderManage.getInstance().getOrderId()))
.add("amount", String.valueOf(getTotalMoney())) .add("amount", String.valueOf(getAmount()))
.add("linePayType", String.valueOf(getLinePayType()))
.add("tipsPrice", String.valueOf(getTipsPrice()))
.build(); .build();
mModel.toOrderPay(requestBody) mModel.toOrderPay(requestBody)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
...@@ -259,7 +273,7 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model ...@@ -259,7 +273,7 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
if (info.getData() != null) { if (info.getData() != null) {
setOrderId((Double) info.getData()); setOrderId((Double) info.getData());
} }
toOrderPayBefore(false); toOrderPay(false);
} else { } else {
mRootView.showMessage("結賬失敗!"); mRootView.showMessage("結賬失敗!");
} }
...@@ -291,7 +305,7 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model ...@@ -291,7 +305,7 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
@Override @Override
public void onNext(@NonNull BaseResult info) { public void onNext(@NonNull BaseResult info) {
if (info != null && info.isSuccess()) { if (info != null && info.isSuccess()) {
toOrderPayBefore(false); toOrderPay(false);
} else { } else {
mRootView.showMessage("結賬失敗!"); mRootView.showMessage("結賬失敗!");
} }
...@@ -306,19 +320,6 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model ...@@ -306,19 +320,6 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
} }
/** /**
* 結賬
* @return
*/
private void toOrderPayBefore(boolean show){
if(myOrderManage.isModifyOrder()){
//修改訂單,更新支付方式即可
updateOrderPay();
}else {
toOrderPay(show);
}
}
/**
* 結賬前創建訂單或添加食品 * 結賬前創建訂單或添加食品
*/ */
public void sendOrderBefore() { public void sendOrderBefore() {
...@@ -327,7 +328,7 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model ...@@ -327,7 +328,7 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
sendOrder(false); sendOrder(false);
} else { } else {
//去結賬 //去結賬
toOrderPayBefore(true); toOrderPay(true);
} }
} }
...@@ -342,6 +343,7 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model ...@@ -342,6 +343,7 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
/** /**
* 獲取當前選中的支付方式 * 獲取當前選中的支付方式
*
* @return * @return
*/ */
public PayMethod getSelectBillMoney() { public PayMethod getSelectBillMoney() {
...@@ -382,21 +384,42 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model ...@@ -382,21 +384,42 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
} }
/** /**
* 貼士 * 獲取超出的金額為找零還是貼士: linePayType 1 tipsPrice 为找零 2 tipsPrice为贴上
* 現金,掃碼QR = 找零
* 信用卡 = 貼士
*
* @return 第一階段默認為找零
*/
public int getLinePayType() {
return LINE_PAY_TYPE_CHANGE;
}
/**
* 獲取找零或貼士金額
* *
* @return * @return
*/ */
private double getTips() { public double getTipsPrice() {
double tips = 0.0; double tips = 0.0;
double difference = getDifferenceMoney(); double difference = getDifferenceMoney();
if (difference < 0) { if (difference < 0) {
//貼士
tips = difference; tips = difference;
} }
return Math.abs(tips); return Math.abs(tips);
} }
/** /**
* 獲取食品總金額
* @return
*/
private double getAmount() {
//支付總額減去找零或貼士
// return getBillMoney() - getTipsPrice();
return getBillMoney();
}
/**
* 獲取支付差額 * 獲取支付差額
* *
* @return * @return
...@@ -407,7 +430,7 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model ...@@ -407,7 +430,7 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
} }
/** /**
* 獲取所選支付方式所付金 * 獲取支付總
* *
* @return * @return
*/ */
......
...@@ -5,6 +5,7 @@ import android.content.Context; ...@@ -5,6 +5,7 @@ import android.content.Context;
import com.gingersoft.gsa.cloud.base.utils.VibratorUtils; import com.gingersoft.gsa.cloud.base.utils.VibratorUtils;
import com.gingersoft.gsa.cloud.base.common.bean.TableBean; import com.gingersoft.gsa.cloud.base.common.bean.TableBean;
import com.gingersoft.gsa.cloud.table.app.TableOperatTypeConstant;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.TableActivity; import com.gingersoft.gsa.cloud.table.mvp.ui.activity.TableActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.TableAdapter; import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.TableAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.StateTableFragment; import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.StateTableFragment;
...@@ -91,7 +92,7 @@ public class StateTablePresenter extends BasePresenter<StateTableContract.Model, ...@@ -91,7 +92,7 @@ public class StateTablePresenter extends BasePresenter<StateTableContract.Model,
if (tableList != null) { if (tableList != null) {
//这里先清空 //这里先清空
mTableList.clear(); mTableList.clear();
if (status == 1) { if (status == TableOperatTypeConstant.table_status_0) {
//显示全部台号 按照狀態排序 //显示全部台号 按照狀態排序
initTableByStauts(tableList); initTableByStauts(tableList);
} else { } else {
...@@ -139,58 +140,69 @@ public class StateTablePresenter extends BasePresenter<StateTableContract.Model, ...@@ -139,58 +140,69 @@ public class StateTablePresenter extends BasePresenter<StateTableContract.Model,
/** /**
* 根据餐台状态 过滤餐台 * 根据餐台状态 过滤餐台
* * 0#全部
* @param status 0=可使用, 2=已送單,3=已印單, 4=已結帳(清檯), 5=分單(現已停用, 改為使用splitstatus), 6=連檯, 7=暫未使用 * 1#可使用
* 2#已使用
* 3#已送單
* 4#已印單
* 5#已分檯
*/ */
public void filterTableByTableStatus(List<TableBean.DataBean> datasBeans, int status) { public void filterTableByTableStatus(List<TableBean.DataBean> datasBeans, int status) {
if (datasBeans.size() == 0) { if (datasBeans.size() == 0) {
return; return;
} }
switch (status) { switch (status) {
case 0: case TableOperatTypeConstant.table_status_1:
for (int i = 0; i < datasBeans.size(); i++) { for (int i = 0; i < datasBeans.size(); i++) {
if (datasBeans.get(i).getStatus() > 0 && datasBeans.get(i).getStatus() < 4) { if (datasBeans.get(i).getStatus() == 0 && datasBeans.get(i).getUseStatus() == 0) {
mTableList.add(datasBeans.get(i)); mTableList.add(datasBeans.get(i));
} }
} }
break; break;
// case 1: case TableOperatTypeConstant.table_status_2:
// mTableList.addAll(datasBeans);
// break;
case 2:
for (int i = 0; i < datasBeans.size(); i++) { for (int i = 0; i < datasBeans.size(); i++) {
if (datasBeans.get(i).getStatus() == 0) { if (datasBeans.get(i).getUseStatus() == 1) {
mTableList.add(datasBeans.get(i)); mTableList.add(datasBeans.get(i));
} }
} }
break; break;
case 3: case TableOperatTypeConstant.table_status_3:
for (int i = 0; i < datasBeans.size(); i++) { for (int i = 0; i < datasBeans.size(); i++) {
if (datasBeans.get(i).getStatus() == 1) { if (datasBeans.get(i).getStatus() == 2 && datasBeans.get(i).getUseStatus() == 0) {
mTableList.add(datasBeans.get(i)); mTableList.add(datasBeans.get(i));
} }
} }
break; break;
case 4: case TableOperatTypeConstant.table_status_4:
for (int i = 0; i < datasBeans.size(); i++) { for (int i = 0; i < datasBeans.size(); i++) {
if (datasBeans.get(i).getStatus() == 2 && datasBeans.get(i).getStatus() != 1) { if (datasBeans.get(i).getStatus() == 3 && datasBeans.get(i).getUseStatus() == 0) {
mTableList.add(datasBeans.get(i)); mTableList.add(datasBeans.get(i));
} }
} }
break; break;
case 5: // case 4:
for (int i = 0; i < datasBeans.size(); i++) { // for (int i = 0; i < datasBeans.size(); i++) {
if (datasBeans.get(i).getStatus() == 3) { // if (datasBeans.get(i).getStatus() == 2 && datasBeans.get(i).getStatus() != 1) {
mTableList.add(datasBeans.get(i)); // mTableList.add(datasBeans.get(i));
}
}
break;
case 6:
for (int i = 0; i < datasBeans.size(); i++) {
// if (datasBeans.get(i).getSplitStatus() == 1) {
mTableList.add(datasBeans.get(i));
// } // }
} // }
// break;
// case 5:
// for (int i = 0; i < datasBeans.size(); i++) {
// if (datasBeans.get(i).getStatus() == 3) {
// mTableList.add(datasBeans.get(i));
// }
// }
// break;
// case 6:
// for (int i = 0; i < datasBeans.size(); i++) {
//// if (datasBeans.get(i).getSplitStatus() == 1) {
// mTableList.add(datasBeans.get(i));
//// }
// }
// break;
default:
mTableList.addAll(datasBeans);
break; break;
} }
} }
...@@ -201,18 +213,18 @@ public class StateTablePresenter extends BasePresenter<StateTableContract.Model, ...@@ -201,18 +213,18 @@ public class StateTablePresenter extends BasePresenter<StateTableContract.Model,
List<TableBean.DataBean> tb_yellow = new ArrayList<>(); List<TableBean.DataBean> tb_yellow = new ArrayList<>();
List<TableBean.DataBean> tb_green = new ArrayList<>(); List<TableBean.DataBean> tb_green = new ArrayList<>();
List<TableBean.DataBean> tb_red = new ArrayList<>(); List<TableBean.DataBean> tb_red = new ArrayList<>();
List<TableBean.DataBean> tb_blue = new ArrayList<>(); List<TableBean.DataBean> tb_white = new ArrayList<>();
List<TableBean.DataBean> tb_w6 = new ArrayList<>(); List<TableBean.DataBean> tb_w6 = new ArrayList<>();
List<TableBean.DataBean> tb_unkown = new ArrayList<>(); List<TableBean.DataBean> tb_unkown = new ArrayList<>();
//黃色=状态=3 , 綠色=2, 紅色=using=1, 色=0 //黃色=状态=3 , 綠色=2, 紅色=using=1, 色=0
for (TableBean.DataBean datasBean : tableList) { for (TableBean.DataBean datasBean : tableList) {
if (datasBean.getStatus() == 1) { if (datasBean.getUseStatus() == 1) {
tb_red.add(datasBean); tb_red.add(datasBean);
} else { } else {
switch (datasBean.getStatus()) { switch (datasBean.getStatus()) {
case 0: case 0:
tb_blue.add(datasBean); tb_white.add(datasBean);
break; break;
case 2: case 2:
tb_green.add(datasBean); tb_green.add(datasBean);
...@@ -241,7 +253,7 @@ public class StateTablePresenter extends BasePresenter<StateTableContract.Model, ...@@ -241,7 +253,7 @@ public class StateTablePresenter extends BasePresenter<StateTableContract.Model,
// mTableList.addAll(tb_yellow); // mTableList.addAll(tb_yellow);
// } // }
mTableList.addAll(tb_unkown); mTableList.addAll(tb_unkown);
mTableList.addAll(tb_blue); mTableList.addAll(tb_white);
} }
private void initItemClickListener(Context context) { private void initItemClickListener(Context context) {
......
package com.gingersoft.gsa.cloud.table.mvp.presenter; package com.gingersoft.gsa.cloud.table.mvp.presenter.orderManager;
import android.app.Application; import android.app.Application;
import android.content.Context; import android.content.Context;
...@@ -184,6 +184,15 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All ...@@ -184,6 +184,15 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All
payMethod.setPayName(orderDetailItem.getPayName()); payMethod.setPayName(orderDetailItem.getPayName());
payMethod.setPayMoney(orderDetailItem.getTotalAmount()); payMethod.setPayMoney(orderDetailItem.getTotalAmount());
payMethodList.add(payMethod); payMethodList.add(payMethod);
if(orderDetailItem.getTipsPrice() != 0){
//打印添加找零或貼士行
String linePayType = orderDetailItem.getLinePayType() == 1?"找零":"貼士";
PayMethod payMethod2 = new PayMethod();
//這裡打印退一格
payMethod2.setPayName( " " + linePayType);
payMethod2.setPayMoney(orderDetailItem.getTipsPrice());
payMethodList.add(payMethod2);
}
return payMethodList; return payMethodList;
} }
...@@ -195,7 +204,7 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All ...@@ -195,7 +204,7 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All
} }
} }
public void addOrderData(List<OrderDetailItem> orderItemList) { public void addOrderItem(List<OrderDetailItem> orderItemList) {
if (orderItemList != null) { if (orderItemList != null) {
mOrderItemList.addAll(orderItemList); mOrderItemList.addAll(orderItemList);
mOrderCenterAdapter.notifyDataSetChanged(); mOrderCenterAdapter.notifyDataSetChanged();
......
package com.gingersoft.gsa.cloud.table.mvp.presenter; package com.gingersoft.gsa.cloud.table.mvp.presenter.orderManager;
import android.app.Application; import android.app.Application;
import com.billy.cc.core.component.BaseForwardInterceptor;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication; import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult; import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.utils.JsonUtils; import com.gingersoft.gsa.cloud.base.utils.JsonUtils;
import com.gingersoft.gsa.cloud.base.utils.log.LogUtil;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.OrderDetailItem; 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.table.mvp.ui.activity.orderManager.OrderCenterActivity;
import com.jess.arms.integration.AppManager; import com.jess.arms.integration.AppManager;
...@@ -82,6 +84,10 @@ public class OrderCenterPresenter extends BasePresenter<OrderCenterContract.Mode ...@@ -82,6 +84,10 @@ public class OrderCenterPresenter extends BasePresenter<OrderCenterContract.Mode
*/ */
public void loadOrderList(byte status, int pageIndex, int pageSize, RefreshLayout refreshLayout, boolean isLoadMore) { public void loadOrderList(byte status, int pageIndex, int pageSize, RefreshLayout refreshLayout, boolean isLoadMore) {
int restaurantId = GsaCloudApplication.getRestaurantId(mApplication); int restaurantId = GsaCloudApplication.getRestaurantId(mApplication);
if (pageIndex != 0) {
//根據數據庫下標分頁
pageIndex = pageIndex * pageSize ;
}
mModel.loadOrderList(restaurantId, status, pageIndex, pageSize) mModel.loadOrderList(restaurantId, status, pageIndex, pageSize)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> { .doOnSubscribe(disposable -> {
...@@ -110,6 +116,13 @@ public class OrderCenterPresenter extends BasePresenter<OrderCenterContract.Mode ...@@ -110,6 +116,13 @@ public class OrderCenterPresenter extends BasePresenter<OrderCenterContract.Mode
if (result.getData() != null) { if (result.getData() != null) {
List<OrderDetailItem> orderItemList = JsonUtils.parseArray(result.getData(), OrderDetailItem.class); List<OrderDetailItem> orderItemList = JsonUtils.parseArray(result.getData(), OrderDetailItem.class);
if (orderItemList.size() > 0) { if (orderItemList.size() > 0) {
for (int i = 0; i < orderItemList.size(); i++) {
long id = orderItemList.get(i).getId();
if (id == 48307) {
int j = 10;
LogUtil.d(TAG,"id="+id);
}
}
if (!noMoreData) { if (!noMoreData) {
mRootView.returnOrderItemList(orderItemList); mRootView.returnOrderItemList(orderItemList);
//每次更新完數據,頁碼+1 //每次更新完數據,頁碼+1
...@@ -122,13 +135,13 @@ public class OrderCenterPresenter extends BasePresenter<OrderCenterContract.Mode ...@@ -122,13 +135,13 @@ public class OrderCenterPresenter extends BasePresenter<OrderCenterContract.Mode
noMoreData = false; noMoreData = false;
} }
} else { } else {
mRootView.showEmptyView(true, 0, null); mRootView.getCurrentOrderFragment().showEmptyView(true, 0, null);
} }
} else { } else {
mRootView.showEmptyView(true, 0, null); mRootView.getCurrentOrderFragment().showEmptyView(true, 0, null);
} }
} else { } else {
mRootView.showEmptyView(false, 0, null); mRootView.getCurrentOrderFragment().showEmptyView(false, 0, null);
} }
resetRefreshLayout(noMoreData); resetRefreshLayout(noMoreData);
} }
...@@ -136,7 +149,7 @@ public class OrderCenterPresenter extends BasePresenter<OrderCenterContract.Mode ...@@ -136,7 +149,7 @@ public class OrderCenterPresenter extends BasePresenter<OrderCenterContract.Mode
@Override @Override
public void onError(Throwable t) { public void onError(Throwable t) {
super.onError(t); super.onError(t);
mRootView.showEmptyView(false, 0, t); mRootView.getCurrentOrderFragment().showEmptyView(false, 0, t);
resetRefreshLayout(false); resetRefreshLayout(false);
} }
...@@ -183,20 +196,20 @@ public class OrderCenterPresenter extends BasePresenter<OrderCenterContract.Mode ...@@ -183,20 +196,20 @@ public class OrderCenterPresenter extends BasePresenter<OrderCenterContract.Mode
//每次更新完數據,頁碼+1 //每次更新完數據,頁碼+1
mRootView.setPageIndex(mRootView.getPageIndex() + 1); mRootView.setPageIndex(mRootView.getPageIndex() + 1);
} else { } else {
mRootView.showEmptyView(true, 0, null); mRootView.getCurrentOrderFragment().showEmptyView(true, 0, null);
} }
} else { } else {
mRootView.showEmptyView(true, 0, null); mRootView.getCurrentOrderFragment().showEmptyView(true, 0, null);
} }
} else { } else {
mRootView.showEmptyView(false, 0, null); mRootView.getCurrentOrderFragment().showEmptyView(false, 0, null);
} }
} }
@Override @Override
public void onError(Throwable t) { public void onError(Throwable t) {
super.onError(t); super.onError(t);
mRootView.showEmptyView(false, 0, t); mRootView.getCurrentOrderFragment().showEmptyView(false, 0, t);
} }
}); });
} }
......
package com.gingersoft.gsa.cloud.table.mvp.presenter; package com.gingersoft.gsa.cloud.table.mvp.presenter.orderManager;
import android.app.Application; import android.app.Application;
......
...@@ -4,6 +4,7 @@ import android.app.Activity; ...@@ -4,6 +4,7 @@ import android.app.Activity;
import android.app.Dialog; import android.app.Dialog;
import android.content.Intent; import android.content.Intent;
import android.graphics.Color; import android.graphics.Color;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.SystemClock; import android.os.SystemClock;
import android.text.TextUtils; import android.text.TextUtils;
...@@ -287,6 +288,10 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen ...@@ -287,6 +288,10 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen
return; return;
mPresenter.toFindMeal(inputText); mPresenter.toFindMeal(inputText);
}); });
if (!MyOrderManage.getInstance().isModifyOrder()) {
//根据倒计时时间自动退出当前页面
initAutoQuit();
}
initTableDetail(); initTableDetail();
} }
...@@ -611,6 +616,29 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen ...@@ -611,6 +616,29 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen
killMyself(); killMyself();
} }
private void initAutoQuit() {
if (chronometer != null) {
chronometer.setBase(SystemClock.elapsedRealtime());
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.CUPCAKE) {
chronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
@Override
public void onChronometerTick(Chronometer chronometer) {
// 执行一下看看是否按下了home键的线程
// 如果开始计时到现在超过了autoQuitTime秒
if (SystemClock.elapsedRealtime() - chronometer.getBase() > GsaCloudApplication.androidSetting.getAutoQuitTime() * 1000) {
// 停止计时
chronometer.stop();
returnBeforeActivity(true);
}
}
});
}
//开启倒计时
chronometer.start();
}
}
@Override @Override
public void recordOperat(boolean isPressButtonSound) { public void recordOperat(boolean isPressButtonSound) {
if (isPressButtonSound) if (isPressButtonSound)
......
...@@ -2,6 +2,7 @@ package com.gingersoft.gsa.cloud.table.mvp.ui.activity; ...@@ -2,6 +2,7 @@ package com.gingersoft.gsa.cloud.table.mvp.ui.activity;
import android.app.Activity; import android.app.Activity;
import android.content.Intent; import android.content.Intent;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.SystemClock; import android.os.SystemClock;
import android.view.View; import android.view.View;
...@@ -19,16 +20,19 @@ import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication; ...@@ -19,16 +20,19 @@ import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage; import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage; import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage;
import com.gingersoft.gsa.cloud.base.utils.VibratorUtils; import com.gingersoft.gsa.cloud.base.utils.VibratorUtils;
import com.gingersoft.gsa.cloud.base.utils.other.SPUtils;
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.di.component.DaggerOrderContentComponent; import com.gingersoft.gsa.cloud.table.di.component.DaggerOrderContentComponent;
import com.gingersoft.gsa.cloud.table.mvp.contract.OrderContentContract; import com.gingersoft.gsa.cloud.table.mvp.contract.OrderContentContract;
import com.gingersoft.gsa.cloud.table.mvp.model.constant.MealConstant;
import com.gingersoft.gsa.cloud.table.mvp.presenter.OrderContentPresenter; import com.gingersoft.gsa.cloud.table.mvp.presenter.OrderContentPresenter;
import com.gingersoft.gsa.cloud.table.mvp.ui.widget.ChooseNumberDialog; import com.gingersoft.gsa.cloud.table.mvp.ui.widget.ChooseNumberDialog;
import com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog; import com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog;
import com.jess.arms.base.BaseActivity; import com.jess.arms.base.BaseActivity;
import com.jess.arms.base.DefaultAdapter; import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.di.component.AppComponent; import com.jess.arms.di.component.AppComponent;
import com.jess.arms.integration.AppManager;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
import com.qmuiteam.qmui.alpha.QMUIAlphaButton; import com.qmuiteam.qmui.alpha.QMUIAlphaButton;
import com.qmuiteam.qmui.util.QMUIDisplayHelper; import com.qmuiteam.qmui.util.QMUIDisplayHelper;
...@@ -37,6 +41,8 @@ import org.simple.eventbus.EventBus; ...@@ -37,6 +41,8 @@ import org.simple.eventbus.EventBus;
import java.util.Date; import java.util.Date;
import javax.inject.Inject;
import butterknife.BindView; import butterknife.BindView;
import butterknife.OnClick; import butterknife.OnClick;
...@@ -57,6 +63,9 @@ import static com.jess.arms.utils.Preconditions.checkNotNull; ...@@ -57,6 +63,9 @@ import static com.jess.arms.utils.Preconditions.checkNotNull;
*/ */
public class OrderContentActivity extends BaseActivity<OrderContentPresenter> implements OrderContentContract.View { public class OrderContentActivity extends BaseActivity<OrderContentPresenter> implements OrderContentContract.View {
@Inject
AppManager mAppManager;
@BindView(R2.id.ctime) @BindView(R2.id.ctime)
Chronometer chronometer; Chronometer chronometer;
...@@ -110,6 +119,10 @@ public class OrderContentActivity extends BaseActivity<OrderContentPresenter> im ...@@ -110,6 +119,10 @@ public class OrderContentActivity extends BaseActivity<OrderContentPresenter> im
mPresenter.initTopFunctionData(); mPresenter.initTopFunctionData();
mPresenter.initAdapter(); mPresenter.initAdapter();
mPresenter.initOrderTopFunctionListener(); mPresenter.initOrderTopFunctionListener();
if (!MyOrderManage.getInstance().isModifyOrder()) {
//根据倒计时时间自动退出当前页面
initAutoQuit();
}
} }
public void initOrderDetail() { public void initOrderDetail() {
...@@ -240,6 +253,29 @@ public class OrderContentActivity extends BaseActivity<OrderContentPresenter> im ...@@ -240,6 +253,29 @@ public class OrderContentActivity extends BaseActivity<OrderContentPresenter> im
chooseNumberDialog.show(); chooseNumberDialog.show();
} }
private void initAutoQuit() {
if (chronometer != null) {
chronometer.setBase(SystemClock.elapsedRealtime());
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.CUPCAKE) {
chronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
@Override
public void onChronometerTick(Chronometer chronometer) {
// 执行一下看看是否按下了home键的线程
// 如果开始计时到现在超过了autoQuitTime秒
if (SystemClock.elapsedRealtime() - chronometer.getBase() > GsaCloudApplication.androidSetting.getAutoQuitTime() * 1000) {
// 停止计时
chronometer.stop();
returnTableActivity(true);
}
}
});
}
//开启倒计时
chronometer.start();
}
}
@Override @Override
public void recordOperat(boolean isPressButtonSound) { public void recordOperat(boolean isPressButtonSound) {
if (isPressButtonSound) if (isPressButtonSound)
...@@ -255,6 +291,15 @@ public class OrderContentActivity extends BaseActivity<OrderContentPresenter> im ...@@ -255,6 +291,15 @@ public class OrderContentActivity extends BaseActivity<OrderContentPresenter> im
} }
} }
public void returnTableActivity(boolean initTable) {
if (initTable && OpenTableManage.getDefault().getTableBean() != null && !MyOrderManage.getInstance().isModifyOrder()) {
//通知更新餐台状态
EventBus.getDefault().post(OpenTableManage.getDefault().getTableBean().getId(), "initTable_status_event");
}
mAppManager.killActivity(MealStandActivity.class);
killMyself();
}
@Override @Override
public void showMessage(@NonNull String message) { public void showMessage(@NonNull String message) {
checkNotNull(message); checkNotNull(message);
......
...@@ -55,6 +55,7 @@ import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; ...@@ -55,6 +55,7 @@ import com.qmuiteam.qmui.widget.dialog.QMUITipDialog;
import org.simple.eventbus.EventBus; import org.simple.eventbus.EventBus;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import javax.inject.Inject; import javax.inject.Inject;
...@@ -233,8 +234,13 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements ...@@ -233,8 +234,13 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
double difference = mPresenter.getDifferenceMoney(); double difference = mPresenter.getDifferenceMoney();
if (difference < 0) { if (difference < 0) {
//貼士 //貼士
if (mPresenter.getLinePayType() == 1) {
tv_difference_name.setText("找零");
tv_difference_money.setTextColor(ArmsUtils.getColor(this, R.color.red));
} else {
tv_difference_name.setText("貼士"); tv_difference_name.setText("貼士");
tv_difference_money.setTextColor(ArmsUtils.getColor(this, R.color.Grass_green)); tv_difference_money.setTextColor(ArmsUtils.getColor(this, R.color.Grass_green));
}
tv_difference_money.setText("$" + Math.abs(difference)); tv_difference_money.setText("$" + Math.abs(difference));
} else { } else {
//尚欠 //尚欠
...@@ -247,38 +253,6 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements ...@@ -247,38 +253,6 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
} }
} }
// public void initBillMethod() {
// rvPay.setLayoutManager(new GridLayoutManager(mContext, 4));
// //每一種結賬方式的金額
// //結賬方式
// List<BillMethodBean> data = new ArrayList<>();
// data.add(new BillMethodBean(1, "現金"));
// BillMethodAdapter adapter = new BillMethodAdapter(data);
// rvPay.setAdapter(adapter);
//
// billMoneyAdapter = new BillMoneyAdapter(billMoney);
// rvSelectedPay.setLayoutManager(new LinearLayoutManager(mContext));
// rvSelectedPay.setAdapter(billMoneyAdapter);
//
// adapter.setOnItemClickListener((adapter13, view, position) -> {
// if (!billMoney.containsAll(data)) {
// billMoney.add(data.get(position));
// billMoneyAdapter.notifyDataSetChanged();
// }
// });
//
// billMoneyAdapter.setOnItemChildClickListener((adapter12, view, position) -> {
// if (view.getId() == R.id.iv_bill_delete) {
// //刪除當前付款方式
// ownMoney = MoneyUtil.sum(ownMoney, billMoney.get(position).getMoney());//還原尚欠金額;
// billMoney.get(position).setMoney(0);
// billMoney.remove(position);
// billMoneyAdapter.notifyDataSetChanged();
// setOwnMoney(ownMoney);
// }
// });
// }
@OnClick({R2.id.btn_people_num, R2.id.btn_table, R2.id.btn_sure_pay, R2.id.btn_exact, R2.id.btn_keypad}) @OnClick({R2.id.btn_people_num, R2.id.btn_table, R2.id.btn_sure_pay, R2.id.btn_exact, R2.id.btn_keypad})
public void onClick(View v) { public void onClick(View v) {
...@@ -501,8 +475,8 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements ...@@ -501,8 +475,8 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
@Override @Override
public void paySuccess() { public void paySuccess() {
//修改結賬方式數據 //修改結賬方式數據
MyOrderManage.getInstance().setBillMoney(mPresenter.getBillMoneyList()); setBillMoney();
if (!MyOrderManage.getInstance().isModifyOrder() && OpenTableManage.getDefault() != null && OpenTableManage.getDefault().getTableBean()!=null) { if (!MyOrderManage.getInstance().isModifyOrder() && OpenTableManage.getDefault() != null && OpenTableManage.getDefault().getTableBean() != null) {
//通知更新餐台状态 //通知更新餐台状态
EventBus.getDefault().post(OpenTableManage.getDefault().getTableBean().getId(), "initTable_status_event"); EventBus.getDefault().post(OpenTableManage.getDefault().getTableBean().getId(), "initTable_status_event");
} }
...@@ -517,12 +491,29 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements ...@@ -517,12 +491,29 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
// if (result.isSuccess()) { // if (result.isSuccess()) {
// //打印成功 // //打印成功
// } // }
//清空賬單數據
MyOrderManage.getInstance().clear(); MyOrderManage.getInstance().clear();
//清空開檯數據
OpenTableManage.getDefault().clear();
setResult(Activity.RESULT_OK, null); setResult(Activity.RESULT_OK, null);
killMyself(); killMyself();
}); });
} }
private void setBillMoney() {
ArrayList<PayMethod> billMoneyList = mPresenter.getBillMoneyList();
if (mPresenter.getTipsPrice() != 0) {
//打印添加找零或貼士行
String linePayType = tv_difference_name.getText().toString();
PayMethod payMethod = new PayMethod();
//這裡打印退一格
payMethod.setPayName(" " + linePayType);
payMethod.setPayMoney(mPresenter.getTipsPrice());
billMoneyList.add(payMethod);
}
MyOrderManage.getInstance().setBillMoney(billMoneyList);
}
public void setBillMethodAdapter(BaseQuickAdapter adapter) { public void setBillMethodAdapter(BaseQuickAdapter adapter) {
rv_bill_method.setAdapter(adapter); rv_bill_method.setAdapter(adapter);
rv_bill_method.addItemDecoration(new GridDividerItemDecoration(QMUIDisplayHelper.dpToPx(1), ArmsUtils.getColor(this, R.color.theme_hint_color))); rv_bill_method.addItemDecoration(new GridDividerItemDecoration(QMUIDisplayHelper.dpToPx(1), ArmsUtils.getColor(this, R.color.theme_hint_color)));
...@@ -616,14 +607,10 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements ...@@ -616,14 +607,10 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
} }
public void returnTableActivityBefore() { public void returnTableActivityBefore() {
// mPresenter.setTablesStatus(GSAApplication.tableContract.getTableTNID(), GSAApplication.tableContract.getIsSplite(), GSAApplication.tableContract.getTableno_split());
// GSAApplication.tableContract.init();
returnTableServiceAcivity(false); returnTableServiceAcivity(false);
} }
public void returnTableServiceAcivity(boolean iskill) { public void returnTableServiceAcivity(boolean iskill) {
// GSAApplication.tableContract.setIsSplite(false);
// GSAApplication.tableContract.setTableno_split("");
if (iskill) { if (iskill) {
killMyself(); killMyself();
} }
......
package com.gingersoft.gsa.cloud.table.mvp.ui.activity.orderManager; package com.gingersoft.gsa.cloud.table.mvp.ui.activity.orderManager;
import android.content.Intent; import android.content.Intent;
import android.net.ParseException;
import android.os.Bundle; import android.os.Bundle;
import android.os.Message; import android.os.Message;
import android.view.View; import android.view.View;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
import com.gingersoft.gsa.cloud.base.qmui.arch.QMUIFragmentPagerAdapter; import com.gingersoft.gsa.cloud.base.qmui.arch.QMUIFragmentPagerAdapter;
import com.gingersoft.gsa.cloud.table.R2; 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.bean.OrderDetailItem;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.AllOrderFragment; import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.AllOrderFragment;
import com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog; 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.base.BaseActivity;
import com.jess.arms.di.component.AppComponent; import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
import com.gingersoft.gsa.cloud.table.di.component.DaggerOrderCenterComponent; 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.contract.OrderCenterContract;
import com.gingersoft.gsa.cloud.table.mvp.presenter.OrderCenterPresenter; import com.gingersoft.gsa.cloud.table.mvp.presenter.orderManager.OrderCenterPresenter;
import com.gingersoft.gsa.cloud.table.R; import com.gingersoft.gsa.cloud.table.R;
import com.qmuiteam.qmui.util.QMUIDisplayHelper; import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.qmuiteam.qmui.widget.QMUIEmptyView;
import com.qmuiteam.qmui.widget.QMUITopBar; import com.qmuiteam.qmui.widget.QMUITopBar;
import com.qmuiteam.qmui.widget.tab.QMUITabIndicator; import com.qmuiteam.qmui.widget.tab.QMUITabIndicator;
import com.qmuiteam.qmui.widget.tab.QMUITabSegment; import com.qmuiteam.qmui.widget.tab.QMUITabSegment;
import com.scwang.smartrefresh.layout.api.RefreshLayout; import com.scwang.smartrefresh.layout.api.RefreshLayout;
import org.json.JSONException;
import org.simple.eventbus.Subscriber; import org.simple.eventbus.Subscriber;
import java.net.SocketTimeoutException;
import java.net.UnknownHostException;
import java.util.List; import java.util.List;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
...@@ -263,11 +255,6 @@ public class OrderCenterActivity extends BaseActivity<OrderCenterPresenter> impl ...@@ -263,11 +255,6 @@ public class OrderCenterActivity extends BaseActivity<OrderCenterPresenter> impl
} }
@Override @Override
public void showEmptyView(boolean isSuccess, int size, Throwable t) {
getCurrentOrderFragment().showEmptyView(isSuccess, size, t);
}
@Override
public void returnOrderItemList(List<OrderDetailItem> orderItemList) { public void returnOrderItemList(List<OrderDetailItem> orderItemList) {
Message message = Message.obtain(); Message message = Message.obtain();
message.obj = orderItemList; message.obj = orderItemList;
......
...@@ -30,7 +30,7 @@ import com.gingersoft.gsa.cloud.table.di.component.DaggerOrderDetailComponent; ...@@ -30,7 +30,7 @@ import com.gingersoft.gsa.cloud.table.di.component.DaggerOrderDetailComponent;
import com.gingersoft.gsa.cloud.table.mvp.contract.OrderDetailContract; import com.gingersoft.gsa.cloud.table.mvp.contract.OrderDetailContract;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.OrderDetailItem; 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.model.utils.OrderAssemblyUtil;
import com.gingersoft.gsa.cloud.table.mvp.presenter.OrderDetailPresenter; import com.gingersoft.gsa.cloud.table.mvp.presenter.orderManager.OrderDetailPresenter;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.MealStandActivity; import com.gingersoft.gsa.cloud.table.mvp.ui.activity.MealStandActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.OrderDetailItemAdapter; import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.OrderDetailItemAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.OrderDetailPayMethodAdapter; import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.OrderDetailPayMethodAdapter;
...@@ -243,14 +243,22 @@ public class OrderDetailActivity extends BaseActivity<OrderDetailPresenter> impl ...@@ -243,14 +243,22 @@ public class OrderDetailActivity extends BaseActivity<OrderDetailPresenter> impl
List<PayMethod> payMethodList = new ArrayList<>(); List<PayMethod> payMethodList = new ArrayList<>();
PayMethod payMethod = new PayMethod(); PayMethod payMethod = new PayMethod();
payMethod.setPayName(orderDetailItem.getPayName()); payMethod.setPayName(orderDetailItem.getPayName());
payMethod.setPayMoney(orderDetailItem.getTotalAmount()); payMethod.setPayMoney(orderDetailItem.getAmount());
payMethodList.add(payMethod); payMethodList.add(payMethod);
if (orderDetailItem.getTipsPrice() != 0) {
//打印添加找零或貼士行
String linePayType = orderDetailItem.getLinePayType() == 1 ? "找零" : "貼士";
PayMethod payMethod2 = new PayMethod();
//這裡打印退一格
payMethod2.setPayName(" " + linePayType);
payMethod2.setPayMoney(orderDetailItem.getTipsPrice());
payMethodList.add(payMethod2);
}
return payMethodList; return payMethodList;
} }
@OnClick({R2.id.btn_print_order, R2.id.btn_cancel_order, R2.id.btn_modify_order}) @OnClick({R2.id.btn_print_order, R2.id.btn_cancel_order, R2.id.btn_modify_order})
public void onClick(View v) { public void onClick(View v) {
int id = v.getId(); int id = v.getId();
if (id == R.id.btn_print_order) { if (id == R.id.btn_print_order) {
startPrintOrder(mOrderDetailItem, mOrderDetailList); startPrintOrder(mOrderDetailItem, mOrderDetailList);
......
...@@ -6,6 +6,7 @@ import android.graphics.drawable.StateListDrawable; ...@@ -6,6 +6,7 @@ import android.graphics.drawable.StateListDrawable;
import android.text.TextUtils; import android.text.TextUtils;
import android.view.Gravity; import android.view.Gravity;
import android.view.View; import android.view.View;
import android.view.ViewGroup;
import android.widget.Button; import android.widget.Button;
import android.widget.FrameLayout; import android.widget.FrameLayout;
import android.widget.ImageView; import android.widget.ImageView;
...@@ -90,8 +91,6 @@ public class TableAdapter extends DefaultAdapter<TableBean.DataBean> { ...@@ -90,8 +91,6 @@ public class TableAdapter extends DefaultAdapter<TableBean.DataBean> {
return R.layout.table_recycler_table; return R.layout.table_recycler_table;
} }
private Date date;
class TableItemHolder extends BaseHolder<TableBean.DataBean> { class TableItemHolder extends BaseHolder<TableBean.DataBean> {
@BindView(R2.id.ll_container) @BindView(R2.id.ll_container)
...@@ -132,6 +131,7 @@ public class TableAdapter extends DefaultAdapter<TableBean.DataBean> { ...@@ -132,6 +131,7 @@ public class TableAdapter extends DefaultAdapter<TableBean.DataBean> {
tv_people.setVisibility(View.VISIBLE); tv_people.setVisibility(View.VISIBLE);
tv_people.setText(item.getPerson() + "人"); tv_people.setText(item.getPerson() + "人");
String createDate = item.getCreateTime(); String createDate = item.getCreateTime();
if(!TextUtils.isEmpty(createDate)) {
String createTime = TimeUtil.getStringByFormat(new Date(createDate), TimeUtil.dateFormatYMDHMS); String createTime = TimeUtil.getStringByFormat(new Date(createDate), TimeUtil.dateFormatYMDHMS);
String currentTime = TimeUtil.getStringByFormat(System.currentTimeMillis(), TimeUtil.dateFormatYMDHMS); String currentTime = TimeUtil.getStringByFormat(System.currentTimeMillis(), TimeUtil.dateFormatYMDHMS);
long[] difference = TimeUtil.getDistanceTimes2(createTime, currentTime); long[] difference = TimeUtil.getDistanceTimes2(createTime, currentTime);
...@@ -142,6 +142,12 @@ public class TableAdapter extends DefaultAdapter<TableBean.DataBean> { ...@@ -142,6 +142,12 @@ public class TableAdapter extends DefaultAdapter<TableBean.DataBean> {
} }
tv_open_duration.setVisibility(View.VISIBLE); tv_open_duration.setVisibility(View.VISIBLE);
} else { } else {
tv_open_duration.setVisibility(View.GONE);
}
btn_table.setMaxLines(1);
} else {
//未開檯空間足夠可換行顯示
btn_table.setMaxLines(2);
tv_people.setVisibility(View.GONE); tv_people.setVisibility(View.GONE);
tv_open_duration.setVisibility(View.GONE); tv_open_duration.setVisibility(View.GONE);
} }
...@@ -149,11 +155,6 @@ public class TableAdapter extends DefaultAdapter<TableBean.DataBean> { ...@@ -149,11 +155,6 @@ public class TableAdapter extends DefaultAdapter<TableBean.DataBean> {
private void initTableBackground(TableBean.DataBean item) { private void initTableBackground(TableBean.DataBean item) {
// if (item.getClearstate() > 0) {
// setBackGroundWork(item, "Cleaning", R.drawable.tablebutton_splite, R.drawable.tablebutton_splite_new, R.color.black);
// return;
// }
// if (item.getSplitStatus() != 0) { // if (item.getSplitStatus() != 0) {
// setBackGroundWork(item, "888", R.drawable.tablebutton_splite, R.drawable.tablebutton_splite_new, R.color.black); // setBackGroundWork(item, "888", R.drawable.tablebutton_splite, R.drawable.tablebutton_splite_new, R.color.black);
// } else { // } else {
...@@ -165,7 +166,7 @@ public class TableAdapter extends DefaultAdapter<TableBean.DataBean> { ...@@ -165,7 +166,7 @@ public class TableAdapter extends DefaultAdapter<TableBean.DataBean> {
setBackGroundWork(item, "0", R.drawable.table_shape_table_nomal, R.drawable.tablebutton_skyblue_new, R.color.black); setBackGroundWork(item, "0", R.drawable.table_shape_table_nomal, R.drawable.tablebutton_skyblue_new, R.color.black);
break; break;
case 1: case 1:
setBackGroundWork(item, "1", R.drawable.tablebutton_default, R.drawable.tablebutton_default_new, R.color.theme_white_color); setBackGroundWork(item, "999", R.drawable.table_shape_table_use, R.drawable.tablebutton_red_new, R.color.theme_white_color);
break; break;
case 2: case 2:
setBackGroundWork(item, "2", R.drawable.table_shape_table_send, R.drawable.tablebutton_glassgreen_new, R.color.theme_white_color); setBackGroundWork(item, "2", R.drawable.table_shape_table_send, R.drawable.tablebutton_glassgreen_new, R.color.theme_white_color);
...@@ -219,7 +220,6 @@ public class TableAdapter extends DefaultAdapter<TableBean.DataBean> { ...@@ -219,7 +220,6 @@ public class TableAdapter extends DefaultAdapter<TableBean.DataBean> {
} }
private void setBackGroundWork(TableBean.DataBean item, String workstatu, int defaultMainback, int defaultChildBack, int defaultFontColor) { private void setBackGroundWork(TableBean.DataBean item, String workstatu, int defaultMainback, int defaultChildBack, int defaultFontColor) {
String tableName = item.getTableName();
if (defaultMainback != -1) { if (defaultMainback != -1) {
ll_container.setBackground(mContext.getResources().getDrawable(defaultMainback)); ll_container.setBackground(mContext.getResources().getDrawable(defaultMainback));
} }
......
...@@ -16,6 +16,7 @@ import com.jess.arms.base.BaseHolder; ...@@ -16,6 +16,7 @@ import com.jess.arms.base.BaseHolder;
import com.jess.arms.base.DefaultAdapter; import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
import com.jess.arms.utils.DeviceUtils; import com.jess.arms.utils.DeviceUtils;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import java.util.List; import java.util.List;
......
package com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal;
import android.content.Context;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.FrameLayout;
import android.widget.GridLayout;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2;
import com.jess.arms.utils.ArmsUtils;
import com.jess.arms.utils.DeviceUtils;
import java.util.List;
import androidx.recyclerview.widget.GridLayoutManager;
import butterknife.BindView;
public class HorizontalGridViewAdpter extends BaseAdapter {
private Context mContext;
private List<Food> lists;//数据源
private int mIndex; // 页数下标,标示第几页,从0开始
private int mPargerSize;// 每页显示的最大的数量
private int mOrderNumberShowSize;
private int mOrderNumberFontSize;
private int FoodTypeFontSize;
private int mParentRowCount;
private int mParentColWidth;
private int mParentColHeight;
private int mLayoutQtyHeight;
private int currentSelectPosition;
public HorizontalGridViewAdpter(Context context, List<Food> lists, int mIndex, int mPargerSize) {
this.mContext = context;
this.lists = lists;
this.mIndex = mIndex;
this.mPargerSize = mPargerSize;
this.mOrderNumberShowSize = GsaCloudApplication.androidSetting.getOrderNumberShowSize();
this.mOrderNumberFontSize = GsaCloudApplication.androidSetting.getOrderNumberFontSize();
this.FoodTypeFontSize = GsaCloudApplication.androidSetting.getFoodTypeFontSize();
int foodCol = GsaCloudApplication.androidSetting.getFoodTypeCol();
this.mParentColWidth = (int) (DeviceUtils.getScreenWidth(context) / foodCol);
this.mParentColHeight = GsaCloudApplication.androidSetting.getLayoutFoodTypeHeight() / GsaCloudApplication.androidSetting.getFoodTypeRow();
this.mLayoutQtyHeight = GsaCloudApplication.androidSetting.getLayoutQtyHeight();
}
/**
* 先判断数据及的大小是否显示满本页lists.size() > (mIndex + 1)*mPagerSize
* 如果满足,则此页就显示最大数量lists的个数
* 如果不够显示每页的最大数量,那么剩下几个就显示几个
*/
@Override
public int getCount() {
return lists.size() > (mIndex + 1) * mPargerSize ?
mPargerSize : (lists.size() - mIndex * mPargerSize);
}
@Override
public Food getItem(int arg0) {
return lists.get(arg0 + mIndex * mPargerSize);
}
@Override
public long getItemId(int arg0) {
return arg0 + mIndex * mPargerSize;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//重新确定position因为拿到的总是数据源,数据源是分页加载到每页的GridView上的
final int pos = position + mIndex * mPargerSize;//假设mPageSiez
Food food = lists.get(pos);
final ViewHolder holder;
if (convertView == null) {
holder = new ViewHolder();
convertView = View.inflate(mContext, R.layout.meal_item_food_group, null);
holder.tv_name = convertView.findViewById(R.id.tv_name);
holder.tv_number = convertView.findViewById(R.id.tv_number);
holder.tv_soldout = convertView.findViewById(R.id.tv_soldout);
holder.rl_container = convertView.findViewById(R.id.rl_container);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
setFoodGroup(holder, food);
setNumber(holder, food);
setSoldoutStatus(holder, food);
//假设mPagerSize=8,假如点击的是第二页(即mIndex=1)上的第二个位置item(position=1),那么这个item的实际位置就是pos=9
holder.tv_name.setText(lists.get(pos).getFoodName());
holder.tv_name.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Food food = lists.get(pos);
for (int i = 0; i < lists.size(); i++) {
lists.get(i).setSelected(false);
}
lists.get(pos).setSelected(true);
if (mOnItemClickListener != null)
mOnItemClickListener.onItemClick(food, pos);
notifyDataSetChanged();
}
});
return convertView;
}
public void setFoodGroup(ViewHolder holder, Food datasBean) {
// holder.tv_name.setMaxHeight(50);
// holder.tv_name.setMinHeight(50);
// holder.tv_name.setHeight(50);
//
// holder.tv_name.setMaxWidth(mParentColWidth);
// holder.tv_name.setMinWidth(mParentColWidth);
// holder.tv_name.setWidth(mParentColWidth);
holder.tv_name.setText(datasBean.getFoodName());
holder.tv_name.setTextSize(FoodTypeFontSize);
// holder.tv_name.setHeight(mParentColHeight);
holder.tv_name.setGravity(Gravity.CENTER);
holder.rl_container.setLayoutParams(new RelativeLayout.LayoutParams(
mParentColWidth,
mParentColHeight));
//后台没有设置颜色当前选中高亮色,没有选中默认使用绿色
if (datasBean.isSelected()) {
holder.tv_name.setBackgroundColor(ArmsUtils.getColor(mContext, R.color.orange_500));
holder.tv_name.setTextColor(ArmsUtils.getColor(mContext, R.color.theme_white_color));
} else {
holder.tv_name.setBackgroundColor(ArmsUtils.getColor(mContext, R.color.Grass_green));
holder.tv_name.setTextColor(ArmsUtils.getColor(mContext, R.color.theme_white_color));
}
}
public void setNumber(ViewHolder holder, Food datasBean) {
holder.tv_number.setTextSize(10);
holder.tv_number.setHeight(mLayoutQtyHeight);
ViewGroup.MarginLayoutParams mp = new ViewGroup.MarginLayoutParams(mOrderNumberShowSize, mOrderNumberShowSize); //item�Ŀ��
mp.setMargins(0, 0, 0, 0);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(mp);
lp.width = ArmsUtils.dip2px(mContext, 16);
lp.height = ArmsUtils.dip2px(mContext, 16);
holder.tv_number.setLayoutParams(lp);
if (datasBean.getNumber() == 0) {
holder.tv_number.setVisibility(View.INVISIBLE);
} else {
holder.tv_number.setVisibility(View.VISIBLE);
holder.tv_number.setText(datasBean.getNumber() + "");
}
}
public void setSoldoutStatus(ViewHolder holder, Food datasBean) {
holder.tv_soldout.setMaxHeight(mOrderNumberShowSize);
holder.tv_soldout.setMinHeight(mOrderNumberShowSize);
holder.tv_soldout.setTextSize(mOrderNumberFontSize);
// String qty = datasBean.getOR_Qty();
// if (TextUtils.isEmpty(qty)) {
// tv_soldout.setVisibility(View.INVISIBLE);
// } else {
// tv_soldout.setVisibility(View.VISIBLE);
// holder.tv_soldout.setText(datasBean.getNumber());
// }
}
static class ViewHolder {
private TextView tv_name, tv_number, tv_soldout;
private RelativeLayout rl_container;
}
private OnItemClickListener mOnItemClickListener;
public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
mOnItemClickListener = onItemClickListener;
}
public interface OnItemClickListener {
void onItemClick(Food food, int position);
}
}
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