Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
supplier
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
王宇航
supplier
Commits
3f6c41b6
Commit
3f6c41b6
authored
Apr 23, 2021
by
宁斌
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1、餐牌页拆分
parent
0028c801
Show whitespace changes
Inline
Side-by-side
Showing
33 changed files
with
4152 additions
and
404 deletions
+4152
-404
component-print/src/main/java/com/joe/print/mvp/ui/activity/PrintActivity.java
+13
-11
component-print/src/main/java/com/joe/print/mvp/ui/activity/PrinterAddActivity.java
+5
-5
component-table/src/main/AndroidManifest.xml
+3
-0
component-table/src/main/debug/AndroidManifest.xml
+6
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/component/MealStand2Component.java
+42
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/module/MealStand2Module.java
+120
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/module/SetMealModule.java
+37
-4
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/action/order/CancelOrder.java
+13
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/contract/SetMealContract.java
+19
-1
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/BaseOrderPresenter.java
+4
-1
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/BaseOrderPresenter2.java
+1457
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/mealstand/MealStandPresenter2.java
+139
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/mealstand/SetMealPresenter.java
+173
-44
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/activity/MealStandActivity2.java
+560
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/activity/OrderPayActivity.java
+12
-27
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/activity/TableActivity.java
+1
-1
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/adapter/BillItemAdapter.java
+2
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/adapter/meal/SelectMealAdapter.java
+2
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/adapter/meal/SelectMealAdapter2.java
+1117
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/fragment/mealstand/MealDiscountFragment.java
+4
-4
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/fragment/mealstand/SetMealFragment.java
+265
-145
component-table/src/main/res/layout/meal_layout_food_menu.xml
+84
-0
component-table/src/main/res/layout/meal_layout_food_plate.xml
+4
-3
component-table/src/main/res/layout/table_activity_meal_stand2.xml
+10
-100
config.gradle
+2
-2
library-common/src/main/java/com/gingersoft/gsa/cloud/common/logan/LoganManager.java
+3
-3
library-common/src/main/java/com/gingersoft/gsa/cloud/common/utils/okhttpUtils/OkHttp3Utils.java
+1
-0
library-order/src/main/java/com/gingersoft/gsa/cloud/pay/PaymentControl.java
+7
-7
library-order/src/main/java/com/gingersoft/gsa/cloud/pay/RequestParms.java
+11
-4
library-order/src/main/java/com/gingersoft/gsa/cloud/pay/ResultCallback.java
+14
-0
library-order/src/main/java/com/gingersoft/gsa/cloud/pay/device/phone/PhoneCallback.java
+1
-12
library-order/src/main/java/com/gingersoft/gsa/cloud/pay/lifecycle/fragment/PayFlowFragment.java
+19
-19
library-order/src/main/java/com/gingersoft/gsa/cloud/pay/lifecycle/presenter/PayFlowPresenter.java
+2
-11
No files found.
component-print/src/main/java/com/joe/print/mvp/ui/activity/PrintActivity.java
View file @
3f6c41b6
...
@@ -101,7 +101,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
...
@@ -101,7 +101,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
@Override
@Override
public
void
setupActivityComponent
(
@NonNull
AppComponent
appComponent
)
{
public
void
setupActivityComponent
(
@NonNull
AppComponent
appComponent
)
{
LoganManager
.
w_
code
(
TAG
,
"setupActivityComponent"
);
LoganManager
.
w_
printer
(
TAG
,
"setupActivityComponent"
);
DaggerPrintComponent
//如找不到该类,请编译一下项目
DaggerPrintComponent
//如找不到该类,请编译一下项目
.
builder
()
.
builder
()
.
appComponent
(
appComponent
)
.
appComponent
(
appComponent
)
...
@@ -112,7 +112,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
...
@@ -112,7 +112,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
@Override
@Override
public
int
initView
(
@Nullable
Bundle
savedInstanceState
)
{
public
int
initView
(
@Nullable
Bundle
savedInstanceState
)
{
LoganManager
.
w_
code
(
TAG
,
"initView"
);
LoganManager
.
w_
printer
(
TAG
,
"initView"
);
getWindow
().
addFlags
(
WindowManager
.
LayoutParams
.
FLAG_NOT_TOUCHABLE
getWindow
().
addFlags
(
WindowManager
.
LayoutParams
.
FLAG_NOT_TOUCHABLE
|
WindowManager
.
LayoutParams
.
FLAG_WATCH_OUTSIDE_TOUCH
);
|
WindowManager
.
LayoutParams
.
FLAG_WATCH_OUTSIDE_TOUCH
);
return
0
;
//R.layout.print_bitmap;如果你不需要框架帮你设置 setContentView(id) 需要 自行设置,请返回 0
return
0
;
//R.layout.print_bitmap;如果你不需要框架帮你设置 setContentView(id) 需要 自行设置,请返回 0
...
@@ -120,7 +120,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
...
@@ -120,7 +120,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
@Override
@Override
public
void
configImmersionBar
(
ImmersionBar
immersionBar
)
{
public
void
configImmersionBar
(
ImmersionBar
immersionBar
)
{
LoganManager
.
w_
code
(
TAG
,
"configImmersionBar"
);
LoganManager
.
w_
printer
(
TAG
,
"configImmersionBar"
);
immersionBar
immersionBar
.
fitsSystemWindows
(
true
)
.
fitsSystemWindows
(
true
)
.
statusBarColor
(
R
.
color
.
trans
)
.
statusBarColor
(
R
.
color
.
trans
)
...
@@ -130,7 +130,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
...
@@ -130,7 +130,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
@Override
@Override
public
void
initData
(
@Nullable
Bundle
savedInstanceState
)
{
public
void
initData
(
@Nullable
Bundle
savedInstanceState
)
{
LoganManager
.
w_
code
(
TAG
,
"initData"
);
LoganManager
.
w_
printer
(
TAG
,
"initData"
);
PrinterFlowProxy
.
newInstance
().
registerPrinterFlowListener
(
printerFlowListener
);
PrinterFlowProxy
.
newInstance
().
registerPrinterFlowListener
(
printerFlowListener
);
}
}
...
@@ -227,7 +227,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
...
@@ -227,7 +227,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
private
void
actionPrinter
()
{
private
void
actionPrinter
()
{
LoganManager
.
w_
code
(
TAG
,
"actionPrinter start"
);
LoganManager
.
w_
printer
(
TAG
,
"actionPrinter start"
);
showPrintLoadingDialog
();
showPrintLoadingDialog
();
...
@@ -243,7 +243,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
...
@@ -243,7 +243,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
//初始化打印配置
//初始化打印配置
initPrintConfig
(
printContent
);
initPrintConfig
(
printContent
);
LoganManager
.
w_
code
(
TAG
,
"actionPrinter end"
);
LoganManager
.
w_
printer
(
TAG
,
"actionPrinter end"
);
}
}
private
void
showPrintLoadingDialog
()
{
private
void
showPrintLoadingDialog
()
{
...
@@ -273,7 +273,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
...
@@ -273,7 +273,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
private
void
initPrintConfig
(
PrintContent
printContent
)
{
private
void
initPrintConfig
(
PrintContent
printContent
)
{
LoganManager
.
w_
code
(
TAG
,
"initPrintConfig start"
);
LoganManager
.
w_
printer
(
TAG
,
"initPrintConfig start"
);
//開始
//開始
PrinterFlowProxy
.
newInstance
().
dispatchPrinterDataBefore
(
type
,
type
,
GsonUtils
.
GsonString
(
printContent
),
GsonUtils
.
GsonString
(
defaultPrint
));
PrinterFlowProxy
.
newInstance
().
dispatchPrinterDataBefore
(
type
,
type
,
GsonUtils
.
GsonString
(
printContent
),
GsonUtils
.
GsonString
(
defaultPrint
));
...
@@ -307,8 +307,10 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
...
@@ -307,8 +307,10 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
printByDevice
(
defaultPrint
);
printByDevice
(
defaultPrint
);
}
}
LoganManager
.
w_code
(
TAG
,
"initPrintConfig defaultPrint-->"
+
defaultPrint
.
toString
());
if
(
defaultPrint
!=
null
)
{
LoganManager
.
w_code
(
TAG
,
"initPrintConfig end"
);
LoganManager
.
w_printer
(
TAG
,
"initPrintConfig defaultPrint-->"
+
defaultPrint
.
toString
());
}
LoganManager
.
w_printer
(
TAG
,
"initPrintConfig end"
);
}
}
/**
/**
...
@@ -398,7 +400,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
...
@@ -398,7 +400,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
* @param defaultPrint 打印機
* @param defaultPrint 打印機
*/
*/
private
void
printByDevice
(
PrinterDeviceBean
defaultPrint
)
{
private
void
printByDevice
(
PrinterDeviceBean
defaultPrint
)
{
LoganManager
.
w_
code
(
TAG
,
"printByDevice start"
);
LoganManager
.
w_
printer
(
TAG
,
"printByDevice start"
);
//獲取對應的打印類
//獲取對應的打印類
if
(
printerInIt
instanceof
PrintInstruction
)
{
if
(
printerInIt
instanceof
PrintInstruction
)
{
//開錢箱
//開錢箱
...
@@ -447,7 +449,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
...
@@ -447,7 +449,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
printFailure
(
"未找到對應的打印類型"
);
printFailure
(
"未找到對應的打印類型"
);
}
}
}
}
LoganManager
.
w_
code
(
TAG
,
"printByDevice end"
);
LoganManager
.
w_
printer
(
TAG
,
"printByDevice end"
);
}
}
/**
/**
...
...
component-print/src/main/java/com/joe/print/mvp/ui/activity/PrinterAddActivity.java
View file @
3f6c41b6
...
@@ -561,7 +561,7 @@ public class PrinterAddActivity extends BaseActivity<PrinterAddPresenter> implem
...
@@ -561,7 +561,7 @@ public class PrinterAddActivity extends BaseActivity<PrinterAddPresenter> implem
* 添加或測試打印機
* 添加或測試打印機
*/
*/
private
void
addOrTestPrint
(
View
v
)
{
private
void
addOrTestPrint
(
View
v
)
{
LoganManager
.
w_
code
(
TAG
,
"addOrTestPrint start"
);
LoganManager
.
w_
printer
(
TAG
,
"addOrTestPrint start"
);
if
(!
editTextIsNull
(
mEdPrintName
))
{
if
(!
editTextIsNull
(
mEdPrintName
))
{
ToastUtils
.
show
(
mContext
,
"請輸入打印機名稱"
);
ToastUtils
.
show
(
mContext
,
"請輸入打印機名稱"
);
return
;
return
;
...
@@ -652,8 +652,8 @@ public class PrinterAddActivity extends BaseActivity<PrinterAddPresenter> implem
...
@@ -652,8 +652,8 @@ public class PrinterAddActivity extends BaseActivity<PrinterAddPresenter> implem
}
}
}
else
if
(
v
.
getId
()
==
R
.
id
.
print_test
)
{
}
else
if
(
v
.
getId
()
==
R
.
id
.
print_test
)
{
//打印測試
//打印測試
LoganManager
.
w_
code
(
TAG
,
"打印測試 start"
);
LoganManager
.
w_
printer
(
TAG
,
"打印測試 start"
);
LoganManager
.
w_
code
(
TAG
,
"打印測試 printerDeviceBean->"
+
printerDeviceBean
.
toString
());
LoganManager
.
w_
printer
(
TAG
,
"打印測試 printerDeviceBean->"
+
printerDeviceBean
.
toString
());
CC
.
obtainBuilder
(
ComponentName
.
COMPONENT_PRINT
)
CC
.
obtainBuilder
(
ComponentName
.
COMPONENT_PRINT
)
.
addParam
(
PrintConstans
.
PRINT_TYPE
,
PrintConstans
.
PRINT_TEST
)
.
addParam
(
PrintConstans
.
PRINT_TYPE
,
PrintConstans
.
PRINT_TEST
)
.
addParam
(
"deviceBean"
,
printerDeviceBean
)
.
addParam
(
"deviceBean"
,
printerDeviceBean
)
...
@@ -664,10 +664,10 @@ public class PrinterAddActivity extends BaseActivity<PrinterAddPresenter> implem
...
@@ -664,10 +664,10 @@ public class PrinterAddActivity extends BaseActivity<PrinterAddPresenter> implem
// if (!result.isSuccess()) {
// if (!result.isSuccess()) {
// ToastUtils.show(this, "打印失敗");
// ToastUtils.show(this, "打印失敗");
// }
// }
LoganManager
.
w_
code
(
TAG
,
"打印測試 end"
);
LoganManager
.
w_
printer
(
TAG
,
"打印測試 end"
);
});
});
}
}
LoganManager
.
w_
code
(
TAG
,
"addOrTestPrint end"
);
LoganManager
.
w_
printer
(
TAG
,
"addOrTestPrint end"
);
}
}
...
...
component-table/src/main/AndroidManifest.xml
View file @
3f6c41b6
...
@@ -23,6 +23,9 @@
...
@@ -23,6 +23,9 @@
android:name=
".mvp.ui.activity.MealStandActivity"
android:name=
".mvp.ui.activity.MealStandActivity"
android:screenOrientation=
"portrait"
/>
android:screenOrientation=
"portrait"
/>
<activity
<activity
android:name=
".mvp.ui.activity.MealStandActivity2"
android:screenOrientation=
"portrait"
/>
<activity
android:name=
".mvp.ui.activity.OrderContentActivity"
android:name=
".mvp.ui.activity.OrderContentActivity"
android:screenOrientation=
"portrait"
/>
android:screenOrientation=
"portrait"
/>
<activity
<activity
...
...
component-table/src/main/debug/AndroidManifest.xml
View file @
3f6c41b6
...
@@ -10,7 +10,13 @@
...
@@ -10,7 +10,13 @@
android:supportsRtl=
"true"
android:supportsRtl=
"true"
android:networkSecurityConfig=
"@xml/network_android"
android:networkSecurityConfig=
"@xml/network_android"
android:theme=
"@style/AppTheme"
>
android:theme=
"@style/AppTheme"
>
<activity
android:name=
".mvp.ui.activity.CoordinatorlayoutActivity"
/>
<activity
android:name=
".mvp.ui.activity.CoordinatorlayoutActivity"
/>
<activity
android:name=
".mvp.ui.activity.MealStandActivity2"
android:screenOrientation=
"portrait"
/>
<activity
<activity
android:name=
".mvp.ui.activity.orderManager.OrderDetailActivity"
android:name=
".mvp.ui.activity.orderManager.OrderDetailActivity"
android:launchMode=
"singleTop"
/>
android:launchMode=
"singleTop"
/>
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/component/MealStand2Component.java
0 → 100644
View file @
3f6c41b6
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
di
.
component
;
import
com.gingersoft.gsa.cloud.table.di.module.MealStand2Module
;
import
com.gingersoft.gsa.cloud.table.di.module.MealStandModule
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.MealStandContract
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.activity.MealStandActivity
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.activity.MealStandActivity2
;
import
com.jess.arms.di.component.AppComponent
;
import
com.jess.arms.di.scope.ActivityScope
;
import
dagger.BindsInstance
;
import
dagger.Component
;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 12/27/2019 19:17
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
@ActivityScope
@Component
(
modules
=
MealStand2Module
.
class
,
dependencies
=
AppComponent
.
class
)
public
interface
MealStand2Component
{
void
inject
(
MealStandActivity2
activity
);
@Component
.
Builder
interface
Builder
{
@BindsInstance
MealStand2Component
.
Builder
view
(
MealStandContract
.
View
view
);
MealStand2Component
.
Builder
appComponent
(
AppComponent
appComponent
);
MealStand2Component
build
();
}
}
\ No newline at end of file
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/module/MealStand2Module.java
0 → 100644
View file @
3f6c41b6
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
di
.
module
;
import
com.gingersoft.gsa.cloud.database.bean.ComboItem
;
import
com.gingersoft.gsa.cloud.database.bean.Discount
;
import
com.gingersoft.gsa.cloud.database.bean.Food
;
import
com.gingersoft.gsa.cloud.database.bean.Modifier
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.MealStandContract
;
import
com.gingersoft.gsa.cloud.table.mvp.model.MealStandModel
;
import
com.gingersoft.gsa.cloud.table.mvp.model.bean.SoldoutCtrFood
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.BillItemAdapter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.ComboAdapter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.DiscountAdapter
;
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.ModifierAdapter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.SelectMealAdapter
;
import
com.jess.arms.di.scope.ActivityScope
;
import
java.util.ArrayList
;
import
java.util.List
;
import
javax.inject.Inject
;
import
javax.inject.Named
;
import
dagger.Binds
;
import
dagger.Module
;
import
dagger.Provides
;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 12/27/2019 19:17
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
@Module
public
abstract
class
MealStand2Module
{
@Binds
abstract
MealStandContract
.
Model
bindMealStandModel
(
MealStandModel
model
);
@ActivityScope
@Provides
@Named
(
"foodGroupList"
)
static
List
<
Food
>
provideFoodGroupList
()
{
return
new
ArrayList
<>();
}
@ActivityScope
@Provides
@Named
(
"foodList"
)
static
List
<
Food
>
provideFoodList
()
{
return
new
ArrayList
<>();
}
@ActivityScope
@Provides
static
List
<
ComboItem
>
provideFoodCombo
()
{
return
new
ArrayList
<>();
}
@ActivityScope
@Provides
static
List
<
Modifier
>
provideModifierList
()
{
return
new
ArrayList
<>();
}
@ActivityScope
@Provides
static
List
<
Discount
>
provideDiscountList
()
{
return
new
ArrayList
<>();
}
@ActivityScope
@Provides
static
List
<
SoldoutCtrFood
>
provideSoldoutCtrList
()
{
return
new
ArrayList
<>();
}
@Inject
protected
SelectMealAdapter
mSelectMealAdapter
;
/**
* 賬單項適配器
*/
@Inject
protected
BillItemAdapter
mBillItemAdapter
;
@ActivityScope
@Provides
static
FoodAdapter
provideFoodAdapter
(
MealStandContract
.
View
IView
,
@Named
(
"foodList"
)
List
<
Food
>
foodList
)
{
return
new
FoodAdapter
(
IView
.
getActivity
(),
foodList
,
IView
.
getFromType
());
}
@ActivityScope
@Provides
static
ComboAdapter
provideComboAdapter
(
MealStandContract
.
View
IView
,
List
<
ComboItem
>
comboItemList
)
{
return
new
ComboAdapter
(
IView
.
getActivity
(),
comboItemList
);
}
@ActivityScope
@Provides
static
ModifierAdapter
provideModifierAdapter
(
MealStandContract
.
View
IView
,
List
<
Modifier
>
modifierList
)
{
return
new
ModifierAdapter
(
IView
.
getActivity
(),
modifierList
);
}
@ActivityScope
@Provides
static
DiscountAdapter
provideDiscountAdapter
(
MealStandContract
.
View
IView
,
List
<
Discount
>
discountList
)
{
return
new
DiscountAdapter
(
IView
.
getActivity
(),
discountList
);
}
}
\ No newline at end of file
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/module/SetMealModule.java
View file @
3f6c41b6
...
@@ -6,11 +6,19 @@ import androidx.recyclerview.widget.LinearLayoutManager;
...
@@ -6,11 +6,19 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import
com.gingersoft.gsa.cloud.database.bean.ComboItem
;
import
com.gingersoft.gsa.cloud.database.bean.ComboItem
;
import
com.gingersoft.gsa.cloud.database.bean.Food
;
import
com.gingersoft.gsa.cloud.database.bean.Food
;
import
com.gingersoft.gsa.cloud.database.bean.Modifier
;
import
com.gingersoft.gsa.cloud.database.bean.Modifier
;
import
com.gingersoft.gsa.cloud.order.billItem.BillItem
;
import
com.gingersoft.gsa.cloud.order.commodity.OrderDetail
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.MealStandContract
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.SetMealContract
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.SetMealContract
;
import
com.gingersoft.gsa.cloud.table.mvp.presenter.mealstand.SetMealPresenter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.BillItemAdapter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.ComboAdapter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.ComboAdapter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.FoodAdapter
;
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.SelectMealAdapter2
;
import
com.jess.arms.di.scope.ActivityScope
;
import
com.jess.arms.di.scope.FragmentScope
;
import
com.jess.arms.di.scope.FragmentScope
;
import
com.jess.arms.di.scope.FragmentScope
;
import
com.jess.arms.di.scope.FragmentScope
;
...
@@ -20,11 +28,13 @@ import dagger.Provides;
...
@@ -20,11 +28,13 @@ import dagger.Provides;
import
com.gingersoft.gsa.cloud.table.mvp.contract.SetMealContract
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.SetMealContract
;
import
com.gingersoft.gsa.cloud.table.mvp.model.SetMealModel
;
import
com.gingersoft.gsa.cloud.table.mvp.model.SetMealModel
;
import
com.jess.arms.mvp.BasePresenter
;
import
com.jess.arms.mvp.IView
;
import
com.jess.arms.mvp.IView
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
javax.inject.Inject
;
import
javax.inject.Named
;
import
javax.inject.Named
;
...
@@ -46,6 +56,18 @@ public abstract class SetMealModule {
...
@@ -46,6 +56,18 @@ public abstract class SetMealModule {
@Binds
@Binds
abstract
SetMealContract
.
Model
bindSetMealModel
(
SetMealModel
model
);
abstract
SetMealContract
.
Model
bindSetMealModel
(
SetMealModel
model
);
// @FragmentScope
// @Provides
// static List<OrderDetail> provideOrderMealList() {
// return new ArrayList<>();
// }
//
// @FragmentScope
// @Provides
// static List<BillItem> provideBillItemList() {
// return new ArrayList<>();
// }
@FragmentScope
@FragmentScope
@Provides
@Provides
@Named
(
"foodGroupList"
)
@Named
(
"foodGroupList"
)
...
@@ -72,7 +94,6 @@ public abstract class SetMealModule {
...
@@ -72,7 +94,6 @@ public abstract class SetMealModule {
return
new
ArrayList
<>();
return
new
ArrayList
<>();
}
}
@FragmentScope
@FragmentScope
@Provides
@Provides
@Named
(
"fineTabTitles"
)
@Named
(
"fineTabTitles"
)
...
@@ -80,6 +101,18 @@ public abstract class SetMealModule {
...
@@ -80,6 +101,18 @@ public abstract class SetMealModule {
return
new
ArrayList
<>();
return
new
ArrayList
<>();
}
}
// @FragmentScope
// @Provides
// static SelectMealAdapter2 provideSelectMealAdapter2(SetMealContract.View IView, List<OrderDetail> orderMealList, BasePresenter presenter) {
// return new SelectMealAdapter2(IView.getActivity2(), orderMealList,presenter);
// }
//
// @FragmentScope
// @Provides
// static BillItemAdapter provideBillItemAdapter(SetMealContract.View IView, List<BillItem> billItems) {
// return new BillItemAdapter(IView.getActivity2(), billItems,"$");
// }
@FragmentScope
@FragmentScope
@Provides
@Provides
static
FoodGroupAdapter
provideFoodGroupAdapter
(
SetMealContract
.
View
IView
,
@Named
(
"foodGroupList"
)
List
<
Food
>
foodGroupList
)
{
static
FoodGroupAdapter
provideFoodGroupAdapter
(
SetMealContract
.
View
IView
,
@Named
(
"foodGroupList"
)
List
<
Food
>
foodGroupList
)
{
...
@@ -104,23 +137,23 @@ public abstract class SetMealModule {
...
@@ -104,23 +137,23 @@ public abstract class SetMealModule {
return
new
ModifierAdapter
(
IView
.
getActivity2
(),
modifierList
);
return
new
ModifierAdapter
(
IView
.
getActivity2
(),
modifierList
);
}
}
@Named
(
"foodGridLayoutManager"
)
@FragmentScope
@FragmentScope
@Provides
@Provides
@Named
(
"foodGridLayoutManager"
)
static
GridLayoutManager
provideFoodRecycleLayoutManager
(
SetMealContract
.
View
IView
)
{
static
GridLayoutManager
provideFoodRecycleLayoutManager
(
SetMealContract
.
View
IView
)
{
return
new
GridLayoutManager
(
IView
.
getActivity2
(),
1
,
LinearLayoutManager
.
HORIZONTAL
,
false
);
return
new
GridLayoutManager
(
IView
.
getActivity2
(),
1
,
LinearLayoutManager
.
HORIZONTAL
,
false
);
}
}
@Named
(
"comboGridLayoutManager"
)
@FragmentScope
@FragmentScope
@Provides
@Provides
@Named
(
"comboGridLayoutManager"
)
static
GridLayoutManager
provideComboRecycleLayoutManager
(
SetMealContract
.
View
IView
)
{
static
GridLayoutManager
provideComboRecycleLayoutManager
(
SetMealContract
.
View
IView
)
{
return
new
GridLayoutManager
(
IView
.
getActivity2
(),
1
,
LinearLayoutManager
.
HORIZONTAL
,
false
);
return
new
GridLayoutManager
(
IView
.
getActivity2
(),
1
,
LinearLayoutManager
.
HORIZONTAL
,
false
);
}
}
@Named
(
"modifierGridLayoutManager"
)
@FragmentScope
@FragmentScope
@Provides
@Provides
@Named
(
"modifierGridLayoutManager"
)
static
GridLayoutManager
provideModifierRecycleLayoutManager
(
SetMealContract
.
View
IView
)
{
static
GridLayoutManager
provideModifierRecycleLayoutManager
(
SetMealContract
.
View
IView
)
{
return
new
GridLayoutManager
(
IView
.
getActivity2
(),
1
,
LinearLayoutManager
.
HORIZONTAL
,
false
);
return
new
GridLayoutManager
(
IView
.
getActivity2
(),
1
,
LinearLayoutManager
.
HORIZONTAL
,
false
);
}
}
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/action/order/CancelOrder.java
View file @
3f6c41b6
...
@@ -10,6 +10,7 @@ import com.gingersoft.gsa.cloud.pay.PayAction;
...
@@ -10,6 +10,7 @@ import com.gingersoft.gsa.cloud.pay.PayAction;
import
com.gingersoft.gsa.cloud.pay.PaymentControl
;
import
com.gingersoft.gsa.cloud.pay.PaymentControl
;
import
com.gingersoft.gsa.cloud.pay.RequestParms
;
import
com.gingersoft.gsa.cloud.pay.RequestParms
;
import
com.gingersoft.gsa.cloud.pay.ResultCallback
;
import
com.gingersoft.gsa.cloud.pay.ResultCallback
;
import
com.gingersoft.gsa.cloud.pay.bean.PayMethod
;
import
com.gingersoft.gsa.cloud.pay.device.pos.hyweb.bean.request.bg.GetTxnIdRequest
;
import
com.gingersoft.gsa.cloud.pay.device.pos.hyweb.bean.request.bg.GetTxnIdRequest
;
import
com.gingersoft.gsa.cloud.pay.device.pos.hyweb.bean.request.pos.VoidRequest
;
import
com.gingersoft.gsa.cloud.pay.device.pos.hyweb.bean.request.pos.VoidRequest
;
import
com.gingersoft.gsa.cloud.table.R
;
import
com.gingersoft.gsa.cloud.table.R
;
...
@@ -108,6 +109,18 @@ public class CancelOrder implements Strategy<OrderManagerResponse> {
...
@@ -108,6 +109,18 @@ public class CancelOrder implements Strategy<OrderManagerResponse> {
public
void
onFailure
(
Throwable
t
)
{
public
void
onFailure
(
Throwable
t
)
{
}
}
@Override
public
void
externalPayment
()
{
if
(
cancelListener
!=
null
)
{
cancelListener
.
cancel
(
datasBean
.
getId
());
}
}
@Override
public
void
hybridPayment
(
List
<
PayMethod
>
payMethods
)
{
}
})
})
.
build
();
.
build
();
PaymentControl
.
newInstance
().
showPayFlowFragment
(
mActivity
,
build
);
PaymentControl
.
newInstance
().
showPayFlowFragment
(
mActivity
,
build
);
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/contract/SetMealContract.java
View file @
3f6c41b6
...
@@ -8,6 +8,11 @@ import com.gingersoft.gsa.cloud.database.bean.FoodCombo;
...
@@ -8,6 +8,11 @@ import com.gingersoft.gsa.cloud.database.bean.FoodCombo;
import
com.gingersoft.gsa.cloud.database.bean.FoodModifier
;
import
com.gingersoft.gsa.cloud.database.bean.FoodModifier
;
import
com.gingersoft.gsa.cloud.database.bean.Modifier
;
import
com.gingersoft.gsa.cloud.database.bean.Modifier
;
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.activity.MealStandActivity2
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.ComboAdapter
;
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.ModifierAdapter
;
import
com.jess.arms.mvp.IView
;
import
com.jess.arms.mvp.IView
;
import
com.jess.arms.mvp.IModel
;
import
com.jess.arms.mvp.IModel
;
...
@@ -16,6 +21,7 @@ import java.util.List;
...
@@ -16,6 +21,7 @@ import java.util.List;
import
javax.inject.Inject
;
import
javax.inject.Inject
;
import
javax.inject.Named
;
import
javax.inject.Named
;
import
dagger.Lazy
;
import
io.reactivex.Single
;
import
io.reactivex.Single
;
...
@@ -59,6 +65,8 @@ public interface SetMealContract {
...
@@ -59,6 +65,8 @@ public interface SetMealContract {
void
setMealRvScrollToPosition
(
int
position
);
void
setMealRvScrollToPosition
(
int
position
);
void
resetSelect
(
int
position
,
Food
datasBean
);
void
returnFoodGroupList
(
List
<
Food
>
foodGroupList
);
void
returnFoodGroupList
(
List
<
Food
>
foodGroupList
);
void
returnFoodList
(
List
<
Food
>
foodList
);
void
returnFoodList
(
List
<
Food
>
foodList
);
...
@@ -67,7 +75,17 @@ public interface SetMealContract {
...
@@ -67,7 +75,17 @@ public interface SetMealContract {
void
returnModifierList
(
List
<
Modifier
>
modifierList
);
void
returnModifierList
(
List
<
Modifier
>
modifierList
);
MealStandActivity
getActivity2
();
void
initFoodGroupAdapter
(
List
<
Food
>
foodGroupList
);
void
notifyFoodGroupAdapter
();
void
notifyFoodAdapter
();
void
notifyComboAdapterAdapter
();
void
notifyModifierAdapterAdapter
();
MealStandActivity2
getActivity2
();
int
getFromType
();
int
getFromType
();
}
}
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/BaseOrderPresenter.java
View file @
3f6c41b6
...
@@ -40,9 +40,11 @@ import com.gingersoft.gsa.cloud.table.mvp.model.bean.request.AddOrderRequest;
...
@@ -40,9 +40,11 @@ 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.presenter.mealstand.MealStandPresenter
;
import
com.gingersoft.gsa.cloud.table.mvp.presenter.mealstand.MealStandPresenter
;
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.activity.MealStandActivity2
;
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.BillItemAdapter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.BillItemAdapter
;
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.fragment.mealstand.SetMealFragment
;
import
com.gingersoft.gsa.cloud.ui.widget.dialog.CommonTipDialog
;
import
com.gingersoft.gsa.cloud.ui.widget.dialog.CommonTipDialog
;
import
com.jess.arms.di.scope.ActivityScope
;
import
com.jess.arms.di.scope.ActivityScope
;
import
com.jess.arms.integration.AppManager
;
import
com.jess.arms.integration.AppManager
;
...
@@ -163,13 +165,14 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
...
@@ -163,13 +165,14 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
this
.
mModel
=
(
M
)
model
;
this
.
mModel
=
(
M
)
model
;
this
.
mRootView
=
(
V
)
rootView
;
this
.
mRootView
=
(
V
)
rootView
;
this
.
mBaseOrderPresenter
=
this
;
this
.
mBaseOrderPresenter
=
this
;
this
.
IActivity
=
(
Activity
)
mR
ootView
;
this
.
IActivity
=
(
Activity
)
r
ootView
;
if
(
IActivity
instanceof
MealStandActivity
)
{
if
(
IActivity
instanceof
MealStandActivity
)
{
mMealStandActivity
=
(
MealStandActivity
)
IActivity
;
mMealStandActivity
=
(
MealStandActivity
)
IActivity
;
}
else
if
(
IActivity
instanceof
OrderContentActivity
)
{
}
else
if
(
IActivity
instanceof
OrderContentActivity
)
{
mOrderContentActivity
=
(
OrderContentActivity
)
IActivity
;
mOrderContentActivity
=
(
OrderContentActivity
)
IActivity
;
}
}
if
(
this
instanceof
MealStandPresenter
)
{
if
(
this
instanceof
MealStandPresenter
)
{
mMealStandPresenter
=
(
MealStandPresenter
)
this
;
mMealStandPresenter
=
(
MealStandPresenter
)
this
;
}
}
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/BaseOrderPresenter2.java
0 → 100644
View file @
3f6c41b6
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
mvp
.
presenter
;
import
android.app.Activity
;
import
android.app.Application
;
import
android.widget.TextView
;
import
com.billy.cc.core.component.CC
;
import
com.gingersoft.gsa.cloud.common.bean.BaseResult
;
import
com.gingersoft.gsa.cloud.common.constans.ExpandConstant
;
import
com.gingersoft.gsa.cloud.common.core.member.MemberInfo
;
import
com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager
;
import
com.gingersoft.gsa.cloud.common.core.restaurant.utils.RestaurantExpandInfoUtils
;
import
com.gingersoft.gsa.cloud.common.core.table.TableBean
;
import
com.gingersoft.gsa.cloud.common.core.user.UserContext
;
import
com.gingersoft.gsa.cloud.common.logan.LoganManager
;
import
com.gingersoft.gsa.cloud.common.utils.LanguageUtils
;
import
com.gingersoft.gsa.cloud.common.utils.MoneyUtil
;
import
com.gingersoft.gsa.cloud.common.utils.time.TimeUtils
;
import
com.gingersoft.gsa.cloud.component.ComponentName
;
import
com.gingersoft.gsa.cloud.database.bean.Discount
;
import
com.gingersoft.gsa.cloud.order.bean.discount.CouponDiscountBean
;
import
com.gingersoft.gsa.cloud.order.bean.request.OrderDiscountRequest
;
import
com.gingersoft.gsa.cloud.order.bean.response.OrderDiscountResponse
;
import
com.gingersoft.gsa.cloud.order.bean.response.OrderResponse
;
import
com.gingersoft.gsa.cloud.order.billItem.BillItem
;
import
com.gingersoft.gsa.cloud.order.billItem.DiscountItem
;
import
com.gingersoft.gsa.cloud.order.billItem.RoundingItem
;
import
com.gingersoft.gsa.cloud.order.billItem.ServiceChargeItem
;
import
com.gingersoft.gsa.cloud.order.cart.ShoppingCart
;
import
com.gingersoft.gsa.cloud.order.cart.ShoppingCartNumberChange
;
import
com.gingersoft.gsa.cloud.order.commodity.OrderDetail
;
import
com.gingersoft.gsa.cloud.order.discount.CouponDiscount
;
import
com.gingersoft.gsa.cloud.order.discount.NomalDiscount
;
import
com.gingersoft.gsa.cloud.order.order.BaseOrder
;
import
com.gingersoft.gsa.cloud.order.order.DoshokuOrder
;
import
com.gingersoft.gsa.cloud.order.order.OrderFactory
;
import
com.gingersoft.gsa.cloud.order.order.TakeawayOrder
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.BaseOrderContract
;
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.presenter.mealstand.MealStandPresenter
;
import
com.gingersoft.gsa.cloud.table.mvp.presenter.mealstand.MealStandPresenter2
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.activity.MealStandActivity
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.activity.MealStandActivity2
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.activity.OrderContentActivity
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.BillItemAdapter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.SelectMealAdapter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.SelectMealAdapter2
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.fragment.mealstand.SetMealFragment
;
import
com.gingersoft.gsa.cloud.ui.widget.dialog.CommonTipDialog
;
import
com.jess.arms.di.scope.ActivityScope
;
import
com.jess.arms.integration.AppManager
;
import
com.jess.arms.mvp.BasePresenter
;
import
com.jess.arms.utils.DeviceUtils
;
import
com.jess.arms.utils.PermissionUtil
;
import
com.jess.arms.utils.RxLifecycleUtils
;
import
com.tbruyelle.rxpermissions2.RxPermissions
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
javax.inject.Inject
;
import
io.reactivex.Observable
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.reactivex.disposables.Disposable
;
import
io.reactivex.functions.Consumer
;
import
io.reactivex.functions.Function
;
import
io.reactivex.schedulers.Schedulers
;
import
me.jessyan.rxerrorhandler.core.RxErrorHandler
;
import
me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber
;
import
okhttp3.FormBody
;
import
okhttp3.RequestBody
;
import
static
com
.
gingersoft
.
gsa
.
cloud
.
order
.
commodity
.
OrderDetail
.
DISCOUNT_TYPE
;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-01-11
* 修订历史:2020-01-11
* 描述:
*/
@ActivityScope
public
abstract
class
BaseOrderPresenter2
<
M
extends
BaseOrderContract
.
Model
,
V
extends
BaseOrderContract
.
View
>
extends
BasePresenter
<
BaseOrderContract
.
Model
,
BaseOrderContract
.
View
>
{
@Inject
RxErrorHandler
mErrorHandler
;
@Inject
Application
mApplication
;
@Inject
AppManager
mAppManager
;
protected
M
mModel
;
protected
V
mRootView
;
protected
BaseOrderPresenter2
mBaseOrderPresenter
;
private
Activity
IActivity
;
private
MealStandActivity2
mMealStandActivity
;
private
OrderContentActivity
mOrderContentActivity
;
private
MealStandPresenter2
mMealStandPresenter
;
/**
* 訂單美食適配器
*/
protected
SelectMealAdapter2
mSelectMealAdapter
;
/**
* 賬單項適配器
*/
protected
BillItemAdapter
mBillItemAdapter
;
/**
* 美食列表
*/
protected
List
<
OrderDetail
>
mOrderMealList
;
/**
* 賬單項列表
*/
protected
List
<
BillItem
>
mBillItemList
;
/**
* 餐檯信息
*/
public
TableBean
.
DataBean
mTableInfo
;
/**
* 訂單信息
*/
// protected BaseOrder mOrder;
/**
* 堂食訂單信息
*/
protected
DoshokuOrder
mDoshokuOrder
;
/**
* 外賣訂單信息
*/
protected
TakeawayOrder
mTakeawayOrder
;
/**
* 美食購物車
*/
protected
ShoppingCart
mShoppingCart
;
/**
* 已下單信息
*/
private
OrderResponse
orderPlaced
;
protected
String
cashStr
=
"$"
;
protected
String
serviceChargeStr
=
"服務費"
;
protected
String
roundingStr
=
"賬單小數"
;
private
final
String
noFoodDeliveryTip
=
"賬單沒有食品,是否開台?"
;
public
abstract
void
createOrder
(
boolean
isPrint
,
Class
<?>
afterToActivity
);
public
abstract
void
addOrderFood
(
boolean
isPrint
,
Class
<?>
afterToActivity
);
public
void
saveCreateTime
(
long
createTime
)
{
if
(
mDoshokuOrder
==
null
)
{
mDoshokuOrder
.
setOpenTableInfo
(
new
TableBean
.
DataBean
());
}
mDoshokuOrder
.
getOpenTableInfo
().
setCreateTime
(
TimeUtils
.
getTime
(
createTime
,
TimeUtils
.
DEFAULT_DATE_FORMAT
));
}
public
BaseOrderPresenter2
(
BaseOrderContract
.
Model
model
,
BaseOrderContract
.
View
rootView
)
{
super
(
model
,
rootView
);
this
.
mModel
=
(
M
)
model
;
this
.
mRootView
=
(
V
)
rootView
;
this
.
mBaseOrderPresenter
=
this
;
if
(
mRootView
instanceof
SetMealFragment
)
{
this
.
IActivity
=
(
MealStandActivity2
)
((
SetMealFragment
)
mRootView
).
getActivity2
();
}
else
{
if
(
IActivity
instanceof
MealStandActivity2
)
{
mMealStandActivity
=
(
MealStandActivity2
)
IActivity
;
}
else
if
(
IActivity
instanceof
OrderContentActivity
)
{
mOrderContentActivity
=
(
OrderContentActivity
)
IActivity
;
}
}
if
(
this
instanceof
MealStandPresenter2
)
{
mMealStandPresenter
=
(
MealStandPresenter2
)
this
;
}
BaseOrder
baseOrder
=
OrderFactory
.
createOrder
(
BaseOrder
.
orderType
);
if
(
BaseOrder
.
isTableToMeal
())
{
mDoshokuOrder
=
(
DoshokuOrder
)
baseOrder
;
mTableInfo
=
mDoshokuOrder
.
getOpenTableInfo
();
}
else
{
mTakeawayOrder
=
(
TakeawayOrder
)
baseOrder
;
}
mShoppingCart
=
baseOrder
.
getShoppingCart
();
mOrderMealList
=
mShoppingCart
.
getOrderCommodityList
();
mBillItemList
=
mShoppingCart
.
getBillItemList
();
if
(
mMealStandPresenter
!=
null
&&
mDoshokuOrder
!=
null
)
{
orderPlaced
=
mDoshokuOrder
.
getOrderPlaced
();
}
resetSelected
();
initOrderAdapter
();
initItemClickListener
();
updateBillInfo
();
}
@Override
public
void
onDestroy
()
{
super
.
onDestroy
();
this
.
mErrorHandler
=
null
;
this
.
mAppManager
=
null
;
this
.
mApplication
=
null
;
}
private
void
initOrderAdapter
()
{
if
(
mSelectMealAdapter
==
null
)
{
mSelectMealAdapter
=
new
SelectMealAdapter2
(
IActivity
,
mOrderMealList
,
this
);
//設置子父級下標
mSelectMealAdapter
.
setIndex
();
}
if
(
mBillItemAdapter
==
null
)
{
mBillItemAdapter
=
new
BillItemAdapter
(
IActivity
,
mBillItemList
,
cashStr
);
}
}
private
void
initItemClickListener
()
{
mSelectMealAdapter
.
setOnItemClickListener
(
new
SelectMealAdapter2
.
OnItemClickListener
()
{
@Override
public
void
onItemClick
(
OrderDetail
datasBean
,
int
position
)
{
mRootView
.
recordOperat
(
true
);
}
@Override
public
void
onMealCountDelete
(
OrderDetail
datasBean
,
int
position
)
{
mRootView
.
recordOperat
(
true
);
if
(
datasBean
.
getNumber
()
==
1
)
{
mSelectMealAdapter
.
removeFoodItem
();
mSelectMealAdapter
.
notifyDataSetChanged
();
updateBillInfo
();
}
else
{
changeNumber
(
datasBean
.
getNumber
()
-
1
);
}
}
@Override
public
void
onMealCountAdd
(
OrderDetail
datasBean
,
int
position
)
{
mRootView
.
recordOperat
(
true
);
changeNumber
(
datasBean
.
getNumber
()
+
1
);
}
@Override
public
void
onCurrentOrderDetail
(
OrderDetail
datasBean
,
int
position
)
{
}
});
}
public
void
updateBillInfo
()
{
updateBillInfo
(
null
);
}
/**
* 更新賬單信息
* 1、更新食品折扣
* 2、更新合計
* 3、更新食品折扣
* 4、更新服務費項{@link ServiceChargeItem}
* 5、更新賬單折扣項{@link NomalDiscount}
* 6、更新賬單小數項{@link RoundingItem}
* 7、更新總金額
*/
public
void
updateBillInfo
(
UpdateBillInfoEndListener
updateBillInfoEndListener
)
{
mShoppingCart
.
resetBeforeBillCalculation
();
//更新食品折扣
updateFoodDiscount
();
//更新合計
double
wholeAmount
=
getFoodTotal
();
mShoppingCart
.
setWholeAmount
(
wholeAmount
);
LoganManager
.
w_tableMode
(
TAG
,
"合計金額="
+
wholeAmount
);
Disposable
disposable
=
Observable
.
just
(
wholeAmount
)
.
subscribeOn
(
Schedulers
.
computation
())
/**
* 計算服務費(堂食)
*/
.
map
(
new
Function
<
Double
,
Double
>()
{
@Override
public
Double
apply
(
Double
totalAmount
)
throws
Exception
{
if
(
mDoshokuOrder
!=
null
)
{
int
serviceCharge
=
mDoshokuOrder
.
getOpenTableInfo
().
getServiceCharge
();
if
(
serviceCharge
>
0
)
{
ServiceChargeItem
item
=
new
ServiceChargeItem
(
serviceChargeStr
);
double
serviceChargeMoney
=
getServiceableAmout
();
totalAmount
=
item
.
updateBillItem
(
serviceChargeMoney
,
serviceCharge
);
if
(
Double
.
doubleToLongBits
(
item
.
getMoney
())
!=
0.0
)
{
mBillItemList
.
add
(
item
);
mShoppingCart
.
setServiceCharge
(
item
.
getMoney
());
}
LoganManager
.
w_tableMode
(
TAG
,
"服務費="
+
serviceChargeMoney
);
LoganManager
.
w_tableMode
(
TAG
,
LoganManager
.
EVENT_CALCULATE
,
"服務費後總金額="
+
totalAmount
);
}
}
return
totalAmount
;
}
})
/**
* 計算折扣
*/
.
map
(
new
Function
<
Double
,
Double
>()
{
@Override
public
Double
apply
(
Double
totalAmount
)
throws
Exception
{
if
(
mMealStandActivity
!=
null
&&
orderPlaced
!=
null
)
{
//添加已送單折扣
List
<
OrderDiscountResponse
>
orderDiscounts
=
orderPlaced
.
getDiscountDetails
();
if
(
orderDiscounts
!=
null
)
{
for
(
OrderDiscountResponse
orderDiscount
:
orderDiscounts
)
{
if
(
orderDiscount
.
getType
()
==
OrderDiscountRequest
.
ORDER_DISCOUNT
)
{
LoganManager
.
w_tableMode
(
TAG
,
"已下單整單折扣金額="
+
orderDiscount
.
getDiscountAmount
());
//整單折扣
Discount
discount
=
new
Discount
();
discount
.
setId
(
orderDiscount
.
getDiscountId
());
discount
.
setDiscountRecordId
(
orderDiscount
.
getId
());
discount
.
setType
(
orderDiscount
.
getDiscountType
());
discount
.
setRemark
(
orderDiscount
.
getRemark
());
discount
.
setDiscountValue
(
orderDiscount
.
getDiscountValue
());
discount
.
setAmount
(
orderDiscount
.
getDiscountAmount
());
mShoppingCart
.
addMultyDiscount
(
mShoppingCart
.
createNomalDiscount
(
discount
,
BillItem
.
BILL_ITEM_ORDER_SENT_STATUS
));
}
else
if
(
orderDiscount
.
getType
()
==
OrderDiscountRequest
.
MEMBER_DISCOUNT
)
{
//會員折扣
MemberInfo
memberInfo
=
mDoshokuOrder
.
getMemberInfo
();
if
(
memberInfo
!=
null
)
{
mShoppingCart
.
addMultyDiscount
(
mShoppingCart
.
createMemberDiscount
(
memberInfo
,
BillItem
.
BILL_ITEM_ORDER_SENT_STATUS
));
}
LoganManager
.
w_tableMode
(
TAG
,
"已下單會員折扣比例="
+
memberInfo
.
getMemberPoint
());
}
else
if
(
orderDiscount
.
getType
()
==
OrderDiscountRequest
.
COUPON_DISCOUNT
)
{
LoganManager
.
w_tableMode
(
TAG
,
"已下單優惠券折扣金額="
+
orderDiscount
.
getDiscountAmount
());
//優惠券折扣
CouponDiscountBean
couponDiscount
=
new
CouponDiscountBean
();
couponDiscount
.
setDiscountRecordId
(
orderDiscount
.
getId
());
couponDiscount
.
setCouponTypeName1
(
orderDiscount
.
getRemark
());
couponDiscount
.
setCouponTypeName2
(
orderDiscount
.
getRemark2
());
couponDiscount
.
setCouponTypeName3
(
orderDiscount
.
getRemark3
());
couponDiscount
.
setAccumulate
(
orderDiscount
.
getAccumulate
());
couponDiscount
.
setSpend
(
orderDiscount
.
getSpend
());
couponDiscount
.
setDiscount
(
orderDiscount
.
getDiscountValue
());
couponDiscount
.
setAmount
(
orderDiscount
.
getDiscountAmount
());
mShoppingCart
.
addMultyDiscount
(
mShoppingCart
.
createCouponDiscount
(
couponDiscount
,
BillItem
.
BILL_ITEM_ORDER_SENT_STATUS
));
}
}
}
}
//打上折上折,免服務費標記
setOrderMealPasteDSMark
();
//計算折扣金額
double
discountableMoney
=
getDiscountableAmount
();
LoganManager
.
w_tableMode
(
TAG
,
"可折扣金額="
+
discountableMoney
);
if
(
mShoppingCart
.
getMultyDiscountList
().
size
()
>
0
)
{
//調用折扣鏈進行計算
totalAmount
=
MoneyUtil
.
sub
(
totalAmount
,
mShoppingCart
.
calculateLinkedDiscounts
(
discountableMoney
));
LoganManager
.
w_tableMode
(
TAG
,
LoganManager
.
EVENT_CALCULATE
,
"賬單後總金額="
+
totalAmount
);
}
return
totalAmount
;
}
})
/**
* 計算賬單小數
*/
.
map
(
new
Function
<
Double
,
Double
>()
{
@Override
public
Double
apply
(
Double
totalAmount
)
throws
Exception
{
double
roundingTotalAmount
=
getTotalAmountFilterByType
(
BillItem
.
ROUNDING_TYPE
);
if
(
roundingTotalAmount
>
0
)
{
LoganManager
.
w_tableMode
(
TAG
,
"賬單小數="
+
roundingTotalAmount
);
RoundingItem
item
=
new
RoundingItem
(
roundingStr
);
totalAmount
=
item
.
updateBillItem
(
roundingTotalAmount
);
if
(
Double
.
doubleToLongBits
(
item
.
getMoney
())
!=
0.0
)
{
mBillItemList
.
add
(
item
);
mShoppingCart
.
setRounding
(
item
.
getMoney
());
}
}
return
totalAmount
;
}
})
.
subscribeOn
(
AndroidSchedulers
.
mainThread
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
(
new
Consumer
<
Double
>()
{
@Override
public
void
accept
(
Double
totalAmount
)
{
//更新總金額
mShoppingCart
.
setTotalAmount
(
totalAmount
);
//刷新賬單Item數據
mBillItemAdapter
.
notifyDataSetChanged
();
//刷新美食Item數據
mSelectMealAdapter
.
notifyDataSetChanged
();
LoganManager
.
w_tableMode
(
TAG
,
"總金額="
+
totalAmount
);
if
(
mOrderContentActivity
!=
null
)
{
mOrderContentActivity
.
initOrderBill
(
wholeAmount
,
totalAmount
);
}
if
(
updateBillInfoEndListener
!=
null
)
{
updateBillInfoEndListener
.
onUpdateEnd
();
}
}
});
addDispose
(
disposable
);
}
/**
* 給不參與折上折,參與免服務費的美食打上標記貼上
*/
private
void
setOrderMealPasteDSMark
()
{
for
(
int
i
=
0
;
i
<
mOrderMealList
.
size
();
i
++)
{
OrderDetail
orderMealItem
=
mOrderMealList
.
get
(
i
);
//初始化標記
orderMealItem
.
setAdditionalDiscount
((
byte
)
1
);
orderMealItem
.
setFreeServiceCharge
((
byte
)
0
);
//查找當前套餐下是否存在折扣
OrderDetail
discountItem
=
findCurrentMixOrderWithDiscount
(
orderMealItem
);
if
(
discountItem
!=
null
)
{
Discount
discount
=
discountItem
.
getDiscount
();
//打上標記
orderMealItem
.
setAdditionalDiscount
(
discount
.
getAdditionalDiscount
());
orderMealItem
.
setFreeServiceCharge
(
discount
.
getFreeServiceCharge
());
}
}
}
/**
* 查找當前套餐下折扣
*
* @param orderMealItem
* @return
*/
private
OrderDetail
findCurrentMixOrderWithDiscount
(
OrderDetail
orderMealItem
)
{
int
parentIndex
=
orderMealItem
.
getParentIndex
();
int
myIndex
=
orderMealItem
.
getMyIndex
();
for
(
OrderDetail
orderItem
:
mOrderMealList
)
{
if
(
orderItem
.
getType
()
==
DISCOUNT_TYPE
&&
(
parentIndex
==
orderItem
.
getParentIndex
()
||
myIndex
==
orderItem
.
getParentIndex
()))
{
//查找到是同組套餐
return
orderItem
;
}
}
return
null
;
}
/**
* 查詢對應的BillItem類
*
* @param cla
* @return
*/
public
BillItem
findBillItemByClass
(
Class
<?>
cla
)
{
BillItem
billItem
=
null
;
for
(
BillItem
item
:
mBillItemList
)
{
if
(
item
.
getClass
().
equals
(
cla
))
{
billItem
=
item
;
break
;
}
}
return
billItem
;
}
protected
void
toScanActivity
()
{
PermissionUtil
.
launchCamera
(
new
PermissionUtil
.
RequestPermission
()
{
@Override
public
void
onRequestPermissionSuccess
()
{
String
title
=
null
;
if
(
IActivity
instanceof
MealStandActivity
)
{
title
=
"掃描會員碼"
;
}
else
if
(
IActivity
instanceof
OrderContentActivity
)
{
title
=
"掃描優惠券碼"
;
}
CC
.
obtainBuilder
(
ComponentName
.
COMPONENT_SCAN
)
.
setActionName
(
"openScanActivity"
)
.
addParam
(
"title"
,
title
)
.
build
()
.
callAsyncCallbackOnMainThread
((
cc
,
result
)
->
{
});
}
@Override
public
void
onRequestPermissionFailure
(
List
<
String
>
permissions
)
{
DeviceUtils
.
startSetting
(
IActivity
);
mRootView
.
showMessage
(
LanguageUtils
.
get_language_system
(
IActivity
,
"please.open.camera.permissions"
,
"請前往設置開放照相機權限"
));
}
@Override
public
void
onRequestPermissionFailureWithAskNeverAgain
(
List
<
String
>
permissions
)
{
DeviceUtils
.
startSetting
(
IActivity
);
mRootView
.
showMessage
(
LanguageUtils
.
get_language_system
(
IActivity
,
"please.open.camera.permissions"
,
"請前往設置開放照相機權限"
));
}
},
new
RxPermissions
(
IActivity
),
mErrorHandler
);
}
public
void
changeNumber
(
int
number
)
{
if
(!
changeNumberCondition
(
number
))
{
return
;
}
OrderDetail
orderFood
=
mOrderMealList
.
get
(
mSelectMealAdapter
.
getSelect_full_start_position
());
OrderDetail
orderMainFood
=
mOrderMealList
.
get
(
mSelectMealAdapter
.
getMainStartPos
());
LoganManager
.
w_tableMode
(
TAG
,
LoganManager
.
EVENT_MODIFY
,
orderFood
.
getProductName
()
+
" 數量="
+
number
);
mShoppingCart
.
changeNumber
(
number
,
orderFood
,
orderMainFood
,
mSelectMealAdapter
.
getSelect_full_start_position
(),
mSelectMealAdapter
.
getSelect_full_end_position
(),
new
ShoppingCartNumberChange
.
OnNumberChangeListener
()
{
@Override
public
void
achieveMaximum
(
String
name
)
{
String
msg
=
"["
+
name
+
"]"
+
"已售罄"
;
LoganManager
.
w_tableMode
(
TAG
,
msg
);
CommonTipDialog
.
showSurpisedDialog
(
IActivity
,
msg
,
null
,
null
,
null
,
null
,
null
);
}
});
// if (mMealStandPresenter != null) {
// mMealStandPresenter.updateMealSoldoutCtrData();
// mMealStandPresenter.updateOrderFoodNumber();
// }
mSelectMealAdapter
.
notifyDataSetChanged
();
updateBillInfo
();
}
public
boolean
changeNumberCondition
(
int
i
)
{
if
(
mOrderMealList
.
size
()
<=
0
)
{
return
false
;
}
if
(
mSelectMealAdapter
.
getSelect_start_position
()
==
-
1
||
mSelectMealAdapter
.
getSelect_start_position
()
>=
mSelectMealAdapter
.
getInfos
().
size
())
{
return
false
;
}
if
(
mOrderMealList
.
get
(
mSelectMealAdapter
.
getSelect_start_position
()).
isIsfood
()
==
false
)
{
return
false
;
}
//旧食品不可以修改数量
if
(
mDoshokuOrder
!=
null
&&
!
mDoshokuOrder
.
isModifyOrder
()
&&
mOrderMealList
.
get
(
mSelectMealAdapter
.
getSelect_start_position
()).
isNew
()
==
false
&&
i
!=
0
)
{
return
false
;
}
if
(
mSelectMealAdapter
.
getSelect_position
()
==
-
1
)
{
return
false
;
}
if
(
mOrderMealList
.
size
()
<=
0
)
{
return
false
;
}
if
(
mSelectMealAdapter
.
getMainStartPos
()
>
mOrderMealList
.
size
())
{
return
false
;
}
OrderDetail
orderMainFood
=
mOrderMealList
.
get
(
mSelectMealAdapter
.
getMainStartPos
());
if
(
mDoshokuOrder
!=
null
&&
mMealStandPresenter
!=
null
&&
orderMainFood
!=
null
)
{
//積分是否滿足
// if (!mMealStandPresenter.memberPointsCondition(orderMainFood.getPointsRedeem() * i, orderMainFood.getProductName())) {
// return false;
// }
}
return
true
;
}
/**
* 送單
*
* @param isPrint 是否印單
*/
public
void
sendOrder
(
boolean
isPrint
,
Class
<?>
afterToActivity
)
{
if
(!
sendOrderConditionFilter
())
{
return
;
}
if
(
mDoshokuOrder
.
getOrderId
()
<
1
)
{
if
(
getFoodSize
()
==
0
)
{
Class
[]
parameterTypes
=
{
boolean
.
class
,
Class
.
class
};
Object
[]
parameters
=
{
isPrint
,
afterToActivity
};
CommonTipDialog
.
showDoubtDialog
(
IActivity
,
noFoodDeliveryTip
,
BaseOrderPresenter2
.
class
,
this
,
"executeCreateOrder"
,
parameterTypes
,
parameters
);
}
else
{
executeCreateOrder
(
isPrint
,
afterToActivity
);
}
}
else
{
executeAddOrderFood
(
isPrint
,
afterToActivity
);
}
}
private
void
executeCreateOrder
(
boolean
isPrint
,
Class
<?>
afterToActivity
)
{
createOrder
(
isPrint
,
afterToActivity
);
}
private
void
executeAddOrderFood
(
boolean
isPrint
,
Class
<?>
afterToActivity
)
{
addOrderFood
(
isPrint
,
afterToActivity
);
}
/**
* 送單條件過濾
*
* @return
*/
public
boolean
sendOrderConditionFilter
()
{
if
(
mDoshokuOrder
==
null
)
{
return
false
;
}
MemberInfo
memberInfo
=
mDoshokuOrder
.
getMemberInfo
();
if
(
memberInfo
==
null
)
{
for
(
OrderDetail
item
:
getNewOrderFoodLists
())
{
if
(
item
.
getPointsAdd
()
!=
0
||
item
.
getPointsRedeem
()
!=
0
)
{
String
msg
=
"有積分食品,請使用會員后結賬!"
;
CommonTipDialog
.
showSurpisedDialog
(
IActivity
,
msg
,
BaseOrderPresenter2
.
class
,
this
,
""
,
null
,
null
);
return
false
;
}
}
}
return
true
;
}
/**
* 更新食品折扣
*/
protected
void
updateFoodDiscount
()
{
boolean
updateData
=
false
;
double
totalMoney
=
0
;
List
<
OrderDetail
>
orderDetailList
=
getOrderFoodLists
();
int
start_position
=
mSelectMealAdapter
.
getSelect_full_start_position
();
int
end_position
=
mSelectMealAdapter
.
getSelect_full_end_position
();
boolean
hasFoodDiscount
=
OrderDetail
.
hasFoodDiscount
(
orderDetailList
,
start_position
,
end_position
);
if
(
hasFoodDiscount
)
{
for
(
int
i
=
0
;
i
<
orderDetailList
.
size
();
i
++)
{
if
(
start_position
<=
i
&&
i
<=
end_position
)
{
OrderDetail
orderDetailsBean
=
orderDetailList
.
get
(
i
);
if
(
orderDetailsBean
.
getDiscount
()
!=
null
&&
orderDetailsBean
.
getType
()
==
DISCOUNT_TYPE
)
{
updateData
=
true
;
double
discountPrice
=
NomalDiscount
.
calculationDiscount
(
orderDetailsBean
.
getDiscount
(),
totalMoney
);
//更新折扣金額
orderDetailsBean
.
setPrice
(
discountPrice
);
break
;
}
else
{
if
(!
orderDetailsBean
.
canAbleDiscount
())
{
//此食品或细项不支持折扣 直接跳过
continue
;
}
//保存每個食品套餐折扣總額
totalMoney
=
MoneyUtil
.
sum
(
totalMoney
,
orderDetailsBean
.
getPrice
());
//往下找
int
nextIndex
=
i
+
1
;
if
(
orderDetailList
.
size
()
==
nextIndex
||
orderDetailList
.
get
(
nextIndex
).
getParentId
()
==
0
)
{
//已到結尾或者下一個食品是主食品
//找到下一個主食品 重置折扣價格
totalMoney
=
0
;
}
//參與折扣
// orderDetailsBean.setAblediscount(1);
if
(!
orderDetailsBean
.
isNew
())
{
if
(
orderDetailsBean
.
getDiscountStatus
()
==
0
)
{
//此食品新增折扣
orderDetailsBean
.
setDiscountStatus
(
1
);
}
}
}
}
}
}
else
{
for
(
int
i
=
0
;
i
<
orderDetailList
.
size
();
i
++)
{
if
(
start_position
<=
i
&&
i
<=
end_position
)
{
OrderDetail
orderDetailsBean
=
orderDetailList
.
get
(
i
);
// orderDetailsBean.setAblediscount(0);
orderDetailsBean
.
setDiscountStatus
(
0
);
}
}
}
if
(
updateData
)
{
mSelectMealAdapter
.
notifyDataSetChanged
();
}
}
/**
* 創建訂單后保存OrderId
*
* @param orderId
*/
protected
void
setOrderId
(
double
orderId
)
{
mDoshokuOrder
.
setOrderId
((
long
)
orderId
);
}
/**
* 創建訂單后保存OrderNo
*
* @param orderNo
*/
protected
void
setOrderNo
(
String
orderNo
)
{
mDoshokuOrder
.
setOrderNo
(
orderNo
);
}
/**
* 重置選中狀態
*/
public
void
resetSelected
()
{
for
(
int
i
=
0
;
i
<
mOrderMealList
.
size
();
i
++)
{
OrderDetail
datasBean
=
mOrderMealList
.
get
(
i
);
datasBean
.
setSelected
(
0
);
}
if
(
mSelectMealAdapter
!=
null
)
{
mSelectMealAdapter
.
notifyDataSetChanged
();
}
}
/**
* 獲取食品合計
*
* @return
*/
public
double
getFoodTotal
()
{
double
total
=
0.0
;
for
(
OrderDetail
food
:
mOrderMealList
)
{
if
(
food
.
getNumber
()
==
0
)
{
continue
;
}
if
(
food
.
getType
()
==
DISCOUNT_TYPE
)
{
//折扣金额直接减掉
total
=
MoneyUtil
.
sub
(
total
,
Math
.
abs
(
food
.
getPrice
()));
}
else
{
total
=
MoneyUtil
.
sum
(
total
,
food
.
getPrice
());
}
}
if
(
total
<
0
)
{
total
=
0
;
}
return
MoneyUtil
.
get_ItemDecimals_money
(
total
);
}
/**
* 獲取可折扣金額
*
* @return
*/
private
double
getDiscountableAmount
()
{
double
total
=
0.0
;
int
orderSize
=
mOrderMealList
.
size
();
for
(
int
i
=
0
;
i
<
orderSize
;
i
++)
{
OrderDetail
orderMealItem
=
mOrderMealList
.
get
(
i
);
if
(
orderMealItem
.
getNumber
()
==
0
||
orderMealItem
.
getAdditionalDiscount
()
==
0
)
{
//不可折上折
continue
;
}
if
(
orderMealItem
.
getItemType
()
==
1
)
{
if
(
orderMealItem
.
canAbleDiscount
())
{
total
=
MoneyUtil
.
sum
(
total
,
orderMealItem
.
getPrice
());
}
}
else
{
int
parentIndex
=
orderMealItem
.
getParentIndex
()
-
1
;
OrderDetail
parentFood
=
mOrderMealList
.
get
(
parentIndex
);
if
(
orderSize
>
parentIndex
&&
parentFood
.
canAbleDiscount
())
{
if
(
orderMealItem
.
getType
()
==
DISCOUNT_TYPE
)
{
//主食品参与折扣,折扣金额直接减掉
total
=
MoneyUtil
.
sub
(
total
,
Math
.
abs
(
orderMealItem
.
getPrice
()));
}
else
{
//主食品可參與折扣 子食品才能參與折扣
if
(
orderMealItem
.
canAbleDiscount
())
{
total
=
MoneyUtil
.
sum
(
total
,
orderMealItem
.
getPrice
());
}
}
}
}
}
return
total
;
}
/**
* 獲取可服务费食品合計
*
* @return
*/
private
double
getServiceableAmout
()
{
double
total
=
0.0
;
int
orderSize
=
mOrderMealList
.
size
();
for
(
int
i
=
0
;
i
<
orderSize
;
i
++)
{
OrderDetail
orderMealItem
=
mOrderMealList
.
get
(
i
);
if
(
orderMealItem
.
getNumber
()
==
0
||
orderMealItem
.
getFreeServiceCharge
()
==
1
)
{
//免服務費
continue
;
}
if
(
orderMealItem
.
getItemType
()
==
1
)
{
if
(
orderMealItem
.
getScAble
()
==
1
)
{
total
=
MoneyUtil
.
sum
(
total
,
orderMealItem
.
getPrice
());
}
}
else
{
int
parentIndex
=
orderMealItem
.
getParentIndex
()
-
1
;
if
(
orderSize
>
parentIndex
&&
mOrderMealList
.
get
(
parentIndex
).
getScAble
()
==
1
)
{
if
(
orderMealItem
.
getType
()
==
DISCOUNT_TYPE
)
{
//主食品参与服务费,折扣金额直接减掉
total
=
MoneyUtil
.
sub
(
total
,
Math
.
abs
(
orderMealItem
.
getPrice
()));
}
else
{
//主食品可參與服务费 子食品才能參與服务费
if
(
orderMealItem
.
getScAble
()
==
1
)
{
total
=
MoneyUtil
.
sum
(
total
,
orderMealItem
.
getPrice
());
}
}
}
}
}
if
(
total
<
0
)
{
total
=
0
;
}
return
MoneyUtil
.
get_ItemDecimals_money
(
total
);
}
/**
* 獲取總金額
*
* @return
*/
public
double
getTotalAmountFilterByType
(
int
...
filterTypes
)
{
double
foodTotal
=
getFoodTotal
();
for
(
BillItem
item
:
mBillItemList
)
{
if
(!
filterType
(
item
.
getType
(),
filterTypes
))
{
if
(
item
instanceof
ServiceChargeItem
&&
mBillItemAdapter
.
getFreeServiceStauts
())
{
//TODO 免服務費
}
else
{
foodTotal
=
MoneyUtil
.
sum
(
foodTotal
,
item
.
getMoney
());
if
(
0
>
foodTotal
)
{
//折扣金額不能超出總額
foodTotal
=
0
;
}
}
}
}
if
(
foodTotal
<
0
)
{
foodTotal
=
0
;
}
return
MoneyUtil
.
get_ItemDecimals_money
(
foodTotal
);
}
private
boolean
filterType
(
int
curType
,
int
...
filterTypes
)
{
for
(
int
type
:
filterTypes
)
{
if
(
curType
==
type
)
{
return
true
;
}
}
return
false
;
}
/**
* 獲取總金額:已減去折扣,服務費
*
* @return
*/
public
double
getTotalAmount
()
{
double
foodTotal
=
getFoodTotal
();
for
(
BillItem
item
:
mBillItemList
)
{
if
(
item
instanceof
ServiceChargeItem
&&
mBillItemAdapter
.
getFreeServiceStauts
())
{
//TODO 免服務費
}
else
{
foodTotal
=
MoneyUtil
.
sum
(
foodTotal
,
item
.
getMoney
());
if
(
0
>
foodTotal
)
{
//折扣金額不能超出總額
foodTotal
=
0
;
}
}
}
if
(
foodTotal
<
0
)
{
foodTotal
=
0
;
}
return
MoneyUtil
.
get_ItemDecimals_money
(
foodTotal
);
}
/**
* 獲取賬單小數
*
* @return
*/
protected
Double
getRounding
()
{
for
(
BillItem
item
:
mBillItemList
)
{
if
(
item
instanceof
RoundingItem
)
{
return
item
.
getMoney
();
}
}
return
null
;
}
/**
* 獲取食品總數量
*
* @return
*/
public
int
getFoodCount
()
{
int
count
=
0
;
for
(
OrderDetail
food
:
mOrderMealList
)
{
if
(
food
.
getType
()
!=
DISCOUNT_TYPE
)
{
//排除掉折扣
count
+=
food
.
getNumber
();
}
}
return
count
;
}
/**
* 獲取食品Item個數
*
* @return
*/
public
int
getFoodSize
()
{
return
getOrderFoodLists
().
size
();
}
/**
* 返回選中已送單食品ID
*
* @return
*/
protected
String
getSelectedOldFoodIds
()
{
StringBuilder
builder
=
new
StringBuilder
();
List
<
OrderDetail
>
orderDetails
=
getOldOrderFoodLists
();
for
(
int
i
=
orderDetails
.
size
()
-
1
;
i
>=
0
;
i
--)
{
OrderDetail
orderDetail1
=
orderDetails
.
get
(
i
);
if
(
orderDetail1
.
getSelected
()
!=
0
&&
orderDetail1
.
getType
()
!=
DISCOUNT_TYPE
)
{
builder
.
append
(
orderDetail1
.
getId
());
builder
.
append
(
","
);
}
}
String
str
=
builder
.
toString
();
if
(
str
.
endsWith
(
","
))
{
str
=
str
.
substring
(
0
,
str
.
length
()
-
1
);
}
return
str
;
}
/**
* 返回選中已送單食品
*
* @return
*/
protected
List
<
OrderDetail
>
getSelectedOldFood
()
{
List
<
OrderDetail
>
selectedOldOrders
=
new
ArrayList
<>();
List
<
OrderDetail
>
oldOrders
=
getOldOrderFoodLists
();
int
start_position
=
mSelectMealAdapter
.
getSelect_full_start_position
();
int
end_position
=
mSelectMealAdapter
.
getSelect_full_end_position
();
for
(
int
i
=
oldOrders
.
size
()
-
1
;
i
>=
0
;
i
--)
{
if
(
start_position
<=
i
&&
i
<=
end_position
)
{
OrderDetail
orderDetail1
=
oldOrders
.
get
(
i
);
if
(
orderDetail1
.
getType
()
!=
DISCOUNT_TYPE
)
{
selectedOldOrders
.
add
(
orderDetail1
);
}
}
}
return
selectedOldOrders
;
}
/**
* 返回選中已送單食品、折扣
*
* @return
*/
protected
List
<
OrderDetail
>
getSelectedOldFoodAndDiscount
()
{
List
<
OrderDetail
>
selectedOldOrders
=
new
ArrayList
<>();
List
<
OrderDetail
>
oldOrders
=
getOldOrderFoodLists
();
int
start_position
=
mSelectMealAdapter
.
getSelect_full_start_position
();
int
end_position
=
mSelectMealAdapter
.
getSelect_full_end_position
();
for
(
int
i
=
oldOrders
.
size
()
-
1
;
i
>=
0
;
i
--)
{
if
(
start_position
<=
i
&&
i
<=
end_position
)
{
OrderDetail
orderDetail1
=
oldOrders
.
get
(
i
);
selectedOldOrders
.
add
(
orderDetail1
);
}
}
return
selectedOldOrders
;
}
protected
CreateOrderRequest
getCreateOrderRequest
(
List
<
OrderDetail
>
foodList
)
{
List
<
OrderDetail
>
newFoodList
=
OrderDetail
.
transNewOrderDetails
(
foodList
);
if
(
RestaurantExpandInfoUtils
.
getValue
(
ExpandConstant
.
MergeSendFood
,
true
))
{
//合并未送单主食品
mergeMainFoodNumber
(
newFoodList
);
}
setChildScAbleByMainAble
(
newFoodList
);
setChildDiscountByMainAblediscount
(
newFoodList
);
TableBean
.
DataBean
tableBean
=
mDoshokuOrder
.
getOpenTableInfo
();
int
restaurantId
=
RestaurantInfoManager
.
newInstance
().
getRestaurantId
();
CreateOrderRequest
request
=
new
CreateOrderRequest
();
request
.
setTableNumber
(
tableBean
.
getTableNumber
());
request
.
setOrderDetails
(
orderDetailBeanToFoodRequest
(
newFoodList
));
request
.
setPerson
(
tableBean
.
getPerson
());
request
.
setTableId
(
tableBean
.
getId
());
request
.
setTableName
(
tableBean
.
getTableName
());
request
.
setScanId
(
tableBean
.
getScanId
());
request
.
setRounding
(
getRounding
());
request
.
setRestaurantId
(
restaurantId
);
List
<
OrderDiscountRequest
>
discountDetails
=
getOrderDiscountDetails
();
request
.
setDiscountDetails
(
discountDetails
);
return
request
;
}
protected
AddOrderRequest
getAddOrderRequest
(
List
<
OrderDetail
>
foodList
)
{
List
<
OrderDetail
>
newFoodList
=
OrderDetail
.
transNewOrderDetails
(
foodList
);
if
(
RestaurantExpandInfoUtils
.
getValue
(
ExpandConstant
.
MergeSendFood
,
true
))
{
//合并未送单主食品
mergeMainFoodNumber
(
newFoodList
);
}
setChildScAbleByMainAble
(
newFoodList
);
setChildDiscountByMainAblediscount
(
newFoodList
);
AddOrderRequest
request
=
new
AddOrderRequest
();
request
.
setOrderId
(
mDoshokuOrder
.
getOrderId
());
request
.
setTableId
(
mDoshokuOrder
.
getOpenTableInfo
().
getId
());
if
(
mDoshokuOrder
.
getMemberInfo
()
!=
null
)
{
request
.
setMemberId
(
mDoshokuOrder
.
getMemberInfo
().
getId
());
}
request
.
setTableNumber
(
mDoshokuOrder
.
getOpenTableInfo
().
getTableNumber
());
request
.
setMaps
(
orderDetailBeanToAddFoodRequest
(
newFoodList
));
if
(
mDoshokuOrder
.
getDeleteMealOrders
()
!=
null
)
{
request
.
setDeleteOrders
(
mDoshokuOrder
.
getDeleteMealOrders
());
}
if
(
mDoshokuOrder
.
getDeleteDiscountIds
()
!=
null
)
{
request
.
setDeleteDiscountIds
(
mDoshokuOrder
.
getDeleteDiscountIds
());
}
Double
rounding
=
getRounding
();
request
.
setRounding
(
rounding
!=
null
?
rounding
:
0
);
List
<
OrderDiscountRequest
>
discountDetails
=
getOrderDiscountDetails
();
request
.
setDiscountDetails
(
discountDetails
);
return
request
;
}
/**
* 獲取賬單折扣
*
* @return
*/
private
List
<
OrderDiscountRequest
>
getOrderDiscountDetails
()
{
List
<
OrderDiscountRequest
>
discountRequests
=
new
ArrayList
<>();
for
(
BillItem
item
:
mBillItemList
)
{
if
(
item
instanceof
DiscountItem
)
{
if
(
item
.
getType
()
==
BillItem
.
NOMAL_DISCOUNT_TYPE
)
{
discountRequests
.
add
(
OrderDiscountRequest
.
orderDiscountTransRequest
((
DiscountItem
)
item
));
continue
;
}
if
(
item
.
getType
()
==
BillItem
.
MEMBER_DISCOUNT_TYPE
)
{
discountRequests
.
add
(
OrderDiscountRequest
.
memberDiscountTransRequest
((
DiscountItem
)
item
));
continue
;
}
if
(
item
.
getType
()
==
BillItem
.
COUPON_DISCOUNT_TYPE
)
{
discountRequests
.
add
(
OrderDiscountRequest
.
couponDiscountTransRequest
((
DiscountItem
)
item
));
continue
;
}
}
}
return
discountRequests
;
}
protected
Map
<
String
,
List
<
OrderResponse
.
OrderDetailsBean
>>
orderDetailBeanToFoodRequest
(
List
<
OrderDetail
>
foodList
)
{
Map
<
String
,
List
<
OrderResponse
.
OrderDetailsBean
>>
orderDetails
=
new
HashMap
<>();
if
(
foodList
!=
null
)
{
//套餐明細ID
long
mapIndex
=
0
;
//打印用到,清理掉之前保存的食品
mDoshokuOrder
.
getNewFoodList
().
clear
();
for
(
int
i
=
0
;
i
<
foodList
.
size
();
i
++)
{
OrderDetail
item
=
foodList
.
get
(
i
);
if
(
item
.
getItemType
()
!=
1
)
{
//不是主食品直接跳過
continue
;
}
mapIndex
+=
1
;
List
<
OrderResponse
.
OrderDetailsBean
>
orderItems
=
getOrderMapItems
(
1
,
i
,
item
,
foodList
);
if
(
orderItems
.
size
()
>
0
)
{
orderDetails
.
put
(
String
.
valueOf
(
mapIndex
),
orderItems
);
}
}
}
return
orderDetails
;
}
protected
Map
<
String
,
List
<
OrderResponse
.
OrderDetailsBean
>>
orderDetailBeanToAddFoodRequest
(
List
<
OrderDetail
>
foodList
)
{
/**
* 1#主食品(完全新點)
* 2#主食品+子食品+細項(主食品基礎上新加)
*/
long
type1
=
1
;
long
type2
=
2
;
//打印用到,清理掉之前保存的食品
mDoshokuOrder
.
getNewFoodList
().
clear
();
//可重複的map
Map
<
String
,
List
<
OrderResponse
.
OrderDetailsBean
>>
orderDetails
=
new
HashMap
<>();
if
(
foodList
!=
null
)
{
//套餐明細ID
String
mapIndex
;
int
indexCount
=
0
;
for
(
int
i
=
0
;
i
<
foodList
.
size
();
i
++)
{
OrderDetail
item
=
foodList
.
get
(
i
);
if
(
item
.
getItemType
()
!=
1
)
{
//不是主食品直接跳過
continue
;
}
indexCount
+=
1
;
if
(
item
.
isNew
())
{
//完全新點的一個食品
mapIndex
=
indexCount
+
"-"
+
type1
;
}
else
{
//基礎上新加
mapIndex
=
indexCount
+
"-"
+
type2
;
}
List
<
OrderResponse
.
OrderDetailsBean
>
orderItems
=
getOrderMapItems
(
2
,
i
,
item
,
foodList
);
if
(
orderItems
.
size
()
>
0
)
{
orderDetails
.
put
(
mapIndex
,
orderItems
);
}
}
}
return
orderDetails
;
}
private
List
<
OrderResponse
.
OrderDetailsBean
>
getOrderMapItems
(
int
orderAction
,
int
startIndex
,
OrderDetail
parentItem
,
List
<
OrderDetail
>
foodList
)
{
List
<
OrderResponse
.
OrderDetailsBean
>
orderItems
=
new
ArrayList
<>();
for
(
int
j
=
startIndex
;
j
<
foodList
.
size
();
j
++)
{
OrderDetail
item
=
foodList
.
get
(
j
);
boolean
myIndex
=
item
.
getMyIndex
()
!=
parentItem
.
getMyIndex
();
boolean
parentIndex
=
item
.
getParentIndex
()
!=
parentItem
.
getMyIndex
();
if
(
myIndex
&&
parentIndex
&&
item
.
getType
()
!=
OrderDetail
.
MODIFIER_TYPE
)
{
//已經循環過當前套餐 退出循環
break
;
}
if
(
item
.
getType
()
==
DISCOUNT_TYPE
)
{
//折扣直接跳過
continue
;
}
OrderResponse
.
OrderDetailsBean
orderItem
=
new
OrderResponse
.
OrderDetailsBean
();
if
(
orderAction
==
2
)
{
orderItem
.
setOrderId
(
item
.
getOrderId
());
if
(
item
.
getId
()
!=
0
)
{
orderItem
.
setId
(
item
.
getId
());
}
}
orderItem
.
setMemberId
(
UserContext
.
newInstance
().
getMemberId
());
orderItem
.
setProductName
(
item
.
getProductName
());
orderItem
.
setProductId
(
item
.
getProductId
());
orderItem
.
setParentId
(
item
.
getParentId
());
orderItem
.
setTopId
(
item
.
getTopId
());
orderItem
.
setNumber
(
item
.
getNumber
());
orderItem
.
setPrice
(
item
.
getUnit_price
());
orderItem
.
setCost
(
item
.
getCost
());
orderItem
.
setType
(
item
.
getType
());
orderItem
.
setPrintSetIng
(
item
.
getPrintseting
());
orderItem
.
setAblediscount
(
item
.
getAblediscount
());
orderItem
.
setScAble
(
item
.
getScAble
());
if
(
item
.
canAbleDiscount
())
{
//可參與折扣
List
<
OrderResponse
.
OrderDetailsBean
.
RestaurantDiscountVO
>
discountList
=
getRestaurantDiscountList
(
foodList
,
parentItem
);
if
(
discountList
.
size
()
>
0
)
{
orderItem
.
setDiscountList
(
discountList
);
}
}
// orderItem.setLunchboxPrice(0);
orderItem
.
setPointsAdd
(
item
.
getPointsAdd
());
orderItem
.
setPointsRedeem
(
item
.
getPointsRedeem
());
if
(
orderAction
==
2
)
{
if
(
item
.
isNew
()
||
item
.
getDiscountStatus
()
==
1
)
{
//這裡只添加新食品或有新折扣食品
orderItems
.
add
(
orderItem
);
//保存新食品,打印用到
mDoshokuOrder
.
getNewFoodList
().
add
(
item
);
}
}
else
{
if
(
item
.
isNew
())
{
//這裡只添加新食品
orderItems
.
add
(
orderItem
);
//保存新食品,打印用到
mDoshokuOrder
.
getNewFoodList
().
add
(
item
);
}
}
}
return
orderItems
;
}
/**
* 送单前根据主食品Ablediscount更新子食品Ablediscount(前端处理后台直接存即可)
*
* @param newFoodList
*/
private
void
setChildDiscountByMainAblediscount
(
List
<
OrderDetail
>
newFoodList
)
{
int
orderSize
=
newFoodList
.
size
();
for
(
int
i
=
0
;
i
<
orderSize
;
i
++)
{
OrderDetail
food
=
newFoodList
.
get
(
i
);
if
(
food
.
getItemType
()
!=
1
)
{
int
parentIndex
=
food
.
getParentIndex
()
-
1
;
if
(
orderSize
>
parentIndex
&&
!
newFoodList
.
get
(
parentIndex
).
canAbleDiscount
())
{
//主食品不可參與折扣 子食品也不能參與折扣
food
.
setAblediscount
(
0
);
}
}
}
}
/**
* 送单前根据主食品ScAble更新子食品ScAble(前端处理后台直接存即可)
*
* @param newFoodList
*/
private
void
setChildScAbleByMainAble
(
List
<
OrderDetail
>
newFoodList
)
{
int
orderSize
=
newFoodList
.
size
();
for
(
int
i
=
0
;
i
<
orderSize
;
i
++)
{
OrderDetail
food
=
newFoodList
.
get
(
i
);
if
(
food
.
getItemType
()
!=
1
)
{
int
parentIndex
=
food
.
getParentIndex
()
-
1
;
if
(
orderSize
>
parentIndex
&&
!
newFoodList
.
get
(
parentIndex
).
canAbleDiscount
())
{
//主食品不可參與折扣 子食品也不能參與折扣
food
.
setScAble
((
byte
)
0
);
}
}
}
}
/**
* 合并新下单主食品数量
*
* @param foodList
*/
protected
void
mergeMainFoodNumber
(
List
<
OrderDetail
>
foodList
)
{
List
<
Integer
>
removeIndexs
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
foodList
.
size
();
i
++)
{
OrderDetail
orderFood
=
foodList
.
get
(
i
);
if
(!
orderFood
.
isNew
()
||
orderFood
.
getItemType
()
!=
1
)
{
continue
;
}
if
(
hasChildFood
(
foodList
,
orderFood
))
{
continue
;
}
//合并总数量
int
mergeNum
=
orderFood
.
getNumber
();
for
(
int
j
=
i
;
j
<
foodList
.
size
();
j
++)
{
if
(!
orderFood
.
isNew
()
||
i
==
j
)
{
continue
;
}
OrderDetail
mergeFood
=
foodList
.
get
(
j
);
boolean
canMerge
=
mergeFood
.
getItemType
()
==
1
&&
mergeFood
.
getProductId
()
==
orderFood
.
getProductId
()
&&
!
hasChildFood
(
foodList
,
mergeFood
);
if
(
canMerge
)
{
//合并数量
mergeNum
+=
mergeFood
.
getNumber
();
if
(!
removeIndexs
.
contains
(
mergeFood
.
getMyIndex
()))
{
//添加所需移除已合并的食品
removeIndexs
.
add
(
mergeFood
.
getMyIndex
());
}
}
}
orderFood
.
setNumber
(
mergeNum
);
}
for
(
int
i
=
removeIndexs
.
size
()
-
1
;
i
>=
0
;
i
--)
{
for
(
int
j
=
foodList
.
size
()
-
1
;
j
>=
0
;
j
--)
{
if
(
removeIndexs
.
get
(
i
)
==
foodList
.
get
(
j
).
getMyIndex
())
{
foodList
.
remove
(
j
);
break
;
}
}
}
}
/**
* 是否包含子项
*
* @param orderDetailList
* @param orderDetail
* @return
*/
private
boolean
hasChildFood
(
List
<
OrderDetail
>
orderDetailList
,
OrderDetail
orderDetail
)
{
List
<
OrderDetail
>
orderList
=
getChildFoods
(
orderDetailList
,
orderDetail
);
if
(
orderList
.
size
()
==
0
)
{
return
false
;
}
else
{
return
true
;
}
}
/**
* 獲取食品下所有子項
*
* @param orderDetailList
* @param orderDetail
* @return
*/
protected
List
<
OrderDetail
>
getChildFoods
(
List
<
OrderDetail
>
orderDetailList
,
OrderDetail
orderDetail
)
{
List
<
OrderDetail
>
orderList
=
new
ArrayList
<>();
if
(
orderDetail
.
getItemType
()
==
3
)
{
return
orderList
;
}
for
(
int
i
=
0
;
i
<
orderDetailList
.
size
();
i
++)
{
if
(
orderDetailList
.
get
(
i
).
getParentIndex
()
==
orderDetail
.
getMyIndex
())
{
orderList
.
add
(
orderDetailList
.
get
(
i
));
}
}
return
orderList
;
}
/**
* 根據主食品ID獲取折扣列表
*
* @param orderItems
* @param parentItem
* @return
*/
private
List
<
OrderResponse
.
OrderDetailsBean
.
RestaurantDiscountVO
>
getRestaurantDiscountList
(
List
<
OrderDetail
>
orderItems
,
OrderDetail
parentItem
)
{
long
mainParentId
=
parentItem
.
isNew
()
?
parentItem
.
getProductId
()
:
parentItem
.
getId
();
List
<
OrderResponse
.
OrderDetailsBean
.
RestaurantDiscountVO
>
discountList
=
new
ArrayList
<>();
for
(
OrderDetail
item
:
orderItems
)
{
if
(
item
.
getDiscount
()
!=
null
&&
item
.
getParentId
()
==
mainParentId
)
{
Discount
discount
=
item
.
getDiscount
();
OrderResponse
.
OrderDetailsBean
.
RestaurantDiscountVO
discountVO
=
new
OrderResponse
.
OrderDetailsBean
.
RestaurantDiscountVO
();
discountVO
.
setId
(
discount
.
getDiscountRecordId
());
discountVO
.
setDiscountId
(
discount
.
getId
());
discountVO
.
setType
(
discount
.
getType
());
discountVO
.
setRemark
(
discount
.
getRemark
());
discountVO
.
setDiscountValue
(
discount
.
getDiscountValue
());
discountVO
.
setDiscountAmount
(
item
.
getPrice
());
discountList
.
add
(
discountVO
);
if
(
item
.
isNew
())
{
//设置当前食品下包含为送单折扣状态
parentItem
.
setDiscountStatus
(
1
);
}
}
}
return
discountList
;
}
/**
* 獲取優惠券折扣ID
*
* @return
*/
protected
Long
getCouponDiscountId
()
{
CouponDiscount
couponDiscount
=
(
CouponDiscount
)
mShoppingCart
.
getDiscountByType
(
BillItem
.
COUPON_DISCOUNT_TYPE
);
if
(
couponDiscount
!=
null
)
{
return
couponDiscount
.
getCouponDiscountId
();
}
return
null
;
}
/**
* 返回未送單整單折扣
*
* @return
*/
protected
BillItem
getNewDiscount
()
{
for
(
BillItem
item
:
mBillItemList
)
{
if
(
item
.
getStatus
()
==
BillItem
.
BILL_ITEM_NO_ORDER_STATUS
&&
(
item
.
getType
()
==
BillItem
.
NOMAL_DISCOUNT_TYPE
||
item
.
getType
()
==
BillItem
.
MEMBER_DISCOUNT_TYPE
||
item
.
getType
()
==
BillItem
.
COUPON_DISCOUNT_TYPE
))
{
return
item
;
}
}
return
null
;
}
/**
* 返回未送單食品列表
*
* @return
*/
protected
List
<
OrderDetail
>
getNewOrderFoodLists
()
{
List
<
OrderDetail
>
orderDetails
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
getOrderFoodLists
().
size
();
i
++)
{
OrderDetail
orderDetail
=
getOrderFoodLists
().
get
(
i
);
if
(
orderDetail
.
isNew
())
{
orderDetails
.
add
(
orderDetail
);
}
}
return
orderDetails
;
}
/**
* 返回已送單食品列表
*
* @return
*/
protected
List
<
OrderDetail
>
getOldOrderFoodLists
()
{
List
<
OrderDetail
>
orderDetails
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
getOrderFoodLists
().
size
();
i
++)
{
OrderDetail
orderDetail
=
getOrderFoodLists
().
get
(
i
);
if
(!
orderDetail
.
isNew
())
{
orderDetails
.
add
(
orderDetail
);
}
}
return
orderDetails
;
}
public
boolean
hasNesOrderFoods
()
{
if
(
getNewOrderFoodLists
().
size
()
>
0
)
{
return
true
;
}
return
false
;
}
protected
boolean
hasOldOrderFoods
()
{
if
(
getOldOrderFoodLists
().
size
()
>
0
)
{
return
true
;
}
return
false
;
}
public
List
<
OrderDetail
>
getOrderFoodLists
()
{
return
mOrderMealList
;
}
/**
* 修改訂單
*
* @param //orderId 訂單號
* @param //person 人數
*/
public
void
updateOrderPerson
(
String
peopleNumber
,
TextView
textView
)
{
RequestBody
requestBody
=
new
FormBody
.
Builder
()
.
add
(
"orderId"
,
String
.
valueOf
(
mDoshokuOrder
.
getOrderId
()))
.
add
(
"person"
,
String
.
valueOf
(
peopleNumber
))
.
build
();
mModel
.
updateOrder
(
requestBody
)
.
subscribeOn
(
Schedulers
.
io
())
.
doOnSubscribe
(
disposable
->
mRootView
.
showLoading
(
null
))
.
subscribeOn
(
AndroidSchedulers
.
mainThread
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
doAfterTerminate
(()
->
mRootView
.
hideLoading
())
.
compose
(
RxLifecycleUtils
.
bindToLifecycle
(
mRootView
))
.
subscribe
(
new
ErrorHandleSubscriber
<
BaseResult
>(
mErrorHandler
)
{
@Override
public
void
onNext
(
BaseResult
baseResult
)
{
if
(
baseResult
.
isSuccess
())
{
if
(
mOrderContentActivity
!=
null
)
{
textView
.
setText
(
peopleNumber
);
}
else
{
textView
.
setText
(
"人數:"
+
peopleNumber
);
}
mDoshokuOrder
.
getOpenTableInfo
().
setPerson
(
Integer
.
parseInt
(
peopleNumber
));
}
}
});
}
public
ShoppingCart
getShoppingCart
()
{
return
mShoppingCart
;
}
public
SelectMealAdapter2
getSelectMealAdapter
(){
return
mSelectMealAdapter
;
}
public
interface
UpdateBillInfoEndListener
{
void
onUpdateEnd
();
}
}
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/mealstand/MealStandPresenter2.java
0 → 100644
View file @
3f6c41b6
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
mvp
.
presenter
.
mealstand
;
import
android.app.Application
;
import
android.text.TextUtils
;
import
android.util.SparseArray
;
import
android.view.View
;
import
com.billy.cc.core.component.CC
;
import
com.gingersoft.gsa.cloud.common.bean.BaseResult
;
import
com.gingersoft.gsa.cloud.common.constans.ExpandConstant
;
import
com.gingersoft.gsa.cloud.common.constans.FoodSummaryConstans
;
import
com.gingersoft.gsa.cloud.common.constans.MealConstant
;
import
com.gingersoft.gsa.cloud.common.constans.PrintConstans
;
import
com.gingersoft.gsa.cloud.common.core.member.MemberInfo
;
import
com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager
;
import
com.gingersoft.gsa.cloud.common.core.restaurant.utils.RestaurantExpandInfoUtils
;
import
com.gingersoft.gsa.cloud.common.logan.LoganManager
;
import
com.gingersoft.gsa.cloud.common.utils.JsonUtils
;
import
com.gingersoft.gsa.cloud.common.utils.LanguageUtils
;
import
com.gingersoft.gsa.cloud.common.utils.MoneyUtil
;
import
com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils
;
import
com.gingersoft.gsa.cloud.component.ComponentName
;
import
com.gingersoft.gsa.cloud.database.bean.ComboItem
;
import
com.gingersoft.gsa.cloud.database.bean.Discount
;
import
com.gingersoft.gsa.cloud.database.bean.Food
;
import
com.gingersoft.gsa.cloud.database.bean.FoodCombo
;
import
com.gingersoft.gsa.cloud.database.bean.Modifier
;
import
com.gingersoft.gsa.cloud.database.utils.FoodDaoUtils
;
import
com.gingersoft.gsa.cloud.database.utils.ModifierDaoUtils
;
import
com.gingersoft.gsa.cloud.order.bean.request.DeleteOrderRequest
;
import
com.gingersoft.gsa.cloud.order.commodity.OrderDetail
;
import
com.gingersoft.gsa.cloud.order.order.BaseOrder
;
import
com.gingersoft.gsa.cloud.order.order.DoshokuOrder
;
import
com.gingersoft.gsa.cloud.print.bean.PrintContent
;
import
com.gingersoft.gsa.cloud.print.bean.adapter.PrintContentAdapter
;
import
com.gingersoft.gsa.cloud.table.R
;
import
com.gingersoft.gsa.cloud.table.mvp.action.discount.MealDiscountAction
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.MealStandContract
;
import
com.gingersoft.gsa.cloud.table.mvp.model.bean.FoodReason
;
import
com.gingersoft.gsa.cloud.table.mvp.model.bean.SoldoutCtrFood
;
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.presenter.BaseOrderPresenter
;
import
com.gingersoft.gsa.cloud.table.mvp.presenter.BaseOrderPresenter2
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.activity.MealStandActivity
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.activity.MealStandActivity2
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.ComboAdapter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.DiscountAdapter
;
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.ModifierAdapter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.SelectMealAdapter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.widget.CancelFoodDialog
;
import
com.gingersoft.gsa.cloud.ui.widget.dialog.BaseRetryDialog
;
import
com.gingersoft.gsa.cloud.ui.widget.dialog.CommonTipDialog
;
import
com.google.gson.internal.LinkedTreeMap
;
import
com.jess.arms.base.DefaultAdapter
;
import
com.jess.arms.di.scope.ActivityScope
;
import
com.jess.arms.http.imageloader.ImageLoader
;
import
com.jess.arms.integration.AppManager
;
import
com.jess.arms.utils.RxLifecycleUtils
;
import
com.qmuiteam.qmui.widget.dialog.QMUIDialog
;
import
com.qmuiteam.qmui.widget.dialog.QMUIDialogAction
;
import
org.simple.eventbus.Subscriber
;
import
java.util.ArrayList
;
import
java.util.List
;
import
javax.inject.Inject
;
import
javax.inject.Named
;
import
io.reactivex.Observable
;
import
io.reactivex.ObservableEmitter
;
import
io.reactivex.ObservableOnSubscribe
;
import
io.reactivex.Observer
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.reactivex.annotations.NonNull
;
import
io.reactivex.disposables.Disposable
;
import
io.reactivex.schedulers.Schedulers
;
import
me.jessyan.rxerrorhandler.core.RxErrorHandler
;
import
me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber
;
import
okhttp3.FormBody
;
import
okhttp3.MediaType
;
import
okhttp3.RequestBody
;
import
static
com
.
gingersoft
.
gsa
.
cloud
.
table
.
mvp
.
ui
.
activity
.
SoldoutCtrlActivity
.
FOOD_GROUP_TYPE
;
import
static
com
.
gingersoft
.
gsa
.
cloud
.
table
.
mvp
.
ui
.
activity
.
SoldoutCtrlActivity
.
FOOD_TYPE
;
import
static
com
.
gingersoft
.
gsa
.
cloud
.
table
.
mvp
.
ui
.
activity
.
SoldoutCtrlActivity
.
MODIFIER_TYPE
;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 12/27/2019 19:17
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
@ActivityScope
public
class
MealStandPresenter2
extends
BaseOrderPresenter2
<
MealStandContract
.
Model
,
MealStandContract
.
View
>
{
@Inject
RxErrorHandler
mErrorHandler
;
@Inject
Application
mApplication
;
@Inject
ImageLoader
mImageLoader
;
@Inject
AppManager
mAppManager
;
@Inject
public
MealStandPresenter2
(
MealStandContract
.
Model
model
,
MealStandContract
.
View
rootView
)
{
super
(
model
,
rootView
);
}
@Override
public
void
createOrder
(
boolean
isPrint
,
Class
<?>
afterToActivity
)
{
}
@Override
public
void
addOrderFood
(
boolean
isPrint
,
Class
<?>
afterToActivity
)
{
}
@Override
public
void
onDestroy
()
{
super
.
onDestroy
();
this
.
mErrorHandler
=
null
;
this
.
mAppManager
=
null
;
this
.
mImageLoader
=
null
;
this
.
mApplication
=
null
;
}
}
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/mealstand/SetMealPresenter.java
View file @
3f6c41b6
...
@@ -3,12 +3,17 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter.mealstand;
...
@@ -3,12 +3,17 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter.mealstand;
import
android.app.Application
;
import
android.app.Application
;
import
android.text.TextUtils
;
import
android.text.TextUtils
;
import
android.util.SparseArray
;
import
android.util.SparseArray
;
import
androidx.annotation.NonNull
;
import
androidx.recyclerview.widget.RecyclerView
;
import
com.gingersoft.gsa.cloud.common.constans.MealConstant
;
import
com.gingersoft.gsa.cloud.common.constans.MealConstant
;
import
com.gingersoft.gsa.cloud.common.core.member.MemberInfo
;
import
com.gingersoft.gsa.cloud.common.core.member.MemberInfo
;
import
com.gingersoft.gsa.cloud.common.logan.LoganManager
;
import
com.gingersoft.gsa.cloud.common.logan.LoganManager
;
import
com.gingersoft.gsa.cloud.common.rxjava.ErrorHandleSingleSubscriber
;
import
com.gingersoft.gsa.cloud.common.rxjava.ErrorHandleSingleSubscriber
;
import
com.gingersoft.gsa.cloud.common.rxjava.MyRxSchedulerUtils
;
import
com.gingersoft.gsa.cloud.common.rxjava.MyRxSchedulerUtils
;
import
com.gingersoft.gsa.cloud.common.utils.LanguageUtils
;
import
com.gingersoft.gsa.cloud.common.utils.LanguageUtils
;
import
com.gingersoft.gsa.cloud.common.utils.MoneyUtil
;
import
com.gingersoft.gsa.cloud.database.bean.ComboItem
;
import
com.gingersoft.gsa.cloud.database.bean.ComboItem
;
import
com.gingersoft.gsa.cloud.database.bean.Discount
;
import
com.gingersoft.gsa.cloud.database.bean.Discount
;
import
com.gingersoft.gsa.cloud.database.bean.Food
;
import
com.gingersoft.gsa.cloud.database.bean.Food
;
...
@@ -19,6 +24,7 @@ import com.gingersoft.gsa.cloud.order.commodity.OrderDetail;
...
@@ -19,6 +24,7 @@ import com.gingersoft.gsa.cloud.order.commodity.OrderDetail;
import
com.gingersoft.gsa.cloud.order.order.BaseOrder
;
import
com.gingersoft.gsa.cloud.order.order.BaseOrder
;
import
com.gingersoft.gsa.cloud.table.mvp.model.bean.SoldoutCtrFood
;
import
com.gingersoft.gsa.cloud.table.mvp.model.bean.SoldoutCtrFood
;
import
com.gingersoft.gsa.cloud.table.mvp.presenter.BaseOrderPresenter
;
import
com.gingersoft.gsa.cloud.table.mvp.presenter.BaseOrderPresenter
;
import
com.gingersoft.gsa.cloud.table.mvp.presenter.BaseOrderPresenter2
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.ComboAdapter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.ComboAdapter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.FoodAdapter
;
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
;
...
@@ -31,6 +37,7 @@ import com.jess.arms.di.scope.FragmentScope;
...
@@ -31,6 +37,7 @@ import com.jess.arms.di.scope.FragmentScope;
import
com.jess.arms.mvp.BasePresenter
;
import
com.jess.arms.mvp.BasePresenter
;
import
com.jess.arms.http.imageloader.ImageLoader
;
import
com.jess.arms.http.imageloader.ImageLoader
;
import
dagger.Lazy
;
import
io.reactivex.Observable
;
import
io.reactivex.Observable
;
import
io.reactivex.ObservableEmitter
;
import
io.reactivex.ObservableEmitter
;
import
io.reactivex.ObservableOnSubscribe
;
import
io.reactivex.ObservableOnSubscribe
;
...
@@ -71,7 +78,7 @@ import static com.gingersoft.gsa.cloud.table.mvp.ui.activity.SoldoutCtrlActivity
...
@@ -71,7 +78,7 @@ import static com.gingersoft.gsa.cloud.table.mvp.ui.activity.SoldoutCtrlActivity
* ================================================
* ================================================
*/
*/
@FragmentScope
@FragmentScope
public
class
SetMealPresenter
extends
BaseOrderPresenter
<
SetMealContract
.
Model
,
SetMealContract
.
View
>
{
public
class
SetMealPresenter
extends
BaseOrderPresenter
2
<
SetMealContract
.
Model
,
SetMealContract
.
View
>
{
@Inject
@Inject
RxErrorHandler
mErrorHandler
;
RxErrorHandler
mErrorHandler
;
@Inject
@Inject
...
@@ -92,24 +99,16 @@ public class SetMealPresenter extends BaseOrderPresenter<SetMealContract.Model,
...
@@ -92,24 +99,16 @@ public class SetMealPresenter extends BaseOrderPresenter<SetMealContract.Model,
@Inject
@Inject
List
<
Modifier
>
mModifierList
;
//细项数据
List
<
Modifier
>
mModifierList
;
//细项数据
@Inject
FoodGroupAdapter
mFoodGroupAdapter
;
@Inject
FoodAdapter
mFoodAdapter
;
@Inject
ComboAdapter
mComboAdapter
;
@Inject
ModifierAdapter
mModifierAdapter
;
private
OrderDetail
mCurrentOrderDetailBean
;
private
OrderDetail
mCurrentOrderDetailBean
;
//沽清食品數據
//沽清食品數據
private
List
<
SoldoutCtrFood
>
mSoldoutCtrList
;
private
List
<
SoldoutCtrFood
>
mSoldoutCtrList
=
new
ArrayList
<>()
;
private
boolean
RvMealClicked
;
private
boolean
RvMealClicked
;
@Inject
@Inject
public
SetMealPresenter
(
SetMealContract
.
Model
model
,
SetMealContract
.
View
rootView
)
{
public
SetMealPresenter
(
SetMealContract
.
Model
model
,
SetMealContract
.
View
rootView
)
{
super
(
model
,
rootView
);
super
(
model
,
rootView
);
initMealData
();
}
}
@Override
@Override
...
@@ -131,6 +130,71 @@ public class SetMealPresenter extends BaseOrderPresenter<SetMealContract.Model,
...
@@ -131,6 +130,71 @@ public class SetMealPresenter extends BaseOrderPresenter<SetMealContract.Model,
this
.
mApplication
=
null
;
this
.
mApplication
=
null
;
}
}
public
void
initMealData
()
{
mModel
.
queryDB_FoodGroupList
(
BaseOrder
.
orderType
)
.
compose
(
MyRxSchedulerUtils
.
_io_main_f
())
.
compose
(
RxLifecycleUtils
.
bindToLifecycle
(
mRootView
))
.
subscribe
(
new
ErrorHandleSingleSubscriber
<
List
<
Food
>>(
mErrorHandler
)
{
@Override
public
void
onSuccess
(
List
<
Food
>
foodGroupList
)
{
if
(
foodGroupList
!=
null
&&
foodGroupList
.
size
()
>
0
)
{
mFoodGroupList
.
addAll
(
foodGroupList
);
setDefalutFoodGroup
(
foodGroupList
);
updateFoodSoldoutCtrData
();
mRootView
.
initFoodGroupAdapter
(
foodGroupList
);
}
}
});
}
public
void
changedFoodByParentId
(
long
parentId
)
{
mModel
.
queryDB_FoodList
(
parentId
,
BaseOrder
.
orderType
)
.
subscribeOn
(
Schedulers
.
io
())
.
subscribeOn
(
AndroidSchedulers
.
mainThread
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
compose
(
RxLifecycleUtils
.
bindToLifecycle
(
mRootView
))
.
subscribe
(
new
ErrorHandleSingleSubscriber
<
List
<
Food
>>(
mErrorHandler
)
{
@Override
public
void
onSuccess
(
@NonNull
List
<
Food
>
foodList
)
{
mRootView
.
resetSelect
(-
1
,
null
);
if
(
foodList
!=
null
)
{
updateFoodData
(
foodList
,
parentId
);
}
mRootView
.
showViewModeVisibility
(
MealConstant
.
food_ViewMode
,
MealConstant
.
food_group_ViewMode
);
}
});
}
private
void
setDefalutFoodGroup
(
List
<
Food
>
foodGroupList
)
{
for
(
Food
food
:
foodGroupList
)
{
if
(
food
.
getInvisible
()
==
0
)
{
//默認選中第一組
food
.
setSelected
(
true
);
changedFoodByParentId
(
food
.
getParentId
());
}
}
}
public
void
initSelectMealAdapter
(
RecyclerView
rvSelectMeal
)
{
if
(
mSelectMealAdapter
!=
null
)
{
rvSelectMeal
.
setAdapter
(
mSelectMealAdapter
);
}
}
public
void
foodGroupItemClick
(
Food
datasBean
)
{
if
(!
foodGroupConditionFilter
(
datasBean
,
false
))
{
return
;
}
RvMealClicked
=
true
;
datasBean
.
setSelected
(
true
);
changedFoodByParentId
(
datasBean
.
getId
());
updateOrderFoodNumber
();
updateFoodSoldoutCtrData
();
}
public
void
modifierItemClick
(
Modifier
datasBean
)
{
public
void
modifierItemClick
(
Modifier
datasBean
)
{
RvMealClicked
=
false
;
RvMealClicked
=
false
;
...
@@ -144,7 +208,7 @@ public class SetMealPresenter extends BaseOrderPresenter<SetMealContract.Model,
...
@@ -144,7 +208,7 @@ public class SetMealPresenter extends BaseOrderPresenter<SetMealContract.Model,
addModifierItem
(
datasBean
);
addModifierItem
(
datasBean
);
//更新賬單數
//更新賬單數
//
updateOrderFoodNumber();
updateOrderFoodNumber
();
//沽清細項沽清數
//沽清細項沽清數
updateModifierSoldoutCtrData
();
updateModifierSoldoutCtrData
();
}
}
...
@@ -170,7 +234,7 @@ public class SetMealPresenter extends BaseOrderPresenter<SetMealContract.Model,
...
@@ -170,7 +234,7 @@ public class SetMealPresenter extends BaseOrderPresenter<SetMealContract.Model,
//更新賬單金額
//更新賬單金額
updateBillInfo
();
updateBillInfo
();
//更新賬單數
//更新賬單數
//
updateOrderFoodNumber();
updateOrderFoodNumber
();
}
}
public
void
foodItemClick
(
Food
datasBean
)
{
public
void
foodItemClick
(
Food
datasBean
)
{
...
@@ -196,6 +260,7 @@ public class SetMealPresenter extends BaseOrderPresenter<SetMealContract.Model,
...
@@ -196,6 +260,7 @@ public class SetMealPresenter extends BaseOrderPresenter<SetMealContract.Model,
}
}
}
}
}
}
private
void
addFoodItemBefore
(
OrderDetail
datasBean
)
{
private
void
addFoodItemBefore
(
OrderDetail
datasBean
)
{
int
addPosition
=
addFoodItem
(
datasBean
);
int
addPosition
=
addFoodItem
(
datasBean
);
//这里主食品作为选中主体
//这里主食品作为选中主体
...
@@ -270,24 +335,6 @@ public class SetMealPresenter extends BaseOrderPresenter<SetMealContract.Model,
...
@@ -270,24 +335,6 @@ public class SetMealPresenter extends BaseOrderPresenter<SetMealContract.Model,
mRootView
.
setMealRvScrollToPosition
(
addPosition
);
mRootView
.
setMealRvScrollToPosition
(
addPosition
);
}
}
private
void
addDiscountItem
(
Discount
datasBean
)
{
//主食品ID
long
id
=
0
;
if
(
mSelectMealAdapter
.
getCurrentMainOrderDetail
()
!=
null
)
{
if
(
mCurrentOrderDetailBean
.
isNew
())
{
id
=
mSelectMealAdapter
.
getCurrentMainOrderDetail
().
getProductId
();
}
else
{
id
=
mSelectMealAdapter
.
getCurrentMainOrderDetail
().
getId
();
}
}
// mCurrentOrderDetailBean = OrderDetail.discountTransOrderDetail(datasBean, true, id, getDisountSourcePrice());
int
addPosition
=
mSelectMealAdapter
.
addFoodItem
(
mCurrentOrderDetailBean
);
mRootView
.
setMealRvScrollToPosition
(
addPosition
);
//更新賬單金額
updateBillInfo
();
}
private
void
loadComboData
(
OrderDetail
food
,
boolean
isSelectedMeal
)
{
private
void
loadComboData
(
OrderDetail
food
,
boolean
isSelectedMeal
)
{
Observable
.
create
(
new
ObservableOnSubscribe
<
List
>()
{
Observable
.
create
(
new
ObservableOnSubscribe
<
List
>()
{
@Override
@Override
...
@@ -372,7 +419,7 @@ public class SetMealPresenter extends BaseOrderPresenter<SetMealContract.Model,
...
@@ -372,7 +419,7 @@ public class SetMealPresenter extends BaseOrderPresenter<SetMealContract.Model,
//更新賬單金額
//更新賬單金額
updateBillInfo
();
updateBillInfo
();
}
}
//
updateOrderFoodNumber();
updateOrderFoodNumber
();
}
}
/**
/**
...
@@ -539,7 +586,7 @@ public class SetMealPresenter extends BaseOrderPresenter<SetMealContract.Model,
...
@@ -539,7 +586,7 @@ public class SetMealPresenter extends BaseOrderPresenter<SetMealContract.Model,
@Override
@Override
public
void
onSuccess
(
List
<
Food
>
foods
)
{
public
void
onSuccess
(
List
<
Food
>
foods
)
{
m
FoodAdapter
.
resetSelect
(-
1
,
null
);
m
RootView
.
resetSelect
(-
1
,
null
);
if
(
foods
!=
null
)
{
if
(
foods
!=
null
)
{
updateFoodData
(
foods
,
parentId
);
updateFoodData
(
foods
,
parentId
);
}
}
...
@@ -701,7 +748,6 @@ public class SetMealPresenter extends BaseOrderPresenter<SetMealContract.Model,
...
@@ -701,7 +748,6 @@ public class SetMealPresenter extends BaseOrderPresenter<SetMealContract.Model,
mFoodList
.
addAll
(
foodList
);
mFoodList
.
addAll
(
foodList
);
//根据Item个数显示每一行的个数
//根据Item个数显示每一行的个数
mRootView
.
setFoodRecycleSpanCount
(
mFoodList
.
size
());
mRootView
.
setFoodRecycleSpanCount
(
mFoodList
.
size
());
mFoodAdapter
.
notifyDataSetChanged
();
}
}
/**
/**
...
@@ -716,7 +762,6 @@ public class SetMealPresenter extends BaseOrderPresenter<SetMealContract.Model,
...
@@ -716,7 +762,6 @@ public class SetMealPresenter extends BaseOrderPresenter<SetMealContract.Model,
updateComboItemSoldoutCtrData
();
updateComboItemSoldoutCtrData
();
//根据Item个数显示每一行的个数
//根据Item个数显示每一行的个数
mRootView
.
setComboRecycleSpanCount
(
mComboList
.
size
());
mRootView
.
setComboRecycleSpanCount
(
mComboList
.
size
());
mComboAdapter
.
notifyDataSetChanged
();
}
}
/**
/**
...
@@ -731,7 +776,6 @@ public class SetMealPresenter extends BaseOrderPresenter<SetMealContract.Model,
...
@@ -731,7 +776,6 @@ public class SetMealPresenter extends BaseOrderPresenter<SetMealContract.Model,
updateModifierSoldoutCtrData
();
updateModifierSoldoutCtrData
();
//根据Item个数显示每一行的个数
//根据Item个数显示每一行的个数
mRootView
.
setModifierRecycleSpanCount
(
mModifierList
.
size
());
mRootView
.
setModifierRecycleSpanCount
(
mModifierList
.
size
());
mComboAdapter
.
notifyDataSetChanged
();
}
}
private
void
setTopId
(
List
<
Food
>
foodList
,
long
topId
)
{
private
void
setTopId
(
List
<
Food
>
foodList
,
long
topId
)
{
...
@@ -874,7 +918,7 @@ public class SetMealPresenter extends BaseOrderPresenter<SetMealContract.Model,
...
@@ -874,7 +918,7 @@ public class SetMealPresenter extends BaseOrderPresenter<SetMealContract.Model,
public
void
updateComboItemSoldoutCtrData
()
{
public
void
updateComboItemSoldoutCtrData
()
{
if
(
mSoldoutCtrList
.
size
()
>
0
)
{
if
(
mSoldoutCtrList
.
size
()
>
0
)
{
updateFoodSoldoutCtrData
();
updateFoodSoldoutCtrData
();
m
ComboAdapter
.
notifyDataSetChanged
();
m
RootView
.
notifyComboAdapterAdapter
();
}
}
}
}
...
@@ -886,7 +930,7 @@ public class SetMealPresenter extends BaseOrderPresenter<SetMealContract.Model,
...
@@ -886,7 +930,7 @@ public class SetMealPresenter extends BaseOrderPresenter<SetMealContract.Model,
clearModifierSoldoutCtrData
();
clearModifierSoldoutCtrData
();
addModifierCtrItem
(
mSoldoutCtrList
);
addModifierCtrItem
(
mSoldoutCtrList
);
setModifierSoldoutCtrData
(
mModifierList
,
mSoldoutCtrList
);
setModifierSoldoutCtrData
(
mModifierList
,
mSoldoutCtrList
);
m
ModifierAdapter
.
notifyDataSetChanged
();
m
RootView
.
notifyModifierAdapterAdapter
();
}
}
}
}
...
@@ -967,10 +1011,8 @@ public class SetMealPresenter extends BaseOrderPresenter<SetMealContract.Model,
...
@@ -967,10 +1011,8 @@ public class SetMealPresenter extends BaseOrderPresenter<SetMealContract.Model,
}
}
}
}
}
}
if
(
mFoodGroupAdapter
!=
null
)
{
mRootView
.
notifyFoodGroupAdapter
();
mFoodGroupAdapter
.
notifyDataSetChanged
();
mRootView
.
notifyFoodAdapter
();
}
mFoodAdapter
.
notifyDataSetChanged
();
}
}
private
void
addModifierCtrItem
(
List
<
SoldoutCtrFood
>
soldoutCtrFoods
)
{
private
void
addModifierCtrItem
(
List
<
SoldoutCtrFood
>
soldoutCtrFoods
)
{
...
@@ -1122,7 +1164,7 @@ public class SetMealPresenter extends BaseOrderPresenter<SetMealContract.Model,
...
@@ -1122,7 +1164,7 @@ public class SetMealPresenter extends BaseOrderPresenter<SetMealContract.Model,
}
}
}
}
}
}
m
ComboAdapter
.
notifyDataSetChanged
();
m
RootView
.
notifyComboAdapterAdapter
();
}
}
public
void
setModifierMaxQty
(
Modifier
modfier
)
{
public
void
setModifierMaxQty
(
Modifier
modfier
)
{
...
@@ -1147,7 +1189,7 @@ public class SetMealPresenter extends BaseOrderPresenter<SetMealContract.Model,
...
@@ -1147,7 +1189,7 @@ public class SetMealPresenter extends BaseOrderPresenter<SetMealContract.Model,
}
}
}
}
}
}
m
ModifierAdapter
.
notifyDataSetChanged
();
m
RootView
.
notifyModifierAdapterAdapter
();
}
}
/**
/**
...
@@ -1261,4 +1303,91 @@ public class SetMealPresenter extends BaseOrderPresenter<SetMealContract.Model,
...
@@ -1261,4 +1303,91 @@ public class SetMealPresenter extends BaseOrderPresenter<SetMealContract.Model,
}
}
return
true
;
return
true
;
}
}
/**
* 獲取所要折扣金額
*
* @return
*/
private
double
getDisountSourcePrice
()
{
double
discount
=
0.0
;
int
start_position
=
mSelectMealAdapter
.
getSelect_full_start_position
();
int
end_position
=
mSelectMealAdapter
.
getSelect_full_end_position
();
for
(
int
i
=
0
;
i
<
mOrderMealList
.
size
();
i
++)
{
if
(
start_position
<=
i
&&
i
<=
end_position
)
{
OrderDetail
orderDetailsBean
=
mOrderMealList
.
get
(
i
);
if
(
orderDetailsBean
.
getProp
()
==
OrderDetail
.
DISCOUNT_PROP
)
{
//折上折減去以折扣金額
discount
=
MoneyUtil
.
sum
(
discount
,
orderDetailsBean
.
getPrice
());
}
else
{
discount
=
MoneyUtil
.
sum
(
discount
,
orderDetailsBean
.
getPrice
());
}
//參與折扣
// orderDetailsBean.setAblediscount(1);
if
(!
orderDetailsBean
.
isNew
())
{
if
(
orderDetailsBean
.
getDiscountStatus
()
==
0
)
{
//此食品新增折扣
orderDetailsBean
.
setDiscountStatus
(
1
);
}
}
}
}
return
discount
;
}
public
void
updateOrderFoodNumber
()
{
setFoodBtnNumber
();
setFoodGroupBtnNumber
();
mRootView
.
setOrderFoodCount
(
getOrderFoodNumber
());
}
private
void
setFoodBtnNumber
()
{
for
(
int
i
=
0
;
i
<
mFoodList
.
size
();
i
++)
{
Food
foodBean
=
mFoodList
.
get
(
i
);
foodBean
.
setNumber
(
0
);
int
iNumber
=
0
;
for
(
int
j
=
0
;
j
<
mOrderMealList
.
size
();
j
++)
{
OrderDetail
datasBean
=
mOrderMealList
.
get
(
j
);
if
(
datasBean
.
isNew
()
&&
datasBean
.
getProductId
()
==
foodBean
.
getId
())
{
iNumber
=
iNumber
+
datasBean
.
getNumber
();
foodBean
.
setNumber
(
iNumber
);
}
}
}
mRootView
.
notifyFoodAdapter
();
}
private
void
setFoodGroupBtnNumber
()
{
List
<
OrderDetail
>
orderDetailList
=
getOrderFoodLists
();
for
(
int
i
=
0
;
i
<
mFoodGroupList
.
size
();
i
++)
{
Food
foodGroupBean
=
mFoodGroupList
.
get
(
i
);
foodGroupBean
.
setNumber
(
0
);
int
iNumber
=
0
;
if
(
orderDetailList
!=
null
)
{
for
(
int
j
=
0
;
j
<
orderDetailList
.
size
();
j
++)
{
OrderDetail
food
=
orderDetailList
.
get
(
j
);
if
(
food
.
isNew
()
&&
food
.
getTopId
()
==
foodGroupBean
.
getId
())
{
iNumber
=
iNumber
+
food
.
getNumber
();
foodGroupBean
.
setNumber
(
iNumber
);
}
}
}
}
mRootView
.
notifyFoodGroupAdapter
();
}
private
String
getOrderFoodNumber
()
{
int
i
=
0
;
if
(
getOrderFoodLists
()
!=
null
)
{
for
(
int
j
=
0
;
j
<
getOrderFoodLists
().
size
();
j
++)
{
OrderDetail
order
=
getOrderFoodLists
().
get
(
j
);
if
(
order
.
isNew
()
&&
order
.
getItemType
()
!=
3
)
{
i
=
i
+
order
.
getNumber
();
}
}
}
return
String
.
valueOf
(
i
);
}
}
}
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/activity/MealStandActivity2.java
0 → 100644
View file @
3f6c41b6
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
mvp
.
ui
.
activity
;
import
android.app.Activity
;
import
android.content.Intent
;
import
android.graphics.Color
;
import
android.os.Build
;
import
android.os.Bundle
;
import
android.os.SystemClock
;
import
android.text.TextUtils
;
import
android.util.DisplayMetrics
;
import
android.util.SparseArray
;
import
android.util.TypedValue
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.widget.BaseAdapter
;
import
android.widget.Button
;
import
android.widget.Chronometer
;
import
android.widget.FrameLayout
;
import
android.widget.ImageButton
;
import
android.widget.ImageView
;
import
android.widget.LinearLayout
;
import
android.widget.RelativeLayout
;
import
android.widget.TextView
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
androidx.core.widget.NestedScrollView
;
import
androidx.fragment.app.Fragment
;
import
androidx.fragment.app.FragmentManager
;
import
androidx.recyclerview.widget.DefaultItemAnimator
;
import
androidx.recyclerview.widget.GridLayoutManager
;
import
androidx.recyclerview.widget.LinearLayoutManager
;
import
androidx.recyclerview.widget.RecyclerView
;
import
androidx.viewpager.widget.ViewPager
;
import
com.billy.cc.core.component.CC
;
import
com.gingersoft.gsa.cloud.app.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.common.constans.FoodSummaryConstans
;
import
com.gingersoft.gsa.cloud.common.constans.MealConstant
;
import
com.gingersoft.gsa.cloud.common.core.member.MemberInfo
;
import
com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager
;
import
com.gingersoft.gsa.cloud.common.core.table.TableBean
;
import
com.gingersoft.gsa.cloud.common.logan.LoganManager
;
import
com.gingersoft.gsa.cloud.common.scan.ScanHelper
;
import
com.gingersoft.gsa.cloud.common.utils.LanguageUtils
;
import
com.gingersoft.gsa.cloud.common.utils.VibratorUtils
;
import
com.gingersoft.gsa.cloud.common.utils.other.SPUtils
;
import
com.gingersoft.gsa.cloud.component.ComponentName
;
import
com.gingersoft.gsa.cloud.database.bean.Food
;
import
com.gingersoft.gsa.cloud.order.bean.response.OrderResponse
;
import
com.gingersoft.gsa.cloud.order.billItem.BillItem
;
import
com.gingersoft.gsa.cloud.order.billItem.DiscountItem
;
import
com.gingersoft.gsa.cloud.order.cart.ShoppingCart
;
import
com.gingersoft.gsa.cloud.order.commodity.OrderDetail
;
import
com.gingersoft.gsa.cloud.order.discount.MemberDiscount
;
import
com.gingersoft.gsa.cloud.order.discount.MultyDiscount
;
import
com.gingersoft.gsa.cloud.order.order.BaseOrder
;
import
com.gingersoft.gsa.cloud.order.order.DoshokuOrder
;
import
com.gingersoft.gsa.cloud.print.PrinterUtils
;
import
com.gingersoft.gsa.cloud.table.BuildConfig
;
import
com.gingersoft.gsa.cloud.table.R
;
import
com.gingersoft.gsa.cloud.table.R2
;
import
com.gingersoft.gsa.cloud.table.di.component.DaggerMealStand2Component
;
import
com.gingersoft.gsa.cloud.table.di.component.DaggerMealStandComponent
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.MealStandContract
;
import
com.gingersoft.gsa.cloud.table.mvp.model.bean.SoldoutCtrFood
;
import
com.gingersoft.gsa.cloud.table.mvp.model.bean.event.InitTableEvent
;
import
com.gingersoft.gsa.cloud.table.mvp.presenter.mealstand.MealStandPresenter
;
import
com.gingersoft.gsa.cloud.table.mvp.presenter.mealstand.MealStandPresenter2
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.BaseFragmentAdapter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.FoodGroupAdapter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.SelectMealAdapter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.fragment.FineItemAllFragment
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.fragment.mealstand.SetMealFragment
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.widget.ChooseNumberDialog
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.widget.CustomFoodDialog
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.widget.UseMemberDialog
;
import
com.gingersoft.gsa.cloud.ui.recylcler.Indicator.PagerConfig
;
import
com.gingersoft.gsa.cloud.ui.recylcler.Indicator.PagerGridLayoutManager
;
import
com.gingersoft.gsa.cloud.ui.recylcler.Indicator.PagerGridSnapHelper
;
import
com.gingersoft.gsa.cloud.ui.recylcler.RecyclerViewNoBugLinearLayoutManager
;
import
com.gingersoft.gsa.cloud.ui.recylcler.decorator.DividerItemDecoration
;
import
com.gingersoft.gsa.cloud.ui.recylcler.decorator.GridDividerItemDecoration
;
import
com.gingersoft.gsa.cloud.ui.view.PagerSlidingTabStrip
;
import
com.gingersoft.gsa.cloud.ui.view.SearchKeyBoardView
;
import
com.gingersoft.gsa.cloud.ui.widget.dialog.CommonTipDialog
;
import
com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog
;
import
com.gyf.immersionbar.ImmersionBar
;
import
com.jess.arms.base.BaseFragmentActivity
;
import
com.jess.arms.base.DefaultAdapter
;
import
com.jess.arms.di.component.AppComponent
;
import
com.jess.arms.utils.ArmsUtils
;
import
com.qmuiteam.qmui.alpha.QMUIAlphaTextView
;
import
com.qmuiteam.qmui.util.QMUIDisplayHelper
;
import
org.simple.eventbus.EventBus
;
import
java.text.DecimalFormat
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.List
;
import
javax.inject.Inject
;
import
javax.inject.Named
;
import
butterknife.BindView
;
import
butterknife.OnClick
;
import
butterknife.OnLongClick
;
import
static
com
.
jess
.
arms
.
utils
.
Preconditions
.
checkNotNull
;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 12/27/2019 19:17
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
public
class
MealStandActivity2
extends
BaseFragmentActivity
<
MealStandPresenter2
>
implements
MealStandContract
.
View
,
PagerGridLayoutManager
.
PageListener
{
private
SparseArray
<
View
>
map
=
new
SparseArray
<>(
10
);
@BindView
(
R2
.
id
.
meal_stand_search_keyboard_view
)
SearchKeyBoardView
keyboard_view
;
@BindView
(
R2
.
id
.
fl_meal_discount
)
FrameLayout
fl_meal_discount
;
private
int
mCurrentViewMode
;
private
boolean
isPluMode
;
private
static
final
int
ORDER_CONTENT_CODE
=
1002
;
@Override
public
void
setupActivityComponent
(
@NonNull
AppComponent
appComponent
)
{
DaggerMealStand2Component
//如找不到该类,请编译一下项目
.
builder
()
.
appComponent
(
appComponent
)
.
view
(
this
)
.
build
()
.
inject
(
this
);
}
@Override
protected
void
onCreate
(
@Nullable
Bundle
savedInstanceState
)
{
EventBus
.
getDefault
().
registerSticky
(
this
);
super
.
onCreate
(
savedInstanceState
);
}
@Override
public
void
configImmersionBar
(
ImmersionBar
immersionBar
)
{
immersionBar
.
fitsSystemWindows
(
true
)
.
statusBarColor
(
R
.
color
.
theme_white_color
)
.
statusBarDarkFont
(
true
)
.
init
();
}
@Override
public
int
initView
(
@Nullable
Bundle
savedInstanceState
)
{
return
R
.
layout
.
table_activity_meal_stand2
;
//如果你不需要框架帮你设置 setContentView(id) 需要自行设置,请返回 0
}
@Override
public
void
initData
(
@Nullable
Bundle
savedInstanceState
)
{
if
(
findFragment
(
SetMealFragment
.
class
)
==
null
)
{
loadRootFragment
(
R
.
id
.
fl_food_plate
,
SetMealFragment
.
newInstance
());
}
}
@Override
public
boolean
isInitFineItemLayout
()
{
return
true
;
}
@Override
public
int
getRestaurantId
()
{
return
RestaurantInfoManager
.
newInstance
().
getRestaurantId
();
}
@Override
public
void
initFineItemTabBarViewPage
()
{
}
@Override
public
void
setCurrentFinePage
()
{
}
@Override
public
void
setPluMode
()
{
}
@Override
public
void
resetPluMode
()
{
}
@Override
public
void
updateMemberInfo
(
MemberInfo
memberInfo
)
{
}
@OnClick
({
R2
.
id
.
btn_send_order
,
R2
.
id
.
tv_no_save_return
,
R2
.
id
.
tv_order_content
})
public
void
onClick
(
View
v
)
{
recordOperat
(
true
);
//防抖處理
int
id
=
v
.
getId
();
if
(
id
==
R
.
id
.
btn_numberman
)
{
if
(!
BaseOrder
.
isTableToMeal
())
{
return
;
}
showChoosePeopleNumDialog
(
true
);
}
else
if
(
id
==
R
.
id
.
btn_fid
)
{
setPluMode
();
}
else
if
(
id
==
R
.
id
.
btn_send_order
)
{
if
(
BaseOrder
.
isCurrentOrderType
(
FoodSummaryConstans
.
TAKEAWAY_TYPE
))
{
CC
.
obtainBuilder
(
ComponentName
.
COMPONENT_DELIVERYPICK
)
.
setActionName
(
"SendOrder"
)
.
build
()
.
call
();
return
;
}
mPresenter
.
sendOrder
(
false
,
null
);
}
else
if
(
id
==
R
.
id
.
tv_order_content
)
{
//如果打印成功會回調
Intent
intent
=
new
Intent
(
mContext
,
OrderContentActivity
.
class
);
startActivityForResult
(
intent
,
ORDER_CONTENT_CODE
);
}
else
if
(
id
==
R
.
id
.
tv_no_save_return
)
{
returnTableActivity
(
true
);
}
}
@Override
public
void
onBackPressedSupport
()
{
returnTableActivity
(
true
);
}
public
void
returnTableActivity
(
boolean
initTable
)
{
if
(
mPresenter
.
hasNesOrderFoods
())
{
//没有过重复下单提示且有未送单食品,提示用户
String
tip
=
LanguageUtils
.
get_language_system
(
this
,
"food.not.delivered.tip"
,
"有食品未送單, 確認離開?"
);
Class
[]
parameterTypes
=
{
boolean
.
class
};
Object
[]
parameters
=
{
initTable
};
CommonTipDialog
.
showSurpisedDialog
(
this
,
tip
,
MealStandActivity2
.
class
,
this
,
"returnBeforeActivity"
,
parameterTypes
,
parameters
);
}
else
{
returnBeforeActivity
(
initTable
);
}
}
public
void
returnBeforeActivity
(
boolean
initTable
)
{
if
(
BaseOrder
.
isTableToMeal
()
&&
initTable
&&
!
DoshokuOrder
.
getInstance
().
isModifyOrder
())
{
TableBean
.
DataBean
dataBean
=
DoshokuOrder
.
getInstance
().
getOpenTableInfo
();
if
(
dataBean
!=
null
)
{
//通知更新餐台状态
EventBus
.
getDefault
().
post
(
new
InitTableEvent
(
dataBean
.
getId
(),
dataBean
.
getTableNumber
()),
"initTable_status_event"
);
}
}
killMyself
();
}
@Override
public
void
recordOperat
(
boolean
isPressButtonSound
)
{
if
(
isPressButtonSound
)
{
VibratorUtils
.
pressButtonSound
(
this
);
}
}
@Override
public
void
showChoosePeopleNumDialog
(
boolean
isNeedCancel
)
{
}
@Override
public
void
setPrinterLocalmachine
(
boolean
isPrint
)
{
}
@Override
public
void
setTableInfoDialogAdapter
(
BaseAdapter
adapter
)
{
}
@Override
public
void
setSelectFoodAdapter
(
RecyclerView
.
Adapter
adapter
)
{
}
@Override
public
void
setFoodGroupAdapter
(
DefaultAdapter
adapter
)
{
}
@Override
public
void
setFoodAdapter
(
DefaultAdapter
adapter
)
{
}
@Override
public
void
setOrderDetailAdapter
(
DefaultAdapter
adapter
)
{
}
@Override
public
void
setComboAdapter
(
DefaultAdapter
adapter
)
{
}
@Override
public
void
setModifierAdapter
(
DefaultAdapter
adapter
)
{
}
@Override
public
void
setDiscountAdapter
(
DefaultAdapter
adapter
)
{
}
private
GridLayoutManager
foodRecycleLayoutManager
,
comboRecycleLayoutManager
,
modifierRecycleLayoutManager
,
discountRecycleLayoutManager
;
@Override
public
void
setSelectFoodRecycleLayoutManager
()
{
}
@Override
public
void
setFoodGroupRecycleLayoutManager
(
int
orientation
)
{
}
@Override
public
void
setFoodRecycleLayoutManager
(
int
orientation
)
{
}
@Override
public
void
setComboRecycleLayoutManager
(
int
orientation
)
{
}
@Override
public
void
setModifierRecycleLayoutManager
(
int
orientation
)
{
}
@Override
public
void
setDiscountRecycleLayoutManager
(
int
orientation
)
{
}
@Override
public
void
setFoodGroupRecycleSpanCount
(
int
size
)
{
}
@Override
public
void
setFoodRecycleSpanCount
(
int
size
)
{
}
@Override
public
void
setComboRecycleSpanCount
(
int
size
)
{
}
@Override
public
void
setModifierRecycleSpanCount
(
int
size
)
{
}
@Override
public
void
setDiscountRecycleSpanCount
(
int
size
)
{
}
@Override
public
void
showViewModeVisibility
(
int
...
viewMode
)
{
//將所有的view隱藏
for
(
int
i
=
0
;
i
<
map
.
size
();
i
++)
{
map
.
valueAt
(
i
).
setVisibility
(
View
.
INVISIBLE
);
}
//設置當前mode為第一個傳入的mode
for
(
int
mode
:
viewMode
)
{
this
.
mCurrentViewMode
=
mode
;
break
;
}
//顯示所有傳入的需要顯示的view
for
(
int
mode
:
viewMode
)
{
map
.
get
(
mode
).
setVisibility
(
View
.
VISIBLE
);
}
//設置當前模式為輸入Plu模式
if
(
viewMode
!=
null
&&
viewMode
[
0
]
==
MealConstant
.
ViewMode_keys
)
{
isPluMode
=
true
;
}
else
{
isPluMode
=
false
;
}
switch
(
mCurrentViewMode
)
{
case
MealConstant
.
food_group_ViewMode
:
case
MealConstant
.
food_ViewMode
:
showModifyLayoutVisibility
(
false
);
break
;
case
MealConstant
.
combo_ViewMode
:
// case MealConstant.modifier_ViewMode:
case
MealConstant
.
discount_ViewMode
:
case
MealConstant
.
fine_ViewMode
:
showModifyLayoutVisibility
(
true
);
break
;
default
:
break
;
}
}
@Override
public
void
showModifyLayoutVisibility
(
boolean
show
)
{
}
@Override
public
void
setOrderFoodCount
(
String
number
)
{
}
@Override
public
void
setMealRvScrollToPosition
(
int
position
)
{
}
@Override
public
List
<
Food
>
getFoodGroupList
()
{
return
null
;
}
@Override
public
void
initIntent
()
{
}
@Override
public
void
initTopBar
()
{
}
@Override
public
void
initLanguage
()
{
}
@Override
public
void
initLayoutParams
()
{
}
@Override
public
void
initLayoutVisible
()
{
}
@Override
public
void
showLoading
(
String
message
)
{
if
(
message
!=
null
)
LoadingDialog
.
showDialogForLoading
(
this
,
message
,
true
);
else
LoadingDialog
.
showDialogForLoading
(
this
);
}
@Override
public
void
hideLoading
()
{
LoadingDialog
.
cancelDialogForLoading
();
}
@Override
public
void
showMessage
(
@NonNull
String
message
)
{
checkNotNull
(
message
);
ArmsUtils
.
makeText
(
MealStandActivity2
.
this
,
message
);
}
@Override
public
void
launchActivity
(
@NonNull
Intent
intent
)
{
checkNotNull
(
intent
);
ArmsUtils
.
startActivity
(
intent
);
}
@Override
public
void
killMyself
()
{
finish
();
}
@Override
public
Activity
getActivity
()
{
return
this
;
}
@Override
public
int
getFromType
()
{
return
1
;
}
public
void
clearInput
()
{
}
/**
* 显示公共信息
*/
public
void
showRemarkLayout
()
{
//没有初始化细项布局则初始化
if
(!
isInitFineItemLayout
())
{
}
else
{
setCurrentFinePage
();
showViewModeVisibility
(
MealConstant
.
fine_ViewMode
,
MealConstant
.
fine_tabs_ViewMode
);
}
}
@Override
protected
void
onActivityResult
(
int
requestCode
,
int
resultCode
,
@Nullable
Intent
data
)
{
super
.
onActivityResult
(
requestCode
,
resultCode
,
data
);
if
(
requestCode
==
ORDER_CONTENT_CODE
)
{
//訂單內容回調
if
(
resultCode
==
Activity
.
RESULT_OK
)
{
//打印成功
//結賬成功
//關閉當前頁面
killMyself
();
}
}
else
if
(
requestCode
==
ScanHelper
.
CALL_BACK_QR_RESULT
)
{
String
qrCodeResult
=
data
.
getStringExtra
(
"qrCodeResult"
);
if
(
TextUtils
.
isEmpty
(
qrCodeResult
))
{
return
;
}
TableBean
.
DataBean
dataBean
=
DoshokuOrder
.
getInstance
().
getOpenTableInfo
();
// mPresenter.queryMember(1, qrCodeResult, RestaurantInfoManager.newInstance().getGsPosShopId(), dataBean.getId(), dataBean.getTableNumber());
}
}
public
int
getCurrentViewMode
()
{
return
mCurrentViewMode
;
}
@Override
public
void
onPageSizeChanged
(
int
pageSize
)
{
}
@Override
public
void
onPageSelect
(
int
pageIndex
)
{
}
@Override
public
void
setModifierTop
(
int
margins
)
{
}
@Override
public
void
setCustomFoodDialog
(
int
customType
,
OrderDetail
foodItem
)
{
new
CustomFoodDialog
(
mContext
,
customType
)
.
create
(
R
.
style
.
MyEditDialogTheme
)
.
setOnEditListener
((
dialog
,
name
,
money
)
->
{
dialog
.
dismiss
();
if
(
customType
==
Food
.
CUSTOM_TYPE_101
)
{
foodItem
.
setProductName
(
name
);
}
if
(!
TextUtils
.
isEmpty
(
money
))
{
foodItem
.
setUnit_price
(
Double
.
parseDouble
(
money
));
foodItem
.
setPrice
(
foodItem
.
getUnit_price
());
// mPresenter.toAddFoodItem(foodItem);
}
})
.
show
();
}
@Override
public
void
showBtnMealModifyRestoreVisibility
(
boolean
show
)
{
}
private
void
setSelectFunctionVisibility
(
int
visibility
)
{
}
}
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/activity/OrderPayActivity.java
View file @
3f6c41b6
...
@@ -256,30 +256,7 @@ public class OrderPayActivity extends BaseFragmentActivity<OrderPayPresenter> im
...
@@ -256,30 +256,7 @@ public class OrderPayActivity extends BaseFragmentActivity<OrderPayPresenter> im
String
memberInfo
;
String
memberInfo
;
String
memberName
=
memberBean
.
getMemberName
();
String
memberName
=
memberBean
.
getMemberName
();
String
LevelName1
=
memberBean
.
getLevelName1
();
String
LevelName1
=
memberBean
.
getLevelName1
();
// if (!TextUtils.isEmpty(LevelName1)) {
// memberInfo = LanguageUtils.get_language_system(this, "meal.info.member.name", "會員名稱:")
// + memberName
// + "(" + LevelName1 + ")";
// } else {
memberInfo
=
LanguageUtils
.
get_language_system
(
this
,
"meal.info.member.name"
,
"會員:"
)
+
memberName
;
memberInfo
=
LanguageUtils
.
get_language_system
(
this
,
"meal.info.member.name"
,
"會員:"
)
+
memberName
;
// }
// boolean showPoints = false;
// if (mPresenter.getPointsAdd() != 0 && mPresenter.getPointsRedeem() != 0) {
// memberInfo = memberInfo + ":" + memberBean.getMemberPoint() + " +" + mPresenter.getPointsAdd() + " -" + mPresenter.getPointsRedeem();
// showPoints = true;
// } else {
// if (mPresenter.getPointsAdd() != 0) {
// memberInfo = memberInfo + ":" + memberBean.getMemberPoint() + " +" + mPresenter.getPointsAdd();
// showPoints = true;
// }
// if (mPresenter.getPointsRedeem() != 0) {
// memberInfo = memberInfo + ":" + memberBean.getMemberPoint() + " -" + mPresenter.getPointsRedeem();
// showPoints = true;
// }
// }
// if (!showPoints) {
// memberInfo = memberInfo + ":" + memberBean.getMemberPoint();
// }
memberIntegral
=
memberBean
.
getMemberPoint
();
memberIntegral
=
memberBean
.
getMemberPoint
();
memberPointRedeemCash
=
memberBean
.
getPointRedeemCash
();
memberPointRedeemCash
=
memberBean
.
getPointRedeemCash
();
//獲取積分支付抵扣金額
//獲取積分支付抵扣金額
...
@@ -581,9 +558,11 @@ public class OrderPayActivity extends BaseFragmentActivity<OrderPayPresenter> im
...
@@ -581,9 +558,11 @@ public class OrderPayActivity extends BaseFragmentActivity<OrderPayPresenter> im
.
action
(
PayAction
.
SALE
)
.
action
(
PayAction
.
SALE
)
.
resturantId
(
RestaurantInfoManager
.
newInstance
().
getRestaurantId
())
.
resturantId
(
RestaurantInfoManager
.
newInstance
().
getRestaurantId
())
.
orderId
(
DoshokuOrder
.
getInstance
().
getOrderId
())
.
orderId
(
DoshokuOrder
.
getInstance
().
getOrderId
())
.
payMethods
(
mBillMoneyList
)
.
payType
(
payMethod
.
getPayType
())
.
payType
(
payMethod
.
getPayType
())
.
payMoney
(
payMethod
.
getPayMoney
())
.
payMoney
(
payMethod
.
getPayMoney
())
.
resultCallback
(
new
ResultCallback
()
{
.
resultCallback
(
new
ResultCallback
()
{
@Override
@Override
public
void
onSuccess
()
{
public
void
onSuccess
()
{
paySuccess
();
paySuccess
();
...
@@ -593,14 +572,20 @@ public class OrderPayActivity extends BaseFragmentActivity<OrderPayPresenter> im
...
@@ -593,14 +572,20 @@ public class OrderPayActivity extends BaseFragmentActivity<OrderPayPresenter> im
public
void
onFailure
(
Throwable
t
)
{
public
void
onFailure
(
Throwable
t
)
{
}
}
@Override
public
void
externalPayment
()
{
mPresenter
.
sendOrderBefore
();
}
@Override
public
void
hybridPayment
(
List
<
PayMethod
>
payMethods
)
{
}
})
})
.
build
();
.
build
();
PaymentControl
.
newInstance
().
showPayFlowFragment
(
this
,
parms
);
PaymentControl
.
newInstance
().
showPayFlowFragment
(
this
,
parms
);
// Intent intent = new Intent(mContext, PayFlowActivity.class);
// intent.putExtra("requestParms",build);
// launchActivity(intent);
// PosPay.builder()
// PosPay.builder()
// .context(GsaCloudApplication.getAppContext())
// .context(GsaCloudApplication.getAppContext())
// .lifecycleView(OrderPayActivity.this)
// .lifecycleView(OrderPayActivity.this)
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/activity/TableActivity.java
View file @
3f6c41b6
...
@@ -394,7 +394,7 @@ public class TableActivity extends BaseFragmentActivity<TablePresenter> implemen
...
@@ -394,7 +394,7 @@ public class TableActivity extends BaseFragmentActivity<TablePresenter> implemen
@Override
@Override
public
void
startMealStandActivity
()
{
public
void
startMealStandActivity
()
{
startActivity
(
new
Intent
(
this
,
MealStandActivity
.
class
));
startActivity
(
new
Intent
(
this
,
MealStandActivity
2
.
class
));
}
}
@Override
@Override
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/adapter/BillItemAdapter.java
View file @
3f6c41b6
...
@@ -18,6 +18,8 @@ import com.jess.arms.base.DefaultAdapter;
...
@@ -18,6 +18,8 @@ import com.jess.arms.base.DefaultAdapter;
import
java.util.List
;
import
java.util.List
;
import
javax.inject.Inject
;
import
butterknife.BindView
;
import
butterknife.BindView
;
/**
/**
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/adapter/meal/SelectMealAdapter.java
View file @
3f6c41b6
...
@@ -24,6 +24,8 @@ import com.jess.arms.utils.ArmsUtils;
...
@@ -24,6 +24,8 @@ import com.jess.arms.utils.ArmsUtils;
import
java.util.List
;
import
java.util.List
;
import
javax.inject.Inject
;
import
butterknife.BindView
;
import
butterknife.BindView
;
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/adapter/meal/SelectMealAdapter2.java
0 → 100644
View file @
3f6c41b6
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
mvp
.
ui
.
adapter
.
meal
;
import
android.content.Context
;
import
android.text.TextUtils
;
import
android.view.Gravity
;
import
android.view.View
;
import
android.widget.ImageView
;
import
android.widget.RelativeLayout
;
import
android.widget.TextView
;
import
com.gingersoft.gsa.cloud.app.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.common.constans.MealConstant
;
import
com.gingersoft.gsa.cloud.common.utils.MoneyUtil
;
import
com.gingersoft.gsa.cloud.order.commodity.OrderDetail
;
import
com.gingersoft.gsa.cloud.table.R
;
import
com.gingersoft.gsa.cloud.table.R2
;
import
com.gingersoft.gsa.cloud.table.mvp.presenter.OrderContentPresenter
;
import
com.gingersoft.gsa.cloud.table.mvp.presenter.mealstand.MealStandPresenter
;
import
com.gingersoft.gsa.cloud.table.mvp.presenter.mealstand.SetMealPresenter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.activity.MealStandActivity
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.activity.MealStandActivity2
;
import
com.jess.arms.base.BaseHolder
;
import
com.jess.arms.base.DefaultAdapter
;
import
com.jess.arms.mvp.BasePresenter
;
import
com.jess.arms.utils.ArmsUtils
;
import
java.util.List
;
import
javax.inject.Inject
;
import
butterknife.BindView
;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2018/9/16
* 修订历史:2018/9/17
* 描述:
*/
public
class
SelectMealAdapter2
extends
DefaultAdapter
<
OrderDetail
>
{
private
Context
mContext
;
private
MealStandActivity2
mMealStandActivity
;
private
OrderContentPresenter
mOrderContentPresenter
;
private
int
BillListFontSize
=
18
;
private
String
carshStr
=
"$"
;
private
int
mainStartPos
=
0
;
private
int
mainEndPos
=
0
;
private
int
select_position
=
-
1
;
private
int
select_start_position
=
0
;
private
int
select_end_position
=
0
;
public
int
select_full_start_position
=
0
;
public
int
select_full_end_position
=
0
;
/**
* 選中模式(1=單選,2=多選)
*/
public
static
final
int
SINGLE_SELECTED
=
1
;
public
static
final
int
MULTIPLE_SELECTED
=
2
;
private
int
selectedMode
=
SINGLE_SELECTED
;
public
SelectMealAdapter2
(
Context
context
,
List
<
OrderDetail
>
data
,
BasePresenter
presenter
)
{
super
(
data
);
this
.
mContext
=
context
;
this
.
BillListFontSize
=
GsaCloudApplication
.
uiStyleConfiguration
.
getBillListFontSizeValue
();
if
(
presenter
instanceof
SetMealPresenter
)
{
this
.
mMealStandActivity
=
(
MealStandActivity2
)
context
;
}
else
if
(
presenter
instanceof
OrderContentPresenter
)
{
this
.
mOrderContentPresenter
=
(
OrderContentPresenter
)
presenter
;
}
}
@Override
public
int
getItemCount
()
{
return
mInfos
==
null
?
0
:
mInfos
.
size
();
}
@Override
public
SelectMealItemHolder
getHolder
(
View
v
,
int
viewType
)
{
return
new
SelectMealItemHolder
(
v
);
}
@Override
public
int
getLayoutId
(
int
viewType
)
{
return
R
.
layout
.
meal_item_select_meal_stand
;
}
class
SelectMealItemHolder
extends
BaseHolder
<
OrderDetail
>
implements
View
.
OnClickListener
{
@BindView
(
R2
.
id
.
rl_container
)
RelativeLayout
rl_container
;
@BindView
(
R2
.
id
.
rl_select
)
RelativeLayout
rl_select
;
@BindView
(
R2
.
id
.
ll_tvname
)
RelativeLayout
ll_tvname
;
@BindView
(
R2
.
id
.
tv_number
)
TextView
tv_number
;
@BindView
(
R2
.
id
.
tv_food_table_mode
)
TextView
tv_food_table_mode
;
@BindView
(
R2
.
id
.
tv_modify_before_number
)
TextView
tv_modify_before_number
;
@BindView
(
R2
.
id
.
tv_name
)
TextView
tv_name
;
@BindView
(
R2
.
id
.
tv_money
)
TextView
tv_money
;
@BindView
(
R2
.
id
.
tv_D
)
TextView
tv_D
;
@BindView
(
R2
.
id
.
tv_S
)
TextView
tv_S
;
@BindView
(
R2
.
id
.
tv_D_1
)
TextView
tv_D_1
;
@BindView
(
R2
.
id
.
tv_S_1
)
TextView
tv_S_1
;
@BindView
(
R2
.
id
.
tv_discount_money
)
TextView
tv_discount_money
;
@BindView
(
R2
.
id
.
tv_mix
)
TextView
tv_mix
;
@BindView
(
R2
.
id
.
iv_add_count
)
ImageView
iv_add_count
;
@BindView
(
R2
.
id
.
iv_delete_count
)
ImageView
iv_delete_count
;
public
SelectMealItemHolder
(
View
itemView
)
{
super
(
itemView
);
}
@Override
public
void
onClick
(
View
view
)
{
if
(
mOnItemClickListener
!=
null
)
{
int
position
=
this
.
getPosition
();
if
(
position
<
mInfos
.
size
())
{
if
(
selectedMode
==
MULTIPLE_SELECTED
)
{
if
(
mInfos
.
get
(
position
).
getSelected
()
!=
0
&&
mInfos
.
get
(
position
).
getItemType
()
!=
1
)
{
return
;
}
}
setSelectPosition
(
position
);
//设置当前选中的食品或食品组
mOnItemClickListener
.
onItemClick
(
mInfos
.
get
(
position
),
position
);
}
}
}
@Override
public
void
setData
(
OrderDetail
datasBean
,
int
position
)
{
setViewVisibility
(
datasBean
);
if
(
datasBean
.
isVisible
())
{
rl_container
.
setVisibility
(
View
.
VISIBLE
);
setName
(
datasBean
);
setNumber
(
datasBean
);
setMoney
(
datasBean
);
setMealCountLayout
(
datasBean
,
position
);
setColor
(
datasBean
);
setTextSize
();
}
else
{
rl_container
.
setVisibility
(
View
.
INVISIBLE
);
}
}
private
void
setViewVisibility
(
OrderDetail
datasBean
)
{
//是否参与折扣
if
(!
datasBean
.
canAbleDiscount
())
{
tv_D
.
setVisibility
(
View
.
VISIBLE
);
}
else
{
tv_D
.
setVisibility
(
View
.
INVISIBLE
);
}
//是否参与服務費
if
(
datasBean
.
getScAble
()
==
0
)
{
tv_S
.
setVisibility
(
View
.
VISIBLE
);
}
else
{
tv_S
.
setVisibility
(
View
.
INVISIBLE
);
}
//是否可折上折
if
(
datasBean
.
getType
()
!=
OrderDetail
.
DISCOUNT_TYPE
&&
datasBean
.
getAdditionalDiscount
()
==
0
)
{
tv_D_1
.
setVisibility
(
View
.
VISIBLE
);
}
else
{
tv_D_1
.
setVisibility
(
View
.
INVISIBLE
);
}
//使用此折扣是否可免服務費
if
(
datasBean
.
getType
()
!=
OrderDetail
.
DISCOUNT_TYPE
&&
datasBean
.
getFreeServiceCharge
()
==
1
)
{
tv_S_1
.
setVisibility
(
View
.
VISIBLE
);
}
else
{
tv_S_1
.
setVisibility
(
View
.
INVISIBLE
);
}
tv_discount_money
.
setVisibility
(
View
.
INVISIBLE
);
if
(
datasBean
.
isModify
())
{
if
(
datasBean
.
getType
()
==
OrderDetail
.
MODIFIER_TYPE
)
{
RelativeLayout
.
LayoutParams
layoutParams
=
(
RelativeLayout
.
LayoutParams
)
tv_number
.
getLayoutParams
();
layoutParams
.
rightMargin
=
ArmsUtils
.
getDimens
(
mContext
,
R
.
dimen
.
dp_15
);
tv_number
.
setLayoutParams
(
layoutParams
);
}
tv_modify_before_number
.
setText
(
String
.
valueOf
(
datasBean
.
getModifyBeforeNumber
()));
tv_modify_before_number
.
setVisibility
(
View
.
VISIBLE
);
}
else
{
tv_modify_before_number
.
setVisibility
(
View
.
INVISIBLE
);
if
(
datasBean
.
getType
()
==
OrderDetail
.
MODIFIER_TYPE
)
{
RelativeLayout
.
LayoutParams
layoutParams
=
(
RelativeLayout
.
LayoutParams
)
tv_number
.
getLayoutParams
();
layoutParams
.
rightMargin
=
0
;
tv_number
.
setLayoutParams
(
layoutParams
);
}
}
}
private
void
setMealCountLayout
(
OrderDetail
datasBean
,
int
position
)
{
if
(
datasBean
.
isNew
()
&&
mOrderContentPresenter
!=
null
&&
datasBean
.
getSelected
()
!=
0
&&
datasBean
.
getProp
()
==
OrderDetail
.
FOOD_PROP
)
{
iv_add_count
.
setVisibility
(
View
.
VISIBLE
);
iv_delete_count
.
setVisibility
(
View
.
VISIBLE
);
iv_add_count
.
setOnClickListener
(
v
->
{
if
(
mOnItemClickListener
!=
null
)
{
mOnItemClickListener
.
onMealCountAdd
(
datasBean
,
position
);
}
});
iv_delete_count
.
setOnClickListener
(
v
->
{
if
(
mOnItemClickListener
!=
null
)
{
mOnItemClickListener
.
onMealCountDelete
(
datasBean
,
position
);
}
});
}
else
{
iv_add_count
.
setVisibility
(
View
.
INVISIBLE
);
iv_delete_count
.
setVisibility
(
View
.
INVISIBLE
);
}
}
private
void
setName
(
OrderDetail
datasBean
)
{
int
flevel
=
datasBean
.
getItemType
();
String
name
=
datasBean
.
getProductName
();
switch
(
flevel
)
{
case
1
:
tv_number
.
setGravity
(
Gravity
.
LEFT
);
break
;
case
2
:
name
=
" "
+
name
;
tv_number
.
setGravity
(
Gravity
.
CENTER
);
break
;
case
3
:
name
=
" "
+
name
;
tv_number
.
setGravity
(
Gravity
.
RIGHT
);
break
;
}
tv_name
.
setText
(
name
);
int
selected
=
datasBean
.
getSelected
();
if
(
selected
!=
0
)
{
//作为主体被选中 开启跑马灯效果
tv_name
.
setFocusable
(
true
);
tv_name
.
setEllipsize
(
TextUtils
.
TruncateAt
.
MARQUEE
);
//设置旋转
tv_name
.
setMarqueeRepeatLimit
(-
1
);
//-1为死循环,1为1次
tv_name
.
setSelected
(
true
);
//设置不获取焦点就可以转
tv_name
.
setFocusableInTouchMode
(
true
);
}
else
{
//关闭跑马灯效果
tv_name
.
setFocusable
(
false
);
tv_name
.
setMarqueeRepeatLimit
(
0
);
tv_name
.
setSelected
(
false
);
tv_name
.
setFocusableInTouchMode
(
false
);
}
}
private
void
setNumber
(
OrderDetail
datasBean
)
{
int
number
=
datasBean
.
getNumber
();
if
(
number
==
0
||
datasBean
.
getType
()
==
OrderDetail
.
DISCOUNT_TYPE
)
{
//细项、折扣不需要显示数量
tv_number
.
setText
(
""
);
}
else
{
tv_number
.
setText
(
String
.
valueOf
(
number
));
}
}
private
void
setMoney
(
OrderDetail
datasBean
)
{
double
price
=
datasBean
.
getPrice
();
if
(
price
!=
0
)
{
if
(
datasBean
.
getType
()
==
OrderDetail
.
DISCOUNT_TYPE
)
{
tv_money
.
setText
(
"-"
+
carshStr
+
MoneyUtil
.
get_ItemDecimals_money
(
Math
.
abs
(
price
)));
}
else
{
tv_money
.
setText
(
carshStr
+
MoneyUtil
.
get_ItemDecimals_money
(
price
));
}
}
else
{
tv_money
.
setText
(
""
);
}
}
private
void
setColor
(
OrderDetail
datasBean
)
{
int
selected
=
datasBean
.
getSelected
();
switch
(
selected
)
{
case
0
:
rl_container
.
setBackgroundColor
(
ArmsUtils
.
getColor
(
mContext
,
R
.
color
.
theme_white_color
));
rl_select
.
setBackgroundColor
(
ArmsUtils
.
getColor
(
mContext
,
R
.
color
.
theme_white_color
));
ll_tvname
.
setBackgroundColor
(
ArmsUtils
.
getColor
(
mContext
,
R
.
color
.
theme_white_color
));
break
;
case
1
:
rl_container
.
setBackgroundColor
(
ArmsUtils
.
getColor
(
mContext
,
R
.
color
.
itemSelected
));
rl_select
.
setBackgroundColor
(
ArmsUtils
.
getColor
(
mContext
,
R
.
color
.
itemSelected
));
// Color.YELLOW);
ll_tvname
.
setBackgroundResource
(
R
.
color
.
itemSelected
);
break
;
case
2
:
case
3
:
rl_container
.
setBackgroundColor
(
ArmsUtils
.
getColor
(
mContext
,
R
.
color
.
itemSelected
));
rl_select
.
setBackgroundColor
(
ArmsUtils
.
getColor
(
mContext
,
R
.
color
.
itemSelected
));
ll_tvname
.
setBackgroundResource
(
R
.
color
.
mainSelected
);
break
;
}
// }
//设置Item选中颜色
if
(
datasBean
.
isNew
()
==
false
)
{
tv_name
.
setTextColor
(
ArmsUtils
.
getColor
(
mContext
,
R
.
color
.
Grass_green
));
tv_number
.
setTextColor
(
ArmsUtils
.
getColor
(
mContext
,
R
.
color
.
Grass_green
));
tv_money
.
setTextColor
(
ArmsUtils
.
getColor
(
mContext
,
R
.
color
.
Grass_green
));
}
else
{
tv_number
.
setTextColor
(
ArmsUtils
.
getColor
(
mContext
,
R
.
color
.
black
));
tv_name
.
setTextColor
(
ArmsUtils
.
getColor
(
mContext
,
R
.
color
.
black
));
tv_money
.
setTextColor
(
ArmsUtils
.
getColor
(
mContext
,
R
.
color
.
black
));
}
if
(
datasBean
.
isModify
())
{
//数量为0 说明是修改订单 删除的食品,颜色设置了红色
tv_name
.
setTextColor
(
ArmsUtils
.
getColor
(
GsaCloudApplication
.
getAppContext
(),
R
.
color
.
red_500
));
}
}
public
void
setTextSize
()
{
tv_money
.
setTextSize
(
BillListFontSize
);
tv_name
.
setTextSize
(
BillListFontSize
);
tv_number
.
setTextSize
(
BillListFontSize
);
tv_D
.
setTextSize
(
BillListFontSize
/
2
);
tv_S
.
setTextSize
(
BillListFontSize
/
2
);
tv_D_1
.
setTextSize
(
BillListFontSize
/
2
);
tv_S_1
.
setTextSize
(
BillListFontSize
/
2
);
}
}
public
int
addFoodItem
(
OrderDetail
datasBean
)
{
int
addPosition
=
addPositionItem
(
datasBean
);
setSelectPosition
(
select_position
);
setIndex
();
setItemNo
(
datasBean
);
return
addPosition
;
}
public
int
addPositionItem
(
OrderDetail
addFoodBean
)
{
int
addPosition
=
select_position
;
boolean
upAdd
=
true
;
switch
(
addFoodBean
.
getItemType
())
{
case
1
:
addPosition
=
select_position
=
mInfos
.
size
();
break
;
case
2
:
addPosition
=
select_full_end_position
+
1
;
break
;
case
3
:
if
(
mInfos
.
get
(
select_position
).
getItemType
()
==
3
)
{
addPosition
=
select_end_position
+
1
;
select_position
=
addPosition
;
}
else
{
switch
(
mInfos
.
get
(
select_position
).
getItemType
())
{
case
1
:
if
(
hasChild3Food
(
mInfos
.
get
(
select_position
)))
{
addPosition
=
select_end_position
+
1
;
}
else
{
addPosition
=
select_position
+
1
;
upAdd
=
false
;
}
break
;
case
2
:
if
(
hasChildFood
(
mInfos
.
get
(
select_position
)))
{
addPosition
=
select_end_position
+
1
;
}
else
{
addPosition
=
select_position
+
1
;
upAdd
=
false
;
}
break
;
case
3
:
int
edgeIndex2
=
getChild2EdgeIndex
();
addPosition
=
edgeIndex2
+
1
;
select_position
=
addPosition
;
break
;
}
}
break
;
}
boolean
hasFoodDiscount
=
OrderDetail
.
hasFoodDiscount
(
mInfos
,
select_full_start_position
,
select_full_end_position
);
if
(
addPosition
>=
mInfos
.
size
())
{
if
(
addFoodBean
.
getType
()
!=
OrderDetail
.
DISCOUNT_TYPE
&&
hasFoodDiscount
&&
addFoodBean
.
getItemType
()
!=
1
&&
upAdd
)
{
//子食品添加到折扣上面
addPosition
=
mInfos
.
size
()
-
1
;
mInfos
.
add
(
addPosition
,
addFoodBean
);
}
else
{
mInfos
.
add
(
addFoodBean
);
}
}
else
{
if
(
addFoodBean
.
getType
()
!=
OrderDetail
.
DISCOUNT_TYPE
&&
hasFoodDiscount
&&
addFoodBean
.
getItemType
()
!=
1
&&
upAdd
)
{
//子食品添加到折扣上面
addPosition
-=
1
;
}
mInfos
.
add
(
addPosition
,
addFoodBean
);
}
return
addPosition
;
}
/**
* 長按刪除食品
*/
public
void
removeAllNewFoodItem
()
{
for
(
int
i
=
mInfos
.
size
()
-
1
;
i
>=
0
;
i
--)
{
OrderDetail
orderItem
=
mInfos
.
get
(
i
);
if
(
orderItem
!=
null
&&
orderItem
.
isNew
())
{
mInfos
.
remove
(
i
);
notifyItemChanged
(
i
);
// Food orderBean = mMealStandPresenter.getFoodByFid(orderItem.getId());
// if (orderBean != null) {
// mMealStandPresenter.setFoodMaxQty(orderBean);
// }
}
}
if
(
mInfos
.
size
()
==
0
)
{
//全部刪除
return
;
}
setIndex
();
setSelectPosition
(
select_position
);
mMealStandActivity
.
showViewModeVisibility
(
MealConstant
.
food_group_ViewMode
,
MealConstant
.
food_ViewMode
);
}
/**
* 根據下標刪除對應食品
*
* @param position
*/
public
void
removeItemByPosition
(
int
position
)
{
if
(
mInfos
.
size
()
>
position
)
{
mInfos
.
remove
(
position
);
notifyItemChanged
(
position
);
}
if
(
mInfos
.
size
()
==
0
)
{
//全部删除重置选中下标
select_position
=
-
1
;
}
else
{
if
(
select_position
==
mInfos
.
size
())
{
select_position
-=
1
;
}
}
setIndex
();
setSelectPosition
(
select_position
);
}
/**
* 删除食品
*/
public
int
removeFoodItem
()
{
removeIntactFoodItem
();
if
(
mInfos
.
size
()
==
0
)
{
//全部删除重置选中下标
select_position
=
-
1
;
}
else
{
if
(
select_position
==
mInfos
.
size
())
{
select_position
-=
1
;
}
}
setIndex
();
setSelectPosition
(
select_position
);
if
(
mMealStandActivity
!=
null
)
{
mMealStandActivity
.
showViewModeVisibility
(
MealConstant
.
food_group_ViewMode
,
MealConstant
.
food_ViewMode
);
}
return
select_position
;
}
/**
* 删除食品子项及折扣
*/
public
void
removeChildItem
()
{
OrderDetail
orderDetail
=
mInfos
.
get
(
select_position
);
if
(
select_position
>
-
1
)
{
switch
(
orderDetail
.
getItemType
())
{
case
1
:
//第一层下方有细项 从下方往上删
if
(
select_full_end_position
!=
0
&&
select_full_end_position
>
select_position
)
{
for
(
int
i
=
select_full_end_position
;
i
>
select_position
;
i
--)
{
OrderDetail
orderBean
=
mInfos
.
get
(
i
);
boolean
isParentChild
=
orderBean
.
getParentIndex
()
==
orderDetail
.
getMyIndex
();
if
(
orderBean
.
isNew
())
{
if
(
orderBean
.
getItemType
()
==
2
&&
!
isParentChild
)
{
//第二层下面有第三层子项也要一并删除
removeAllChild3ByCombo
(
orderBean
);
}
else
{
mInfos
.
remove
(
i
);
notifyItemChanged
(
i
);
}
break
;
}
}
}
else
{
//第一层没有子食品 直接退出
return
;
}
break
;
case
2
:
if
(
select_end_position
!=
0
&&
select_end_position
>
select_position
&&
hasChild3Food
(
orderDetail
))
{
//第二层 下面有第三层子项也要一并删除
for
(
int
i
=
select_end_position
;
i
>=
select_position
;
i
--)
{
if
(
mInfos
.
get
(
i
).
isNew
())
{
mInfos
.
remove
(
i
);
notifyItemChanged
(
i
);
break
;
}
}
}
else
{
if
(
mInfos
.
get
(
select_position
).
isNew
())
{
mInfos
.
remove
(
select_position
);
notifyItemChanged
(
select_position
);
}
}
break
;
case
3
:
if
(
mInfos
.
get
(
select_position
).
isNew
())
{
mInfos
.
remove
(
select_position
);
notifyItemChanged
(
select_position
);
}
break
;
}
}
if
(
select_position
>=
mInfos
.
size
())
{
select_position
=
mInfos
.
size
()
-
1
;
}
if
(
mInfos
.
size
()
==
0
)
{
//全部删除重置选中下标
select_position
=
-
1
;
}
else
{
switch
(
orderDetail
.
getItemType
())
{
case
1
:
break
;
case
2
:
int
comboIndex
=
getComboEdgeIndex
();
if
(
comboIndex
!=
(
orderDetail
.
getMyIndex
()
-
1
))
{
select_position
-=
1
;
}
else
{
if
(
select_position
==
mInfos
.
size
())
{
select_position
-=
1
;
}
}
break
;
case
3
:
int
edgeIndex
=
getChild2EdgeIndex
();
if
(
edgeIndex
!=
(
orderDetail
.
getMyIndex
()
-
1
))
{
select_position
-=
1
;
}
else
{
if
(
select_position
==
mInfos
.
size
())
{
select_position
-=
1
;
}
}
break
;
}
}
setIndex
();
setSelectPosition
(
select_position
);
}
private
void
removeIntactFoodItem
()
{
int
start_position
=
select_full_start_position
+
1
;
int
end_position
=
select_full_end_position
+
1
;
for
(
int
i
=
mInfos
.
size
()
-
1
;
i
>=
0
;
i
--)
{
int
my_index
=
mInfos
.
get
(
i
).
getMyIndex
();
if
(
start_position
<=
my_index
&&
my_index
<=
end_position
)
{
if
(
mInfos
.
get
(
i
).
isNew
())
{
mInfos
.
remove
(
i
);
notifyItemChanged
(
i
);
}
}
}
}
/**
* 删除第二层子食品下所有第三层备注
*
* @param orderDetail
* @return
*/
private
boolean
removeAllChild3ByCombo
(
OrderDetail
orderDetail
)
{
boolean
remove
=
false
;
for
(
int
i
=
mInfos
.
size
()
-
1
;
i
>=
0
;
i
--)
{
boolean
accordChild3
=
mInfos
.
get
(
i
).
getParentIndex
()
==
orderDetail
.
getParentIndex
()
||
mInfos
.
get
(
i
).
getMyIndex
()
==
orderDetail
.
getParentIndex
();
if
(
mInfos
.
get
(
i
).
getItemType
()
==
3
&&
accordChild3
)
{
mInfos
.
remove
(
i
);
notifyItemChanged
(
i
);
remove
=
true
;
}
}
return
remove
;
}
/**
* 获取食品第细项最后一个子项位置
*
* @return
*/
private
int
getChild2EdgeIndex
()
{
int
parent_index
=
getParentFoodIndex
(
mInfos
.
get
(
select_position
));
int
edgeIndex
=
parent_index
;
for
(
int
i
=
0
;
i
<
mInfos
.
size
();
i
++)
{
OrderDetail
datasBean
=
mInfos
.
get
(
i
);
if
(
datasBean
.
getItemType
()
==
3
&&
datasBean
.
getParentIndex
()
==
parent_index
)
{
edgeIndex
=
i
;
}
}
return
edgeIndex
;
}
/**
* 是否包含第三層細項
*
* @param orderDetail
* @return
*/
private
boolean
hasChild3Food
(
OrderDetail
orderDetail
)
{
if
(
orderDetail
.
getItemType
()
==
3
)
{
return
false
;
}
for
(
int
i
=
0
;
i
<
mInfos
.
size
();
i
++)
{
if
(
mInfos
.
get
(
i
).
getItemType
()
==
3
&&
mInfos
.
get
(
i
).
getParentIndex
()
==
orderDetail
.
getMyIndex
())
{
return
true
;
}
}
return
false
;
}
public
boolean
hasChildFood
(
OrderDetail
orderDetail
)
{
if
(
orderDetail
.
getItemType
()
==
3
)
{
return
false
;
}
for
(
int
i
=
0
;
i
<
mInfos
.
size
();
i
++)
{
if
(
mInfos
.
get
(
i
).
getParentIndex
()
==
orderDetail
.
getMyIndex
())
{
return
true
;
}
}
return
false
;
}
private
int
getParentFoodIndex
(
OrderDetail
foodBean
)
{
int
parent_index
=
0
;
if
(
foodBean
.
getItemType
()
==
1
)
{
parent_index
=
foodBean
.
getMyIndex
();
}
else
{
parent_index
=
foodBean
.
getParentIndex
();
}
return
parent_index
;
}
private
void
setItemNo
(
OrderDetail
foodBean
)
{
// switch (foodBean.getItemType()) {
// case 1:
//// foodBean.setTopId(foodBean.getProductId());
// break;
// case 2:
// case 3:
// long itemno = -1;
// if (select_position != -1 && select_position < mInfos.size()) {
// if (mInfos.get(select_position).isIsfood()) {
// itemno = mInfos.get(select_position).getProductId();
// } else {
// if (select_start_position != -1 && select_start_position < mInfos.size()) {
// itemno = mInfos.get(select_start_position).getProductId();
// }
// }
// }
// foodBean.setTopId(itemno);
// break;
// default:
// break;
// }
}
/**
* 设置关联父子项Index
*/
public
void
setIndex
()
{
// 调整myorder中的parent_index及my_index
int
parent_index
=
0
;
int
my_index
=
0
;
int
my_index2
=
0
;
int
t
=
0
;
// 调整myorder中的顺序位
// 获取旧项目的最后的seqno不是新项目开始
int
iseqno
=
1
;
int
isseq
=
0
;
int
imseq
=
0
;
for
(
int
i
=
0
;
i
<
mInfos
.
size
();
i
++)
{
OrderDetail
myorder
=
mInfos
.
get
(
i
);
t
=
t
+
1
;
if
(
myorder
!=
null
)
{
switch
(
myorder
.
getItemType
())
{
case
1
:
parent_index
=
parent_index
+
1
;
my_index
=
t
;
my_index2
=
t
;
myorder
.
setParentIndex
(
0
);
myorder
.
setMyIndex
(
t
);
break
;
case
2
:
myorder
.
setParentIndex
(
my_index
);
myorder
.
setMyIndex
(
t
);
my_index2
=
t
;
break
;
case
3
:
myorder
.
setParentIndex
(
my_index2
);
myorder
.
setMyIndex
(
t
);
break
;
}
}
}
}
public
void
setSelectPosition
(
int
position
)
{
if
(
position
==
-
1
)
return
;
select_position
=
position
;
int
startPos
=
select_position
;
int
endPos
=
select_position
;
mainStartPos
=
startPos
;
mainEndPos
=
endPos
;
if
(
select_position
>=
mInfos
.
size
())
{
select_position
=
mInfos
.
size
()
-
1
;
}
OrderDetail
myorder
=
mInfos
.
get
(
select_position
);
int
k
=
select_position
;
select_full_start_position
=
k
;
OrderDetail
checkOrder
=
mInfos
.
get
(
k
);
while
(
checkOrder
.
getItemType
()
!=
1
)
{
// checkOrder.selected=3;
select_full_start_position
=
k
;
k
=
k
-
1
;
if
(
k
>
-
1
)
{
checkOrder
=
mInfos
.
get
(
k
);
if
(
checkOrder
.
getItemType
()
==
1
)
{
// checkOrder.selected=3;
select_full_start_position
=
k
;
break
;
}
}
else
{
break
;
}
}
k
=
select_position
;
checkOrder
=
mInfos
.
get
(
k
);
if
(
checkOrder
.
getItemType
()
==
1
)
{
select_full_end_position
=
k
;
k
=
k
+
1
;
if
(
k
<
mInfos
.
size
())
{
checkOrder
=
mInfos
.
get
(
k
);
}
}
while
(
checkOrder
.
getItemType
()
!=
1
)
{
// checkOrder.setSelected(3);
select_full_end_position
=
k
;
k
=
k
+
1
;
if
(
k
<
mInfos
.
size
())
{
checkOrder
=
mInfos
.
get
(
k
);
}
else
{
break
;
}
}
if
(
resetMultipleSelected
())
{
//再次點擊直接恢復
notifyDataSetChanged
();
return
;
}
while
(
checkOrder
.
getItemType
()
!=
1
)
{
checkOrder
.
setSelected
(
3
);
if
(
k
<
mInfos
.
size
())
{
checkOrder
=
mInfos
.
get
(
k
);
}
else
{
break
;
}
}
k
=
select_position
;
checkOrder
=
mInfos
.
get
(
k
);
if
(
checkOrder
.
getComboLevel
()
==
2
)
{
for
(
int
v
=
k
;
v
>=
0
;
v
--)
{
if
(
mInfos
.
get
(
v
).
getItemType
()
<
checkOrder
.
getItemType
())
{
mainStartPos
=
v
;
break
;
}
}
}
else
{
if
(
checkOrder
.
isIsfood
())
{
checkOrder
.
setSelected
(
1
);
mainStartPos
=
k
;
k
=
k
-
1
;
if
(
k
>
-
1
)
{
checkOrder
=
mInfos
.
get
(
k
);
}
}
while
(!
checkOrder
.
isIsfood
()
&&
checkOrder
.
getItemType
()
<=
myorder
.
getItemType
())
{
if
(
checkOrder
.
getItemType
()
<
3
&&
checkOrder
.
getItemType
()
==
myorder
.
getItemType
())
{
break
;
}
checkOrder
.
setSelected
(
2
);
k
=
k
-
1
;
if
(
k
>
-
1
)
{
checkOrder
=
mInfos
.
get
(
k
);
if
(
checkOrder
.
getItemType
()
<
3
&&
checkOrder
.
getItemType
()
==
myorder
.
getItemType
())
{
break
;
}
if
(
checkOrder
.
isIsfood
())
{
checkOrder
.
setSelected
(
1
);
mainStartPos
=
k
;
}
}
else
{
break
;
}
}
}
k
=
select_position
;
checkOrder
=
mInfos
.
get
(
k
);
if
(
checkOrder
.
isIsfood
()
||
checkOrder
.
getProp
()
==
OrderDetail
.
FOOD_TYPE
)
{
mainEndPos
=
k
;
k
=
k
+
1
;
if
(
k
<
mInfos
.
size
())
{
checkOrder
=
mInfos
.
get
(
k
);
}
}
OrderDetail
check_Order
=
checkOrder
;
while
(!
checkOrder
.
isIsfood
()
||
check_Order
.
getComboLevel
()
==
2
)
{
if
(
check_Order
.
getComboLevel
()
==
2
)
{
if
(
checkOrder
.
getItemType
()
==
1
)
{
break
;
}
}
else
{
if
(
checkOrder
.
getItemType
()
<
3
&&
checkOrder
.
getItemType
()
==
myorder
.
getItemType
())
{
break
;
}
}
mainEndPos
=
k
;
k
=
k
+
1
;
if
(
k
<
mInfos
.
size
())
{
checkOrder
=
mInfos
.
get
(
k
);
}
else
{
break
;
}
}
// if (mMealStandActivity == null || mMealStandActivity.isMultipleSelectionMode()) {
// for (int v = 0; v < mainStartPos; v++) {
// if (v < mInfos.size()) {
// mInfos.get(v).setSelected(0);
// }
// }
// for (int v = mainEndPos + 1; v < mInfos.size(); v++) {
// mInfos.get(v).setSelected(0);
// }
// } else {
// for (int v = 0; v < mainStartPos; v++) {
// if (v < mInfos.size()) {
// mInfos.get(v).setSelected(0);
// }
// }
// for (int v = mainEndPos + 1; v < mInfos.size(); v++) {
// mInfos.get(v).setSelected(0);
// }
// }
if
(
selectedMode
==
MULTIPLE_SELECTED
)
{
//
}
else
{
//重置未選中的食品狀態(單選)
for
(
int
v
=
0
;
v
<
mainStartPos
;
v
++)
{
if
(
v
<
mInfos
.
size
())
{
mInfos
.
get
(
v
).
setSelected
(
0
);
}
}
for
(
int
v
=
mainEndPos
+
1
;
v
<
mInfos
.
size
();
v
++)
{
mInfos
.
get
(
v
).
setSelected
(
0
);
}
}
if
(
mainStartPos
>=
mInfos
.
size
())
{
mainStartPos
=
mInfos
.
size
()
-
1
;
}
OrderDetail
order
=
mInfos
.
get
(
mainStartPos
);
if
(
order
.
getItemType
()
!=
1
)
{
for
(
int
v
=
mainStartPos
;
v
>=
0
;
v
--)
{
if
(
mInfos
.
get
(
v
).
getItemType
()
!=
1
)
{
mInfos
.
get
(
v
).
setSelected
(
1
);
}
else
{
mInfos
.
get
(
v
).
setSelected
(
1
);
break
;
}
}
}
for
(
int
v
=
mainStartPos
+
1
;
v
<
mInfos
.
size
();
v
++)
{
if
(
mInfos
.
get
(
v
).
getItemType
()
!=
1
)
{
mInfos
.
get
(
v
).
setSelected
(
1
);
}
else
{
break
;
}
}
for
(
int
v
=
mainStartPos
;
v
<=
mainEndPos
;
v
++)
{
if
(
v
<
mInfos
.
size
())
{
mInfos
.
get
(
v
).
setSelected
(
1
);
}
}
mInfos
.
get
(
select_position
).
setSelected
(
2
);
if
(
select_position
<
mainEndPos
)
{
for
(
int
v
=
select_position
+
1
;
v
<=
mainEndPos
;
v
++)
{
if
(
v
<
mInfos
.
size
())
{
if
(
mInfos
.
get
(
v
).
getItemType
()
<=
mInfos
.
get
(
select_position
).
getItemType
())
{
break
;
}
if
(
mInfos
.
get
(
v
).
getItemType
()
!=
3
)
{
break
;
}
if
(
mInfos
.
get
(
v
).
getItemType
()
==
3
)
{
mInfos
.
get
(
v
).
setSelected
(
2
);
}
}
}
}
select_start_position
=
mainStartPos
;
select_end_position
=
mainEndPos
;
if
(
mOnItemClickListener
!=
null
)
{
mOnItemClickListener
.
onCurrentOrderDetail
(
mInfos
.
get
(
select_position
),
select_position
);
}
notifyDataSetChanged
();
}
/**
* 重置已選中食品(多選)
*/
public
boolean
resetMultipleSelected
()
{
boolean
reset
=
false
;
if
(
selectedMode
==
MULTIPLE_SELECTED
)
{
for
(
int
i
=
0
;
i
<
mInfos
.
size
();
i
++)
{
OrderDetail
datasBean
=
mInfos
.
get
(
i
);
if
(
select_full_start_position
<=
i
&&
i
<=
select_full_end_position
&&
datasBean
.
getSelected
()
!=
0
)
{
reset
=
true
;
datasBean
.
setSelected
(
0
);
}
}
}
return
reset
;
}
/**
* 获取食品子项最后一个子项位置
*
* @return
*/
private
int
getComboEdgeIndex
()
{
int
parent_index
=
getParentFoodIndex
(
mInfos
.
get
(
select_position
));
int
edgeIndex
=
parent_index
;
for
(
int
i
=
0
;
i
<
mInfos
.
size
();
i
++)
{
OrderDetail
datasBean
=
mInfos
.
get
(
i
);
if
(
datasBean
.
getItemType
()
==
2
&&
datasBean
.
getParentIndex
()
==
parent_index
)
{
edgeIndex
=
i
;
}
}
return
edgeIndex
;
}
public
boolean
canDeleteFood
()
{
boolean
can
=
false
;
for
(
OrderDetail
item
:
mInfos
)
{
if
(
item
.
getSelected
()
!=
0
)
{
can
=
true
;
}
}
if
(
mInfos
.
size
()
==
0
||
select_position
>=
mInfos
.
size
())
{
can
=
false
;
}
return
can
;
}
public
boolean
canDeleteChildItem
()
{
int
start_position
=
select_full_start_position
;
int
end_position
=
select_full_end_position
;
for
(
int
i
=
mInfos
.
size
()
-
1
;
i
>=
0
;
i
--)
{
if
(
start_position
<=
i
&&
i
<=
end_position
)
{
if
(
mInfos
.
get
(
i
).
isNew
())
{
return
true
;
}
}
}
return
false
;
}
public
List
<
OrderDetail
>
getInfos
()
{
return
mInfos
;
}
public
int
getSelect_position
()
{
return
select_position
;
}
public
void
setSelect_position
(
int
select_position
)
{
this
.
select_position
=
select_position
;
}
public
void
setSelect_end_position
(
int
select_end_position
)
{
this
.
select_end_position
=
select_end_position
;
}
public
int
getSelect_start_position
()
{
return
select_start_position
;
}
public
int
getSelect_end_position
()
{
return
select_end_position
;
}
public
int
getSelect_full_start_position
()
{
return
select_full_start_position
;
}
public
int
getSelect_full_end_position
()
{
return
select_full_end_position
;
}
public
int
getMainStartPos
()
{
return
mainStartPos
;
}
public
int
getMainEndPos
()
{
return
mainEndPos
;
}
public
int
getSelectedMode
()
{
return
selectedMode
;
}
public
void
setSelectedMode
(
int
selectedMode
)
{
this
.
selectedMode
=
selectedMode
;
}
public
OrderDetail
getCurrentOrderDetail
()
{
if
(
select_position
!=
-
1
&&
mInfos
.
size
()
>
select_position
)
{
return
mInfos
.
get
(
select_position
);
}
else
{
return
null
;
}
}
public
OrderDetail
getCurrentMainOrderDetail
()
{
if
(
select_full_start_position
!=
-
1
&&
mInfos
.
size
()
>
select_full_start_position
)
{
return
mInfos
.
get
(
select_full_start_position
);
}
else
{
return
null
;
}
}
private
OnItemClickListener
mOnItemClickListener
;
public
void
setOnItemClickListener
(
OnItemClickListener
onItemClickListener
)
{
mOnItemClickListener
=
onItemClickListener
;
}
public
interface
OnItemClickListener
{
void
onItemClick
(
OrderDetail
datasBean
,
int
position
);
void
onMealCountDelete
(
OrderDetail
datasBean
,
int
position
);
void
onMealCountAdd
(
OrderDetail
datasBean
,
int
position
);
void
onCurrentOrderDetail
(
OrderDetail
datasBean
,
int
position
);
}
}
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/fragment/mealstand/MealDiscountFragment.java
View file @
3f6c41b6
...
@@ -100,14 +100,14 @@ public class MealDiscountFragment extends BaseFragment<MealDiscountPresenter> im
...
@@ -100,14 +100,14 @@ public class MealDiscountFragment extends BaseFragment<MealDiscountPresenter> im
private
void
initViewPager
()
{
private
void
initViewPager
()
{
List
<
Fragment
>
mF
ragments
=
new
ArrayList
<>();
List
<
Fragment
>
f
ragments
=
new
ArrayList
<>();
mF
ragments
.
add
(
NomalDiscountFragment
.
newInstance
());
f
ragments
.
add
(
NomalDiscountFragment
.
newInstance
());
mF
ragments
.
add
(
CouponFragment
.
newInstance
());
f
ragments
.
add
(
CouponFragment
.
newInstance
());
//实例化适配器
//实例化适配器
TabFragmentAdapter
mTabFragmentAdapter
=
new
TabFragmentAdapter
(
getParentFragmentManager
(),
1
);
TabFragmentAdapter
mTabFragmentAdapter
=
new
TabFragmentAdapter
(
getParentFragmentManager
(),
1
);
//设置加载的Fragment集合
//设置加载的Fragment集合
mTabFragmentAdapter
.
setFragments
(
mF
ragments
);
mTabFragmentAdapter
.
setFragments
(
f
ragments
);
//设置Viewpager的适配器
//设置Viewpager的适配器
viewPager
.
setAdapter
(
mTabFragmentAdapter
);
viewPager
.
setAdapter
(
mTabFragmentAdapter
);
//TabLayout绑定ViewPager
//TabLayout绑定ViewPager
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/fragment/mealstand/SetMealFragment.java
View file @
3f6c41b6
...
@@ -3,6 +3,7 @@ package com.gingersoft.gsa.cloud.table.mvp.ui.fragment.mealstand;
...
@@ -3,6 +3,7 @@ package com.gingersoft.gsa.cloud.table.mvp.ui.fragment.mealstand;
import
android.content.Intent
;
import
android.content.Intent
;
import
android.os.Build
;
import
android.os.Build
;
import
android.os.Bundle
;
import
android.os.Bundle
;
import
android.text.TextUtils
;
import
android.util.SparseArray
;
import
android.util.SparseArray
;
import
android.view.LayoutInflater
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.View
;
...
@@ -11,6 +12,7 @@ import android.view.ViewStub;
...
@@ -11,6 +12,7 @@ import android.view.ViewStub;
import
android.widget.Button
;
import
android.widget.Button
;
import
android.widget.FrameLayout
;
import
android.widget.FrameLayout
;
import
android.widget.ImageButton
;
import
android.widget.ImageButton
;
import
android.widget.ImageView
;
import
android.widget.LinearLayout
;
import
android.widget.LinearLayout
;
import
android.widget.TextView
;
import
android.widget.TextView
;
...
@@ -28,7 +30,9 @@ import com.gingersoft.gsa.cloud.app.GsaCloudApplication;
...
@@ -28,7 +30,9 @@ import com.gingersoft.gsa.cloud.app.GsaCloudApplication;
import
com.gingersoft.gsa.cloud.common.constans.FoodSummaryConstans
;
import
com.gingersoft.gsa.cloud.common.constans.FoodSummaryConstans
;
import
com.gingersoft.gsa.cloud.common.constans.MealConstant
;
import
com.gingersoft.gsa.cloud.common.constans.MealConstant
;
import
com.gingersoft.gsa.cloud.common.core.member.MemberInfo
;
import
com.gingersoft.gsa.cloud.common.core.member.MemberInfo
;
import
com.gingersoft.gsa.cloud.common.core.table.TableBean
;
import
com.gingersoft.gsa.cloud.common.logan.LoganManager
;
import
com.gingersoft.gsa.cloud.common.logan.LoganManager
;
import
com.gingersoft.gsa.cloud.common.utils.okhttpUtils.OkHttp3Utils
;
import
com.gingersoft.gsa.cloud.common.utils.other.SPUtils
;
import
com.gingersoft.gsa.cloud.common.utils.other.SPUtils
;
import
com.gingersoft.gsa.cloud.component.ComponentName
;
import
com.gingersoft.gsa.cloud.component.ComponentName
;
import
com.gingersoft.gsa.cloud.database.bean.ComboItem
;
import
com.gingersoft.gsa.cloud.database.bean.ComboItem
;
...
@@ -45,6 +49,7 @@ import com.gingersoft.gsa.cloud.table.di.component.DaggerSetMealComponent;
...
@@ -45,6 +49,7 @@ import com.gingersoft.gsa.cloud.table.di.component.DaggerSetMealComponent;
import
com.gingersoft.gsa.cloud.table.mvp.contract.SetMealContract
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.SetMealContract
;
import
com.gingersoft.gsa.cloud.table.mvp.presenter.mealstand.SetMealPresenter
;
import
com.gingersoft.gsa.cloud.table.mvp.presenter.mealstand.SetMealPresenter
;
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.activity.MealStandActivity2
;
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.meal.ComboAdapter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.ComboAdapter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.FoodAdapter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.FoodAdapter
;
...
@@ -56,6 +61,9 @@ import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.discount.CouponFragment;
...
@@ -56,6 +61,9 @@ import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.discount.CouponFragment;
import
com.gingersoft.gsa.cloud.table.mvp.ui.fragment.discount.NomalDiscountFragment
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.fragment.discount.NomalDiscountFragment
;
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.adapter.TabFragmentAdapter
;
import
com.gingersoft.gsa.cloud.ui.adapter.TabFragmentAdapter
;
import
com.gingersoft.gsa.cloud.ui.recylcler.Indicator.PagerConfig
;
import
com.gingersoft.gsa.cloud.ui.recylcler.Indicator.PagerGridLayoutManager
;
import
com.gingersoft.gsa.cloud.ui.recylcler.Indicator.PagerGridSnapHelper
;
import
com.gingersoft.gsa.cloud.ui.view.MyTableView
;
import
com.gingersoft.gsa.cloud.ui.view.MyTableView
;
import
com.jess.arms.base.BaseFragment
;
import
com.jess.arms.base.BaseFragment
;
import
com.jess.arms.base.DefaultAdapter
;
import
com.jess.arms.base.DefaultAdapter
;
...
@@ -92,7 +100,7 @@ import static com.jess.arms.utils.Preconditions.checkNotNull;
...
@@ -92,7 +100,7 @@ import static com.jess.arms.utils.Preconditions.checkNotNull;
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
* ================================================
*/
*/
public
class
SetMealFragment
extends
BaseFragment
<
SetMealPresenter
>
implements
SetMealContract
.
View
{
public
class
SetMealFragment
extends
BaseFragment
<
SetMealPresenter
>
implements
SetMealContract
.
View
,
PagerGridLayoutManager
.
PageListener
{
@BindView
(
R2
.
id
.
btn_table
)
@BindView
(
R2
.
id
.
btn_table
)
Button
btnTable
;
Button
btnTable
;
...
@@ -131,8 +139,8 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
...
@@ -131,8 +139,8 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
@BindView
(
R2
.
id
.
ll_meals
)
@BindView
(
R2
.
id
.
ll_meals
)
LinearLayout
llMeals
;
LinearLayout
llMeals
;
@BindView
(
R2
.
id
.
fl_container
)
//
@BindView(R2.id.fl_container)
FrameLayout
flContainer
;
//
FrameLayout flContainer;
@BindView
(
R2
.
id
.
rv_food_group
)
@BindView
(
R2
.
id
.
rv_food_group
)
RecyclerView
rvFoodGroup
;
RecyclerView
rvFoodGroup
;
...
@@ -145,16 +153,12 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
...
@@ -145,16 +153,12 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
@BindView
(
R2
.
id
.
vb_combo_modifier
)
@BindView
(
R2
.
id
.
vb_combo_modifier
)
ViewStub
vbComboModifier
;
ViewStub
vbComboModifier
;
@BindView
(
R2
.
id
.
scroll_combo
)
RecyclerView
rvCombo
;
RecyclerView
rvCombo
;
@BindView
(
R2
.
id
.
rv_modifier
)
RecyclerView
rvModifier
;
RecyclerView
rvModifier
;
@BindView
(
R2
.
id
.
vb_fine
)
@BindView
(
R2
.
id
.
vb_fine
)
ViewStub
vbFine
;
ViewStub
vbFine
;
@BindView
(
R2
.
id
.
tab_fine
)
MyTableView
tabLayoutFine
;
MyTableView
tabLayoutFine
;
@BindView
(
R2
.
id
.
pager_fine
)
ViewPager
viewPagerFine
;
ViewPager
viewPagerFine
;
// @Inject
// @Inject
...
@@ -193,7 +197,7 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
...
@@ -193,7 +197,7 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
private
SparseArray
<
View
>
map
=
new
SparseArray
<>(
10
);
private
SparseArray
<
View
>
map
=
new
SparseArray
<>(
10
);
private
MealStandActivity
mActivity
;
private
MealStandActivity
2
mActivity
;
public
static
final
byte
FOOD_LAYOUT
=
1
;
public
static
final
byte
FOOD_LAYOUT
=
1
;
public
static
final
byte
COMBO_LAYOUT
=
2
;
public
static
final
byte
COMBO_LAYOUT
=
2
;
public
static
final
byte
FINE_LAYOUT
=
3
;
public
static
final
byte
FINE_LAYOUT
=
3
;
...
@@ -204,6 +208,16 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
...
@@ -204,6 +208,16 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
private
int
mCurrentViewMode
;
private
int
mCurrentViewMode
;
private
boolean
isPluMode
=
false
;
private
boolean
isPluMode
=
false
;
/**
* 是否已初始化 已送單的折扣
*/
private
boolean
initSentOrderDiscount
=
false
;
private
ImageView
[]
ivPoints
;
private
int
mPageIndex
;
private
int
totalPage
;
private
int
foodGroupRow
=
2
;
private
int
foodGroupRow
=
2
;
private
int
foodGroupColumn
=
6
;
private
int
foodGroupColumn
=
6
;
private
int
foodColumn
=
4
;
private
int
foodColumn
=
4
;
...
@@ -232,7 +246,7 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
...
@@ -232,7 +246,7 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
@Override
@Override
public
void
initData
(
@Nullable
Bundle
savedInstanceState
)
{
public
void
initData
(
@Nullable
Bundle
savedInstanceState
)
{
mActivity
=
(
MealStandActivity
)
_mActivity
;
mActivity
=
(
MealStandActivity
2
)
_mActivity
;
initUIStyleConfiguration
();
initUIStyleConfiguration
();
initViewMap
();
initViewMap
();
...
@@ -241,6 +255,15 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
...
@@ -241,6 +255,15 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
initFoodItemClickListener
();
initFoodItemClickListener
();
}
}
@Override
public
void
onResume
()
{
super
.
onResume
();
mPresenter
.
resetSelected
();
mPresenter
.
updateOrderFoodNumber
();
mPresenter
.
updateFoodSoldoutCtrData
();
initTableInfo
();
}
private
void
initUIStyleConfiguration
()
{
private
void
initUIStyleConfiguration
()
{
foodGroupColumn
=
GsaCloudApplication
.
uiStyleConfiguration
.
getFoodGroupColumnValue
();
foodGroupColumn
=
GsaCloudApplication
.
uiStyleConfiguration
.
getFoodGroupColumnValue
();
foodGroupRow
=
GsaCloudApplication
.
uiStyleConfiguration
.
getFoodGroupRowValue
();
foodGroupRow
=
GsaCloudApplication
.
uiStyleConfiguration
.
getFoodGroupRowValue
();
...
@@ -256,6 +279,18 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
...
@@ -256,6 +279,18 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
map
.
put
(
MealConstant
.
fine_ViewMode
,
vbFine
);
map
.
put
(
MealConstant
.
fine_ViewMode
,
vbFine
);
}
}
private
void
initTableInfo
()
{
TableBean
.
DataBean
dataBean
=
DoshokuOrder
.
getInstance
().
getOpenTableInfo
();
if
(
dataBean
!=
null
)
{
if
(
TextUtils
.
isEmpty
(
dataBean
.
getTableNumber
()))
{
btnTable
.
setText
(
dataBean
.
getTableName
());
}
else
{
btnTable
.
setText
(
dataBean
.
getTableName
());
}
btnNumberman
.
setText
(
"人數:"
+
dataBean
.
getPerson
()
+
""
);
}
}
@Subscriber
(
tag
=
SET_CURR_LAYOUT_EVENT
,
mode
=
ThreadMode
.
MAIN
)
@Subscriber
(
tag
=
SET_CURR_LAYOUT_EVENT
,
mode
=
ThreadMode
.
MAIN
)
private
void
setCurrLayout
(
byte
layout
)
{
private
void
setCurrLayout
(
byte
layout
)
{
mCurrLayout
=
layout
;
mCurrLayout
=
layout
;
...
@@ -275,7 +310,8 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
...
@@ -275,7 +310,8 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
private
void
showComboModifierLayout
()
{
private
void
showComboModifierLayout
()
{
try
{
try
{
View
vsContent
=
vbComboModifier
.
inflate
();
View
vsContent
=
vbComboModifier
.
inflate
();
ButterKnife
.
bind
(
this
,
vsContent
);
rvCombo
=
vsContent
.
findViewById
(
R
.
id
.
rv_combo
);
rvModifier
=
vsContent
.
findViewById
(
R
.
id
.
rv_modifier
);
initComboAdapter
();
initComboAdapter
();
initComboLayoutManager
();
initComboLayoutManager
();
initComboItemClickListener
();
initComboItemClickListener
();
...
@@ -288,7 +324,8 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
...
@@ -288,7 +324,8 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
private
void
showFineLayout
()
{
private
void
showFineLayout
()
{
try
{
try
{
View
vsContent
=
vbFine
.
inflate
();
View
vsContent
=
vbFine
.
inflate
();
ButterKnife
.
bind
(
this
,
vsContent
);
tabLayoutFine
=
vsContent
.
findViewById
(
R
.
id
.
tab_fine
);
viewPagerFine
=
vsContent
.
findViewById
(
R
.
id
.
pager_fine
);
initFineViewPager
();
initFineViewPager
();
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
}
finally
{
}
finally
{
...
@@ -318,6 +355,7 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
...
@@ -318,6 +355,7 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
}
}
private
void
initFoodAdapter
()
{
private
void
initFoodAdapter
()
{
mPresenter
.
initSelectMealAdapter
(
rvSelectMeal
);
if
(
mFoodGroupAdapter
!=
null
)
{
if
(
mFoodGroupAdapter
!=
null
)
{
rvFoodGroup
.
setAdapter
(
mFoodGroupAdapter
);
rvFoodGroup
.
setAdapter
(
mFoodGroupAdapter
);
}
}
...
@@ -341,7 +379,6 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
...
@@ -341,7 +379,6 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
mActivity
.
recordOperat
(
true
);
mActivity
.
recordOperat
(
true
);
mPresenter
.
foodItemClick
(
datasBean
);
mPresenter
.
foodItemClick
(
datasBean
);
LoganManager
.
w_tableMode
(
TAG
,
LoganManager
.
EVENT_ADD
+
"食品【"
+
datasBean
.
getFoodName
()
+
"】"
);
LoganManager
.
w_tableMode
(
TAG
,
LoganManager
.
EVENT_ADD
+
"食品【"
+
datasBean
.
getFoodName
()
+
"】"
);
}
}
});
});
}
}
...
@@ -421,7 +458,7 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
...
@@ -421,7 +458,7 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
@Override
@Override
public
void
setFoodGroupRecycleSpanCount
(
int
size
)
{
public
void
setFoodGroupRecycleSpanCount
(
int
size
)
{
notifyFoodGroupAdapter
();
}
}
@Override
@Override
...
@@ -434,6 +471,7 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
...
@@ -434,6 +471,7 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
//只有一行就使用水平显示以免不能占满
//只有一行就使用水平显示以免不能占满
mFoodRecycleLayoutManager
.
setOrientation
(
LinearLayoutManager
.
HORIZONTAL
);
mFoodRecycleLayoutManager
.
setOrientation
(
LinearLayoutManager
.
HORIZONTAL
);
}
}
notifyFoodAdapter
();
}
}
}
}
...
@@ -443,6 +481,7 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
...
@@ -443,6 +481,7 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
// if (size > comboRow) {
// if (size > comboRow) {
mComboRecycleLayoutManager
.
get
().
setOrientation
(
LinearLayoutManager
.
VERTICAL
);
mComboRecycleLayoutManager
.
get
().
setOrientation
(
LinearLayoutManager
.
VERTICAL
);
mComboRecycleLayoutManager
.
get
().
setSpanCount
(
comboColumn
);
mComboRecycleLayoutManager
.
get
().
setSpanCount
(
comboColumn
);
notifyComboAdapterAdapter
();
// } else if (size <= ComboColCount) {
// } else if (size <= ComboColCount) {
// } else {
// } else {
// //只有一行就使用水平显示以免不能占满
// //只有一行就使用水平显示以免不能占满
...
@@ -456,6 +495,7 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
...
@@ -456,6 +495,7 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
if
(
size
>
0
)
{
if
(
size
>
0
)
{
mModifierRecycleLayoutManager
.
get
().
setOrientation
(
LinearLayoutManager
.
VERTICAL
);
mModifierRecycleLayoutManager
.
get
().
setOrientation
(
LinearLayoutManager
.
VERTICAL
);
mModifierRecycleLayoutManager
.
get
().
setSpanCount
(
modColumn
);
mModifierRecycleLayoutManager
.
get
().
setSpanCount
(
modColumn
);
notifyModifierAdapterAdapter
();
}
}
}
}
...
@@ -507,7 +547,7 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
...
@@ -507,7 +547,7 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
@Override
@Override
public
void
setOrderFoodCount
(
String
number
)
{
public
void
setOrderFoodCount
(
String
number
)
{
getActivity2
().
setOrderFoodCount
(
number
);
}
}
@Override
@Override
...
@@ -520,9 +560,9 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
...
@@ -520,9 +560,9 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
isPluMode
=
(
boolean
)
SPUtils
.
get
(
MealConstant
.
EXIT_IS_PLU_MODE
,
false
);
isPluMode
=
(
boolean
)
SPUtils
.
get
(
MealConstant
.
EXIT_IS_PLU_MODE
,
false
);
if
(
isPluMode
)
{
if
(
isPluMode
)
{
showViewModeVisibility
(
MealConstant
.
ViewMode_keys
);
showViewModeVisibility
(
MealConstant
.
ViewMode_keys
);
btnFid
.
setBackgroundColor
(
ArmsUtils
.
getColor
(
mContext
,
R
.
color
.
theme_hint_color
));
btnFid
.
setBackgroundColor
(
ArmsUtils
.
getColor
(
mContext
,
R
.
color
.
theme_hint_color
));
}
else
{
}
else
{
btnFid
.
setBackground
(
ArmsUtils
.
getDrawablebyResource
(
mContext
,
R
.
drawable
.
ui_selector_item_background
));
btnFid
.
setBackground
(
ArmsUtils
.
getDrawablebyResource
(
mContext
,
R
.
drawable
.
ui_selector_item_background
));
}
}
}
}
...
@@ -530,7 +570,7 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
...
@@ -530,7 +570,7 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
public
void
resetPluMode
()
{
public
void
resetPluMode
()
{
isPluMode
=
false
;
isPluMode
=
false
;
SPUtils
.
put
(
MealConstant
.
EXIT_IS_PLU_MODE
,
false
);
SPUtils
.
put
(
MealConstant
.
EXIT_IS_PLU_MODE
,
false
);
btnFid
.
setBackground
(
ArmsUtils
.
getDrawablebyResource
(
mContext
,
R
.
drawable
.
ui_selector_item_background
));
btnFid
.
setBackground
(
ArmsUtils
.
getDrawablebyResource
(
mContext
,
R
.
drawable
.
ui_selector_item_background
));
}
}
@Override
@Override
...
@@ -539,6 +579,70 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
...
@@ -539,6 +579,70 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
}
}
@Override
@Override
public
void
resetSelect
(
int
position
,
Food
datasBean
)
{
mFoodAdapter
.
resetSelect
(
position
,
datasBean
);
}
@Override
public
void
initFoodGroupAdapter
(
List
<
Food
>
foodGroupList
)
{
//总的页数向上取整
totalPage
=
(
int
)
Math
.
ceil
(
foodGroupList
.
size
()
*
1.0
/
(
foodGroupColumn
*
foodGroupRow
));
int
rows
=
foodGroupRow
;
if
(
foodGroupList
.
size
()
<=
foodGroupColumn
)
{
rows
=
1
;
}
if
(
rows
==
0
)
{
rows
=
2
;
}
PagerGridLayoutManager
mLayoutManager
=
new
PagerGridLayoutManager
(
rows
,
foodGroupColumn
,
PagerGridLayoutManager
.
HORIZONTAL
);
//水平分页布局管理器
mLayoutManager
.
setPageListener
(
this
);
//设置页面变化监听器
rvFoodGroup
.
setLayoutManager
(
mLayoutManager
);
//设置滚动辅助工具
PagerGridSnapHelper
pageSnapHelper
=
new
PagerGridSnapHelper
();
pageSnapHelper
.
attachToRecyclerView
(
rvFoodGroup
);
// 如果需要查看调试日志可以设置为true,一般情况忽略即可
PagerConfig
.
setShowLog
(
true
);
mFoodGroupAdapter
.
setFoodGroupList
(
foodGroupList
);
rvFoodGroup
.
setAdapter
(
mFoodGroupAdapter
);
mFoodGroupAdapter
.
setOnItemClickListener
(
new
FoodGroupAdapter
.
OnItemClickListener
()
{
@Override
public
void
onItemClick
(
Food
datasBean
,
int
position
)
{
recordOperat
(
true
);
mPresenter
.
foodGroupItemClick
(
datasBean
);
}
});
int
foodGroupBtnHeight
=
GsaCloudApplication
.
uiStyleConfiguration
.
getFoodGroupBtnHeightValue
();
int
mParentColHeight
=
foodGroupBtnHeight
*
rows
;
//设置ViewPager适配器
rvFoodGroup
.
setLayoutParams
(
new
LinearLayout
.
LayoutParams
(
ViewGroup
.
LayoutParams
.
MATCH_PARENT
,
mParentColHeight
));
//添加小圆点
ivPoints
=
new
ImageView
[
totalPage
];
for
(
int
i
=
0
;
i
<
totalPage
;
i
++)
{
//循坏加入点点图片组
ivPoints
[
i
]
=
new
ImageView
(
_mActivity
);
if
(
i
==
0
)
{
ivPoints
[
i
].
setImageResource
(
R
.
drawable
.
meal_food_group_point_focuese
);
}
else
{
ivPoints
[
i
].
setImageResource
(
R
.
drawable
.
meal_food_group_point_unfocused
);
}
LinearLayout
.
LayoutParams
lp
=
new
LinearLayout
.
LayoutParams
(
ArmsUtils
.
dip2px
(
mContext
,
20
),
ArmsUtils
.
dip2px
(
mContext
,
12
));
lp
.
leftMargin
=
ArmsUtils
.
dip2px
(
mContext
,
5
);
ivPoints
[
i
].
setLayoutParams
(
lp
);
ivPoints
[
i
].
setPadding
(
0
,
0
,
0
,
0
);
llFoodGroupPoint
.
addView
(
ivPoints
[
i
]);
}
if
(
foodGroupList
.
size
()
>
(
rows
*
foodGroupColumn
))
{
llFoodGroupPoint
.
setVisibility
(
View
.
VISIBLE
);
}
else
{
llFoodGroupPoint
.
setVisibility
(
View
.
GONE
);
}
}
@Override
public
void
returnFoodGroupList
(
List
<
Food
>
foodGroupList
)
{
public
void
returnFoodGroupList
(
List
<
Food
>
foodGroupList
)
{
}
}
...
@@ -559,8 +663,28 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
...
@@ -559,8 +663,28 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
}
}
@Override
@Override
public
MealStandActivity
getActivity2
()
{
public
void
notifyFoodGroupAdapter
()
{
return
(
MealStandActivity
)
_mActivity
;
mFoodGroupAdapter
.
notifyDataSetChanged
();
}
@Override
public
void
notifyFoodAdapter
()
{
mFoodAdapter
.
notifyDataSetChanged
();
}
@Override
public
void
notifyComboAdapterAdapter
()
{
mComboAdapter
.
get
().
notifyDataSetChanged
();
}
@Override
public
void
notifyModifierAdapterAdapter
()
{
mModifierAdapter
.
get
().
notifyDataSetChanged
();
}
@Override
public
MealStandActivity2
getActivity2
()
{
return
(
MealStandActivity2
)
_mActivity
;
}
}
@Override
@Override
...
@@ -583,10 +707,7 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
...
@@ -583,10 +707,7 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
}
}
class
OnClickListenter
{
@OnLongClick
({
R2
.
id
.
btn_meal_delete
})
@OnLongClick
({
R2
.
id
.
btn_meal_delete
,
R2
.
id
.
btn_order_printer
})
public
boolean
onLongClick1
(
View
view
)
{
public
boolean
onLongClick1
(
View
view
)
{
//记录操作 并且震动
//记录操作 并且震动
...
@@ -603,18 +724,20 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
...
@@ -603,18 +724,20 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
@OnClick
(
R2
.
id
.
btn_meal_discount
)
@OnClick
(
R2
.
id
.
btn_meal_discount
)
void
onClickDiscount
()
{
void
onClickDiscount
()
{
// LoganManager.w_tableMode(TAG, LoganManager.EVENT_CLICK + "食品折扣");
LoganManager
.
w_tableMode
(
TAG
,
LoganManager
.
EVENT_CLICK
+
"食品折扣"
);
// OrderDetail mainOrderDetail = mPresenter.getSelectMealAdapter().getCurrentMainOrderDetail();
OrderDetail
mainOrderDetail
=
mPresenter
.
getSelectMealAdapter
().
getCurrentMainOrderDetail
();
// if (mainOrderDetail != null && mainOrderDetail.getAblediscount() == 0) {
if
(
mainOrderDetail
!=
null
&&
mainOrderDetail
.
getAblediscount
()
==
0
)
{
// showMessage("此食品不能參與折扣!");
showMessage
(
"此食品不能參與折扣!"
);
// return;
return
;
// }
}
if
(
mActivity
.
findFragment
(
SetMealFragment
.
class
)
==
null
)
{
loadRootFragment
(
R
.
id
.
fl_meal_discount
,
MealDiscountFragment
.
newInstance
());
}
// //更新折扣数据
// //更新折扣数据
// mPresenter.loadDiscountData();
// mPresenter.loadDiscountData();
// showViewModeVisibility(MealConstant.discount_ViewMode);
// showViewModeVisibility(MealConstant.discount_ViewMode);
}
}
@OnClick
(
R2
.
id
.
btn_multiple_selection
)
@OnClick
(
R2
.
id
.
btn_multiple_selection
)
void
onClickMultipleSelection
()
{
void
onClickMultipleSelection
()
{
// LoganManager.w_tableMode(TAG, LoganManager.EVENT_CLICK, "多选");
// LoganManager.w_tableMode(TAG, LoganManager.EVENT_CLICK, "多选");
...
@@ -645,145 +768,142 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
...
@@ -645,145 +768,142 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
}
}
@OnClick
({
R2
.
id
.
btn_key1
,
R2
.
id
.
btn_key2
,
R2
.
id
.
btn_key3
,
R2
.
id
.
btn_key4
,
R2
.
id
.
btn_key5
,
R2
.
id
.
btn_keys
,
@OnClick
({
R2
.
id
.
btn_key1
,
R2
.
id
.
btn_key2
,
R2
.
id
.
btn_key3
,
R2
.
id
.
btn_key4
,
R2
.
id
.
btn_key5
,
R2
.
id
.
btn_keys
,
R2
.
id
.
btn_numberman
,
R2
.
id
.
btn_fid
,
R2
.
id
.
btn_meal_delete
,
R2
.
id
.
btn_meal_modify_restore
,
R2
.
id
.
btn_send_order
,
R2
.
id
.
tv_no_save_return
,
R2
.
id
.
tv_order_content
,
R2
.
id
.
btn_numberman
,
R2
.
id
.
btn_fid
,
R2
.
id
.
btn_meal_delete
,
R2
.
id
.
btn_meal_modify_restore
,
R2
.
id
.
btn_taste
,
R2
.
id
.
btn_msg
,
R2
.
id
.
btn_delete
,
R2
.
id
.
btn_end
,
R2
.
id
.
iv_fine_back
})
R2
.
id
.
btn_taste
,
R2
.
id
.
btn_msg
,
R2
.
id
.
btn_delete
,
R2
.
id
.
btn_end
})
public
void
onClick
(
View
v
)
{
public
void
onClick
(
View
v
)
{
//
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
LOLLIPOP
)
{
//
String text = null;
String
text
=
null
;
//
if (v instanceof Button) {
if
(
v
instanceof
Button
)
{
//
Button button = (Button) v;
Button
button
=
(
Button
)
v
;
//
text = button.getText().toString();
text
=
button
.
getText
().
toString
();
//
} else if (v instanceof TextView) {
}
else
if
(
v
instanceof
TextView
)
{
//
TextView textView = (TextView) v;
TextView
textView
=
(
TextView
)
v
;
//
text = textView.getText().toString();
text
=
textView
.
getText
().
toString
();
//
}
}
//
LoganManager.w_tableMode(TAG, LoganManager.EVENT_CLICK, text);
LoganManager
.
w_tableMode
(
TAG
,
LoganManager
.
EVENT_CLICK
,
text
);
//
}
}
//
//
recordOperat(true);
recordOperat
(
true
);
//
//
//防抖處理
//防抖處理
//
int id = v.getId();
int
id
=
v
.
getId
();
//
if (id == R.id.btn_numberman) {
if
(
id
==
R
.
id
.
btn_numberman
)
{
//
if (!BaseOrder.isTableToMeal()) {
if
(!
BaseOrder
.
isTableToMeal
())
{
//
return;
return
;
//
}
}
// showChoosePeopleNumDialog(true);
// showChoosePeopleNumDialog(true);
//
} else if (id == R.id.btn_fid) {
}
else
if
(
id
==
R
.
id
.
btn_fid
)
{
//
//搜索
//搜索
//
if (mCurrentViewMode == MealConstant.ViewMode_keys) {
if
(
mCurrentViewMode
==
MealConstant
.
ViewMode_keys
)
{
//
showViewModeVisibility(MealConstant.food_group_ViewMode, MealConstant.food_ViewMode);
showViewModeVisibility
(
MealConstant
.
food_group_ViewMode
,
MealConstant
.
food_ViewMode
);
//
SPUtils.put(MealConstant.EXIT_IS_PLU_MODE, false);
SPUtils
.
put
(
MealConstant
.
EXIT_IS_PLU_MODE
,
false
);
//
} else {
}
else
{
//
showViewModeVisibility(MealConstant.ViewMode_keys);
showViewModeVisibility
(
MealConstant
.
ViewMode_keys
);
//
SPUtils.put(MealConstant.EXIT_IS_PLU_MODE, true);
SPUtils
.
put
(
MealConstant
.
EXIT_IS_PLU_MODE
,
true
);
//
}
}
//
setPluMode();
setPluMode
();
//
} else if (id == R.id.btn_meal_delete) {
}
else
if
(
id
==
R
.
id
.
btn_meal_delete
)
{
// if (mPresenter.getSelectMealAdapter().getSelectedMode() == SelectMealAdapter.MULTIPLE_SELECTED) {
// if (mPresenter.getSelectMealAdapter().getSelectedMode() == SelectMealAdapter.MULTIPLE_SELECTED) {
// return;
// return;
// }
// }
// mPresenter.deleteFoodItem(1);
// mPresenter.deleteFoodItem(1);
//
//
showViewModeVisibility(MealConstant.food_group_ViewMode, MealConstant.food_ViewMode);
showViewModeVisibility
(
MealConstant
.
food_group_ViewMode
,
MealConstant
.
food_ViewMode
);
//
SPUtils.put(MealConstant.EXIT_IS_PLU_MODE, false);
SPUtils
.
put
(
MealConstant
.
EXIT_IS_PLU_MODE
,
false
);
//
setPluMode();
setPluMode
();
//
} else if (id == R.id.btn_meal_modify_restore) {
}
else
if
(
id
==
R
.
id
.
btn_meal_modify_restore
)
{
// mPresenter.restoreDeleteFood();
// mPresenter.restoreDeleteFood();
// showBtnMealModifyRestoreVisibility(false);
showBtnMealModifyRestoreVisibility
(
false
);
// } else if (id == R.id.btn_send_order) {
}
else
if
(
id
==
R
.
id
.
btn_taste
)
{
//// RxBindingUtils.setViewClicks(v)
//// .subscribe(new Consumer<Object>() {
//// @Override
//// public void accept(Object o) throws Exception {
// if (BaseOrder.isCurrentOrderType(FoodSummaryConstans.TAKEAWAY_TYPE)) {
// CC.obtainBuilder(ComponentName.COMPONENT_DELIVERYPICK)
// .setActionName("SendOrder")
// .build()
// .call();
// return;
// }
// mPresenter.sendOrder(false, null);
//// }
//// });
// } else if (id == R.id.tv_order_content) {
// //如果打印成功會回調
// Intent intent = new Intent(mContext, OrderContentActivity.class);
// startActivityForResult(intent, ORDER_CONTENT_CODE);
// } else if (id == R.id.tv_no_save_return) {
// returnTableActivity(true);
// } else if (id == R.id.btn_taste) {
// currentFinePage = 0;
// currentFinePage = 0;
// showRemarkLayout();
// showRemarkLayout();
//
} else if (id == R.id.btn_msg) {
}
else
if
(
id
==
R
.
id
.
btn_msg
)
{
// currentFinePage = 1;
// currentFinePage = 1;
// showRemarkLayout();
// showRemarkLayout();
//
} else if (id == R.id.btn_delete) {
}
else
if
(
id
==
R
.
id
.
btn_delete
)
{
// if (mPresenter.getSelectMealAdapter().getSelectedMode() == SelectMealAdapter.SINGLE_SELECTED) {
// if (mPresenter.getSelectMealAdapter().getSelectedMode() == SelectMealAdapter.SINGLE_SELECTED) {
// //只有單選操作的時候可以刪除子項
// //只有單選操作的時候可以刪除子項
// mPresenter.deleteChildItem();
// mPresenter.deleteChildItem();
// }
// }
//
} else if (id == R.id.btn_end) {
}
else
if
(
id
==
R
.
id
.
btn_end
)
{
// mPresenter.getSelectMealAdapter().setSelectedMode(SelectMealAdapter.SINGLE_SELECTED);
// mPresenter.getSelectMealAdapter().setSelectedMode(SelectMealAdapter.SINGLE_SELECTED);
// btn_delete.setVisibility(View.VISIBLE);
// btn_delete.setVisibility(View.VISIBLE);
// setSelectFunctionVisibility(View.GONE);
// setSelectFunctionVisibility(View.GONE);
// //從多選頁離開 重置選中
// //從多選頁離開 重置選中
// mPresenter.resetSelected();
// mPresenter.resetSelected();
// showViewModeVisibility(MealConstant.food_group_ViewMode, MealConstant.food_ViewMode);
// showViewModeVisibility(MealConstant.food_group_ViewMode, MealConstant.food_ViewMode);
// } else if (id == R.id.btn_key1 || id == R.id.btn_key2 || id == R.id.btn_key3 || id == R.id.btn_key4 || id == R.id.btn_key5 || id == R.id.btn_keys) {
}
else
if
(
id
==
R
.
id
.
btn_key1
||
id
==
R
.
id
.
btn_key2
||
id
==
R
.
id
.
btn_key3
||
id
==
R
.
id
.
btn_key4
||
id
==
R
.
id
.
btn_key5
||
id
==
R
.
id
.
btn_keys
)
{
//
// int i = Integer.parseInt(v.getTag().toString());
int
i
=
Integer
.
parseInt
(
v
.
getTag
().
toString
());
// switch (i) {
switch
(
i
)
{
// case 0:
case
0
:
// case 1:
case
1
:
// case 2:
case
2
:
// case 3:
case
3
:
// case 4:
case
4
:
// case 5:
case
5
:
// if (BuildConfig.DEBUG && BaseOrder.isTableToMeal()) {
if
(
BuildConfig
.
DEBUG
&&
BaseOrder
.
isTableToMeal
())
{
// if (i == 1) {
if
(
i
==
1
)
{
// OrderResponse order = DoshokuOrder.getInstance().getOrderPlaced();
OrderResponse
order
=
DoshokuOrder
.
getInstance
().
getOrderPlaced
();
// if (order != null) {
if
(
order
!=
null
)
{
// ArmsUtils.snackbarText("訂單ID:" + order.getId());
ArmsUtils
.
snackbarText
(
"訂單ID:"
+
order
.
getId
());
// }
}
// } else if (i == 2) {
}
else
if
(
i
==
2
)
{
// MemberInfo memberInfo = DoshokuOrder.getInstance().getMemberInfo();
MemberInfo
memberInfo
=
DoshokuOrder
.
getInstance
().
getMemberInfo
();
// if (memberInfo != null) {
if
(
memberInfo
!=
null
)
{
// showMessage("積分兌現金比例: " + memberInfo.getPointRedeemCash());
showMessage
(
"積分兌現金比例: "
+
memberInfo
.
getPointRedeemCash
());
// }
}
// }
}
// }
}
// mPresenter.changeNumber(i);
mPresenter
.
changeNumber
(
i
);
// break;
break
;
// case 99:
case
99
:
// ChooseNumberDialog mChooseNumberDialog = new ChooseNumberDialog(mContext);
ChooseNumberDialog
mChooseNumberDialog
=
new
ChooseNumberDialog
(
mContext
);
// mChooseNumberDialog.builder();
mChooseNumberDialog
.
builder
();
// mChooseNumberDialog.setOnClickListener(new ChooseNumberDialog.OnClickListener() {
mChooseNumberDialog
.
setOnClickListener
(
new
ChooseNumberDialog
.
OnClickListener
()
{
//
// @Override
@Override
// public void onComfirmClick(String number) {
public
void
onComfirmClick
(
String
number
)
{
// int inumber = Integer.parseInt(number);
int
inumber
=
Integer
.
parseInt
(
number
);
// if (inumber == 0) {
if
(
inumber
==
0
)
{
// return;
return
;
// }
}
// mPresenter.changeNumber(inumber);
mPresenter
.
changeNumber
(
inumber
);
// }
}
//
// @Override
@Override
// public void onBackPage() {
public
void
onBackPage
()
{
// }
}
// });
});
// mChooseNumberDialog.setValueHint("請輸入數量");
mChooseNumberDialog
.
setValueHint
(
"請輸入數量"
);
// mChooseNumberDialog.setCancelable(true);
mChooseNumberDialog
.
setCancelable
(
true
);
// mChooseNumberDialog.show();
mChooseNumberDialog
.
show
();
// break;
break
;
// default:
default
:
// break;
break
;
// }
}
// } else if (id == R.id.iv_fine_back) {
}
// else if (id == R.id.iv_fine_back) {
// showViewModeVisibility(MealConstant.combo_ViewMode);
// showViewModeVisibility(MealConstant.combo_ViewMode);
// }
// }
}
}
@Override
public
void
onPageSizeChanged
(
int
pageSize
)
{
}
@Override
public
void
onPageSelect
(
int
pageIndex
)
{
mPageIndex
=
pageIndex
;
LoganManager
.
w_tableMode
(
TAG
,
LoganManager
.
EVENT_SCOLL
+
"食品組頁="
+
(
pageIndex
+
1
));
for
(
int
i
=
0
;
i
<
totalPage
;
i
++)
{
if
(
i
==
pageIndex
)
{
ivPoints
[
i
].
setImageResource
(
R
.
drawable
.
meal_food_group_point_focuese
);
}
else
{
ivPoints
[
i
].
setImageResource
(
R
.
drawable
.
meal_food_group_point_unfocused
);
}
}
}
}
}
}
component-table/src/main/res/layout/meal_layout_food_menu.xml
View file @
3f6c41b6
...
@@ -52,4 +52,87 @@
...
@@ -52,4 +52,87 @@
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout=
"@layout/meal_layout_meal_fine"
/>
android:layout=
"@layout/meal_layout_meal_fine"
/>
<LinearLayout
android:id=
"@+id/ll_modify"
android:layout_width=
"match_parent"
android:layout_height=
"@dimen/dp_45"
android:layout_gravity=
"bottom"
android:visibility=
"invisible"
>
<com.qmuiteam.qmui.alpha.QMUIAlphaTextView
android:id=
"@+id/btn_select_all"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_marginRight=
"1dp"
android:layout_weight=
"0.1"
android:background=
"#00B9F7"
android:gravity=
"center"
android:text=
"@string/all_selection"
android:textColor=
"@color/theme_white_color"
android:textSize=
"@dimen/sp_14"
android:visibility=
"gone"
/>
<com.qmuiteam.qmui.alpha.QMUIAlphaTextView
android:id=
"@+id/btn_anti_selection"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_marginRight=
"1dp"
android:layout_weight=
"0.1"
android:background=
"#00B9F7"
android:gravity=
"center"
android:text=
"@string/anti_selection"
android:textColor=
"@color/theme_white_color"
android:textSize=
"@dimen/sp_14"
android:visibility=
"gone"
/>
<com.qmuiteam.qmui.alpha.QMUIAlphaTextView
android:id=
"@+id/btn_taste"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_marginRight=
"1dp"
android:layout_weight=
"0.1"
android:background=
"#00B9F7"
android:gravity=
"center"
android:text=
"@string/taste"
android:textColor=
"@color/theme_white_color"
android:textSize=
"@dimen/sp_14"
/>
<com.qmuiteam.qmui.alpha.QMUIAlphaTextView
android:id=
"@+id/btn_msg"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_gravity=
"center"
android:layout_marginRight=
"1dp"
android:layout_weight=
"0.1"
android:background=
"#7D8888"
android:gravity=
"center"
android:text=
"@string/msg"
android:textColor=
"@color/theme_white_color"
android:textSize=
"@dimen/sp_14"
/>
<com.qmuiteam.qmui.alpha.QMUIAlphaTextView
android:id=
"@+id/btn_delete"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_marginRight=
"1dp"
android:layout_weight=
"0.1"
android:background=
"#FF5024"
android:gravity=
"center"
android:text=
"@string/remove"
android:textColor=
"@color/theme_white_color"
android:textSize=
"@dimen/sp_14"
/>
<com.qmuiteam.qmui.alpha.QMUIAlphaTextView
android:id=
"@+id/btn_end"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_marginRight=
"1dp"
android:layout_weight=
"0.1"
android:background=
"@color/Grass_green"
android:gravity=
"center"
android:text=
"@string/end"
android:textColor=
"@color/theme_white_color"
android:textSize=
"@dimen/sp_14"
/>
</LinearLayout>
</merge>
</merge>
\ No newline at end of file
component-table/src/main/res/layout/meal_layout_food_plate.xml
View file @
3f6c41b6
...
@@ -2,13 +2,13 @@
...
@@ -2,13 +2,13 @@
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:id=
"@+id/ll_meals"
android:id=
"@+id/ll_meals"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"
266dp
"
android:layout_height=
"
@dimen/dp_260
"
android:orientation=
"vertical"
>
android:orientation=
"vertical"
>
<LinearLayout
<LinearLayout
android:id=
"@+id/ll_meals_main"
android:id=
"@+id/ll_meals_main"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"
221
dp"
android:layout_height=
"
0
dp"
android:layout_weight=
"1"
>
android:layout_weight=
"1"
>
<LinearLayout
<LinearLayout
...
@@ -132,7 +132,7 @@
...
@@ -132,7 +132,7 @@
<LinearLayout
<LinearLayout
android:id=
"@+id/ll_Keys"
android:id=
"@+id/ll_Keys"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"
42dp
"
>
android:layout_height=
"
@dimen/dp_40
"
>
<Button
<Button
android:id=
"@+id/btn_key1"
android:id=
"@+id/btn_key1"
...
@@ -200,4 +200,5 @@
...
@@ -200,4 +200,5 @@
android:src=
"@mipmap/meal_number_key"
android:src=
"@mipmap/meal_number_key"
android:tag=
"99"
/>
android:tag=
"99"
/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
component-table/src/main/res/layout/table_activity_meal_stand2.xml
View file @
3f6c41b6
...
@@ -13,117 +13,27 @@
...
@@ -13,117 +13,27 @@
android:layout_centerVertical=
"true"
android:layout_centerVertical=
"true"
android:text=
"Chronometer"
/>
android:text=
"Chronometer"
/>
<fragment
<FrameLayout
android:name=
"com.gingersoft.gsa.cloud.table.mvp.ui.fragment.mealstand.SetMealFragment"
android:id=
"@+id/fl_food_plate"
android:id=
"@+id/fl_food_plate"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
/>
android:layout_height=
"match_parent"
android:layout_above=
"@+id/ll_modify"
/>
<FrameLayout
<FrameLayout
android:id=
"@+id/fl_meal_discount"
android:id=
"@+id/fl_food_menu"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"match_parent"
android:layout_below=
"@+id/fl_food_plate"
/>
android:layout_above=
"@+id/ll_modify"
android:layout_marginTop=
"@dimen/dp_260"
/>
<!-- <include layout="@layout/meal_layout_food_plate"/>-->
<!-- <include layout="@layout/meal_layout_food_menu"/>-->
<!--鍵盤-->
<!--鍵盤-->
<com.gingersoft.gsa.cloud.ui.view.SearchKeyBoardView
<com.gingersoft.gsa.cloud.ui.view.SearchKeyBoardView
android:id=
"@+id/meal_stand_search_keyboard_view"
android:id=
"@+id/meal_stand_search_keyboard_view"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_above=
"@id/ll_stand_oper"
android:layout_below=
"@+id/ll_meals"
android:visibility=
"gone"
/>
<LinearLayout
android:id=
"@+id/ll_modify"
android:layout_width=
"match_parent"
android:layout_height=
"@dimen/dp_45"
android:layout_alignParentLeft=
"true"
android:layout_alignParentRight=
"true"
android:layout_alignParentBottom=
"true"
android:visibility=
"invisible"
>
<com.qmuiteam.qmui.alpha.QMUIAlphaTextView
android:id=
"@+id/btn_select_all"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_marginRight=
"1dp"
android:layout_weight=
"0.1"
android:background=
"#00B9F7"
android:gravity=
"center"
android:text=
"@string/all_selection"
android:textColor=
"@color/theme_white_color"
android:textSize=
"@dimen/sp_14"
android:visibility=
"gone"
/>
<com.qmuiteam.qmui.alpha.QMUIAlphaTextView
android:id=
"@+id/btn_anti_selection"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
android:layout_marginRight=
"1dp"
android:layout_above=
"@+id/ll_modify"
android:layout_weight=
"0.1"
android:layout_marginTop=
"@dimen/dp_260"
android:background=
"#00B9F7"
android:visibility=
"gone"
/>
android:gravity=
"center"
android:text=
"@string/anti_selection"
android:textColor=
"@color/theme_white_color"
android:textSize=
"@dimen/sp_14"
android:visibility=
"gone"
/>
<com.qmuiteam.qmui.alpha.QMUIAlphaTextView
android:id=
"@+id/btn_taste"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_marginRight=
"1dp"
android:layout_weight=
"0.1"
android:background=
"#00B9F7"
android:gravity=
"center"
android:text=
"@string/taste"
android:textColor=
"@color/theme_white_color"
android:textSize=
"@dimen/sp_14"
/>
<com.qmuiteam.qmui.alpha.QMUIAlphaTextView
android:id=
"@+id/btn_msg"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_gravity=
"center"
android:layout_marginRight=
"1dp"
android:layout_weight=
"0.1"
android:background=
"#7D8888"
android:gravity=
"center"
android:text=
"@string/msg"
android:textColor=
"@color/theme_white_color"
android:textSize=
"@dimen/sp_14"
/>
<com.qmuiteam.qmui.alpha.QMUIAlphaTextView
android:id=
"@+id/btn_delete"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_marginRight=
"1dp"
android:layout_weight=
"0.1"
android:background=
"#FF5024"
android:gravity=
"center"
android:text=
"@string/remove"
android:textColor=
"@color/theme_white_color"
android:textSize=
"@dimen/sp_14"
/>
<com.qmuiteam.qmui.alpha.QMUIAlphaTextView
android:id=
"@+id/btn_end"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_marginRight=
"1dp"
android:layout_weight=
"0.1"
android:background=
"@color/Grass_green"
android:gravity=
"center"
android:text=
"@string/end"
android:textColor=
"@color/theme_white_color"
android:textSize=
"@dimen/sp_14"
/>
</LinearLayout>
<LinearLayout
<LinearLayout
android:id=
"@+id/ll_stand_oper"
android:id=
"@+id/ll_stand_oper"
...
...
config.gradle
View file @
3f6c41b6
...
@@ -7,8 +7,8 @@ ext {
...
@@ -7,8 +7,8 @@ ext {
targetSdkVersion
:
29
,
targetSdkVersion
:
29
,
//正式版: 1.0.3 3
//正式版: 1.0.3 3
//內部測試版:1.2.0 20
//內部測試版:1.2.0 20
versionCode
:
3
1
,
versionCode
:
3
2
,
versionName
:
"1.3.
1
"
versionName
:
"1.3.
2
"
]
]
version
=
[
version
=
[
...
...
library-common/src/main/java/com/gingersoft/gsa/cloud/common/logan/LoganManager.java
View file @
3f6c41b6
...
@@ -30,9 +30,6 @@ public class LoganManager {
...
@@ -30,9 +30,6 @@ public class LoganManager {
public
static
void
w_code
(
String
TAG
,
String
log
)
{
public
static
void
w_code
(
String
TAG
,
String
log
)
{
Logan
.
w
(
log
,
LoganConfig
.
CODE_LEVLE
);
Logan
.
w
(
log
,
LoganConfig
.
CODE_LEVLE
);
// if (BuildConfig.DEBUG) {
Logan
.
f
();
// }
printLog
(
TAG
,
log
);
printLog
(
TAG
,
log
);
}
}
...
@@ -113,6 +110,9 @@ public class LoganManager {
...
@@ -113,6 +110,9 @@ public class LoganManager {
public
static
void
w_printer
(
String
TAG
,
String
...
eventAndLog
)
{
public
static
void
w_printer
(
String
TAG
,
String
...
eventAndLog
)
{
w_business
(
PRINTER_BUSINESS_TAG
,
TAG
,
eventAndLog
);
w_business
(
PRINTER_BUSINESS_TAG
,
TAG
,
eventAndLog
);
// if (BuildConfig.DEBUG) {
Logan
.
f
();
// }
}
}
public
static
void
w_tableMode
(
String
TAG
,
String
...
eventAndLog
)
{
public
static
void
w_tableMode
(
String
TAG
,
String
...
eventAndLog
)
{
...
...
library-common/src/main/java/com/gingersoft/gsa/cloud/common/utils/okhttpUtils/OkHttp3Utils.java
View file @
3f6c41b6
...
@@ -30,6 +30,7 @@ import okhttp3.Call;
...
@@ -30,6 +30,7 @@ import okhttp3.Call;
import
okhttp3.Callback
;
import
okhttp3.Callback
;
import
okhttp3.Connection
;
import
okhttp3.Connection
;
import
okhttp3.ConnectionPool
;
import
okhttp3.ConnectionPool
;
import
okhttp3.EventListener
;
import
okhttp3.FormBody
;
import
okhttp3.FormBody
;
import
okhttp3.Handshake
;
import
okhttp3.Handshake
;
import
okhttp3.MediaType
;
import
okhttp3.MediaType
;
...
...
library-order/src/main/java/com/gingersoft/gsa/cloud/pay/PaymentControl.java
View file @
3f6c41b6
...
@@ -29,43 +29,43 @@ public class PaymentControl {
...
@@ -29,43 +29,43 @@ public class PaymentControl {
}
}
public
void
pay
(
RequestParms
requestParms
)
{
public
void
pay
(
RequestParms
requestParms
)
{
final
PosPayAction
payOrigin
=
PayDeviceFactory
.
createPay
Origin
();
final
PosPayAction
payOrigin
=
PayDeviceFactory
.
createPay
Device
();
Preconditions
.
checkNotNull
(
payOrigin
);
Preconditions
.
checkNotNull
(
payOrigin
);
payOrigin
.
pay
(
requestParms
);
payOrigin
.
pay
(
requestParms
);
}
}
public
void
tip
(
RequestParms
requestParms
)
{
public
void
tip
(
RequestParms
requestParms
)
{
final
PosPayAction
payOrigin
=
PayDeviceFactory
.
createPay
Origin
();
final
PosPayAction
payOrigin
=
PayDeviceFactory
.
createPay
Device
();
Preconditions
.
checkNotNull
(
payOrigin
);
Preconditions
.
checkNotNull
(
payOrigin
);
payOrigin
.
tip
(
requestParms
);
payOrigin
.
tip
(
requestParms
);
}
}
public
void
refund
(
RequestParms
requestParms
)
{
public
void
refund
(
RequestParms
requestParms
)
{
final
PosPayAction
payOrigin
=
PayDeviceFactory
.
createPay
Origin
();
final
PosPayAction
payOrigin
=
PayDeviceFactory
.
createPay
Device
();
Preconditions
.
checkNotNull
(
payOrigin
);
Preconditions
.
checkNotNull
(
payOrigin
);
payOrigin
.
refund
(
requestParms
);
payOrigin
.
refund
(
requestParms
);
}
}
public
void
voidO
(
RequestParms
requestParms
)
{
public
void
voidO
(
RequestParms
requestParms
)
{
final
PosPayAction
payOrigin
=
PayDeviceFactory
.
createPay
Origin
();
final
PosPayAction
payOrigin
=
PayDeviceFactory
.
createPay
Device
();
Preconditions
.
checkNotNull
(
payOrigin
);
Preconditions
.
checkNotNull
(
payOrigin
);
payOrigin
.
void0
(
this
);
payOrigin
.
void0
(
this
);
}
}
public
void
retrieval
(
RequestParms
requestParms
)
{
public
void
retrieval
(
RequestParms
requestParms
)
{
final
PosPayAction
payOrigin
=
PayDeviceFactory
.
createPay
Origin
();
final
PosPayAction
payOrigin
=
PayDeviceFactory
.
createPay
Device
();
Preconditions
.
checkNotNull
(
payOrigin
);
Preconditions
.
checkNotNull
(
payOrigin
);
payOrigin
.
retrieval
(
this
);
payOrigin
.
retrieval
(
this
);
}
}
public
void
printStub
(
RequestParms
requestParms
)
{
public
void
printStub
(
RequestParms
requestParms
)
{
final
PosPayAction
payOrigin
=
PayDeviceFactory
.
createPay
Origin
();
final
PosPayAction
payOrigin
=
PayDeviceFactory
.
createPay
Device
();
Preconditions
.
checkNotNull
(
payOrigin
);
Preconditions
.
checkNotNull
(
payOrigin
);
payOrigin
.
printStub
(
this
);
payOrigin
.
printStub
(
this
);
}
}
public
void
settlement
(
RequestParms
requestParms
)
{
public
void
settlement
(
RequestParms
requestParms
)
{
final
PosPayAction
payOrigin
=
PayDeviceFactory
.
createPay
Origin
();
final
PosPayAction
payOrigin
=
PayDeviceFactory
.
createPay
Device
();
Preconditions
.
checkNotNull
(
payOrigin
);
Preconditions
.
checkNotNull
(
payOrigin
);
payOrigin
.
settlement
(
this
);
payOrigin
.
settlement
(
this
);
}
}
...
...
library-order/src/main/java/com/gingersoft/gsa/cloud/pay/RequestParms.java
View file @
3f6c41b6
...
@@ -5,9 +5,11 @@ import android.os.Parcelable;
...
@@ -5,9 +5,11 @@ import android.os.Parcelable;
import
com.gingersoft.gsa.cloud.pay.Callback
;
import
com.gingersoft.gsa.cloud.pay.Callback
;
import
com.gingersoft.gsa.cloud.pay.PayAction
;
import
com.gingersoft.gsa.cloud.pay.PayAction
;
import
com.gingersoft.gsa.cloud.pay.bean.PayMethod
;
import
com.google.gson.annotations.SerializedName
;
import
com.google.gson.annotations.SerializedName
;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
java.util.List
;
import
lombok.Builder
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.Data
;
...
@@ -24,18 +26,23 @@ import lombok.Getter;
...
@@ -24,18 +26,23 @@ import lombok.Getter;
public
class
RequestParms
implements
Serializable
{
public
class
RequestParms
implements
Serializable
{
private
PayAction
action
;
private
PayAction
action
;
private
Callback
callback
;
private
ResultCallback
resultCallback
;
private
final
int
resturantId
;
private
final
int
resturantId
;
private
final
List
<
PayMethod
>
payMethods
;
private
final
int
payType
;
private
final
int
payType
;
private
final
long
orderId
;
private
final
long
orderId
;
private
final
double
payMoney
;
private
final
double
payMoney
;
/**
/**
* 退款相关
* 退款相关
*/
*/
private
final
String
refundReason
;
private
final
String
refundReason
;
/**
* 操作行为回调如支付,退款等
*/
private
Callback
callback
;
/**
* 结果回调
*/
private
ResultCallback
resultCallback
;
// @Override
// @Override
// public int describeContents() {
// public int describeContents() {
...
...
library-order/src/main/java/com/gingersoft/gsa/cloud/pay/ResultCallback.java
View file @
3f6c41b6
package
com
.
gingersoft
.
gsa
.
cloud
.
pay
;
package
com
.
gingersoft
.
gsa
.
cloud
.
pay
;
import
com.gingersoft.gsa.cloud.pay.bean.PayMethod
;
import
java.util.List
;
/**
/**
* @作者: bin
* @作者: bin
* @創建時間: 2021-04-14 15:05
* @創建時間: 2021-04-14 15:05
...
@@ -11,4 +15,14 @@ public interface ResultCallback {
...
@@ -11,4 +15,14 @@ public interface ResultCallback {
void
onSuccess
();
void
onSuccess
();
void
onFailure
(
Throwable
t
);
void
onFailure
(
Throwable
t
);
/**
* 外部支付,交给回调方处理
*/
void
externalPayment
();
/**
* 混合支付,选择二种以上支付方式
*/
void
hybridPayment
(
List
<
PayMethod
>
payMethods
);
}
}
library-order/src/main/java/com/gingersoft/gsa/cloud/pay/device/phone/PhoneCallback
Listener
.java
→
library-order/src/main/java/com/gingersoft/gsa/cloud/pay/device/phone/PhoneCallback.java
View file @
3f6c41b6
...
@@ -8,18 +8,7 @@ import com.gingersoft.gsa.cloud.pay.Callback;
...
@@ -8,18 +8,7 @@ import com.gingersoft.gsa.cloud.pay.Callback;
* @更新時間: 2021-04-15 17:18
* @更新時間: 2021-04-15 17:18
* @描述:
* @描述:
*/
*/
public
interface
PhoneCallback
Listener
<
T
>
extends
Callback
<
T
>
{
public
interface
PhoneCallback
extends
Callback
{
/**
* 支付
* @param response
*/
void
onSuccess
(
T
response
);
/**
* 支付失败
* @param response
* @param e
*/
void
onException
(
T
response
,
Exception
e
);
}
}
library-order/src/main/java/com/gingersoft/gsa/cloud/pay/lifecycle/fragment/PayFlowFragment.java
View file @
3f6c41b6
...
@@ -191,25 +191,25 @@ public class PayFlowFragment extends BaseDialogFragment<PayFlowPresenter> implem
...
@@ -191,25 +191,25 @@ public class PayFlowFragment extends BaseDialogFragment<PayFlowPresenter> implem
@Override
@Override
public
void
onActivityResult
(
int
requestCode
,
int
resultCode
,
@Nullable
Intent
intent
)
{
public
void
onActivityResult
(
int
requestCode
,
int
resultCode
,
@Nullable
Intent
intent
)
{
super
.
onActivityResult
(
requestCode
,
resultCode
,
intent
);
super
.
onActivityResult
(
requestCode
,
resultCode
,
intent
);
LoganManager
.
w_code
(
TAG
,
"onActivityResult-
》
"
+
"resultCode="
+
resultCode
+
" requestCode="
+
requestCode
);
LoganManager
.
w_code
(
TAG
,
"onActivityResult-
>
"
+
"resultCode="
+
resultCode
+
" requestCode="
+
requestCode
);
if
(
resultCode
==
android
.
app
.
Activity
.
RESULT_OK
)
{
//
if (resultCode == android.app.Activity.RESULT_OK) {
switch
(
requestCode
)
{
//
switch (requestCode) {
case
555
:
{
//
case 555: {
if
(
intent
.
getExtras
()
!=
null
)
{
//
if (intent.getExtras() != null) {
String
status
=
(
String
)
intent
.
getExtras
().
get
(
"status"
);
//
String status = (String) intent.getExtras().get("status");
String
transaction_id
=
(
String
)
intent
.
getExtras
().
get
(
"transaction_id"
);
//
String transaction_id = (String) intent.getExtras().get("transaction_id");
LoganManager
.
w_code
(
TAG
,
"onActivityResult-》"
+
"status="
+
status
+
" transaction_id="
+
transaction_id
);
//
LoganManager.w_code(TAG, "onActivityResult-》" + "status=" + status + " transaction_id=" + transaction_id);
mPresenter
.
yedPayUpdateStatus
(
transaction_id
,
requestParms
.
getOrderId
(),
requestParms
.
getPayType
(),
requestParms
.
getResturantId
());
//
mPresenter.yedPayUpdateStatus(transaction_id, requestParms.getOrderId(), requestParms.getPayType(), requestParms.getResturantId());
}
//
}
break
;
//
break;
}
//
}
default
:
//
default:
showStatusLoadingDialog
(
PayStep
.
FAILURE
);
//
showStatusLoadingDialog(PayStep.FAILURE);
break
;
//
break;
}
//
}
}
else
{
//
} else {
showStatusLoadingDialog
(
PayStep
.
FAILURE
);
//
showStatusLoadingDialog(PayStep.FAILURE);
}
//
}
}
}
@Override
@Override
...
...
library-order/src/main/java/com/gingersoft/gsa/cloud/pay/lifecycle/presenter/PayFlowPresenter.java
View file @
3f6c41b6
...
@@ -13,7 +13,7 @@ import com.gingersoft.gsa.cloud.pay.PaymentControl;
...
@@ -13,7 +13,7 @@ import com.gingersoft.gsa.cloud.pay.PaymentControl;
import
com.gingersoft.gsa.cloud.pay.RequestParms
;
import
com.gingersoft.gsa.cloud.pay.RequestParms
;
import
com.gingersoft.gsa.cloud.pay.ResultCallback
;
import
com.gingersoft.gsa.cloud.pay.ResultCallback
;
import
com.gingersoft.gsa.cloud.pay.lifecycle.model.bean.YedpayFindSaleStatusBean
;
import
com.gingersoft.gsa.cloud.pay.lifecycle.model.bean.YedpayFindSaleStatusBean
;
import
com.gingersoft.gsa.cloud.pay.device.phone.PhoneCallback
Listener
;
import
com.gingersoft.gsa.cloud.pay.device.phone.PhoneCallback
;
import
com.gingersoft.gsa.cloud.pay.device.pos.PosPayAction
;
import
com.gingersoft.gsa.cloud.pay.device.pos.PosPayAction
;
import
com.gingersoft.gsa.cloud.pay.device.pos.bbpos.BBposCallback
;
import
com.gingersoft.gsa.cloud.pay.device.pos.bbpos.BBposCallback
;
import
com.gingersoft.gsa.cloud.pay.device.pos.hyweb.HywebCallback
;
import
com.gingersoft.gsa.cloud.pay.device.pos.hyweb.HywebCallback
;
...
@@ -229,17 +229,8 @@ public class PayFlowPresenter extends BasePresenter<PayFlowContract.Model, PayFl
...
@@ -229,17 +229,8 @@ public class PayFlowPresenter extends BasePresenter<PayFlowContract.Model, PayFl
};
};
private
PhoneCallback
Listener
phoneCallbackListener
=
new
PhoneCallbackListener
()
{
private
PhoneCallback
phoneCallback
=
new
PhoneCallback
()
{
@Override
public
void
onSuccess
(
Object
response
)
{
}
@Override
public
void
onException
(
Object
response
,
Exception
e
)
{
}
};
};
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment