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
6ec228e3
Commit
6ec228e3
authored
Apr 24, 2021
by
宁斌
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1、會員dialog頁拆分 2、公共細項頁拆分
parent
48ef3e27
Show whitespace changes
Inline
Side-by-side
Showing
93 changed files
with
2698 additions
and
1003 deletions
+2698
-1003
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/component/FineChildAllComponent.java
+10
-9
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/component/FineChildOneselfComponent.java
+10
-9
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/component/FineComponent.java
+42
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/component/MealStand2Component.java
+2
-1
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/component/RiceponMemberDialogComponent.java
+42
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/module/CouponModule.java
+0
-4
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/module/FineChildAllModule.java
+5
-4
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/module/FineChildOneselfModule.java
+5
-4
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/module/FineModule.java
+31
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/module/MealStand2Module.java
+7
-13
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/module/RiceponMemberDialogModule.java
+53
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/module/SetMealModule.java
+7
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/action/discount/BillCouponAction.java
+25
-22
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/action/discount/BillDiscountAction.java
+33
-28
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/action/discount/MealCouponAction.java
+37
-37
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/action/discount/MealDiscountAction.java
+30
-36
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/contract/CouponContract.java
+3
-9
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/contract/FineChildAllContract.java
+1
-1
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/contract/FineChildOneselfContract.java
+1
-1
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/contract/FineContract.java
+29
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/contract/MealStandContract.java
+2
-1
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/contract/MealStandContract2.java
+93
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/contract/RiceponMemberDialogContract.java
+37
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/contract/SetMealContract.java
+7
-10
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/model/CouponModel.java
+5
-6
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/model/FineChildAllModel.java
+3
-3
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/model/FineChildOneselfModel.java
+3
-3
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/model/FineModel.java
+47
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/model/MealStandModel.java
+2
-1
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/model/MealStandModel2.java
+215
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/model/RiceponMemberDialogModel.java
+59
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/model/SetMealModel.java
+28
-7
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/model/service/MemberService.java
+1
-1
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/BaseOrderPresenter.java
+2
-4
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/BaseOrderPresenter2.java
+2
-4
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/OrderContentPresenter.java
+32
-26
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/discount/CouponPresenter.java
+15
-21
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/mealstand/FineChildAllPresenter.java
+4
-9
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/mealstand/FineChildOneselfPresenter.java
+5
-4
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/mealstand/FinePresenter.java
+53
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/mealstand/MealStandPresenter.java
+77
-10
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/mealstand/MealStandPresenter2.java
+3
-2
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/mealstand/RiceponMemberDialogPresenter.java
+104
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/mealstand/SetMealPresenter.java
+105
-82
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/activity/MealStandActivity.java
+30
-24
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/activity/MealStandActivity2.java
+36
-265
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/activity/OrderPayActivity.java
+6
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/activity/SoldoutCtrlActivity.java
+7
-8
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/MemberInfoAdapter.java
+0
-1
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/adapter/meal/SelectMealAdapter2.java
+9
-4
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/fragment/discount/CouponFragment.java
+33
-13
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/fragment/discount/DiscountDialogFragment.java
+6
-6
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/fragment/discount/DiscountFragment.java
+195
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/fragment/mealstand/FineChildAllFragment.java
+7
-7
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/fragment/mealstand/FineChildOneselfFragment.java
+6
-6
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/fragment/mealstand/FineFragment.java
+99
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/fragment/mealstand/MealDiscountFragment.java
+1
-1
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/fragment/mealstand/RiceponMemberDialogFragment.java
+301
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/fragment/mealstand/SetMealFragment.java
+230
-192
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/widget/UseMemberDialog.java
+0
-5
component-table/src/main/res/layout/fragment_fine.xml
+24
-0
component-table/src/main/res/layout/fragment_ricepon_member_dialog.xml
+117
-0
component-table/src/main/res/layout/meal_dialog_use_member.xml
+2
-1
component-table/src/main/res/layout/meal_layout_combo_modifier.xml
+1
-1
component-table/src/main/res/layout/meal_layout_food_menu.xml
+22
-15
component-table/src/main/res/layout/meal_layout_food_plate.xml
+3
-1
component-table/src/main/res/layout/meal_layout_meal_fine.xml
+4
-2
component-table/src/main/res/layout/table_activity_meal_stand.xml
+26
-3
component-table/src/main/res/layout/table_dialog_discout.xml
+0
-6
config.gradle
+2
-2
library-common/src/main/java/com/gingersoft/gsa/cloud/app/GsaCloudApplication.java
+5
-0
library-common/src/main/java/com/gingersoft/gsa/cloud/common/core/discount/NomalDiscount.java
+3
-2
library-common/src/main/java/com/gingersoft/gsa/cloud/common/utils/threadPool/ThreadPoolManager.java
+4
-0
library-database/src/main/java/com/gingersoft/gsa/cloud/database/AbstractDiscount.java
+13
-1
library-database/src/main/java/com/gingersoft/gsa/cloud/database/DiscountConstact.java
+22
-0
library-database/src/main/java/com/gingersoft/gsa/cloud/database/bean/Discount.java
+3
-3
library-order/src/main/java/com/gingersoft/gsa/cloud/order/bean/discount/CouponDiscountBean.java
+1
-1
library-order/src/main/java/com/gingersoft/gsa/cloud/order/bean/discount/MemberWalletCoupon.java
+35
-4
library-order/src/main/java/com/gingersoft/gsa/cloud/order/bean/request/OrderDiscountRequest.java
+2
-2
library-order/src/main/java/com/gingersoft/gsa/cloud/order/cart/ShoppingCart.java
+43
-22
library-order/src/main/java/com/gingersoft/gsa/cloud/order/commodity/OrderDetail.java
+11
-7
library-order/src/main/java/com/gingersoft/gsa/cloud/order/discount/MemberCouponDiscount.java
+3
-3
library-order/src/main/java/com/gingersoft/gsa/cloud/order/discount/MemberLevelDiscount.java
+3
-3
library-order/src/main/java/com/gingersoft/gsa/cloud/order/discount/MemberWalletCouponDiscount.java
+71
-0
library-order/src/main/java/com/gingersoft/gsa/cloud/order/discount/MultyDiscount.java
+2
-2
library-order/src/main/java/com/gingersoft/gsa/cloud/pay/device/pos/yedpay/YedpayCallbackImp.java
+7
-6
library-order/src/main/java/com/gingersoft/gsa/cloud/pay/lifecycle/contract/PayFlowContract.java
+3
-1
library-order/src/main/java/com/gingersoft/gsa/cloud/pay/lifecycle/fragment/PayFlowFragment.java
+7
-1
library-order/src/main/java/com/gingersoft/gsa/cloud/pay/lifecycle/presenter/PayFlowPresenter.java
+2
-3
library-ui/src/main/java/com/gingersoft/gsa/cloud/ui/adapter/TagViewAdapter.java
+8
-0
library-ui/src/main/java/com/gingersoft/gsa/cloud/ui/view/MyTableView.java
+0
-1
library-ui/src/main/res/layout/item_tag_view.xml
+5
-5
No files found.
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/component/Fine
Item
AllComponent.java
→
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/component/Fine
Child
AllComponent.java
View file @
6ec228e3
...
...
@@ -5,11 +5,11 @@ import dagger.Component;
import
com.jess.arms.di.component.AppComponent
;
import
com.gingersoft.gsa.cloud.table.di.module.Fine
Item
AllModule
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.Fine
Item
AllContract
;
import
com.gingersoft.gsa.cloud.table.di.module.Fine
Child
AllModule
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.Fine
Child
AllContract
;
import
com.jess.arms.di.scope.FragmentScope
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.fragment.
FineItem
AllFragment
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.fragment.
mealstand.FineChild
AllFragment
;
/**
...
...
@@ -25,17 +25,17 @@ import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.FineItemAllFragment;
* ================================================
*/
@FragmentScope
@Component
(
modules
=
Fine
Item
AllModule
.
class
,
dependencies
=
AppComponent
.
class
)
public
interface
Fine
Item
AllComponent
{
void
inject
(
Fine
Item
AllFragment
fragment
);
@Component
(
modules
=
Fine
Child
AllModule
.
class
,
dependencies
=
AppComponent
.
class
)
public
interface
Fine
Child
AllComponent
{
void
inject
(
Fine
Child
AllFragment
fragment
);
@Component
.
Builder
interface
Builder
{
@BindsInstance
Fine
ItemAllComponent
.
Builder
view
(
FineItem
AllContract
.
View
view
);
Fine
ChildAllComponent
.
Builder
view
(
FineChild
AllContract
.
View
view
);
Fine
Item
AllComponent
.
Builder
appComponent
(
AppComponent
appComponent
);
Fine
Child
AllComponent
.
Builder
appComponent
(
AppComponent
appComponent
);
Fine
Item
AllComponent
build
();
Fine
Child
AllComponent
build
();
}
}
\ No newline at end of file
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/component/Fine
Item
OneselfComponent.java
→
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/component/Fine
Child
OneselfComponent.java
View file @
6ec228e3
...
...
@@ -3,11 +3,11 @@ package com.gingersoft.gsa.cloud.table.di.component;
import
dagger.BindsInstance
;
import
dagger.Component
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.Fine
Item
OneselfContract
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.fragment.
FineItem
OneselfFragment
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.Fine
Child
OneselfContract
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.fragment.
mealstand.FineChild
OneselfFragment
;
import
com.jess.arms.di.component.AppComponent
;
import
com.gingersoft.gsa.cloud.table.di.module.Fine
Item
OneselfModule
;
import
com.gingersoft.gsa.cloud.table.di.module.Fine
Child
OneselfModule
;
import
com.jess.arms.di.scope.FragmentScope
;
...
...
@@ -25,17 +25,17 @@ import com.jess.arms.di.scope.FragmentScope;
* ================================================
*/
@FragmentScope
@Component
(
modules
=
Fine
Item
OneselfModule
.
class
,
dependencies
=
AppComponent
.
class
)
public
interface
Fine
Item
OneselfComponent
{
void
inject
(
Fine
Item
OneselfFragment
fragment
);
@Component
(
modules
=
Fine
Child
OneselfModule
.
class
,
dependencies
=
AppComponent
.
class
)
public
interface
Fine
Child
OneselfComponent
{
void
inject
(
Fine
Child
OneselfFragment
fragment
);
@Component
.
Builder
interface
Builder
{
@BindsInstance
Fine
ItemOneselfComponent
.
Builder
view
(
FineItem
OneselfContract
.
View
view
);
Fine
ChildOneselfComponent
.
Builder
view
(
FineChild
OneselfContract
.
View
view
);
Fine
Item
OneselfComponent
.
Builder
appComponent
(
AppComponent
appComponent
);
Fine
Child
OneselfComponent
.
Builder
appComponent
(
AppComponent
appComponent
);
Fine
Item
OneselfComponent
build
();
Fine
Child
OneselfComponent
build
();
}
}
\ No newline at end of file
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/component/FineComponent.java
0 → 100644
View file @
6ec228e3
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
di
.
component
;
import
dagger.BindsInstance
;
import
dagger.Component
;
import
com.jess.arms.di.component.AppComponent
;
import
com.gingersoft.gsa.cloud.table.di.module.FineModule
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.FineContract
;
import
com.jess.arms.di.scope.FragmentScope
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.fragment.mealstand.FineFragment
;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 04/24/2021 18:33
* <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>
* ================================================
*/
@FragmentScope
@Component
(
modules
=
FineModule
.
class
,
dependencies
=
AppComponent
.
class
)
public
interface
FineComponent
{
void
inject
(
FineFragment
fragment
);
@Component
.
Builder
interface
Builder
{
@BindsInstance
FineComponent
.
Builder
view
(
FineContract
.
View
view
);
FineComponent
.
Builder
appComponent
(
AppComponent
appComponent
);
FineComponent
build
();
}
}
\ No newline at end of file
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/component/MealStand2Component.java
View file @
6ec228e3
...
...
@@ -3,6 +3,7 @@ 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.contract.MealStandContract2
;
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
;
...
...
@@ -32,7 +33,7 @@ public interface MealStand2Component {
@Component
.
Builder
interface
Builder
{
@BindsInstance
MealStand2Component
.
Builder
view
(
MealStandContract
.
View
view
);
MealStand2Component
.
Builder
view
(
MealStandContract
2
.
View
view
);
MealStand2Component
.
Builder
appComponent
(
AppComponent
appComponent
);
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/component/RiceponMemberDialogComponent.java
0 → 100644
View file @
6ec228e3
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
di
.
component
;
import
dagger.BindsInstance
;
import
dagger.Component
;
import
com.jess.arms.di.component.AppComponent
;
import
com.gingersoft.gsa.cloud.table.di.module.RiceponMemberDialogModule
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.RiceponMemberDialogContract
;
import
com.jess.arms.di.scope.FragmentScope
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.fragment.mealstand.RiceponMemberDialogFragment
;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 04/24/2021 16:24
* <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>
* ================================================
*/
@FragmentScope
@Component
(
modules
=
RiceponMemberDialogModule
.
class
,
dependencies
=
AppComponent
.
class
)
public
interface
RiceponMemberDialogComponent
{
void
inject
(
RiceponMemberDialogFragment
fragment
);
@Component
.
Builder
interface
Builder
{
@BindsInstance
RiceponMemberDialogComponent
.
Builder
view
(
RiceponMemberDialogContract
.
View
view
);
RiceponMemberDialogComponent
.
Builder
appComponent
(
AppComponent
appComponent
);
RiceponMemberDialogComponent
build
();
}
}
\ No newline at end of file
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/module/CouponModule.java
View file @
6ec228e3
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
di
.
module
;
import
com.gingersoft.gsa.cloud.common.core.discount.MemberCoupon
;
import
com.gingersoft.gsa.cloud.ui.adapter.TagViewAdapter
;
import
com.gingersoft.gsa.cloud.ui.bean.TagViewItem
;
import
com.jess.arms.di.scope.ActivityScope
;
import
com.jess.arms.di.scope.FragmentScope
;
import
dagger.Binds
;
...
...
@@ -16,8 +14,6 @@ import com.gingersoft.gsa.cloud.table.mvp.model.CouponModel;
import
java.util.ArrayList
;
import
java.util.List
;
import
javax.inject.Inject
;
/**
* ================================================
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/module/Fine
Item
AllModule.java
→
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/module/Fine
Child
AllModule.java
View file @
6ec228e3
...
...
@@ -3,8 +3,8 @@ package com.gingersoft.gsa.cloud.table.di.module;
import
dagger.Binds
;
import
dagger.Module
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.Fine
Item
AllContract
;
import
com.gingersoft.gsa.cloud.table.mvp.model.Fine
Item
AllModel
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.Fine
Child
AllContract
;
import
com.gingersoft.gsa.cloud.table.mvp.model.Fine
Child
AllModel
;
/**
...
...
@@ -20,8 +20,8 @@ import com.gingersoft.gsa.cloud.table.mvp.model.FineItemAllModel;
* ================================================
*/
@Module
public
abstract
class
Fine
Item
AllModule
{
public
abstract
class
Fine
Child
AllModule
{
@Binds
abstract
Fine
ItemAllContract
.
Model
bindFineItemAllModel
(
FineItem
AllModel
model
);
abstract
Fine
ChildAllContract
.
Model
bindFineItemAllModel
(
FineChild
AllModel
model
);
}
\ No newline at end of file
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/module/Fine
Item
OneselfModule.java
→
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/module/Fine
Child
OneselfModule.java
View file @
6ec228e3
...
...
@@ -3,8 +3,8 @@ package com.gingersoft.gsa.cloud.table.di.module;
import
dagger.Binds
;
import
dagger.Module
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.Fine
Item
OneselfContract
;
import
com.gingersoft.gsa.cloud.table.mvp.model.Fine
Item
OneselfModel
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.Fine
Child
OneselfContract
;
import
com.gingersoft.gsa.cloud.table.mvp.model.Fine
Child
OneselfModel
;
/**
...
...
@@ -20,8 +20,8 @@ import com.gingersoft.gsa.cloud.table.mvp.model.FineItemOneselfModel;
* ================================================
*/
@Module
public
abstract
class
Fine
Item
OneselfModule
{
public
abstract
class
Fine
Child
OneselfModule
{
@Binds
abstract
Fine
ItemOneselfContract
.
Model
bindFineItemOneselfModel
(
FineItem
OneselfModel
model
);
abstract
Fine
ChildOneselfContract
.
Model
bindFineItemOneselfModel
(
FineChild
OneselfModel
model
);
}
\ No newline at end of file
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/module/FineModule.java
0 → 100644
View file @
6ec228e3
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
di
.
module
;
import
com.jess.arms.di.scope.FragmentScope
;
import
dagger.Binds
;
import
dagger.Module
;
import
dagger.Provides
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.FineContract
;
import
com.gingersoft.gsa.cloud.table.mvp.model.FineModel
;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 04/24/2021 18:33
* <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
FineModule
{
@Binds
abstract
FineContract
.
Model
bindFineModel
(
FineModel
model
);
}
\ No newline at end of file
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/module/MealStand2Module.java
View file @
6ec228e3
...
...
@@ -6,7 +6,9 @@ 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.contract.MealStandContract2
;
import
com.gingersoft.gsa.cloud.table.mvp.model.MealStandModel
;
import
com.gingersoft.gsa.cloud.table.mvp.model.MealStandModel2
;
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
;
...
...
@@ -44,7 +46,7 @@ import dagger.Provides;
public
abstract
class
MealStand2Module
{
@Binds
abstract
MealStandContract
.
Model
bindMealStandModel
(
MealStandModel
model
);
abstract
MealStandContract
2
.
Model
bindMealStandModel2
(
MealStandModel2
model
);
@ActivityScope
@Provides
...
...
@@ -84,35 +86,27 @@ public abstract class MealStand2Module {
return
new
ArrayList
<>();
}
@Inject
protected
SelectMealAdapter
mSelectMealAdapter
;
/**
* 賬單項適配器
*/
@Inject
protected
BillItemAdapter
mBillItemAdapter
;
@ActivityScope
@Provides
static
FoodAdapter
provideFoodAdapter
(
MealStandContract
.
View
IView
,
@Named
(
"foodList"
)
List
<
Food
>
foodList
)
{
static
FoodAdapter
provideFoodAdapter
(
MealStandContract
2
.
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
)
{
static
ComboAdapter
provideComboAdapter
(
MealStandContract
2
.
View
IView
,
List
<
ComboItem
>
comboItemList
)
{
return
new
ComboAdapter
(
IView
.
getActivity
(),
comboItemList
);
}
@ActivityScope
@Provides
static
ModifierAdapter
provideModifierAdapter
(
MealStandContract
.
View
IView
,
List
<
Modifier
>
modifierList
)
{
static
ModifierAdapter
provideModifierAdapter
(
MealStandContract
2
.
View
IView
,
List
<
Modifier
>
modifierList
)
{
return
new
ModifierAdapter
(
IView
.
getActivity
(),
modifierList
);
}
@ActivityScope
@Provides
static
DiscountAdapter
provideDiscountAdapter
(
MealStandContract
.
View
IView
,
List
<
Discount
>
discountList
)
{
static
DiscountAdapter
provideDiscountAdapter
(
MealStandContract
2
.
View
IView
,
List
<
Discount
>
discountList
)
{
return
new
DiscountAdapter
(
IView
.
getActivity
(),
discountList
);
}
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/module/RiceponMemberDialogModule.java
0 → 100644
View file @
6ec228e3
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
di
.
module
;
import
com.gingersoft.gsa.cloud.database.bean.Food
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.SetMealContract
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.MemberInfoAdapter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.FoodGroupAdapter
;
import
com.gingersoft.gsa.cloud.ui.bean.view.SectionTextItem
;
import
com.jess.arms.di.scope.FragmentScope
;
import
dagger.Binds
;
import
dagger.Module
;
import
dagger.Provides
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.RiceponMemberDialogContract
;
import
com.gingersoft.gsa.cloud.table.mvp.model.RiceponMemberDialogModel
;
import
java.util.ArrayList
;
import
java.util.List
;
import
javax.inject.Named
;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 04/24/2021 16:24
* <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
RiceponMemberDialogModule
{
@Binds
abstract
RiceponMemberDialogContract
.
Model
bindRiceponMemberDialogModel
(
RiceponMemberDialogModel
model
);
@FragmentScope
@Provides
static
List
<
SectionTextItem
>
provideMemberInfoList
()
{
return
new
ArrayList
<>();
}
@FragmentScope
@Provides
static
MemberInfoAdapter
provideMemberInfoAdapter
(
List
<
SectionTextItem
>
memberInfoList
)
{
return
new
MemberInfoAdapter
(
memberInfoList
);
}
}
\ No newline at end of file
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/module/SetMealModule.java
View file @
6ec228e3
...
...
@@ -10,6 +10,7 @@ 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.model.bean.SoldoutCtrFood
;
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
;
...
...
@@ -101,6 +102,12 @@ public abstract class SetMealModule {
return
new
ArrayList
<>();
}
@FragmentScope
@Provides
static
List
<
SoldoutCtrFood
>
provideSoldoutCtrList
()
{
return
new
ArrayList
<>();
}
// @FragmentScope
// @Provides
// static SelectMealAdapter2 provideSelectMealAdapter2(SetMealContract.View IView, List<OrderDetail> orderMealList, BasePresenter presenter) {
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/action/discount/BillCouponAction.java
View file @
6ec228e3
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
mvp
.
action
.
discount
;
import
android.app.Activity
;
import
com.gingersoft.gsa.cloud.common.core.discount.MemberCoupon
;
import
com.gingersoft.gsa.cloud.order.bean.discount.MemberWalletCoupon
;
import
com.gingersoft.gsa.cloud.common.patterns.Strategy
;
import
com.gingersoft.gsa.cloud.order.discount.NomalDiscount
;
import
com.jess.arms.utils.ArmsUtils
;
import
java.util.List
;
import
lombok.Builder
;
import
lombok.Setter
;
/**
* @author : bin
* @create date: 2020-10-27
* @update date: 2020-10-27
* @description:賬單優惠券邏輯
*/
public
class
BillCouponAction
implements
Strategy
<
MemberCoupon
>
{
@Builder
@Setter
public
class
BillCouponAction
implements
Strategy
<
MemberWalletCoupon
>
{
private
Activity
mC
ontext
;
private
Activity
c
ontext
;
/**
* 賬單優惠券列表
*/
private
List
<
NomalDiscount
>
mN
omalDiscountList
;
private
List
<
NomalDiscount
>
n
omalDiscountList
;
private
OnCallBackListener
mListener
;
private
double
wholeAmount
;
public
BillCouponAction
(
Activity
context
,
OnCallBackListener
listener
)
{
this
.
mContext
=
context
;
this
.
mListener
=
listener
;
}
private
OnCallBackListener
listener
;
private
String
cashStr
;
public
void
setNomalDiscountList
(
List
<
NomalDiscount
>
nomalDiscountList
)
{
this
.
mNomalDiscountList
=
nomalDiscountList
;
}
@Override
public
void
action
(
MemberCoupon
discount
)
{
if
(
mListener
==
null
)
{
public
void
action
(
MemberWalletCoupon
coupon
)
{
if
(
listener
==
null
)
{
return
;
}
if
(
coupon
.
getBillMinAmount
()
>
wholeAmount
)
{
//小於最小賬單金額
ArmsUtils
.
makeText
(
context
,
"小於最小賬單金額"
+
cashStr
+
coupon
.
getBillMinAmount
()
+
" 無法使用此優惠券"
);
return
;
}
listener
.
preformAddCoupon
(
coupon
.
clone
());
}
@Override
...
...
@@ -46,16 +55,10 @@ public class BillCouponAction implements Strategy<MemberCoupon> {
}
private
void
exclusiveDiscount
(
MemberCoupon
discount
)
{
if
(
mListener
!=
null
)
{
}
}
public
interface
OnCallBackListener
{
void
exclusiveRemoveOthers
(
List
<
NomalDiscount
>
nomalDiscountList
);
void
preformAddDiscount
(
MemberCoupon
discount
);
void
preformAddCoupon
(
MemberWalletCoupon
discount
);
}
}
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/action/discount/BillDiscountAction.java
View file @
6ec228e3
...
...
@@ -12,40 +12,45 @@ import com.jess.arms.utils.ArmsUtils;
import
java.util.List
;
import
lombok.Builder
;
import
lombok.Setter
;
/**
* @author : bin
* @create date: 2020-10-27
* @update date: 2020-10-27
* @description:賬單折扣邏輯
*/
@Builder
@Setter
public
class
BillDiscountAction
implements
Strategy
<
Discount
>
{
private
Activity
mC
ontext
;
private
Activity
c
ontext
;
/**
* 賬單折扣列表
*/
private
List
<
NomalDiscount
>
mN
omalDiscountList
;
private
List
<
NomalDiscount
>
n
omalDiscountList
;
private
OnCallBackListener
mListener
;
private
double
wholeAmount
;
public
BillDiscountAction
(
Activity
context
,
OnCallBackListener
listener
)
{
this
.
mContext
=
context
;
this
.
mListener
=
listener
;
}
private
OnCallBackListener
listener
;
public
void
setNomalDiscountList
(
List
<
NomalDiscount
>
nomalDiscountList
)
{
this
.
mNomalDiscountList
=
nomalDiscountList
;
}
private
String
cashStr
;
@Override
public
void
action
(
Discount
discount
)
{
if
(
mListener
==
null
)
{
if
(
listener
==
null
)
{
return
;
}
if
(
discount
.
getMinBillAmount
()
>
wholeAmount
)
{
//小於最小賬單金額
ArmsUtils
.
makeText
(
context
,
"小於最小賬單金額"
+
cashStr
+
discount
.
getMinBillAmount
()
+
" 無法使用此折扣"
);
return
;
}
if
(
isOnlyOnce
(
discount
))
{
//此折扣只一次
ArmsUtils
.
makeText
(
mC
ontext
,
"此折扣只一次"
);
ArmsUtils
.
makeText
(
c
ontext
,
"此折扣只一次"
);
return
;
}
boolean
hasExclusive
=
hasExclusiveDiscount
();
...
...
@@ -54,7 +59,7 @@ public class BillDiscountAction implements Strategy<Discount> {
exclusiveDiscount
(
discount
);
return
;
}
else
{
if
(
discount
.
getExclusive
()
==
1
&&
mN
omalDiscountList
.
size
()
>
0
)
{
if
(
nomalDiscountList
!=
null
&&
discount
.
getExclusive
()
==
1
&&
n
omalDiscountList
.
size
()
>
0
)
{
//獨佔折扣
exclusiveDiscount
(
discount
);
return
;
...
...
@@ -71,7 +76,7 @@ public class BillDiscountAction implements Strategy<Discount> {
//
// break;
default
:
mL
istener
.
preformAddDiscount
(
discount
.
clone
());
l
istener
.
preformAddDiscount
(
discount
.
clone
());
break
;
}
}
...
...
@@ -82,7 +87,7 @@ public class BillDiscountAction implements Strategy<Discount> {
}
private
void
exclusiveDiscount
(
Discount
discount
)
{
if
(
mL
istener
!=
null
)
{
if
(
l
istener
!=
null
)
{
showExclusiveTipDialog
(
discount
);
}
}
...
...
@@ -93,7 +98,7 @@ public class BillDiscountAction implements Strategy<Discount> {
* @return
*/
private
boolean
hasExclusiveDiscount
()
{
for
(
NomalDiscount
nomalDiscount
:
mN
omalDiscountList
)
{
for
(
NomalDiscount
nomalDiscount
:
n
omalDiscountList
)
{
if
(
nomalDiscount
.
getDiscount
().
getExclusive
()
==
1
)
{
return
true
;
}
...
...
@@ -109,7 +114,7 @@ public class BillDiscountAction implements Strategy<Discount> {
*/
private
boolean
isOnlyOnce
(
Discount
discount
)
{
if
(
discount
.
getOnlyOnce
()
==
1
)
{
for
(
NomalDiscount
nomalDiscount
:
mN
omalDiscountList
)
{
for
(
NomalDiscount
nomalDiscount
:
n
omalDiscountList
)
{
Discount
item
=
nomalDiscount
.
getDiscount
();
if
(
discount
.
getId
().
longValue
()
==
item
.
getId
().
longValue
())
{
return
true
;
...
...
@@ -126,15 +131,15 @@ public class BillDiscountAction implements Strategy<Discount> {
* @param discount
*/
private
void
showCustomAmountDialog
(
Discount
discount
,
boolean
exclusiveReplace
)
{
CommonTipDialog
.
showEditDialog
(
mC
ontext
,
discount
.
getRemark
(),
"請輸入折扣金額"
,
InputType
.
TYPE_CLASS_NUMBER
|
InputType
.
TYPE_NUMBER_FLAG_DECIMAL
,
new
CommonTipDialog
.
OnEditTextListener
()
{
CommonTipDialog
.
showEditDialog
(
c
ontext
,
discount
.
getRemark
(),
"請輸入折扣金額"
,
InputType
.
TYPE_CLASS_NUMBER
|
InputType
.
TYPE_NUMBER_FLAG_DECIMAL
,
new
CommonTipDialog
.
OnEditTextListener
()
{
@Override
public
void
inputText
(
String
text
)
{
discount
.
setAmount
(
Double
.
parseDouble
(
text
));
if
(
mL
istener
!=
null
)
{
if
(
l
istener
!=
null
)
{
if
(
exclusiveReplace
)
{
mListener
.
exclusiveRemoveOthers
(
mN
omalDiscountList
);
listener
.
exclusiveRemoveOthers
(
n
omalDiscountList
);
}
mL
istener
.
preformAddDiscount
(
discount
.
clone
());
l
istener
.
preformAddDiscount
(
discount
.
clone
());
}
}
});
...
...
@@ -146,17 +151,17 @@ public class BillDiscountAction implements Strategy<Discount> {
* @param discount
*/
private
void
showKeyboardDialog
(
Discount
discount
,
boolean
exclusiveReplace
)
{
new
KeyboardDialog
(
mC
ontext
)
new
KeyboardDialog
(
c
ontext
)
.
build
()
.
setOnCallBackListener
(
new
KeyboardDialog
.
OnCallBackListener
()
{
@Override
public
void
onSure
(
String
number
)
{
discount
.
setAmount
(
Double
.
parseDouble
(
number
));
if
(
mL
istener
!=
null
)
{
if
(
l
istener
!=
null
)
{
if
(
exclusiveReplace
)
{
mListener
.
exclusiveRemoveOthers
(
mN
omalDiscountList
);
listener
.
exclusiveRemoveOthers
(
n
omalDiscountList
);
}
mL
istener
.
preformAddDiscount
(
discount
.
clone
());
l
istener
.
preformAddDiscount
(
discount
.
clone
());
}
}
})
...
...
@@ -169,7 +174,7 @@ public class BillDiscountAction implements Strategy<Discount> {
* @param discount
*/
private
void
showExclusiveTipDialog
(
Discount
discount
)
{
CommonTipDialog
.
showDoubtDialog2
(
mC
ontext
,
"有獨佔折扣,是否替換"
,
new
CommonTipDialog
.
OnCallbackListener
()
{
CommonTipDialog
.
showDoubtDialog2
(
c
ontext
,
"有獨佔折扣,是否替換"
,
new
CommonTipDialog
.
OnCallbackListener
()
{
@Override
public
void
onSure
()
{
switch
(
discount
.
getType
())
{
...
...
@@ -183,8 +188,8 @@ public class BillDiscountAction implements Strategy<Discount> {
//
// break;
default
:
mListener
.
exclusiveRemoveOthers
(
mN
omalDiscountList
);
mL
istener
.
preformAddDiscount
(
discount
.
clone
());
listener
.
exclusiveRemoveOthers
(
n
omalDiscountList
);
l
istener
.
preformAddDiscount
(
discount
.
clone
());
break
;
}
}
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/action/discount/MealCouponAction.java
View file @
6ec228e3
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
mvp
.
action
.
discount
;
import
android.app.Activity
;
import
android.text.InputType
;
import
com.gingersoft.gsa.cloud.
common.core.discount.Member
Coupon
;
import
com.gingersoft.gsa.cloud.
order.bean.discount.MemberWallet
Coupon
;
import
com.gingersoft.gsa.cloud.common.patterns.Strategy
;
import
com.gingersoft.gsa.cloud.order.discount.NomalDiscount
;
import
com.gingersoft.gsa.cloud.ui.widget.dialog.CommonTipDialog
;
import
com.gingersoft.gsa.cloud.ui.widget.dialog.KeyboardDialog
;
import
com.gingersoft.gsa.cloud.common.utils.MoneyUtil
;
import
com.gingersoft.gsa.cloud.order.commodity.OrderDetail
;
import
com.jess.arms.utils.ArmsUtils
;
import
java.util.List
;
import
lombok.Builder
;
import
lombok.Setter
;
/**
* @author : bin
* @create date: 2020-10-27
* @update date: 2020-10-27
* @description:食品優惠券邏輯
*/
public
class
MealCouponAction
implements
Strategy
<
MemberCoupon
>
{
@Builder
@Setter
public
class
MealCouponAction
implements
Strategy
<
MemberWalletCoupon
>
{
private
Activity
mC
ontext
;
private
Activity
c
ontext
;
/**
*
食品優惠券列表
*
選中的食品或套餐組
*/
private
List
<
NomalDiscount
>
mNomalDiscount
List
;
private
List
<
OrderDetail
>
selectMixOrderMeal
List
;
private
OnCallBackListener
mL
istener
;
private
OnCallBackListener
l
istener
;
public
MealCouponAction
(
Activity
context
,
OnCallBackListener
listener
)
{
this
.
mContext
=
context
;
this
.
mListener
=
listener
;
}
public
void
setNomalDiscountList
(
List
<
NomalDiscount
>
nomalDiscountList
)
{
this
.
mNomalDiscountList
=
nomalDiscountList
;
}
private
String
cashStr
;
@Override
public
void
action
(
Member
Coupon
discount
)
{
if
(
mListener
==
null
)
{
public
void
action
(
Member
WalletCoupon
coupon
)
{
if
(
listener
==
null
||
selectMixOrderMealList
==
null
||
selectMixOrderMealList
.
size
()
==
0
)
{
return
;
}
double
mixTotalAomout
=
getMixTotalAomout
(
selectMixOrderMealList
);
// if(coupon.getAmount() > mixTotalAomout){
// //金額折扣總額不能超過 套餐總金額
// ArmsUtils.makeText(context, "優惠券金額不可以超過食品總金額!");
// return;
// }
if
(
coupon
.
getBillMinAmount
()
>
mixTotalAomout
)
{
//最小金額
ArmsUtils
.
makeText
(
context
,
"小於最小金額"
+
cashStr
+
coupon
.
getBillMinAmount
()
+
" 無法使用此食品優惠券"
);
return
;
}
listener
.
preformAddCoupon
(
coupon
.
clone
());
}
@Override
...
...
@@ -51,30 +58,23 @@ public class MealCouponAction implements Strategy<MemberCoupon> {
}
private
void
exclusiveDiscount
(
MemberCoupon
discount
)
{
if
(
mListener
!=
null
)
{
}
}
/**
*
是否有獨佔折扣
*
獲取套餐總金額
*
* @param mixOrderMealList
* @return
*/
private
boolean
hasExclusiveDiscount
()
{
for
(
NomalDiscount
nomalDiscount
:
mNomalDiscountList
)
{
if
(
nomalDiscount
.
getDiscount
().
getExclusive
()
==
1
)
{
return
true
;
}
private
double
getMixTotalAomout
(
List
<
OrderDetail
>
mixOrderMealList
)
{
double
mixTotalAomout
=
0.0
;
for
(
OrderDetail
orderDetail
:
mixOrderMealList
)
{
mixTotalAomout
=
MoneyUtil
.
sum
(
mixTotalAomout
,
orderDetail
.
getPrice
());
}
return
false
;
return
mixTotalAomout
;
}
public
interface
OnCallBackListener
{
void
exclusiveRemoveOthers
(
List
<
NomalDiscount
>
nomalDiscountList
);
void
preformAddDiscount
(
MemberCoupon
discount
);
void
preformAddCoupon
(
MemberWalletCoupon
discount
);
}
}
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/action/discount/MealDiscountAction.java
View file @
6ec228e3
...
...
@@ -14,54 +14,48 @@ import com.jess.arms.utils.ArmsUtils;
import
java.util.List
;
import
lombok.Builder
;
import
lombok.Setter
;
/**
* @author : bin
* @create date: 2020-10-28
* @update date: 2020-10-28
* @description:美食折扣邏輯
*/
@Builder
@Setter
public
class
MealDiscountAction
implements
Strategy
<
Discount
>
{
private
Activity
mContext
;
private
Activity
context
;
/**
* 選中的食品或套餐組
*/
private
List
<
OrderDetail
>
mSelectMixOrderMealList
;
private
List
<
MultyDiscount
>
mMultyDiscountList
;
private
List
<
OrderDetail
>
selectMixOrderMealList
;
private
MealDiscountAction
.
OnCallBackListener
mL
istener
;
private
MealDiscountAction
.
OnCallBackListener
l
istener
;
public
MealDiscountAction
(
Activity
context
,
List
<
MultyDiscount
>
multyDiscountList
,
MealDiscountAction
.
OnCallBackListener
listener
)
{
this
.
mContext
=
context
;
this
.
mMultyDiscountList
=
multyDiscountList
;
this
.
mListener
=
listener
;
}
public
void
setSelectMixOrderMealList
(
List
<
OrderDetail
>
selectMixOrderMealList
)
{
this
.
mSelectMixOrderMealList
=
selectMixOrderMealList
;
}
private
String
cashStr
;
@Override
public
void
action
(
Discount
discount
)
{
if
(
mListener
==
null
||
mSelectMixOrderMealList
==
null
||
mS
electMixOrderMealList
.
size
()
==
0
)
{
if
(
listener
==
null
||
selectMixOrderMealList
==
null
||
s
electMixOrderMealList
.
size
()
==
0
)
{
return
;
}
double
mixTotalAomout
=
getMixTotalAomout
(
mS
electMixOrderMealList
);
double
mixTotalAomout
=
getMixTotalAomout
(
s
electMixOrderMealList
);
if
(
discount
.
getType
()
==
0
&&
discount
.
getAmount
()
>
mixTotalAomout
){
//金額折扣總額不能超過 食品總金額
ArmsUtils
.
makeText
(
mC
ontext
,
"折扣金額不可以超過食品總金額!"
);
ArmsUtils
.
makeText
(
c
ontext
,
"折扣金額不可以超過食品總金額!"
);
return
;
}
if
(
discount
.
getMinBillAmount
()
>
mixTotalAomout
)
{
//最小賬單金額
ArmsUtils
.
makeText
(
mContext
,
"小於最小賬單金額$"
+
discount
.
getMinBillAmount
()
+
" 無法使用此折扣"
);
ArmsUtils
.
makeText
(
context
,
"小於最小賬單金額"
+
cashStr
+
discount
.
getMinBillAmount
()
+
" 無法使用此折扣"
);
return
;
}
if
(
isOnlyOnce
(
discount
))
{
//此折扣只一次
ArmsUtils
.
makeText
(
mC
ontext
,
"此折扣只一次"
);
ArmsUtils
.
makeText
(
c
ontext
,
"此折扣只一次"
);
return
;
}
boolean
hasExclusive
=
hasExclusiveDiscount
();
...
...
@@ -88,7 +82,7 @@ public class MealDiscountAction implements Strategy<Discount> {
//
// break;
default
:
mL
istener
.
preformAddDiscount
(
discount
.
clone
());
l
istener
.
preformAddDiscount
(
discount
.
clone
());
break
;
}
}
...
...
@@ -99,7 +93,7 @@ public class MealDiscountAction implements Strategy<Discount> {
}
private
void
exclusiveDiscount
(
Discount
discount
)
{
if
(
mL
istener
!=
null
)
{
if
(
l
istener
!=
null
)
{
showExclusiveTipDialog
(
discount
);
}
}
...
...
@@ -111,7 +105,7 @@ public class MealDiscountAction implements Strategy<Discount> {
* @return
*/
private
boolean
hasExclusiveDiscount
()
{
for
(
OrderDetail
orderMealItem
:
mS
electMixOrderMealList
)
{
for
(
OrderDetail
orderMealItem
:
s
electMixOrderMealList
)
{
if
(
orderMealItem
.
getDiscount
()
!=
null
&&
orderMealItem
.
getDiscount
().
getExclusive
()
==
1
)
{
return
true
;
}
...
...
@@ -127,7 +121,7 @@ public class MealDiscountAction implements Strategy<Discount> {
*/
private
boolean
isOnlyOnce
(
Discount
discount
)
{
if
(
discount
.
getOnlyOnce
()
==
1
)
{
for
(
OrderDetail
orderMealItem
:
mS
electMixOrderMealList
)
{
for
(
OrderDetail
orderMealItem
:
s
electMixOrderMealList
)
{
Discount
item
=
orderMealItem
.
getDiscount
();
if
(
item
!=
null
&&
discount
.
getId
().
longValue
()
==
item
.
getId
().
longValue
())
{
return
true
;
...
...
@@ -144,15 +138,15 @@ public class MealDiscountAction implements Strategy<Discount> {
* @param discount
*/
private
void
showCustomAmountDialog
(
Discount
discount
,
boolean
exclusiveReplace
)
{
CommonTipDialog
.
showEditDialog
(
mC
ontext
,
discount
.
getRemark
(),
"請輸入折扣金額"
,
InputType
.
TYPE_CLASS_NUMBER
|
InputType
.
TYPE_NUMBER_FLAG_DECIMAL
,
new
CommonTipDialog
.
OnEditTextListener
()
{
CommonTipDialog
.
showEditDialog
(
c
ontext
,
discount
.
getRemark
(),
"請輸入折扣金額"
,
InputType
.
TYPE_CLASS_NUMBER
|
InputType
.
TYPE_NUMBER_FLAG_DECIMAL
,
new
CommonTipDialog
.
OnEditTextListener
()
{
@Override
public
void
inputText
(
String
text
)
{
discount
.
setAmount
(
Double
.
parseDouble
(
text
));
if
(
mL
istener
!=
null
)
{
if
(
l
istener
!=
null
)
{
if
(
exclusiveReplace
)
{
mL
istener
.
exclusiveRemoveOthers
();
l
istener
.
exclusiveRemoveOthers
();
}
mL
istener
.
preformAddDiscount
(
discount
.
clone
());
l
istener
.
preformAddDiscount
(
discount
.
clone
());
}
}
});
...
...
@@ -164,17 +158,17 @@ public class MealDiscountAction implements Strategy<Discount> {
* @param discount
*/
private
void
showKeyboardDialog
(
Discount
discount
,
boolean
exclusiveReplace
)
{
new
KeyboardDialog
(
mC
ontext
)
new
KeyboardDialog
(
c
ontext
)
.
build
()
.
setOnCallBackListener
(
new
KeyboardDialog
.
OnCallBackListener
()
{
@Override
public
void
onSure
(
String
number
)
{
discount
.
setAmount
(
Double
.
parseDouble
(
number
));
if
(
mL
istener
!=
null
)
{
if
(
l
istener
!=
null
)
{
if
(
exclusiveReplace
)
{
mL
istener
.
exclusiveRemoveOthers
();
l
istener
.
exclusiveRemoveOthers
();
}
mL
istener
.
preformAddDiscount
(
discount
.
clone
());
l
istener
.
preformAddDiscount
(
discount
.
clone
());
}
}
})
...
...
@@ -187,7 +181,7 @@ public class MealDiscountAction implements Strategy<Discount> {
* @param discount
*/
private
void
showExclusiveTipDialog
(
Discount
discount
)
{
CommonTipDialog
.
showDoubtDialog2
(
mC
ontext
,
"有獨佔折扣,是否替換"
,
new
CommonTipDialog
.
OnCallbackListener
()
{
CommonTipDialog
.
showDoubtDialog2
(
c
ontext
,
"有獨佔折扣,是否替換"
,
new
CommonTipDialog
.
OnCallbackListener
()
{
@Override
public
void
onSure
()
{
switch
(
discount
.
getType
())
{
...
...
@@ -201,8 +195,8 @@ public class MealDiscountAction implements Strategy<Discount> {
//
// break;
default
:
mL
istener
.
exclusiveRemoveOthers
();
mL
istener
.
preformAddDiscount
(
discount
.
clone
());
l
istener
.
exclusiveRemoveOthers
();
l
istener
.
preformAddDiscount
(
discount
.
clone
());
break
;
}
}
...
...
@@ -216,7 +210,7 @@ public class MealDiscountAction implements Strategy<Discount> {
*/
private
int
getDiscountSize
()
{
int
size
=
0
;
for
(
OrderDetail
orderMealItem
:
mS
electMixOrderMealList
)
{
for
(
OrderDetail
orderMealItem
:
s
electMixOrderMealList
)
{
if
(
orderMealItem
.
getDiscount
()
!=
null
)
{
size
++;
}
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/contract/CouponContract.java
View file @
6ec228e3
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
mvp
.
contract
;
import
androidx.recyclerview.widget.RecyclerView
;
import
com.gingersoft.gsa.cloud.common.bean.BaseResult
;
import
com.gingersoft.gsa.cloud.common.core.discount.MemberCoupon
;
import
com.gingersoft.gsa.cloud.order.bean.discount.MemberWalletCoupon
;
import
com.jess.arms.mvp.IView
;
import
com.jess.arms.mvp.IModel
;
import
com.kingja.loadsir.callback.Callback
;
import
com.kingja.loadsir.core.LoadService
;
import
com.kingja.loadsir.core.LoadSir
;
import
java.util.List
;
import
io.reactivex.Observable
;
import
io.reactivex.Single
;
import
retrofit2.http.Query
;
/**
...
...
@@ -33,7 +27,7 @@ public interface CouponContract {
//对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
interface
View
extends
IView
{
void
returnMemberCouponList
(
List
<
MemberCoupon
>
memberCoupons
);
void
returnMemberCouponList
(
List
<
Member
Wallet
Coupon
>
memberCoupons
);
void
showLoadSirSuccess
();
...
...
@@ -45,7 +39,7 @@ public interface CouponContract {
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface
Model
extends
IModel
{
Single
<
List
<
MemberCoupon
>>
getMemberWalletList
(
int
brandId
,
long
memberId
,
long
limitType
,
long
pageIndex
,
long
pageSize
);
Single
<
List
<
Member
Wallet
Coupon
>>
getMemberWalletList
(
int
brandId
,
long
memberId
,
long
limitType
,
long
pageIndex
,
long
pageSize
);
}
}
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/contract/Fine
Item
AllContract.java
→
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/contract/Fine
Child
AllContract.java
View file @
6ec228e3
...
...
@@ -24,7 +24,7 @@ import java.util.List;
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
public
interface
Fine
Item
AllContract
{
public
interface
Fine
Child
AllContract
{
//对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
interface
View
extends
IView
{
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/contract/Fine
Item
OneselfContract.java
→
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/contract/Fine
Child
OneselfContract.java
View file @
6ec228e3
...
...
@@ -23,7 +23,7 @@ import java.util.List;
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
public
interface
Fine
Item
OneselfContract
{
public
interface
Fine
Child
OneselfContract
{
//对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
interface
View
extends
IView
{
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/contract/FineContract.java
0 → 100644
View file @
6ec228e3
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
mvp
.
contract
;
import
com.jess.arms.mvp.IView
;
import
com.jess.arms.mvp.IModel
;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 04/24/2021 18:33
* <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
interface
FineContract
{
//对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
interface
View
extends
IView
{
}
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface
Model
extends
IModel
{
}
}
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/contract/MealStandContract.java
View file @
6ec228e3
...
...
@@ -20,6 +20,7 @@ import java.util.List;
import
androidx.recyclerview.widget.RecyclerView
;
import
io.reactivex.Observable
;
import
io.reactivex.Single
;
import
okhttp3.RequestBody
;
...
...
@@ -133,7 +134,7 @@ public interface MealStandContract {
Observable
<
BaseResult
>
getRestaurantFoodReason
(
int
brandId
,
int
restaurantId
,
int
type
);
Observable
<
BaseResult
>
queryMember
(
int
type
,
String
parm
,
String
shopName
,
int
tableId
,
String
tableNumber
);
Single
<
BaseResult
>
queryMember
(
int
type
,
String
parm
,
String
shopName
,
int
tableId
,
String
tableNumber
);
Observable
<
BaseResult
>
memberUse
(
int
tableId
,
String
tableNumber
,
long
memberId
);
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/contract/MealStandContract2.java
0 → 100644
View file @
6ec228e3
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
mvp
.
contract
;
import
android.app.Activity
;
import
android.widget.BaseAdapter
;
import
androidx.recyclerview.widget.RecyclerView
;
import
com.gingersoft.gsa.cloud.common.bean.BaseResult
;
import
com.gingersoft.gsa.cloud.common.core.member.MemberInfo
;
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.FoodModifier
;
import
com.gingersoft.gsa.cloud.database.bean.Modifier
;
import
com.gingersoft.gsa.cloud.order.commodity.OrderDetail
;
import
com.gingersoft.gsa.cloud.table.mvp.model.bean.response.BaseOrderResponse
;
import
com.jess.arms.base.DefaultAdapter
;
import
java.util.List
;
import
io.reactivex.Observable
;
import
io.reactivex.Single
;
import
okhttp3.RequestBody
;
/**
* ================================================
* 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
interface
MealStandContract2
{
//对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
interface
View
extends
BaseOrderContract
.
View
{
void
showStandOperLayoutVisibility
(
boolean
show
);
void
showBtnMealModifyRestoreVisibility
(
boolean
show
);
void
setOrderFoodCount
(
String
number
);
Activity
getActivity
();
int
getFromType
();
}
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface
Model
extends
BaseOrderContract
.
Model
{
Observable
<
BaseResult
>
getCurrentSoldoutFood
(
RequestBody
requestBody
);
Observable
<
BaseResult
>
createOrder
(
RequestBody
requestBody
);
Observable
<
BaseResult
>
addFood
(
RequestBody
requestBody
);
Observable
<
BaseOrderResponse
>
loadOrder
(
long
orderId
);
Observable
<
BaseOrderResponse
>
deleteFood
(
RequestBody
requestBody
);
Observable
<
BaseOrderResponse
>
printOrder
(
RequestBody
requestBody
);
Observable
<
BaseResult
>
getRestaurantFoodReason
(
int
brandId
,
int
restaurantId
,
int
type
);
Single
<
BaseResult
>
queryMember
(
int
type
,
String
parm
,
String
shopName
,
int
tableId
,
String
tableNumber
);
Observable
<
BaseResult
>
memberUse
(
int
tableId
,
String
tableNumber
,
long
memberId
);
Observable
<
BaseResult
>
memberUseCancel
(
int
tableId
,
String
tableNumber
,
long
memberId
);
List
<
Food
>
queryDB_AllFoodList
();
List
<
Food
>
queryDB_FoodGroupList
(
int
foodSummary
);
List
<
Food
>
queryDB_FoodList
(
long
parentId
,
int
foodSummary
);
List
<
Modifier
>
queryDB_ModifierList
(
long
fid
,
int
mode
);
List
<
ComboItem
>
queryDB_ComboList
(
long
fid
,
int
foodSummary
);
List
<
FoodCombo
>
isComboFood
(
long
fid
);
List
<
FoodModifier
>
queryDB_FoodModifierList
(
long
fid
);
List
<
Discount
>
queryDB_DiscountList
(
byte
discountScope
,
byte
discountType
);
}
}
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/contract/RiceponMemberDialogContract.java
0 → 100644
View file @
6ec228e3
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
mvp
.
contract
;
import
com.gingersoft.gsa.cloud.common.bean.BaseResult
;
import
com.gingersoft.gsa.cloud.common.core.member.MemberInfo
;
import
com.jess.arms.mvp.IView
;
import
com.jess.arms.mvp.IModel
;
import
io.reactivex.Observable
;
import
io.reactivex.Single
;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 04/24/2021 16:24
* <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
interface
RiceponMemberDialogContract
{
//对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
interface
View
extends
IView
{
void
returnMemberInfo
(
MemberInfo
memberInfo
);
}
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface
Model
extends
IModel
{
Single
<
BaseResult
>
queryMember
(
int
type
,
String
parm
,
String
shopName
,
int
tableId
,
String
tableNumber
);
}
}
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/contract/SetMealContract.java
View file @
6ec228e3
...
...
@@ -7,6 +7,7 @@ import com.gingersoft.gsa.cloud.database.bean.Food;
import
com.gingersoft.gsa.cloud.database.bean.FoodCombo
;
import
com.gingersoft.gsa.cloud.database.bean.FoodModifier
;
import
com.gingersoft.gsa.cloud.database.bean.Modifier
;
import
com.gingersoft.gsa.cloud.order.commodity.OrderDetail
;
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
;
...
...
@@ -41,6 +42,10 @@ public interface SetMealContract {
//对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
interface
View
extends
BaseOrderContract
.
View
{
void
setCurrLayout
(
byte
layout
);
void
setCustomFoodDialog
(
int
customType
,
OrderDetail
foodItem
);
void
setFoodGroupRecycleSpanCount
(
int
size
);
void
setFoodRecycleSpanCount
(
int
size
);
...
...
@@ -67,14 +72,6 @@ public interface SetMealContract {
void
resetSelect
(
int
position
,
Food
datasBean
);
void
returnFoodGroupList
(
List
<
Food
>
foodGroupList
);
void
returnFoodList
(
List
<
Food
>
foodList
);
void
returnFoodComboList
(
List
<
ComboItem
>
comboList
);
void
returnModifierList
(
List
<
Modifier
>
modifierList
);
void
initFoodGroupAdapter
(
List
<
Food
>
foodGroupList
);
void
notifyFoodGroupAdapter
();
...
...
@@ -97,9 +94,9 @@ public interface SetMealContract {
Single
<
List
<
Food
>>
queryDB_FoodList
(
long
parentId
,
int
foodSummary
);
Single
<
List
<
Modifier
>
>
queryDB_ModifierList
(
long
fid
,
int
mode
);
List
<
Modifier
>
queryDB_ModifierList
(
long
fid
,
int
mode
);
Single
<
List
<
ComboItem
>
>
queryDB_ComboList
(
long
fid
,
int
foodSummary
);
List
<
ComboItem
>
queryDB_ComboList
(
long
fid
,
int
foodSummary
);
Single
<
List
<
FoodCombo
>>
isComboFood
(
long
fid
);
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/model/CouponModel.java
View file @
6ec228e3
...
...
@@ -3,9 +3,8 @@ package com.gingersoft.gsa.cloud.table.mvp.model;
import
android.app.Application
;
import
com.gingersoft.gsa.cloud.common.bean.BaseResult
;
import
com.gingersoft.gsa.cloud.
common.core.discount.Member
Coupon
;
import
com.gingersoft.gsa.cloud.
order.bean.discount.MemberWallet
Coupon
;
import
com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils
;
import
com.gingersoft.gsa.cloud.table.mvp.model.service.MealService
;
import
com.gingersoft.gsa.cloud.table.mvp.model.service.MemberService
;
import
com.google.gson.Gson
;
import
com.jess.arms.integration.IRepositoryManager
;
...
...
@@ -56,14 +55,14 @@ public class CouponModel extends BaseModel implements CouponContract.Model {
}
@Override
public
Single
<
List
<
MemberCoupon
>>
getMemberWalletList
(
int
brandId
,
long
memberId
,
long
limitType
,
long
pageIndex
,
long
pageSize
)
{
public
Single
<
List
<
Member
Wallet
Coupon
>>
getMemberWalletList
(
int
brandId
,
long
memberId
,
long
limitType
,
long
pageIndex
,
long
pageSize
)
{
return
mRepositoryManager
.
obtainRetrofitService
(
MemberService
.
class
)
.
getMemberWalletList
(
brandId
,
memberId
,
limitType
,
pageIndex
,
pageSize
)
.
map
(
new
Function
<
BaseResult
,
List
<
MemberCoupon
>>()
{
.
map
(
new
Function
<
BaseResult
,
List
<
Member
Wallet
Coupon
>>()
{
@Override
public
List
<
MemberCoupon
>
apply
(
BaseResult
result
)
throws
Exception
{
public
List
<
Member
Wallet
Coupon
>
apply
(
BaseResult
result
)
throws
Exception
{
if
(
result
.
isSuccess
())
{
return
GsonUtils
.
jsonToList
(
result
.
getData
(),
MemberCoupon
.
class
);
return
GsonUtils
.
jsonToList
(
result
.
getData
(),
Member
Wallet
Coupon
.
class
);
}
else
{
return
new
ArrayList
<>();
}
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/model/Fine
Item
AllModel.java
→
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/model/Fine
Child
AllModel.java
View file @
6ec228e3
...
...
@@ -4,7 +4,7 @@ import android.app.Application;
import
com.gingersoft.gsa.cloud.database.bean.Modifier
;
import
com.gingersoft.gsa.cloud.database.utils.ModifierDaoUtils
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.Fine
Item
AllContract
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.Fine
Child
AllContract
;
import
com.gingersoft.gsa.cloud.table.mvp.model.utils.MealStyleUtils
;
import
com.google.gson.Gson
;
import
com.jess.arms.di.scope.FragmentScope
;
...
...
@@ -29,14 +29,14 @@ import javax.inject.Inject;
* ================================================
*/
@FragmentScope
public
class
Fine
ItemAllModel
extends
BaseModel
implements
FineItem
AllContract
.
Model
{
public
class
Fine
ChildAllModel
extends
BaseModel
implements
FineChild
AllContract
.
Model
{
@Inject
Gson
mGson
;
@Inject
Application
mApplication
;
@Inject
public
Fine
Item
AllModel
(
IRepositoryManager
repositoryManager
)
{
public
Fine
Child
AllModel
(
IRepositoryManager
repositoryManager
)
{
super
(
repositoryManager
);
}
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/model/Fine
Item
OneselfModel.java
→
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/model/Fine
Child
OneselfModel.java
View file @
6ec228e3
...
...
@@ -6,7 +6,7 @@ import com.gingersoft.gsa.cloud.database.bean.ComboItem;
import
com.gingersoft.gsa.cloud.database.bean.Modifier
;
import
com.gingersoft.gsa.cloud.database.utils.ComboItemDaoUtils
;
import
com.gingersoft.gsa.cloud.database.utils.ModifierDaoUtils
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.Fine
Item
OneselfContract
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.Fine
Child
OneselfContract
;
import
com.gingersoft.gsa.cloud.table.mvp.model.utils.MealStyleUtils
;
import
com.google.gson.Gson
;
import
com.jess.arms.integration.IRepositoryManager
;
...
...
@@ -32,14 +32,14 @@ import javax.inject.Inject;
* ================================================
*/
@FragmentScope
public
class
Fine
ItemOneselfModel
extends
BaseModel
implements
FineItem
OneselfContract
.
Model
{
public
class
Fine
ChildOneselfModel
extends
BaseModel
implements
FineChild
OneselfContract
.
Model
{
@Inject
Gson
mGson
;
@Inject
Application
mApplication
;
@Inject
public
Fine
Item
OneselfModel
(
IRepositoryManager
repositoryManager
)
{
public
Fine
Child
OneselfModel
(
IRepositoryManager
repositoryManager
)
{
super
(
repositoryManager
);
}
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/model/FineModel.java
0 → 100644
View file @
6ec228e3
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
mvp
.
model
;
import
android.app.Application
;
import
com.google.gson.Gson
;
import
com.jess.arms.integration.IRepositoryManager
;
import
com.jess.arms.mvp.BaseModel
;
import
com.jess.arms.di.scope.FragmentScope
;
import
javax.inject.Inject
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.FineContract
;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 04/24/2021 18:33
* <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>
* ================================================
*/
@FragmentScope
public
class
FineModel
extends
BaseModel
implements
FineContract
.
Model
{
@Inject
Gson
mGson
;
@Inject
Application
mApplication
;
@Inject
public
FineModel
(
IRepositoryManager
repositoryManager
)
{
super
(
repositoryManager
);
}
@Override
public
void
onDestroy
()
{
super
.
onDestroy
();
this
.
mGson
=
null
;
this
.
mApplication
=
null
;
}
}
\ No newline at end of file
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/model/MealStandModel.java
View file @
6ec228e3
...
...
@@ -35,6 +35,7 @@ import javax.inject.Inject;
import
io.reactivex.Observable
;
import
io.reactivex.Observer
;
import
io.reactivex.Single
;
import
io.reactivex.disposables.Disposable
;
import
io.reactivex.functions.Action
;
import
io.reactivex.functions.Consumer
;
...
...
@@ -188,7 +189,7 @@ public class MealStandModel extends BaseModel implements MealStandContract.Model
}
@Override
public
Observab
le
<
BaseResult
>
queryMember
(
int
type
,
String
parm
,
String
shopName
,
int
tableId
,
String
tableNumber
)
{
public
Sing
le
<
BaseResult
>
queryMember
(
int
type
,
String
parm
,
String
shopName
,
int
tableId
,
String
tableNumber
)
{
return
mRepositoryManager
.
obtainRetrofitService
(
MemberService
.
class
)
.
queryMember
(
type
,
parm
,
shopName
,
tableId
,
tableNumber
);
}
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/model/MealStandModel2.java
0 → 100644
View file @
6ec228e3
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
mvp
.
model
;
import
android.app.Application
;
import
com.gingersoft.gsa.cloud.common.bean.BaseResult
;
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.FoodModifier
;
import
com.gingersoft.gsa.cloud.database.bean.Modifier
;
import
com.gingersoft.gsa.cloud.database.utils.ComboItemDaoUtils
;
import
com.gingersoft.gsa.cloud.database.utils.DiscountDaoUtils
;
import
com.gingersoft.gsa.cloud.database.utils.FoodComboDaoUtils
;
import
com.gingersoft.gsa.cloud.database.utils.FoodDaoUtils
;
import
com.gingersoft.gsa.cloud.database.utils.ModifierDaoUtils
;
import
com.gingersoft.gsa.cloud.order.order.DoshokuOrder
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.MealStandContract
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.MealStandContract2
;
import
com.gingersoft.gsa.cloud.table.mvp.model.bean.response.BaseOrderResponse
;
import
com.gingersoft.gsa.cloud.table.mvp.model.service.MealService
;
import
com.gingersoft.gsa.cloud.table.mvp.model.service.MemberService
;
import
com.gingersoft.gsa.cloud.table.mvp.model.service.OrderPayService
;
import
com.gingersoft.gsa.cloud.table.mvp.model.utils.MealConditionFilterUtils
;
import
com.gingersoft.gsa.cloud.table.mvp.model.utils.MealStyleUtils
;
import
com.google.gson.Gson
;
import
com.jess.arms.di.scope.ActivityScope
;
import
com.jess.arms.integration.IRepositoryManager
;
import
com.jess.arms.mvp.BaseModel
;
import
java.util.List
;
import
javax.inject.Inject
;
import
io.reactivex.Observable
;
import
io.reactivex.Single
;
import
io.reactivex.functions.Function
;
import
okhttp3.RequestBody
;
/**
* ================================================
* 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
MealStandModel2
extends
BaseModel
implements
MealStandContract2
.
Model
{
@Inject
Gson
mGson
;
@Inject
Application
mApplication
;
@Inject
public
MealStandModel2
(
IRepositoryManager
repositoryManager
)
{
super
(
repositoryManager
);
}
@Override
public
void
onDestroy
()
{
super
.
onDestroy
();
this
.
mGson
=
null
;
this
.
mApplication
=
null
;
}
@Override
public
List
<
Food
>
queryDB_AllFoodList
()
{
FoodDaoUtils
foodDaoUtils
=
new
FoodDaoUtils
(
mApplication
);
List
<
Food
>
foods
=
foodDaoUtils
.
queryAllFoodByQueryBuilder
();
return
foods
;
}
@Override
public
List
<
Food
>
queryDB_FoodGroupList
(
int
foodSummary
)
{
FoodDaoUtils
foodDaoUtils
=
new
FoodDaoUtils
(
mApplication
);
List
<
Food
>
foods
=
foodDaoUtils
.
queryFoodGroupByQueryBuilder
(
foodSummary
);
return
MealStyleUtils
.
assemblyFoodsColor
(
MealConditionFilterUtils
.
foodConditionFilter
(
foods
,
foodSummary
));
}
@Override
public
List
<
Food
>
queryDB_FoodList
(
long
parentId
,
int
foodSummary
)
{
FoodDaoUtils
foodDaoUtils
=
new
FoodDaoUtils
(
mApplication
);
List
<
Food
>
foods
=
foodDaoUtils
.
queryFoodByQueryBuilder
(
parentId
,
foodSummary
);
return
MealStyleUtils
.
assemblyFoodsColor
(
MealConditionFilterUtils
.
foodConditionFilter
(
foods
,
foodSummary
));
}
@Override
public
List
<
Modifier
>
queryDB_ModifierList
(
long
fid
,
int
mode
)
{
ModifierDaoUtils
daoUtils
=
new
ModifierDaoUtils
(
mApplication
);
return
MealStyleUtils
.
assemblyModifiersColor
(
daoUtils
.
queryModifiersByFid
(
fid
,
mode
));
}
@Override
public
List
<
ComboItem
>
queryDB_ComboList
(
long
fid
,
int
foodSummary
)
{
ComboItemDaoUtils
comboItemDao
=
new
ComboItemDaoUtils
(
mApplication
);
List
<
ComboItem
>
foodCombos
=
comboItemDao
.
queryComboItemsByFidQueryBuilder
(
fid
,
foodSummary
);
return
MealConditionFilterUtils
.
comboConditionFilter
(
foodCombos
,
foodSummary
);
}
@Override
public
List
<
FoodCombo
>
isComboFood
(
long
fid
)
{
FoodComboDaoUtils
foodComboDaoUtils
=
new
FoodComboDaoUtils
(
mApplication
);
return
foodComboDaoUtils
.
queryCombosFoodsByQueryBuilder
(
fid
);
}
@Override
public
List
<
FoodModifier
>
queryDB_FoodModifierList
(
long
fid
)
{
return
null
;
}
@Override
public
List
<
Discount
>
queryDB_DiscountList
(
byte
discountScope
,
byte
discountType
)
{
DiscountDaoUtils
discountDaoUtils
=
new
DiscountDaoUtils
(
mApplication
);
List
<
Discount
>
discountList
=
discountDaoUtils
.
queryDiscountByQueryBuilder
();
return
MealConditionFilterUtils
.
discountConditionFilter
(
discountList
,
discountScope
,
discountType
);
}
@Override
public
Observable
<
BaseResult
>
getCurrentSoldoutFood
(
RequestBody
requestBody
)
{
return
mRepositoryManager
.
obtainRetrofitService
(
MealService
.
class
)
.
getCurrentSoldoutFood
(
requestBody
);
}
@Override
public
Observable
<
BaseOrderResponse
>
loadOrder
(
long
orderId
)
{
return
mRepositoryManager
.
obtainRetrofitService
(
MealService
.
class
)
.
loadOrder
(
orderId
);
}
@Override
public
Observable
<
BaseResult
>
createOrder
(
RequestBody
requestBody
)
{
return
mRepositoryManager
.
obtainRetrofitService
(
MealService
.
class
)
.
createOrder
(
requestBody
);
}
@Override
public
Observable
<
BaseResult
>
addFood
(
RequestBody
requestBody
)
{
return
mRepositoryManager
.
obtainRetrofitService
(
MealService
.
class
)
.
addFood
(
requestBody
);
}
@Override
public
Observable
<
BaseOrderResponse
>
deleteFood
(
RequestBody
requestBody
)
{
Observable
ob
=
mRepositoryManager
.
obtainRetrofitService
(
MealService
.
class
)
.
deleteFood
(
requestBody
)
.
flatMap
(
new
Function
<
BaseResult
,
Observable
<
BaseOrderResponse
>>()
{
@Override
public
Observable
<
BaseOrderResponse
>
apply
(
BaseResult
info
)
throws
Exception
{
if
(
info
!=
null
&&
info
.
isSuccess
())
{
return
loadOrder
(
DoshokuOrder
.
getInstance
().
getOrderId
());
}
BaseOrderResponse
baseOrderRespose
=
new
BaseOrderResponse
();
baseOrderRespose
.
setSuccess
(
info
.
isSuccess
());
baseOrderRespose
.
setErrMsg
(
info
.
getErrMsg
());
return
Observable
.
just
(
baseOrderRespose
);
}
});
return
ob
;
}
@Override
public
Observable
<
BaseOrderResponse
>
calculationPrice
(
long
orderId
)
{
return
mRepositoryManager
.
obtainRetrofitService
(
MealService
.
class
)
.
calculationPrice
(
orderId
);
}
@Override
public
Observable
<
BaseOrderResponse
>
printOrder
(
RequestBody
requestBody
)
{
return
mRepositoryManager
.
obtainRetrofitService
(
MealService
.
class
)
.
printOrder
(
requestBody
);
}
@Override
public
Observable
<
BaseResult
>
getRestaurantFoodReason
(
int
brandId
,
int
restaurantId
,
int
type
)
{
return
mRepositoryManager
.
obtainRetrofitService
(
MealService
.
class
)
.
getRestaurantFoodReason
(
brandId
,
restaurantId
,
type
);
}
@Override
public
Single
<
BaseResult
>
queryMember
(
int
type
,
String
parm
,
String
shopName
,
int
tableId
,
String
tableNumber
)
{
return
mRepositoryManager
.
obtainRetrofitService
(
MemberService
.
class
)
.
queryMember
(
type
,
parm
,
shopName
,
tableId
,
tableNumber
);
}
@Override
public
Observable
<
BaseResult
>
memberUse
(
int
tableId
,
String
tableNumber
,
long
memberId
)
{
return
mRepositoryManager
.
obtainRetrofitService
(
MemberService
.
class
)
.
memberUse
(
tableId
,
tableNumber
,
memberId
);
}
@Override
public
Observable
<
BaseResult
>
memberUseCancel
(
int
tableId
,
String
tableNumber
,
long
memberId
)
{
return
mRepositoryManager
.
obtainRetrofitService
(
MemberService
.
class
)
.
memberUseCancel
(
tableId
,
tableNumber
,
memberId
);
}
@Override
public
Observable
<
BaseResult
>
toOrderPay
(
RequestBody
requestBody
)
{
return
mRepositoryManager
.
obtainRetrofitService
(
OrderPayService
.
class
)
.
toOrderPay
(
requestBody
);
}
@Override
public
Observable
<
BaseResult
>
updateOrder
(
RequestBody
formBody
)
{
return
mRepositoryManager
.
obtainRetrofitService
(
OrderPayService
.
class
)
.
updateOrder
(
formBody
);
}
}
\ No newline at end of file
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/model/RiceponMemberDialogModel.java
0 → 100644
View file @
6ec228e3
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
mvp
.
model
;
import
android.app.Application
;
import
com.gingersoft.gsa.cloud.common.bean.BaseResult
;
import
com.gingersoft.gsa.cloud.table.mvp.model.service.MemberService
;
import
com.google.gson.Gson
;
import
com.jess.arms.integration.IRepositoryManager
;
import
com.jess.arms.mvp.BaseModel
;
import
com.jess.arms.di.scope.FragmentScope
;
import
javax.inject.Inject
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.RiceponMemberDialogContract
;
import
io.reactivex.Observable
;
import
io.reactivex.Single
;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 04/24/2021 16:24
* <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>
* ================================================
*/
@FragmentScope
public
class
RiceponMemberDialogModel
extends
BaseModel
implements
RiceponMemberDialogContract
.
Model
{
@Inject
Gson
mGson
;
@Inject
Application
mApplication
;
@Inject
public
RiceponMemberDialogModel
(
IRepositoryManager
repositoryManager
)
{
super
(
repositoryManager
);
}
@Override
public
void
onDestroy
()
{
super
.
onDestroy
();
this
.
mGson
=
null
;
this
.
mApplication
=
null
;
}
@Override
public
Single
<
BaseResult
>
queryMember
(
int
type
,
String
parm
,
String
shopName
,
int
tableId
,
String
tableNumber
)
{
return
mRepositoryManager
.
obtainRetrofitService
(
MemberService
.
class
)
.
queryMember
(
type
,
parm
,
shopName
,
tableId
,
tableNumber
);
}
}
\ No newline at end of file
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/model/SetMealModel.java
View file @
6ec228e3
...
...
@@ -3,12 +3,19 @@ package com.gingersoft.gsa.cloud.table.mvp.model;
import
android.app.Application
;
import
com.gingersoft.gsa.cloud.common.bean.BaseResult
;
import
com.gingersoft.gsa.cloud.common.rxjava.MyRxSchedulerUtils
;
import
com.gingersoft.gsa.cloud.database.bean.ComboItem
;
import
com.gingersoft.gsa.cloud.database.bean.Food
;
import
com.gingersoft.gsa.cloud.database.bean.FoodCombo
;
import
com.gingersoft.gsa.cloud.database.bean.FoodModifier
;
import
com.gingersoft.gsa.cloud.database.bean.Modifier
;
import
com.gingersoft.gsa.cloud.database.utils.ComboItemDaoUtils
;
import
com.gingersoft.gsa.cloud.database.utils.FoodComboDaoUtils
;
import
com.gingersoft.gsa.cloud.database.utils.FoodDaoUtils
;
import
com.gingersoft.gsa.cloud.database.utils.ModifierDaoUtils
;
import
com.gingersoft.gsa.cloud.table.mvp.model.bean.response.BaseOrderResponse
;
import
com.gingersoft.gsa.cloud.table.mvp.model.utils.MealConditionFilterUtils
;
import
com.gingersoft.gsa.cloud.table.mvp.model.utils.MealStyleUtils
;
import
com.google.gson.Gson
;
import
com.jess.arms.integration.IRepositoryManager
;
import
com.jess.arms.mvp.BaseModel
;
...
...
@@ -59,27 +66,41 @@ public class SetMealModel extends BaseModel implements SetMealContract.Model {
@Override
public
Single
<
List
<
Food
>>
queryDB_FoodGroupList
(
int
foodSummary
)
{
return
null
;
FoodDaoUtils
foodDaoUtils
=
new
FoodDaoUtils
(
mApplication
);
List
<
Food
>
foods
=
foodDaoUtils
.
queryFoodGroupByQueryBuilder
(
foodSummary
);
return
Single
.
just
(
MealStyleUtils
.
assemblyFoodsColor
(
MealConditionFilterUtils
.
foodConditionFilter
(
foods
,
foodSummary
)))
.
compose
(
MyRxSchedulerUtils
.
_io_main_f
());
}
@Override
public
Single
<
List
<
Food
>>
queryDB_FoodList
(
long
parentId
,
int
foodSummary
)
{
return
null
;
FoodDaoUtils
foodDaoUtils
=
new
FoodDaoUtils
(
mApplication
);
List
<
Food
>
foods
=
foodDaoUtils
.
queryFoodByQueryBuilder
(
parentId
,
foodSummary
);
return
Single
.
just
(
MealStyleUtils
.
assemblyFoodsColor
(
MealConditionFilterUtils
.
foodConditionFilter
(
foods
,
foodSummary
)))
.
compose
(
MyRxSchedulerUtils
.
_io_main_f
());
}
@Override
public
Single
<
List
<
Modifier
>>
queryDB_ModifierList
(
long
fid
,
int
mode
)
{
return
null
;
public
List
<
Modifier
>
queryDB_ModifierList
(
long
fid
,
int
mode
)
{
ModifierDaoUtils
daoUtils
=
new
ModifierDaoUtils
(
mApplication
);
List
<
Modifier
>
modifierList
=
daoUtils
.
queryModifiersByFid
(
fid
,
mode
);
return
MealStyleUtils
.
assemblyModifiersColor
(
modifierList
);
}
@Override
public
Single
<
List
<
ComboItem
>>
queryDB_ComboList
(
long
fid
,
int
foodSummary
)
{
return
null
;
public
List
<
ComboItem
>
queryDB_ComboList
(
long
fid
,
int
foodSummary
)
{
ComboItemDaoUtils
comboItemDao
=
new
ComboItemDaoUtils
(
mApplication
);
List
<
ComboItem
>
foodCombos
=
comboItemDao
.
queryComboItemsByFidQueryBuilder
(
fid
,
foodSummary
);
return
MealConditionFilterUtils
.
comboConditionFilter
(
foodCombos
,
foodSummary
);
}
@Override
public
Single
<
List
<
FoodCombo
>>
isComboFood
(
long
fid
)
{
return
null
;
FoodComboDaoUtils
foodComboDaoUtils
=
new
FoodComboDaoUtils
(
mApplication
);
return
Single
.
just
(
foodComboDaoUtils
.
queryCombosFoodsByQueryBuilder
(
fid
))
.
compose
(
MyRxSchedulerUtils
.
_io_main_f
());
}
@Override
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/model/service/MemberService.java
View file @
6ec228e3
...
...
@@ -17,7 +17,7 @@ public interface MemberService {
@Headers
({
"Domain-Name: new_base_url"
})
@GET
(
"member/checkMemberInfo"
+
RetrofitUrlManager
.
IDENTIFICATION_PATH_SIZE
+
2
)
Observab
le
<
BaseResult
>
queryMember
(
@Query
(
"type"
)
int
type
,
@Query
(
"parm"
)
String
parm
,
@Query
(
"gsposShopId"
)
String
shopName
,
@Query
(
"tableId"
)
int
tableId
,
@Query
(
"tableNumber"
)
String
tableNumber
);
Sing
le
<
BaseResult
>
queryMember
(
@Query
(
"type"
)
int
type
,
@Query
(
"parm"
)
String
parm
,
@Query
(
"gsposShopId"
)
String
shopName
,
@Query
(
"tableId"
)
int
tableId
,
@Query
(
"tableNumber"
)
String
tableNumber
);
@GET
(
"restaurantTable/memberUse"
+
RetrofitUrlManager
.
IDENTIFICATION_PATH_SIZE
+
2
)
Observable
<
BaseResult
>
memberUse
(
@Query
(
"tableId"
)
int
tableId
,
@Query
(
"tableNumber"
)
String
tableNumber
,
@Query
(
"memberId"
)
long
memberId
);
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/BaseOrderPresenter.java
View file @
6ec228e3
...
...
@@ -29,7 +29,7 @@ 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.
Member
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
;
...
...
@@ -40,11 +40,9 @@ 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.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.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
;
...
...
@@ -1332,7 +1330,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
* @return
*/
protected
Long
getCouponDiscountId
()
{
CouponDiscount
couponDiscount
=
(
CouponDiscount
)
mShoppingCart
.
getDiscountByType
(
BillItem
.
COUPON_DISCOUNT_TYPE
);
MemberCouponDiscount
couponDiscount
=
(
Member
CouponDiscount
)
mShoppingCart
.
getDiscountByType
(
BillItem
.
COUPON_DISCOUNT_TYPE
);
if
(
couponDiscount
!=
null
)
{
return
couponDiscount
.
getCouponDiscountId
();
}
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/BaseOrderPresenter2.java
View file @
6ec228e3
...
...
@@ -29,7 +29,7 @@ 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.
Member
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
;
...
...
@@ -38,13 +38,11 @@ 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
;
...
...
@@ -1334,7 +1332,7 @@ public abstract class BaseOrderPresenter2<M extends BaseOrderContract.Model, V e
* @return
*/
protected
Long
getCouponDiscountId
()
{
CouponDiscount
couponDiscount
=
(
CouponDiscount
)
mShoppingCart
.
getDiscountByType
(
BillItem
.
COUPON_DISCOUNT_TYPE
);
MemberCouponDiscount
couponDiscount
=
(
Member
CouponDiscount
)
mShoppingCart
.
getDiscountByType
(
BillItem
.
COUPON_DISCOUNT_TYPE
);
if
(
couponDiscount
!=
null
)
{
return
couponDiscount
.
getCouponDiscountId
();
}
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/OrderContentPresenter.java
View file @
6ec228e3
...
...
@@ -5,9 +5,6 @@ import android.graphics.Color;
import
android.text.TextUtils
;
import
android.util.Log
;
import
android.view.View
;
import
android.view.Window
;
import
androidx.fragment.app.FragmentManager
;
import
com.billy.cc.core.component.CC
;
import
com.gingersoft.gsa.cloud.common.bean.BaseResult
;
...
...
@@ -15,7 +12,7 @@ import com.gingersoft.gsa.cloud.common.constans.ExpandConstant;
import
com.gingersoft.gsa.cloud.common.constans.FoodSummaryConstans
;
import
com.gingersoft.gsa.cloud.common.constans.GoldConstants
;
import
com.gingersoft.gsa.cloud.common.constans.PrintConstans
;
import
com.gingersoft.gsa.cloud.
common.core.discount.Member
Coupon
;
import
com.gingersoft.gsa.cloud.
order.bean.discount.MemberWallet
Coupon
;
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
;
...
...
@@ -33,8 +30,7 @@ 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.commodity.OrderDetail
;
import
com.gingersoft.gsa.cloud.order.discount.CouponDiscount
;
import
com.gingersoft.gsa.cloud.order.discount.MemberDiscount
;
import
com.gingersoft.gsa.cloud.order.discount.MemberCouponDiscount
;
import
com.gingersoft.gsa.cloud.order.discount.NomalDiscount
;
import
com.gingersoft.gsa.cloud.order.order.BaseOrder
;
import
com.gingersoft.gsa.cloud.order.order.DoshokuOrder
;
...
...
@@ -42,6 +38,7 @@ import com.gingersoft.gsa.cloud.print.PrinterUtils;
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.BillCouponAction
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.OrderContentContract
;
import
com.gingersoft.gsa.cloud.table.mvp.model.bean.request.AddOrderRequest
;
import
com.gingersoft.gsa.cloud.table.mvp.model.bean.request.CreateOrderRequest
;
...
...
@@ -66,7 +63,6 @@ import com.jess.arms.integration.AppManager;
import
com.jess.arms.utils.ArmsUtils
;
import
com.jess.arms.utils.RxLifecycleUtils
;
import
com.scwang.smartrefresh.layout.api.RefreshLayout
;
import
com.xuexiang.rxutil2.RxBindingUtils
;
import
com.xuexiang.rxutil2.rxjava.RxJavaUtils
;
import
java.util.ArrayList
;
...
...
@@ -81,10 +77,8 @@ import io.reactivex.annotations.NonNull;
import
io.reactivex.disposables.Disposable
;
import
io.reactivex.functions.Consumer
;
import
io.reactivex.schedulers.Schedulers
;
import
leakcanary.internal.ForegroundService
;
import
me.jessyan.rxerrorhandler.core.RxErrorHandler
;
import
me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber
;
import
me.yokeyword.fragmentation.anim.FragmentAnimator
;
import
okhttp3.FormBody
;
import
okhttp3.MediaType
;
import
okhttp3.RequestBody
;
...
...
@@ -124,9 +118,13 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
private
SplitTableDialog
mSplitTableDialog
;
private
DiscountDialog
.
Builder
mDiscountDialog
;
/**
* 整單折扣
邏輯
* 整單折扣
*/
private
BillDiscountAction
mNomalDiscountAction
;
/**
* 整單優惠券
*/
private
BillCouponAction
mBillCouponAction
;
private
Disposable
mGetTablesDataDisposable
;
private
Disposable
mTablesPollingDisposable
;
...
...
@@ -139,7 +137,10 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
//转移食品可多选
mSelectMealAdapter
.
setSelectedMode
(
SelectMealAdapter
.
MULTIPLE_SELECTED
);
}
mNomalDiscountAction
=
new
BillDiscountAction
(
IActivity
,
new
BillDiscountAction
.
OnCallBackListener
()
{
mNomalDiscountAction
=
BillDiscountAction
.
builder
()
.
cashStr
(
cashStr
)
.
context
(
IActivity
)
.
listener
(
new
BillDiscountAction
.
OnCallBackListener
()
{
@Override
public
void
exclusiveRemoveOthers
(
List
<
NomalDiscount
>
nomalDiscountList
)
{
...
...
@@ -152,7 +153,21 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
DoshokuOrder
.
getInstance
().
setBillItemStatus
(
DoshokuOrder
.
DISCOUNT_ITEM_TAG
);
updateBillInfo
();
}
});
})
.
build
();
mBillCouponAction
=
BillCouponAction
.
builder
()
.
context
(
IActivity
)
.
cashStr
(
cashStr
)
.
listener
(
new
BillCouponAction
.
OnCallBackListener
()
{
@Override
public
void
preformAddCoupon
(
MemberWalletCoupon
coupon
)
{
mShoppingCart
.
addMultyDiscount
(
mShoppingCart
.
createMemberWalletCoupon
(
coupon
,
BillItem
.
BILL_ITEM_NO_ORDER_STATUS
));
DoshokuOrder
.
getInstance
().
setBillItemStatus
(
DoshokuOrder
.
DISCOUNT_ITEM_TAG
);
updateBillInfo
();
}
})
.
build
();
}
@Override
...
...
@@ -281,7 +296,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
NomalDiscount
nomalDiscount
=
(
NomalDiscount
)
((
DiscountItem
)
item
).
getDiscount
();
mDoshokuOrder
.
addDeleteDiscountId
(
nomalDiscount
.
getDiscount
().
getDiscountRecordId
());
}
else
if
(
item
.
getType
()
==
BillItem
.
COUPON_DISCOUNT_TYPE
)
{
CouponDiscount
couponDiscount
=
(
CouponDiscount
)
((
DiscountItem
)
item
).
getDiscount
();
MemberCouponDiscount
couponDiscount
=
(
Member
CouponDiscount
)
((
DiscountItem
)
item
).
getDiscount
();
mDoshokuOrder
.
addDeleteDiscountId
(
couponDiscount
.
getCouponDiscountId
());
}
}
...
...
@@ -820,25 +835,16 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
@Override
public
void
onBillDiscountClick
(
Discount
item
,
int
position
)
{
if
(
item
.
getMinBillAmount
()
>
mShoppingCart
.
getWholeAmount
())
{
//小於最小賬單金額
mRootView
.
showMessage
(
"小於最小賬單金額"
+
cashStr
+
item
.
getMinBillAmount
()
+
" 無法使用此折扣"
);
return
;
}
mNomalDiscountAction
.
setWholeAmount
(
mShoppingCart
.
getWholeAmount
());
mNomalDiscountAction
.
setNomalDiscountList
(
mShoppingCart
.
getNomalDiscoutByMultyDiscountList
());
mNomalDiscountAction
.
action
(
item
);
dialogFragment
.
dismiss
();
}
@Override
public
void
onCouponClick
(
MemberCoupon
item
,
int
position
)
{
if
(
item
.
getBillMinAmount
()
>
mShoppingCart
.
getWholeAmount
())
{
//小於最小賬單金額
mRootView
.
showMessage
(
"小於最小賬單金額"
+
cashStr
+
item
.
getBillMinAmount
()
+
" 無法使用此優惠券"
);
return
;
}
mNomalDiscountAction
.
setNomalDiscountList
(
mShoppingCart
.
getNomalDiscoutByMultyDiscountList
());
mNomalDiscountAction
.
action
(
item
.
castDiscount
());
public
void
onCouponClick
(
MemberWalletCoupon
item
,
int
position
)
{
mBillCouponAction
.
setNomalDiscountList
(
mShoppingCart
.
getNomalDiscoutByMultyDiscountList
());
mBillCouponAction
.
action
(
item
);
dialogFragment
.
dismiss
();
}
});
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/discount/CouponPresenter.java
View file @
6ec228e3
...
...
@@ -2,14 +2,12 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter.discount;
import
android.app.Application
;
import
com.gingersoft.gsa.cloud.
common.core.discount.Member
Coupon
;
import
com.gingersoft.gsa.cloud.
order.bean.discount.MemberWallet
Coupon
;
import
com.gingersoft.gsa.cloud.common.core.member.MemberInfo
;
import
com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager
;
import
com.gingersoft.gsa.cloud.common.loadsir.EmptyCallback
;
import
com.gingersoft.gsa.cloud.common.utils.JsonUtils
;
import
com.gingersoft.gsa.cloud.order.order.DoshokuOrder
;
import
com.gingersoft.gsa.cloud.common.rxjava.ErrorHandleSingleSubscriber
;
import
com.gingersoft.gsa.cloud.table.mvp.model.bean.response.OrderManagerResponse
;
import
com.jess.arms.integration.AppManager
;
import
com.jess.arms.di.scope.FragmentScope
;
import
com.jess.arms.mvp.BasePresenter
;
...
...
@@ -53,13 +51,8 @@ public class CouponPresenter extends BasePresenter<CouponContract.Model, CouponC
//是否可以繼續上拉刷新
private
boolean
noMoreData
=
false
;
/**
* 0=沒有限制
* 1=食品專有
* 2=帳單專有
*/
private
int
limitType
=
0
;
private
int
pageIndex
=
1
;
private
int
pageIndex
=
0
;
private
int
pageSize
=
20
;
@Inject
...
...
@@ -76,13 +69,20 @@ public class CouponPresenter extends BasePresenter<CouponContract.Model, CouponC
this
.
mApplication
=
null
;
}
public
void
getMemberWalletList
(
RefreshLayout
refreshLayout
,
boolean
isLoadMore
)
{
public
void
getMemberWalletList
(
RefreshLayout
refreshLayout
,
boolean
isLoadMore
,
int
limitType
)
{
int
brandId
=
RestaurantInfoManager
.
newInstance
().
getBrandId
();
MemberInfo
memberInfo
=
DoshokuOrder
.
getInstance
().
getMemberInfo
();
long
memberId
=
0
;
if
(
memberInfo
!=
null
)
{
memberId
=
memberInfo
.
getId
();
}
if
(!
isLoadMore
)
{
pageIndex
=
0
;
}
if
(
pageIndex
!=
0
)
{
//根據數據庫下標分頁
pageIndex
=
pageIndex
*
pageSize
;
}
mModel
.
getMemberWalletList
(
brandId
,
memberId
,
limitType
,
pageIndex
,
pageSize
)
.
subscribeOn
(
Schedulers
.
io
())
.
doOnSubscribe
(
disposable
->
{
...
...
@@ -95,15 +95,13 @@ public class CouponPresenter extends BasePresenter<CouponContract.Model, CouponC
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
doAfterTerminate
(()
->
mRootView
.
hideLoading
())
.
compose
(
RxLifecycleUtils
.
bindToLifecycle
(
mRootView
))
.
subscribe
(
new
ErrorHandleSingleSubscriber
<
List
<
MemberCoupon
>>(
mErrorHandler
,
mRootView
.
getLoadService
())
{
.
subscribe
(
new
ErrorHandleSingleSubscriber
<
List
<
Member
Wallet
Coupon
>>(
mErrorHandler
,
mRootView
.
getLoadService
())
{
@Override
public
void
onSuccess
(
List
<
MemberCoupon
>
result
)
{
if
(
pageIndex
!=
0
)
{
//根據數據庫下標分頁
pageIndex
=
pageIndex
*
pageSize
;
}
public
void
onSuccess
(
List
<
MemberWalletCoupon
>
result
)
{
if
(
result
.
size
()
>
0
)
{
//每次更新完數據,頁碼+1
pageIndex
++;
if
(!
noMoreData
)
{
mRootView
.
returnMemberCouponList
(
result
);
mRootView
.
showLoadSirSuccess
();
...
...
@@ -124,10 +122,6 @@ public class CouponPresenter extends BasePresenter<CouponContract.Model, CouponC
@Override
public
void
onError
(
Throwable
t
)
{
if
(
pageIndex
!=
0
)
{
//根據數據庫下標分頁
pageIndex
=
pageIndex
*
pageSize
;
}
resetRefreshLayout
(
false
);
}
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/
FineItem
AllPresenter.java
→
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/
mealstand/FineChild
AllPresenter.java
View file @
6ec228e3
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
mvp
.
presenter
;
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
mvp
.
presenter
.
mealstand
;
import
android.app.Activity
;
import
android.app.Application
;
...
...
@@ -10,11 +10,10 @@ import com.gingersoft.gsa.cloud.common.constans.MealConstant;
import
com.gingersoft.gsa.cloud.common.utils.LanguageUtils
;
import
com.gingersoft.gsa.cloud.common.utils.VibratorUtils
;
import
com.gingersoft.gsa.cloud.database.bean.Modifier
;
import
com.gingersoft.gsa.cloud.database.utils.ModifierDaoUtils
;
import
com.gingersoft.gsa.cloud.order.commodity.OrderDetail
;
import
com.gingersoft.gsa.cloud.order.order.DoshokuOrder
;
import
com.gingersoft.gsa.cloud.table.R
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.Fine
Item
AllContract
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.Fine
Child
AllContract
;
import
com.gingersoft.gsa.cloud.table.mvp.model.bean.SoldoutCtrFood
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.activity.MealStandActivity
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.FineItemOneAdapter
;
...
...
@@ -51,7 +50,7 @@ import static com.gingersoft.gsa.cloud.table.mvp.ui.activity.SoldoutCtrlActivity
* ================================================
*/
@FragmentScope
public
class
Fine
ItemAllPresenter
extends
BasePresenter
<
FineItemAllContract
.
Model
,
FineItem
AllContract
.
View
>
{
public
class
Fine
ChildAllPresenter
extends
BasePresenter
<
FineChildAllContract
.
Model
,
FineChild
AllContract
.
View
>
{
@Inject
RxErrorHandler
mErrorHandler
;
@Inject
...
...
@@ -78,7 +77,7 @@ public class FineItemAllPresenter extends BasePresenter<FineItemAllContract.Mode
private
Activity
IActivity
;
@Inject
public
Fine
ItemAllPresenter
(
FineItemAllContract
.
Model
model
,
FineItem
AllContract
.
View
rootView
)
{
public
Fine
ChildAllPresenter
(
FineChildAllContract
.
Model
model
,
FineChild
AllContract
.
View
rootView
)
{
super
(
model
,
rootView
);
this
.
IActivity
=
(
Activity
)
rootView
.
getCurrentActivity
();
}
...
...
@@ -482,10 +481,6 @@ public class FineItemAllPresenter extends BasePresenter<FineItemAllContract.Mode
mFineItemOneList
.
clear
();
mFineItemOneList
=
null
;
}
// if (mCurrentSoldoutFoodList_Full != null) {
// mCurrentSoldoutFoodList_Full.clear();
// mCurrentSoldoutFoodList_Full = null;
// }
}
}
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/
FineItem
OneselfPresenter.java
→
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/
mealstand/FineChild
OneselfPresenter.java
View file @
6ec228e3
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
mvp
.
presenter
;
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
mvp
.
presenter
.
mealstand
;
import
android.app.Application
;
import
android.content.Context
;
...
...
@@ -8,8 +8,9 @@ import com.gingersoft.gsa.cloud.common.utils.LanguageUtils;
import
com.gingersoft.gsa.cloud.database.bean.ComboItem
;
import
com.gingersoft.gsa.cloud.database.bean.Modifier
;
import
com.gingersoft.gsa.cloud.database.utils.ModifierDaoUtils
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.Fine
Item
OneselfContract
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.Fine
Child
OneselfContract
;
import
com.gingersoft.gsa.cloud.table.mvp.model.bean.SoldoutCtrFood
;
import
com.gingersoft.gsa.cloud.table.mvp.presenter.SoldoutCtrlPresenter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.activity.SoldoutCtrlActivity
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.ComboAdapter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.ModifierAdapter
;
...
...
@@ -43,7 +44,7 @@ import static com.gingersoft.gsa.cloud.table.mvp.ui.activity.SoldoutCtrlActivity
* ================================================
*/
@FragmentScope
public
class
Fine
ItemOneselfPresenter
extends
BasePresenter
<
FineItemOneselfContract
.
Model
,
FineItem
OneselfContract
.
View
>
{
public
class
Fine
ChildOneselfPresenter
extends
BasePresenter
<
FineChildOneselfContract
.
Model
,
FineChild
OneselfContract
.
View
>
{
@Inject
RxErrorHandler
mErrorHandler
;
@Inject
...
...
@@ -65,7 +66,7 @@ public class FineItemOneselfPresenter extends BasePresenter<FineItemOneselfContr
private
SoldoutCtrlActivity
IActivity
;
@Inject
public
Fine
ItemOneselfPresenter
(
FineItemOneselfContract
.
Model
model
,
FineItem
OneselfContract
.
View
rootView
)
{
public
Fine
ChildOneselfPresenter
(
FineChildOneselfContract
.
Model
model
,
FineChild
OneselfContract
.
View
rootView
)
{
super
(
model
,
rootView
);
this
.
IActivity
=
(
SoldoutCtrlActivity
)
rootView
.
getCurrentActivity
();
}
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/mealstand/FinePresenter.java
0 → 100644
View file @
6ec228e3
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
mvp
.
presenter
.
mealstand
;
import
android.app.Application
;
import
com.jess.arms.integration.AppManager
;
import
com.jess.arms.di.scope.FragmentScope
;
import
com.jess.arms.mvp.BasePresenter
;
import
com.jess.arms.http.imageloader.ImageLoader
;
import
me.jessyan.rxerrorhandler.core.RxErrorHandler
;
import
javax.inject.Inject
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.FineContract
;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 04/24/2021 18:33
* <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>
* ================================================
*/
@FragmentScope
public
class
FinePresenter
extends
BasePresenter
<
FineContract
.
Model
,
FineContract
.
View
>
{
@Inject
RxErrorHandler
mErrorHandler
;
@Inject
Application
mApplication
;
@Inject
ImageLoader
mImageLoader
;
@Inject
AppManager
mAppManager
;
@Inject
public
FinePresenter
(
FineContract
.
Model
model
,
FineContract
.
View
rootView
)
{
super
(
model
,
rootView
);
}
@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/MealStandPresenter.java
View file @
6ec228e3
...
...
@@ -4,12 +4,15 @@ 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.rxjava.ErrorHandleSingleSubscriber
;
import
com.gingersoft.gsa.cloud.order.bean.discount.MemberWalletCoupon
;
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
;
...
...
@@ -19,7 +22,6 @@ 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.ColorBean
;
import
com.gingersoft.gsa.cloud.database.bean.ComboItem
;
import
com.gingersoft.gsa.cloud.database.bean.Discount
;
import
com.gingersoft.gsa.cloud.database.bean.Food
;
...
...
@@ -34,6 +36,7 @@ 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.MealCouponAction
;
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
;
...
...
@@ -48,6 +51,7 @@ import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.FoodAdapter;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.FoodGroupAdapter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.ModifierAdapter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.SelectMealAdapter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.fragment.discount.DiscountFragment
;
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
;
...
...
@@ -78,6 +82,7 @@ import io.reactivex.disposables.Disposable;
import
io.reactivex.schedulers.Schedulers
;
import
me.jessyan.rxerrorhandler.core.RxErrorHandler
;
import
me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber
;
import
me.yokeyword.fragmentation.ISupportFragment
;
import
okhttp3.FormBody
;
import
okhttp3.MediaType
;
import
okhttp3.RequestBody
;
...
...
@@ -132,21 +137,31 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
DiscountAdapter
mDiscountAdapter
;
private
MealStandActivity
IActivity
;
private
DiscountFragment
discountFragment
;
private
CancelFoodDialog
mCancelFoodDialog
;
/**
* 食品折扣
*/
private
MealDiscountAction
mMealDiscountAction
;
/**
* 食品優惠券
*/
private
MealCouponAction
mMealCouponAction
;
private
OrderDetail
mCurrentOrderDetailBean
;
private
boolean
RvMealClicked
;
@Inject
public
MealStandPresenter
(
MealStandContract
.
Model
model
,
MealStandContract
.
View
rootView
)
{
super
(
model
,
rootView
);
this
.
IActivity
=
(
MealStandActivity
)
rootView
;
mMealDiscountAction
=
new
MealDiscountAction
(
IActivity
,
mShoppingCart
.
getMultyDiscountList
(),
new
MealDiscountAction
.
OnCallBackListener
()
{
mMealDiscountAction
=
MealDiscountAction
.
builder
()
.
context
(
IActivity
)
.
cashStr
(
cashStr
)
.
listener
(
new
MealDiscountAction
.
OnCallBackListener
()
{
@Override
public
void
exclusiveRemoveOthers
()
{
...
...
@@ -167,9 +182,20 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
public
void
preformAddDiscount
(
Discount
discount
)
{
addDiscountItem
(
discount
);
}
});
}
})
.
build
();
mMealCouponAction
=
MealCouponAction
.
builder
()
.
context
(
IActivity
)
.
cashStr
(
cashStr
)
.
listener
(
new
MealCouponAction
.
OnCallBackListener
()
{
@Override
public
void
preformAddCoupon
(
MemberWalletCoupon
discount
)
{
addDiscountItem
(
discount
.
castDiscount
());
}
})
.
build
();
}
/**
* 獲取當前選中的套餐食品組
...
...
@@ -401,7 +427,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
Discount
discountBean
=
(
Discount
)
data
;
if
(!
discountConditionFilter
(
discountBean
))
{
if
(!
discountConditionFilter
())
{
return
;
}
LoganManager
.
w_tableMode
(
TAG
,
LoganManager
.
EVENT_ADD
+
"折扣【"
+
discountBean
.
getRemark
()
+
"】"
);
...
...
@@ -414,6 +440,45 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
});
}
public
void
loadDiscountFragment
()
{
discountFragment
=
IActivity
.
findFragment
(
DiscountFragment
.
class
);
if
(
discountFragment
==
null
)
{
discountFragment
=
DiscountFragment
.
newInstance
();
discountFragment
.
setOnDiscountItemClickListener
(
new
DiscountFragment
.
OnDiscountItemClickListener
()
{
@Override
public
void
onBillDiscountClick
(
Discount
discountBean
,
int
position
)
{
mRootView
.
recordOperat
(
true
);
if
(!
discountConditionFilter
())
{
return
;
}
LoganManager
.
w_tableMode
(
TAG
,
LoganManager
.
EVENT_ADD
+
"折扣【"
+
discountBean
.
getRemark
()
+
"】"
);
// if (cutOutDiscount() == -100) {
// return;
// }
mMealDiscountAction
.
setSelectMixOrderMealList
(
getSelectMixOrderMealList
());
mMealDiscountAction
.
action
(
discountBean
);
}
@Override
public
void
onCouponClick
(
MemberWalletCoupon
coupon
,
int
position
)
{
if
(!
discountConditionFilter
())
{
return
;
}
mMealCouponAction
.
setSelectMixOrderMealList
(
getSelectMixOrderMealList
());
mMealCouponAction
.
action
(
coupon
);
}
});
IActivity
.
loadRootFragment
(
R
.
id
.
fl_discount
,
discountFragment
);
}
else
{
ISupportFragment
topFragment
=
IActivity
.
getTopFragment
();
if
(
topFragment
!=
null
&&
topFragment
instanceof
DiscountFragment
)
{
}
else
{
IActivity
.
start
(
discountFragment
);
}
}
}
private
void
addFoodItemBefore
(
OrderDetail
datasBean
)
{
int
addPosition
=
addFoodItem
(
datasBean
);
//这里主食品作为选中主体
...
...
@@ -1004,10 +1069,10 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
doAfterTerminate
(()
->
mRootView
.
hideLoading
())
.
compose
(
RxLifecycleUtils
.
bindToLifecycle
(
mRootView
))
.
subscribe
(
new
ErrorHandleSubscriber
<
BaseResult
>(
mErrorHandler
)
{
.
subscribe
(
new
ErrorHandleS
ingleS
ubscriber
<
BaseResult
>(
mErrorHandler
)
{
@Override
public
void
on
Next
(
@NonNull
BaseResult
info
)
{
public
void
on
Success
(
@NonNull
BaseResult
info
)
{
if
(
info
!=
null
&&
info
.
isSuccess
())
{
if
(
info
.
getData
()
!=
null
)
{
MemberInfo
memberInfo
=
JsonUtils
.
parseObject
(
info
.
getData
(),
MemberInfo
.
class
);
...
...
@@ -1650,7 +1715,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
return
true
;
}
private
boolean
discountConditionFilter
(
Discount
datasBean
)
{
private
boolean
discountConditionFilter
()
{
//折扣金額是否>0
if
(
Double
.
doubleToLongBits
(
getDisountSourcePrice
())
==
0
)
{
...
...
@@ -2047,7 +2112,6 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
mDiscountAdapter
.
notifyDataSetChanged
();
}
/**
* 獲取所要折扣金額
*
...
...
@@ -2175,4 +2239,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
return
mSoldoutCtrList
;
}
public
DiscountFragment
getDiscountFragment
()
{
return
discountFragment
;
}
}
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/mealstand/MealStandPresenter2.java
View file @
6ec228e3
...
...
@@ -36,6 +36,7 @@ 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.contract.MealStandContract2
;
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
;
...
...
@@ -102,7 +103,7 @@ import static com.gingersoft.gsa.cloud.table.mvp.ui.activity.SoldoutCtrlActivity
* ================================================
*/
@ActivityScope
public
class
MealStandPresenter2
extends
BaseOrderPresenter2
<
MealStandContract
.
Model
,
MealStandContract
.
View
>
{
public
class
MealStandPresenter2
extends
BaseOrderPresenter2
<
MealStandContract
2
.
Model
,
MealStandContract2
.
View
>
{
@Inject
RxErrorHandler
mErrorHandler
;
@Inject
...
...
@@ -113,7 +114,7 @@ public class MealStandPresenter2 extends BaseOrderPresenter2<MealStandContract.M
AppManager
mAppManager
;
@Inject
public
MealStandPresenter2
(
MealStandContract
.
Model
model
,
MealStandContract
.
View
rootView
)
{
public
MealStandPresenter2
(
MealStandContract
2
.
Model
model
,
MealStandContract2
.
View
rootView
)
{
super
(
model
,
rootView
);
}
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/mealstand/RiceponMemberDialogPresenter.java
0 → 100644
View file @
6ec228e3
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
mvp
.
presenter
.
mealstand
;
import
android.app.Application
;
import
com.billy.cc.core.component.CC
;
import
com.gingersoft.gsa.cloud.common.bean.BaseResult
;
import
com.gingersoft.gsa.cloud.common.core.member.MemberInfo
;
import
com.gingersoft.gsa.cloud.common.rxjava.ErrorHandleSingleSubscriber
;
import
com.gingersoft.gsa.cloud.common.utils.JsonUtils
;
import
com.gingersoft.gsa.cloud.common.utils.LanguageUtils
;
import
com.gingersoft.gsa.cloud.component.ComponentName
;
import
com.gingersoft.gsa.cloud.database.bean.Food
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.activity.MealStandActivity
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.activity.OrderContentActivity
;
import
com.jess.arms.integration.AppManager
;
import
com.jess.arms.di.scope.FragmentScope
;
import
com.jess.arms.mvp.BasePresenter
;
import
com.jess.arms.http.imageloader.ImageLoader
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.reactivex.annotations.NonNull
;
import
io.reactivex.schedulers.Schedulers
;
import
me.jessyan.rxerrorhandler.core.RxErrorHandler
;
import
me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber
;
import
javax.inject.Inject
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.RiceponMemberDialogContract
;
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.List
;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 04/24/2021 16:24
* <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>
* ================================================
*/
@FragmentScope
public
class
RiceponMemberDialogPresenter
extends
BasePresenter
<
RiceponMemberDialogContract
.
Model
,
RiceponMemberDialogContract
.
View
>
{
@Inject
RxErrorHandler
mErrorHandler
;
@Inject
Application
mApplication
;
@Inject
ImageLoader
mImageLoader
;
@Inject
AppManager
mAppManager
;
@Inject
public
RiceponMemberDialogPresenter
(
RiceponMemberDialogContract
.
Model
model
,
RiceponMemberDialogContract
.
View
rootView
)
{
super
(
model
,
rootView
);
}
@Override
public
void
onDestroy
()
{
super
.
onDestroy
();
this
.
mErrorHandler
=
null
;
this
.
mAppManager
=
null
;
this
.
mImageLoader
=
null
;
this
.
mApplication
=
null
;
}
public
void
queryMember
(
int
type
,
String
parm
,
String
shopName
,
int
tableId
,
String
tableNumber
)
{
mModel
.
queryMember
(
type
,
parm
,
shopName
,
tableId
,
tableNumber
)
.
subscribeOn
(
Schedulers
.
io
())
.
doOnSubscribe
(
disposable
->
mRootView
.
showLoading
(
null
))
.
subscribeOn
(
AndroidSchedulers
.
mainThread
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
doAfterTerminate
(()
->
mRootView
.
hideLoading
())
.
compose
(
RxLifecycleUtils
.
bindToLifecycle
(
mRootView
))
.
subscribe
(
new
ErrorHandleSingleSubscriber
<
BaseResult
>(
mErrorHandler
)
{
@Override
public
void
onSuccess
(
@NonNull
BaseResult
info
)
{
if
(
info
!=
null
&&
info
.
isSuccess
())
{
if
(
info
.
getData
()
!=
null
)
{
MemberInfo
memberInfo
=
JsonUtils
.
parseObject
(
info
.
getData
(),
MemberInfo
.
class
);
if
(
memberInfo
!=
null
&&
memberInfo
.
getId
()
!=
0
)
{
mRootView
.
returnMemberInfo
(
memberInfo
);
}
else
{
mRootView
.
showMessage
(
"未找到相關會員電話號碼,請重新輸入"
);
}
}
else
{
mRootView
.
showMessage
(
"獲取會員信息失敗"
);
}
}
else
{
mRootView
.
showMessage
(
info
.
getErrMsg
());
}
}
});
}
}
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/mealstand/SetMealPresenter.java
View file @
6ec228e3
...
...
@@ -30,6 +30,8 @@ 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.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.base.delegate.IActivity
;
import
com.jess.arms.integration.AppManager
;
...
...
@@ -42,6 +44,7 @@ import io.reactivex.Observable;
import
io.reactivex.ObservableEmitter
;
import
io.reactivex.ObservableOnSubscribe
;
import
io.reactivex.Observer
;
import
io.reactivex.Single
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.reactivex.disposables.Disposable
;
import
io.reactivex.schedulers.Schedulers
;
...
...
@@ -55,6 +58,8 @@ import com.gingersoft.gsa.cloud.table.mvp.contract.SetMealContract;
import
com.jess.arms.utils.RxLifecycleUtils
;
import
com.xuexiang.rxutil2.rxjava.RxSchedulerUtils
;
import
org.reactivestreams.Subscription
;
import
org.simple.eventbus.EventBus
;
import
org.simple.eventbus.Subscriber
;
import
java.util.ArrayList
;
...
...
@@ -99,16 +104,16 @@ public class SetMealPresenter extends BaseOrderPresenter2<SetMealContract.Model,
@Inject
List
<
Modifier
>
mModifierList
;
//细项数据
@Inject
List
<
SoldoutCtrFood
>
mSoldoutCtrList
;
//沽清食品數據
private
OrderDetail
mCurrentOrderDetailBean
;
//沽清食品數據
private
List
<
SoldoutCtrFood
>
mSoldoutCtrList
=
new
ArrayList
<>();
private
boolean
RvMealClicked
;
@Inject
public
SetMealPresenter
(
SetMealContract
.
Model
model
,
SetMealContract
.
View
rootView
)
{
super
(
model
,
rootView
);
initMealData
();
}
@Override
...
...
@@ -130,30 +135,65 @@ public class SetMealPresenter extends BaseOrderPresenter2<SetMealContract.Model,
this
.
mApplication
=
null
;
}
public
void
initSelectMealAdapter
(
RecyclerView
rvSelectMeal
)
{
if
(
mSelectMealAdapter
!=
null
)
{
//設置子父級下標
mSelectMealAdapter
.
setIndex
();
rvSelectMeal
.
setAdapter
(
mSelectMealAdapter
);
mSelectMealAdapter
.
setOnItemClickListener
(
new
SelectMealAdapter2
.
OnItemClickListener
()
{
@Override
public
void
onItemClick
(
OrderDetail
datasBean
,
int
position
)
{
mRootView
.
recordOperat
(
true
);
selectMealItemClick
(
datasBean
);
}
@Override
public
void
onMealCountDelete
(
OrderDetail
datasBean
,
int
position
)
{
}
@Override
public
void
onMealCountAdd
(
OrderDetail
datasBean
,
int
position
)
{
}
@Override
public
void
onCurrentOrderDetail
(
OrderDetail
datasBean
,
int
position
)
{
mCurrentOrderDetailBean
=
datasBean
;
}
});
}
}
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
)
{
if
(
foodGroupList
.
size
()
>
0
)
{
mFoodGroupList
.
addAll
(
foodGroupList
);
setDefalutFoodGroup
(
foodGroupList
);
updateFoodSoldoutCtrData
();
mRootView
.
initFoodGroupAdapter
(
foodGroupList
);
}
}
private
void
setDefalutFoodGroup
(
List
<
Food
>
foodGroupList
)
{
for
(
Food
food
:
foodGroupList
)
{
if
(
food
.
getInvisible
()
==
0
)
{
//默認選中第一組
food
.
setSelected
(
true
);
switchFoodByParentId
(
food
.
getId
());
break
;
}
}
}
});
}
public
void
changed
FoodByParentId
(
long
parentId
)
{
public
void
switch
FoodByParentId
(
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
)
{
...
...
@@ -163,41 +203,63 @@ public class SetMealPresenter extends BaseOrderPresenter2<SetMealContract.Model,
if
(
foodList
!=
null
)
{
updateFoodData
(
foodList
,
parentId
);
}
mRootView
.
s
howViewModeVisibility
(
MealConstant
.
food_ViewMode
,
MealConstant
.
food_group_ViewMode
);
mRootView
.
s
etCurrLayout
(
SetMealFragment
.
FOOD_LAYOUT
);
}
});
}
private
void
setDefalutFoodGroup
(
List
<
Food
>
foodGroupList
)
{
for
(
Food
food
:
foodGroupList
)
{
if
(
food
.
getInvisible
()
==
0
)
{
//默認選中第一組
food
.
setSelected
(
true
);
changedFoodByParentId
(
food
.
getParentId
());
}
}
private
void
selectMealItemClick
(
OrderDetail
datasBean
)
{
LoganManager
.
w_tableMode
(
TAG
,
LoganManager
.
EVENT_SELECTED
,
"食品【"
+
datasBean
.
getProductName
()
+
"】"
);
//有取消的食品不能操作
OrderDetail
currentOrderDetail
=
mSelectMealAdapter
.
getCurrentOrderDetail
();
if
(
currentOrderDetail
!=
null
&&
currentOrderDetail
.
isModify
())
{
return
;
}
public
void
initSelectMealAdapter
(
RecyclerView
rvSelectMeal
)
{
if
(
mSelectMealAdapter
!=
null
)
{
rvSelectMeal
.
setAdapter
(
mSelectMealAdapter
);
if
(
mSelectMealAdapter
.
getSelectedMode
()
==
SelectMealAdapter
.
MULTIPLE_SELECTED
)
{
return
;
}
RvMealClicked
=
true
;
//设置当前操作的食品
mCurrentOrderDetailBean
=
datasBean
;
loadComboData
(
datasBean
,
true
);
}
public
void
foodGroupItemClick
(
Food
datasBean
)
{
RvMealClicked
=
false
;
if
(!
foodGroupConditionFilter
(
datasBean
,
false
))
{
return
;
}
RvMealClicked
=
true
;
datasBean
.
setSelected
(
true
);
changed
FoodByParentId
(
datasBean
.
getId
());
switch
FoodByParentId
(
datasBean
.
getId
());
updateOrderFoodNumber
();
updateFoodSoldoutCtrData
();
}
public
void
modifierItemClick
(
Modifier
datasBean
)
{
public
void
foodItemClick
(
Food
datasBean
)
{
RvMealClicked
=
false
;
if
(
mSelectMealAdapter
.
getSelectedMode
()
==
SelectMealAdapter
.
MULTIPLE_SELECTED
)
{
return
;
}
if
(!
foodConditionFilter
(
datasBean
))
{
return
;
}
if
(
datasBean
.
getIsParent
()
==
0
)
{
switchFoodByParentId
(
datasBean
.
getId
());
}
else
{
mCurrentOrderDetailBean
=
OrderDetail
.
foodTransOrderDetails
(
datasBean
,
1
);
int
customType
=
datasBean
.
ableDiscountCastCustomType
();
if
(
customType
!=
Food
.
CUSTOM_TYPE_100
)
{
//自定義食品
mRootView
.
setCustomFoodDialog
(
customType
,
mCurrentOrderDetailBean
);
}
else
{
//加載套餐食品
loadComboData
(
mCurrentOrderDetailBean
,
false
);
}
}
}
public
void
modifierItemClick
(
Modifier
datasBean
)
{
RvMealClicked
=
false
;
if
(!
modifierConditionFilter
(
datasBean
))
{
return
;
}
...
...
@@ -205,7 +267,6 @@ public class SetMealPresenter extends BaseOrderPresenter2<SetMealContract.Model,
//已送單數量已等於最大數,不能繼續添加
return
;
}
addModifierItem
(
datasBean
);
//更新賬單數
updateOrderFoodNumber
();
...
...
@@ -215,7 +276,6 @@ public class SetMealPresenter extends BaseOrderPresenter2<SetMealContract.Model,
public
void
comboItemClick
(
ComboItem
datasBean
)
{
RvMealClicked
=
false
;
if
(!
comboConditionFilter
(
datasBean
))
{
return
;
}
...
...
@@ -223,7 +283,6 @@ public class SetMealPresenter extends BaseOrderPresenter2<SetMealContract.Model,
//已送單數量已等於最大數,不能繼續添加
return
;
}
//设置当前操作的套餐细项
long
id
=
mCurrentOrderDetailBean
.
isNew
()
?
mCurrentOrderDetailBean
.
getProductId
()
:
mCurrentOrderDetailBean
.
getId
();
mCurrentOrderDetailBean
=
OrderDetail
.
comboTransOrderDetail
(
datasBean
,
id
,
mCurrentOrderDetailBean
.
getProductId
(),
1
,
OrderDetail
.
COMBO_PROP
,
RvMealClicked
);
...
...
@@ -237,30 +296,6 @@ public class SetMealPresenter extends BaseOrderPresenter2<SetMealContract.Model,
updateOrderFoodNumber
();
}
public
void
foodItemClick
(
Food
datasBean
)
{
if
(
mSelectMealAdapter
.
getSelectedMode
()
==
SelectMealAdapter
.
MULTIPLE_SELECTED
)
{
return
;
}
if
(!
foodConditionFilter
(
datasBean
))
{
return
;
}
RvMealClicked
=
false
;
if
(
datasBean
.
getIsParent
()
==
0
)
{
queryFoodListByParentId
(
datasBean
.
getId
());
}
else
{
mCurrentOrderDetailBean
=
OrderDetail
.
foodTransOrderDetails
(
datasBean
,
1
);
int
customType
=
datasBean
.
ableDiscountCastCustomType
();
if
(
customType
!=
Food
.
CUSTOM_TYPE_100
)
{
//自定義食品
// mRootView.setCustomFoodDialog(customType, mCurrentOrderDetailBean);
}
else
{
//加載套餐食品
loadComboData
(
mCurrentOrderDetailBean
,
false
);
}
}
}
private
void
addFoodItemBefore
(
OrderDetail
datasBean
)
{
int
addPosition
=
addFoodItem
(
datasBean
);
//这里主食品作为选中主体
...
...
@@ -341,21 +376,20 @@ public class SetMealPresenter extends BaseOrderPresenter2<SetMealContract.Model,
public
void
subscribe
(
ObservableEmitter
<
List
>
emitter
)
throws
Exception
{
long
fid
=
food
.
getProductId
();
int
itemType
=
food
.
getItemType
();
List
<
ComboItem
>
comboItemList
=
new
ArrayList
<>();
if
(
itemType
==
1
)
{
//获取套餐细项数据
//
List<ComboItem> comboItems = mModel.queryDB_ComboList(fid, BaseOrder.orderType);
//
comboItemList.addAll(comboItems);
List
<
ComboItem
>
comboItems
=
mModel
.
queryDB_ComboList
(
fid
,
BaseOrder
.
orderType
);
comboItemList
.
addAll
(
comboItems
);
}
//
List<Modifier> modifierList = mModel.queryDB_ModifierList(fid, ModifierDaoUtils.modifierMode_All);
//
//
emitter.onNext(comboItemList);
//
emitter.onNext(modifierList);
List
<
Modifier
>
modifierList
=
mModel
.
queryDB_ModifierList
(
fid
,
ModifierDaoUtils
.
modifierMode_All
);
emitter
.
onNext
(
comboItemList
);
emitter
.
onNext
(
modifierList
);
emitter
.
onComplete
();
}
})
.
subscribeOn
(
Schedulers
.
io
())
//在IO线程执行数据库处理操作
.
observeOn
(
AndroidSchedulers
.
mainThread
())
//在UI线程
})
.
compose
(
RxSchedulerUtils
.
_io_main_o
())
.
compose
(
RxLifecycleUtils
.
bindToLifecycle
(
mRootView
))
.
subscribe
(
new
Observer
<
List
>()
{
...
...
@@ -395,7 +429,6 @@ public class SetMealPresenter extends BaseOrderPresenter2<SetMealContract.Model,
public
void
onComplete
()
{
boolean
autoMod
=
false
;
if
(
comboItemList
!=
null
)
{
// if (comboItemList.size() > 0) {
if
(
modifierList
!=
null
)
{
autoMod
=
food
.
getAutoMod
()
==
1
&&
(
comboItemList
.
size
()
>
0
||
modifierList
.
size
()
>
0
);
}
else
{
...
...
@@ -403,7 +436,7 @@ public class SetMealPresenter extends BaseOrderPresenter2<SetMealContract.Model,
}
}
if
(
mRootView
.
getCurrentViewMode
()
!=
MealConstant
.
fine_ViewMode
&&
isSelectedMeal
||
autoMod
)
{
mRootView
.
s
howViewModeVisibility
(
MealConstant
.
combo_ViewMode
);
mRootView
.
s
etCurrLayout
(
SetMealFragment
.
COMBO_LAYOUT
);
}
toAddFoodItem
(
mCurrentOrderDetailBean
);
}
...
...
@@ -578,23 +611,6 @@ public class SetMealPresenter extends BaseOrderPresenter2<SetMealContract.Model,
return
-
1
;
}
public
void
queryFoodListByParentId
(
long
parentId
)
{
mModel
.
queryDB_FoodList
(
parentId
,
BaseOrder
.
orderType
)
.
compose
(
MyRxSchedulerUtils
.
_io_main_f
())
.
compose
(
RxLifecycleUtils
.
bindToLifecycle
(
mRootView
))
.
subscribe
(
new
ErrorHandleSingleSubscriber
<
List
<
Food
>>(
mErrorHandler
)
{
@Override
public
void
onSuccess
(
List
<
Food
>
foods
)
{
mRootView
.
resetSelect
(-
1
,
null
);
if
(
foods
!=
null
)
{
updateFoodData
(
foods
,
parentId
);
}
// mRootView.showViewModeVisibility(MealConstant.food_ViewMode, MealConstant.food_group_ViewMode);
}
});
}
/**
* 全選
*/
...
...
@@ -794,7 +810,6 @@ public class SetMealPresenter extends BaseOrderPresenter2<SetMealContract.Model,
for
(
int
i
=
0
;
i
<
foodList
.
size
();
i
++)
{
Food
datasBean
=
foodList
.
get
(
i
);
mModel
.
isComboFood
(
datasBean
.
getId
())
.
compose
(
MyRxSchedulerUtils
.
_io_main_f
())
.
compose
(
RxLifecycleUtils
.
bindToLifecycle
(
mRootView
))
.
subscribe
(
new
ErrorHandleSingleSubscriber
<
List
<
FoodCombo
>>(
mErrorHandler
)
{
...
...
@@ -1390,4 +1405,12 @@ public class SetMealPresenter extends BaseOrderPresenter2<SetMealContract.Model,
}
public
OrderDetail
getCurrentOrderDetailBean
()
{
return
mCurrentOrderDetailBean
;
}
public
List
<
SoldoutCtrFood
>
getSoldoutCtrList
()
{
return
mSoldoutCtrList
;
}
}
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/activity/MealStandActivity.java
View file @
6ec228e3
...
...
@@ -5,27 +5,21 @@ import android.content.Intent;
import
android.graphics.Color
;
import
android.os.Build
;
import
android.os.Bundle
;
import
android.os.PersistableBundle
;
import
android.os.SystemClock
;
import
android.text.Editable
;
import
android.text.TextUtils
;
import
android.text.TextWatcher
;
import
android.util.DisplayMetrics
;
import
android.util.SparseArray
;
import
android.util.TypedValue
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.view.ViewStub
;
import
android.widget.BaseAdapter
;
import
android.widget.Button
;
import
android.widget.Chronometer
;
import
android.widget.EditText
;
import
android.widget.FrameLayout
;
import
android.widget.ImageButton
;
import
android.widget.ImageView
;
import
android.widget.LinearLayout
;
import
android.widget.RelativeLayout
;
import
android.widget.ScrollView
;
import
android.widget.TextView
;
import
androidx.annotation.NonNull
;
...
...
@@ -42,7 +36,6 @@ 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.GoldConstants
;
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
;
...
...
@@ -59,7 +52,7 @@ 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.Member
Level
Discount
;
import
com.gingersoft.gsa.cloud.order.discount.MultyDiscount
;
import
com.gingersoft.gsa.cloud.order.order.BaseOrder
;
import
com.gingersoft.gsa.cloud.order.order.DoshokuOrder
;
...
...
@@ -71,12 +64,11 @@ 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.model.constant.OrderConentActionConstant
;
import
com.gingersoft.gsa.cloud.table.mvp.presenter.mealstand.MealStandPresenter
;
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.
FineItem
AllFragment
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.fragment.
mealstand.FineChild
AllFragment
;
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
;
...
...
@@ -95,12 +87,8 @@ 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.lxj.xpopup.util.KeyboardUtils
;
import
com.qmuiteam.qmui.alpha.QMUIAlphaTextView
;
import
com.qmuiteam.qmui.util.QMUIDisplayHelper
;
import
com.qmuiteam.qmui.widget.dialog.QMUIDialog
;
import
com.qmuiteam.qmui.widget.dialog.QMUIDialogAction
;
import
com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
;
import
org.simple.eventbus.EventBus
;
...
...
@@ -154,8 +142,15 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
RecyclerView
rv_combo
;
@BindView
(
R2
.
id
.
rv_modifier
)
RecyclerView
rv_modifier
;
@BindView
(
R2
.
id
.
fl_discount
)
FrameLayout
fl_discount
;
// @BindView(R2.id.ll_discount)
// LinearLayout ll_discount;
@BindView
(
R2
.
id
.
rv_discount
)
RecyclerView
rv_discount
;
// @BindView(R2.id.rv_coupon)
// RecyclerView rv_coupon;
@BindView
(
R2
.
id
.
scroll_combo
)
NestedScrollView
scroll_combo
;
...
...
@@ -257,7 +252,7 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
@BindView
(
R2
.
id
.
tv_fine_type
)
TextView
tv_fine_type
;
private
Fine
Item
AllFragment
modMsgFineItemFragment
,
modSasteFineItemFragment
;
private
Fine
Child
AllFragment
modMsgFineItemFragment
,
modSasteFineItemFragment
;
private
ChooseNumberDialog
mChooseNumberDialog
;
private
UseMemberDialog
mUseMemberDialog
;
...
...
@@ -498,8 +493,8 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
FragmentManager
fm
=
getSupportFragmentManager
();
List
<
Fragment
>
fragmentList
=
new
ArrayList
<>();
// Fragment标签
modSasteFineItemFragment
=
Fine
Item
AllFragment
.
newInstance
();
modMsgFineItemFragment
=
Fine
Item
AllFragment
.
newInstance
();
modSasteFineItemFragment
=
Fine
Child
AllFragment
.
newInstance
();
modMsgFineItemFragment
=
Fine
Child
AllFragment
.
newInstance
();
fragmentList
.
add
(
modSasteFineItemFragment
);
fragmentList
.
add
(
modMsgFineItemFragment
);
// fragmentList.add(modCommFineItemFragment);
...
...
@@ -626,10 +621,15 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
showMessage
(
"此食品不能參與折扣!"
);
return
;
}
//更新折扣数据
mPresenter
.
loadDiscountData
();
showViewModeVisibility
(
MealConstant
.
discount_ViewMode
);
mPresenter
.
loadDiscountFragment
();
showModifyLayoutVisibility
(
true
);
// //更新折扣数据
// mPresenter.loadDiscountData();
//
// showViewModeVisibility(MealConstant.discount_ViewMode);
}
@OnClick
(
R2
.
id
.
btn_table
)
...
...
@@ -658,12 +658,13 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
public
void
onUseMember
(
UseMemberDialog
dialog
)
{
if
(
mMemberInfo
!=
null
)
{
dialog
.
dismiss
();
if
(
DoshokuOrder
.
getInstance
().
getMemberInfo
()
==
null
)
{
useMember
();
// if (DoshokuOrder.getInstance().getMemberInfo() == null) {
DoshokuOrder
.
getInstance
().
setMemberInfo
(
mMemberInfo
);
useMember
();
//添加会员折扣行
ShoppingCart
shoppingCart
=
mPresenter
.
getShoppingCart
();
MultyDiscount
multyDiscount
=
shoppingCart
.
createMemberDiscount
(
mMemberInfo
,
BillItem
.
BILL_ITEM_NO_ORDER_STATUS
);
...
...
@@ -673,7 +674,9 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
mPresenter
.
updateBillInfo
();
}
// } else {
// DoshokuOrder.getInstance().setMemberInfo(mMemberInfo);
// }
}
else
{
showMessage
(
"請輸入正確的會員號碼!"
);
}
...
...
@@ -684,7 +687,7 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
btn_table
.
setBackgroundColor
(
Color
.
parseColor
(
"#336699"
));
DoshokuOrder
.
getInstance
().
setMemberInfo
(
null
);
DiscountItem
memberDiscountBillItem
=
(
DiscountItem
)
mPresenter
.
findBillItemByClass
(
MemberDiscount
.
class
);
DiscountItem
memberDiscountBillItem
=
(
DiscountItem
)
mPresenter
.
findBillItemByClass
(
Member
Level
Discount
.
class
);
if
(
memberDiscountBillItem
!=
null
)
{
ShoppingCart
shoppingCart
=
mPresenter
.
getShoppingCart
();
shoppingCart
.
delMultyDiscount
(
memberDiscountBillItem
.
getDiscount
());
...
...
@@ -823,6 +826,9 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
mPresenter
.
deleteChildItem
();
}
}
else
if
(
id
==
R
.
id
.
btn_end
)
{
if
(
mPresenter
.
getDiscountFragment
()
!=
null
)
{
mPresenter
.
getDiscountFragment
().
pop
();
}
mPresenter
.
getSelectMealAdapter
().
setSelectedMode
(
SelectMealAdapter
.
SINGLE_SELECTED
);
btn_delete
.
setVisibility
(
View
.
VISIBLE
);
setSelectFunctionVisibility
(
View
.
GONE
);
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/activity/MealStandActivity2.java
View file @
6ec228e3
...
...
@@ -2,86 +2,46 @@ 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.
contract.MealStandContract2
;
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
;
...
...
@@ -90,22 +50,13 @@ 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
;
...
...
@@ -122,14 +73,37 @@ import static com.jess.arms.utils.Preconditions.checkNotNull;
* <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
);
public
class
MealStandActivity2
extends
BaseFragmentActivity
<
MealStandPresenter2
>
implements
MealStandContract2
.
View
,
PagerGridLayoutManager
.
PageListener
{
@BindView
(
R2
.
id
.
meal_stand_search_keyboard_view
)
SearchKeyBoardView
keyboard_view
;
@BindView
(
R2
.
id
.
ctime
)
Chronometer
ctime
;
@BindView
(
R2
.
id
.
fl_food_plate
)
FrameLayout
flFoodPlate
;
@BindView
(
R2
.
id
.
fl_meal_discount
)
FrameLayout
fl_meal_discount
;
FrameLayout
flMealDiscount
;
@BindView
(
R2
.
id
.
meal_stand_search_keyboard_view
)
SearchKeyBoardView
mealStandSearchKeyboardView
;
@BindView
(
R2
.
id
.
tv_no_save_return
)
TextView
tvNoSaveReturn
;
@BindView
(
R2
.
id
.
btn_order_count
)
Button
btnOrderCount
;
@BindView
(
R2
.
id
.
tv_order_content
)
TextView
tvOrderContent
;
@BindView
(
R2
.
id
.
fl_order_content
)
FrameLayout
flOrderContent
;
@BindView
(
R2
.
id
.
btn_send_order
)
Button
btnSendOrder
;
@BindView
(
R2
.
id
.
fl_send_order
)
FrameLayout
flSendOrder
;
@BindView
(
R2
.
id
.
btn_order_printer
)
Button
btnOrderPrinter
;
@BindView
(
R2
.
id
.
btn_printer_machine_name
)
Button
btnPrinterMachineName
;
@BindView
(
R2
.
id
.
fl_printer_order
)
FrameLayout
flPrinterOrder
;
@BindView
(
R2
.
id
.
ll_stand_oper
)
LinearLayout
llStandOper
;
private
int
mCurrentViewMode
;
private
boolean
isPluMode
;
...
...
@@ -173,52 +147,13 @@ public class MealStandActivity2 extends BaseFragmentActivity<MealStandPresenter2
}
@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
})
@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
(
id
==
R
.
id
.
btn_send_order
)
{
if
(
BaseOrder
.
isCurrentOrderType
(
FoodSummaryConstans
.
TAKEAWAY_TYPE
))
{
CC
.
obtainBuilder
(
ComponentName
.
COMPONENT_DELIVERYPICK
)
.
setActionName
(
"SendOrder"
)
...
...
@@ -273,134 +208,20 @@ public class MealStandActivity2 extends BaseFragmentActivity<MealStandPresenter2
}
@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
;
public
void
showStandOperLayoutVisibility
(
boolean
show
)
{
if
(
show
)
{
llStandOper
.
setVisibility
(
View
.
INVISIBLE
);
}
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
;
}
llStandOper
.
setVisibility
(
View
.
VISIBLE
);
}
@Override
public
void
showModifyLayoutVisibility
(
boolean
show
)
{
}
@Override
...
...
@@ -408,15 +229,6 @@ public class MealStandActivity2 extends BaseFragmentActivity<MealStandPresenter2
}
@Override
public
void
setMealRvScrollToPosition
(
int
position
)
{
}
@Override
public
List
<
Food
>
getFoodGroupList
()
{
return
null
;
}
@Override
public
void
initIntent
()
{
}
...
...
@@ -483,19 +295,6 @@ public class MealStandActivity2 extends BaseFragmentActivity<MealStandPresenter2
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
);
...
...
@@ -517,10 +316,6 @@ public class MealStandActivity2 extends BaseFragmentActivity<MealStandPresenter2
}
}
public
int
getCurrentViewMode
()
{
return
mCurrentViewMode
;
}
@Override
public
void
onPageSizeChanged
(
int
pageSize
)
{
}
...
...
@@ -530,31 +325,7 @@ public class MealStandActivity2 extends BaseFragmentActivity<MealStandPresenter2
}
@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 @
6ec228e3
...
...
@@ -669,6 +669,12 @@ public class OrderPayActivity extends BaseFragmentActivity<OrderPayPresenter> im
}
@Override
protected
void
onActivityResult
(
int
requestCode
,
int
resultCode
,
@Nullable
Intent
data
)
{
super
.
onActivityResult
(
requestCode
,
resultCode
,
data
);
LoganManager
.
w_code
(
TAG
,
"onActivityResult->"
+
"resultCode="
+
resultCode
+
" requestCode="
+
requestCode
);
}
public
OrderPayView
getGsaPayView
()
{
return
gsaPayView
;
}
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/activity/SoldoutCtrlActivity.java
View file @
6ec228e3
...
...
@@ -16,7 +16,6 @@ import com.gingersoft.gsa.cloud.app.GsaCloudApplication;
import
com.gingersoft.gsa.cloud.common.utils.LanguageUtils
;
import
com.gingersoft.gsa.cloud.common.utils.VibratorUtils
;
import
com.gingersoft.gsa.cloud.common.utils.log.LogUtil
;
import
com.gingersoft.gsa.cloud.common.constans.GoldConstants
;
import
com.gingersoft.gsa.cloud.common.constans.MealConstant
;
import
com.gingersoft.gsa.cloud.database.bean.Food
;
import
com.gingersoft.gsa.cloud.table.R
;
...
...
@@ -25,9 +24,9 @@ import com.gingersoft.gsa.cloud.table.di.component.DaggerSoldoutCtrlComponent;
import
com.gingersoft.gsa.cloud.table.mvp.contract.SoldoutCtrlContract
;
import
com.gingersoft.gsa.cloud.table.mvp.model.bean.SoldoutCtrFood
;
import
com.gingersoft.gsa.cloud.table.mvp.presenter.SoldoutCtrlPresenter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.fragment.
FineItem
AllFragment
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.fragment.
mealstand.FineChild
AllFragment
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.FoodGroupAdapter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.fragment.
FineItem
OneselfFragment
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.fragment.
mealstand.FineChild
OneselfFragment
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.widget.ChooseNumberDialog
;
import
com.gingersoft.gsa.cloud.ui.recylcler.Indicator.PagerGridLayoutManager
;
import
com.gingersoft.gsa.cloud.ui.recylcler.Indicator.PagerGridSnapHelper
;
...
...
@@ -136,8 +135,8 @@ public class SoldoutCtrlActivity extends BaseFragmentActivity<SoldoutCtrlPresent
public
static
final
int
FOOD_TYPE
=
2
;
public
static
final
int
MODIFIER_TYPE
=
3
;
private
Fine
Item
OneselfFragment
oneselfFineItemFragment
;
private
Fine
Item
AllFragment
modMsgFineItemFragment
,
modSasteFineItemFragment
;
private
Fine
Child
OneselfFragment
oneselfFineItemFragment
;
private
Fine
Child
AllFragment
modMsgFineItemFragment
,
modSasteFineItemFragment
;
private
String
[]
mFineTabTitles
=
{
"子項"
,
"口味"
,
"特別信息"
};
private
int
mCurrentFinePageIndex
;
...
...
@@ -724,19 +723,19 @@ public class SoldoutCtrlActivity extends BaseFragmentActivity<SoldoutCtrlPresent
if
(
modMsgFineItemFragment
!=
null
)
{
return
modMsgFineItemFragment
;
}
modMsgFineItemFragment
=
Fine
Item
AllFragment
.
newInstance
();
modMsgFineItemFragment
=
Fine
Child
AllFragment
.
newInstance
();
return
modMsgFineItemFragment
;
case
1
:
if
(
modSasteFineItemFragment
!=
null
)
{
return
modSasteFineItemFragment
;
}
modSasteFineItemFragment
=
Fine
Item
AllFragment
.
newInstance
();
modSasteFineItemFragment
=
Fine
Child
AllFragment
.
newInstance
();
return
modSasteFineItemFragment
;
default
:
if
(
oneselfFineItemFragment
!=
null
)
{
return
oneselfFineItemFragment
;
}
oneselfFineItemFragment
=
Fine
Item
OneselfFragment
.
newInstance
();
oneselfFineItemFragment
=
Fine
Child
OneselfFragment
.
newInstance
();
return
oneselfFineItemFragment
;
}
}
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/activity/TableActivity.java
View file @
6ec228e3
...
...
@@ -394,7 +394,7 @@ public class TableActivity extends BaseFragmentActivity<TablePresenter> implemen
@Override
public
void
startMealStandActivity
()
{
startActivity
(
new
Intent
(
this
,
MealStandActivity
.
class
));
startActivity
(
new
Intent
(
this
,
MealStandActivity
2
.
class
));
}
@Override
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/adapter/MemberInfoAdapter.java
View file @
6ec228e3
...
...
@@ -19,5 +19,4 @@ public class MemberInfoAdapter extends BaseQuickAdapter<SectionTextItem, BaseVie
helper
.
setText
(
R
.
id
.
tv_text
,
item
.
getText
());
}
}
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/adapter/meal/SelectMealAdapter2.java
View file @
6ec228e3
...
...
@@ -19,11 +19,14 @@ 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.gingersoft.gsa.cloud.table.mvp.ui.fragment.mealstand.SetMealFragment
;
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
org.simple.eventbus.EventBus
;
import
java.util.List
;
import
javax.inject.Inject
;
...
...
@@ -442,7 +445,8 @@ public class SelectMealAdapter2 extends DefaultAdapter<OrderDetail> {
setSelectPosition
(
select_position
);
mMealStandActivity
.
showViewModeVisibility
(
MealConstant
.
food_group_ViewMode
,
MealConstant
.
food_ViewMode
);
EventBus
.
getDefault
().
post
(
SetMealFragment
.
FOOD_LAYOUT
,
SetMealFragment
.
SET_CURR_LAYOUT_EVENT
);
// mMealStandActivity.showViewModeVisibility(MealConstant.food_group_ViewMode, MealConstant.food_ViewMode);
}
/**
...
...
@@ -488,9 +492,10 @@ public class SelectMealAdapter2 extends DefaultAdapter<OrderDetail> {
setSelectPosition
(
select_position
);
if
(
mMealStandActivity
!=
null
)
{
mMealStandActivity
.
showViewModeVisibility
(
MealConstant
.
food_group_ViewMode
,
MealConstant
.
food_ViewMode
);
}
EventBus
.
getDefault
().
post
(
SetMealFragment
.
FOOD_LAYOUT
,
SetMealFragment
.
SET_CURR_LAYOUT_EVENT
);
// if (mMealStandActivity != null) {
// mMealStandActivity.showViewModeVisibility(MealConstant.food_group_ViewMode, MealConstant.food_ViewMode);
// }
return
select_position
;
}
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/fragment/discount/CouponFragment.java
View file @
6ec228e3
...
...
@@ -12,7 +12,7 @@ import androidx.recyclerview.widget.GridLayoutManager;
import
androidx.recyclerview.widget.LinearLayoutManager
;
import
androidx.recyclerview.widget.RecyclerView
;
import
com.gingersoft.gsa.cloud.
common.core.discount.Member
Coupon
;
import
com.gingersoft.gsa.cloud.
order.bean.discount.MemberWallet
Coupon
;
import
com.gingersoft.gsa.cloud.table.R
;
import
com.gingersoft.gsa.cloud.table.R2
;
import
com.gingersoft.gsa.cloud.table.di.component.DaggerCouponComponent
;
...
...
@@ -66,10 +66,23 @@ public class CouponFragment extends BaseFragment<CouponPresenter> implements Cou
@Inject
TagViewAdapter
mMemberCouponAdapter
;
/**
* 0=沒有限制
* 1=食品專有
* 2=帳單專有
*/
public
static
final
byte
NO_LIMIT_DISCOUNT
=
0
;
public
static
final
byte
FOOD_LIMIT_DISCOUNT
=
1
;
public
static
final
byte
BILL_LIMIT_DISCOUNT
=
2
;
private
int
limitType
=
NO_LIMIT_DISCOUNT
;
private
LoadService
loadService
;
public
static
CouponFragment
newInstance
()
{
public
static
CouponFragment
newInstance
(
int
limitType
)
{
CouponFragment
fragment
=
new
CouponFragment
();
Bundle
bundle
=
new
Bundle
();
bundle
.
putInt
(
"limitType"
,
limitType
);
fragment
.
setArguments
(
bundle
);
return
fragment
;
}
...
...
@@ -89,11 +102,18 @@ public class CouponFragment extends BaseFragment<CouponPresenter> implements Cou
}
@Override
public
void
onCreate
(
@Nullable
Bundle
savedInstanceState
)
{
Bundle
arguments
=
getArguments
();
limitType
=
arguments
.
getInt
(
"limitType"
);
super
.
onCreate
(
savedInstanceState
);
}
@Override
public
void
initData
(
@Nullable
Bundle
savedInstanceState
)
{
loadService
=
LoadSir
.
getDefault
().
register
(
refreshLayout
,
new
Callback
.
OnReloadListener
()
{
@Override
public
void
onReload
(
View
v
)
{
mPresenter
.
getMemberWalletList
(
null
,
tru
e
);
mPresenter
.
getMemberWalletList
(
null
,
false
,
limitTyp
e
);
}
});
...
...
@@ -104,7 +124,7 @@ public class CouponFragment extends BaseFragment<CouponPresenter> implements Cou
@Override
public
void
onLazyInitView
(
@Nullable
Bundle
savedInstanceState
)
{
super
.
onLazyInitView
(
savedInstanceState
);
mPresenter
.
getMemberWalletList
(
null
,
tru
e
);
mPresenter
.
getMemberWalletList
(
null
,
false
,
limitTyp
e
);
}
private
void
initAdapter
()
{
...
...
@@ -112,7 +132,7 @@ public class CouponFragment extends BaseFragment<CouponPresenter> implements Cou
rvCoupon
.
setAdapter
(
mMemberCouponAdapter
);
mMemberCouponAdapter
.
setOnItemClickListener
((
adapter
,
view
,
position
)
->
{
if
(
onCouponItemClickListener
!=
null
)
{
onCouponItemClickListener
.
onItemClick
((
MemberCoupon
)
mMemberCouponList
.
get
(
position
).
getTargetObj
(),
position
);
onCouponItemClickListener
.
onItemClick
((
Member
Wallet
Coupon
)
mMemberCouponList
.
get
(
position
).
getTargetObj
(),
position
);
}
});
}
...
...
@@ -130,13 +150,13 @@ public class CouponFragment extends BaseFragment<CouponPresenter> implements Cou
refreshLayout
.
setOnRefreshListener
(
new
OnRefreshListener
()
{
@Override
public
void
onRefresh
(
@NonNull
final
RefreshLayout
refreshLayout
)
{
mPresenter
.
getMemberWalletList
(
refreshLayout
,
tru
e
);
mPresenter
.
getMemberWalletList
(
refreshLayout
,
false
,
limitTyp
e
);
}
});
refreshLayout
.
setOnLoadMoreListener
(
new
OnLoadMoreListener
()
{
@Override
public
void
onLoadMore
(
@NonNull
final
RefreshLayout
refreshLayout
)
{
mPresenter
.
getMemberWalletList
(
refreshLayout
,
fals
e
);
mPresenter
.
getMemberWalletList
(
refreshLayout
,
true
,
limitTyp
e
);
}
});
refreshLayout
.
setEnableLoadMore
(
false
);
...
...
@@ -179,7 +199,7 @@ public class CouponFragment extends BaseFragment<CouponPresenter> implements Cou
}
@Override
public
void
returnMemberCouponList
(
List
<
MemberCoupon
>
memberCoupons
)
{
public
void
returnMemberCouponList
(
List
<
Member
Wallet
Coupon
>
memberCoupons
)
{
List
<
TagViewItem
>
tagViewItems
=
castTagItem
(
memberCoupons
);
if
(
mMemberCouponList
.
size
()
>
0
)
{
mMemberCouponList
.
clear
();
...
...
@@ -188,12 +208,12 @@ public class CouponFragment extends BaseFragment<CouponPresenter> implements Cou
mMemberCouponAdapter
.
notifyDataSetChanged
();
}
private
List
<
TagViewItem
>
castTagItem
(
List
<
MemberCoupon
>
memberCoupons
)
{
private
List
<
TagViewItem
>
castTagItem
(
List
<
Member
Wallet
Coupon
>
memberCoupons
)
{
List
<
TagViewItem
>
tagViewItems
=
new
ArrayList
<>();
for
(
MemberCoupon
coupon
:
memberCoupons
)
{
TagViewItem
<
MemberCoupon
>
tagViewItem
=
new
TagViewItem
();
for
(
Member
Wallet
Coupon
coupon
:
memberCoupons
)
{
TagViewItem
<
Member
Wallet
Coupon
>
tagViewItem
=
new
TagViewItem
();
tagViewItem
.
setId
(
coupon
.
getId
());
tagViewItem
.
setText
(
coupon
.
get
Remark
());
tagViewItem
.
setText
(
coupon
.
get
CouponTypeName
());
tagViewItem
.
setTargetObj
(
coupon
);
tagViewItems
.
add
(
tagViewItem
);
}
...
...
@@ -222,6 +242,6 @@ public class CouponFragment extends BaseFragment<CouponPresenter> implements Cou
}
public
interface
OnCouponItemClickListener
{
void
onItemClick
(
MemberCoupon
item
,
int
position
);
void
onItemClick
(
Member
Wallet
Coupon
item
,
int
position
);
}
}
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/fragment/discount/DiscountDialogFragment.java
View file @
6ec228e3
...
...
@@ -15,7 +15,7 @@ import androidx.annotation.Nullable;
import
androidx.fragment.app.Fragment
;
import
androidx.viewpager.widget.ViewPager
;
import
com.gingersoft.gsa.cloud.
common.core.discount.Member
Coupon
;
import
com.gingersoft.gsa.cloud.
order.bean.discount.MemberWallet
Coupon
;
import
com.gingersoft.gsa.cloud.common.core.member.MemberInfo
;
import
com.gingersoft.gsa.cloud.common.logan.LoganManager
;
import
com.gingersoft.gsa.cloud.database.bean.Discount
;
...
...
@@ -80,7 +80,7 @@ public class DiscountDialogFragment extends BaseDialogFragment<BasePresenter> {
@Override
public
void
onStart
()
{
super
.
onStart
();
mWindow
.
setBackgroundDrawable
(
new
ColorDrawable
(
Color
.
TRANSPARENT
));
mWindow
.
setBackgroundDrawable
(
new
ColorDrawable
(
Color
.
WHITE
));
WindowManager
.
LayoutParams
lp
=
mWindow
.
getAttributes
();
lp
.
width
=
WindowManager
.
LayoutParams
.
MATCH_PARENT
;
lp
.
height
=
(
int
)
(
QMUIDisplayHelper
.
getScreenHeight
(
mContext
)
*
0.6
);
...
...
@@ -114,10 +114,10 @@ public class DiscountDialogFragment extends BaseDialogFragment<BasePresenter> {
if
(
couponFragment
!=
null
)
{
return
couponFragment
;
}
couponFragment
=
CouponFragment
.
newInstance
();
couponFragment
=
CouponFragment
.
newInstance
(
CouponFragment
.
BILL_LIMIT_DISCOUNT
);
couponFragment
.
setOnCouponItemClickListener
(
new
CouponFragment
.
OnCouponItemClickListener
()
{
@Override
public
void
onItemClick
(
MemberCoupon
item
,
int
position
)
{
public
void
onItemClick
(
Member
Wallet
Coupon
item
,
int
position
)
{
if
(
onDiscountItemClickListener
!=
null
)
{
onDiscountItemClickListener
.
onCouponClick
(
item
,
position
);
}
...
...
@@ -160,7 +160,7 @@ public class DiscountDialogFragment extends BaseDialogFragment<BasePresenter> {
tabSegment
.
addTab
(
tab1
);
if
(
memberInfo
!=
null
)
{
mTabTitles
.
add
(
"
優惠券
"
);
mTabTitles
.
add
(
"
會員錢包
"
);
QMUITab
tab2
=
builder
.
setText
(
mTabTitles
.
get
(
1
))
.
build
(
_mActivity
);
...
...
@@ -209,6 +209,6 @@ public class DiscountDialogFragment extends BaseDialogFragment<BasePresenter> {
public
interface
OnDiscountItemClickListener
{
void
onBillDiscountClick
(
Discount
item
,
int
position
);
void
onCouponClick
(
MemberCoupon
item
,
int
position
);
void
onCouponClick
(
Member
Wallet
Coupon
item
,
int
position
);
}
}
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/fragment/discount/DiscountFragment.java
0 → 100644
View file @
6ec228e3
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
mvp
.
ui
.
fragment
.
discount
;
import
android.os.Bundle
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
androidx.fragment.app.Fragment
;
import
androidx.viewpager.widget.ViewPager
;
import
com.gingersoft.gsa.cloud.order.bean.discount.MemberWalletCoupon
;
import
com.gingersoft.gsa.cloud.common.core.member.MemberInfo
;
import
com.gingersoft.gsa.cloud.common.logan.LoganManager
;
import
com.gingersoft.gsa.cloud.database.bean.Discount
;
import
com.gingersoft.gsa.cloud.order.order.DoshokuOrder
;
import
com.gingersoft.gsa.cloud.table.R
;
import
com.gingersoft.gsa.cloud.table.R2
;
import
com.jess.arms.base.BaseFragment
;
import
com.jess.arms.di.component.AppComponent
;
import
com.jess.arms.mvp.BasePresenter
;
import
com.qmuiteam.qmui.arch.QMUIFragmentPagerAdapter
;
import
com.qmuiteam.qmui.layout.QMUILinearLayout
;
import
com.qmuiteam.qmui.util.QMUIDisplayHelper
;
import
com.qmuiteam.qmui.widget.tab.QMUITab
;
import
com.qmuiteam.qmui.widget.tab.QMUITabBuilder
;
import
com.qmuiteam.qmui.widget.tab.QMUITabIndicator
;
import
com.qmuiteam.qmui.widget.tab.QMUITabSegment
;
import
java.util.ArrayList
;
import
java.util.List
;
import
butterknife.BindView
;
/**
* @作者: bin
* @創建時間: 2021-04-02 17:14
* @更新時間: 2021-04-02 17:14
* @描述:
*/
public
class
DiscountFragment
extends
BaseFragment
<
BasePresenter
>
{
private
final
String
TAG
=
"DiscountFragment"
;
@BindView
(
R2
.
id
.
tabSegment
)
QMUITabSegment
tabSegment
;
@BindView
(
R2
.
id
.
contentViewPager
)
ViewPager
contentViewPager
;
@BindView
(
R2
.
id
.
ll_container
)
QMUILinearLayout
llContainer
;
private
CouponFragment
couponFragment
;
private
NomalDiscountFragment
billDiscountFragment
;
private
List
<
String
>
mTabTitles
=
new
ArrayList
<>();
private
int
mCurrentPageIndex
=
0
;
public
static
DiscountFragment
newInstance
()
{
DiscountFragment
fragment
=
new
DiscountFragment
();
return
fragment
;
}
@Override
public
void
setupFragmentComponent
(
@NonNull
AppComponent
appComponent
)
{
}
@Override
public
View
initView
(
@NonNull
LayoutInflater
inflater
,
@Nullable
ViewGroup
container
,
@Nullable
Bundle
savedInstanceState
)
{
return
inflater
.
inflate
(
R
.
layout
.
table_dialog_discout
,
container
,
false
);
}
@Override
public
void
initData
(
@Nullable
Bundle
savedInstanceState
)
{
float
mShadowAlpha
=
0.25f
;
int
mShadowElevationDp
=
14
;
llContainer
.
setRadiusAndShadow
(
15
,
QMUIDisplayHelper
.
dp2px
(
mContext
,
mShadowElevationDp
),
mShadowAlpha
);
initTabAndPager
();
}
@Override
public
void
setData
(
@Nullable
Object
data
)
{
}
private
void
initTabAndPager
()
{
MemberInfo
memberInfo
=
DoshokuOrder
.
getInstance
().
getMemberInfo
();
QMUIFragmentPagerAdapter
pagerAdapter
=
new
QMUIFragmentPagerAdapter
(
getChildFragmentManager
())
{
@Override
public
Fragment
createFragment
(
int
position
)
{
switch
(
position
)
{
case
1
:
if
(
couponFragment
!=
null
)
{
return
couponFragment
;
}
couponFragment
=
CouponFragment
.
newInstance
(
CouponFragment
.
FOOD_LIMIT_DISCOUNT
);
couponFragment
.
setOnCouponItemClickListener
(
new
CouponFragment
.
OnCouponItemClickListener
()
{
@Override
public
void
onItemClick
(
MemberWalletCoupon
item
,
int
position
)
{
if
(
onDiscountItemClickListener
!=
null
)
{
onDiscountItemClickListener
.
onCouponClick
(
item
,
position
);
}
}
});
return
couponFragment
;
default
:
if
(
billDiscountFragment
!=
null
)
{
return
billDiscountFragment
;
}
billDiscountFragment
=
NomalDiscountFragment
.
newInstance
();
billDiscountFragment
.
setOnDiscountItemClickListener
(
new
NomalDiscountFragment
.
OnBillDiscountItemClickListener
()
{
@Override
public
void
onItemClick
(
Discount
item
,
int
position
)
{
if
(
onDiscountItemClickListener
!=
null
)
{
onDiscountItemClickListener
.
onBillDiscountClick
(
item
,
position
);
}
}
});
return
billDiscountFragment
;
}
}
@Override
public
int
getCount
()
{
return
mTabTitles
.
size
();
}
@Override
public
CharSequence
getPageTitle
(
int
position
)
{
return
mTabTitles
.
get
(
position
);
}
};
QMUITabBuilder
builder
=
tabSegment
.
tabBuilder
();
mTabTitles
.
add
(
"折扣"
);
QMUITab
tab1
=
builder
.
setText
(
mTabTitles
.
get
(
0
))
.
build
(
_mActivity
);
tabSegment
.
addTab
(
tab1
);
if
(
memberInfo
!=
null
)
{
mTabTitles
.
add
(
"會員錢包"
);
QMUITab
tab2
=
builder
.
setText
(
mTabTitles
.
get
(
1
))
.
build
(
_mActivity
);
tabSegment
.
addTab
(
tab2
);
}
contentViewPager
.
setAdapter
(
pagerAdapter
);
contentViewPager
.
setCurrentItem
(
mCurrentPageIndex
);
int
space
=
QMUIDisplayHelper
.
dp2px
(
_mActivity
,
16
);
tabSegment
.
setIndicator
(
new
QMUITabIndicator
(
QMUIDisplayHelper
.
dp2px
(
_mActivity
,
2
),
false
,
true
));
tabSegment
.
setDefaultTextSize
(
QMUIDisplayHelper
.
dp2px
(
_mActivity
,
16
),
QMUIDisplayHelper
.
dp2px
(
_mActivity
,
16
));
tabSegment
.
setPadding
(
space
,
0
,
space
,
0
);
tabSegment
.
setupWithViewPager
(
contentViewPager
,
false
);
tabSegment
.
addOnTabSelectedListener
(
new
QMUITabSegment
.
OnTabSelectedListener
()
{
@Override
public
void
onTabSelected
(
int
index
)
{
LoganManager
.
w_tableMode
(
TAG
,
"當前頁面【"
+
mTabTitles
.
get
(
index
)
+
"】"
);
}
@Override
public
void
onTabUnselected
(
int
index
)
{
}
@Override
public
void
onTabReselected
(
int
index
)
{
}
@Override
public
void
onDoubleTap
(
int
index
)
{
}
});
}
@Override
public
boolean
onBackPressedSupport
()
{
return
super
.
onBackPressedSupport
();
}
private
OnDiscountItemClickListener
onDiscountItemClickListener
;
public
void
setOnDiscountItemClickListener
(
OnDiscountItemClickListener
onDiscountItemClickListener
)
{
this
.
onDiscountItemClickListener
=
onDiscountItemClickListener
;
}
public
interface
OnDiscountItemClickListener
{
void
onBillDiscountClick
(
Discount
item
,
int
position
);
void
onCouponClick
(
MemberWalletCoupon
item
,
int
position
);
}
}
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/fragment/
FineItem
AllFragment.java
→
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/fragment/
mealstand/FineChild
AllFragment.java
View file @
6ec228e3
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
mvp
.
ui
.
fragment
;
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
mvp
.
ui
.
fragment
.
mealstand
;
import
android.app.Activity
;
import
android.content.Intent
;
...
...
@@ -12,13 +12,13 @@ import com.gingersoft.gsa.cloud.table.R;
import
com.gingersoft.gsa.cloud.table.R2
;
import
com.gingersoft.gsa.cloud.table.di.component.DaggerFineItemAllComponent
;
import
com.gingersoft.gsa.cloud.table.mvp.model.bean.SoldoutCtrFood
;
import
com.gingersoft.gsa.cloud.table.mvp.presenter.mealstand.FineChildAllPresenter
;
import
com.jess.arms.base.BaseFragment
;
import
com.jess.arms.base.DefaultAdapter
;
import
com.jess.arms.di.component.AppComponent
;
import
com.jess.arms.utils.ArmsUtils
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.FineItemAllContract
;
import
com.gingersoft.gsa.cloud.table.mvp.presenter.FineItemAllPresenter
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.FineChildAllContract
;
import
java.util.ArrayList
;
...
...
@@ -47,18 +47,18 @@ import static com.jess.arms.utils.Preconditions.checkNotNull;
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
public
class
Fine
ItemAllFragment
extends
BaseFragment
<
FineItemAllPresenter
>
implements
FineItem
AllContract
.
View
{
public
class
Fine
ChildAllFragment
extends
BaseFragment
<
FineChildAllPresenter
>
implements
FineChild
AllContract
.
View
{
@BindView
(
R2
.
id
.
recycle_fine_item_all
)
RecyclerView
recycle_fine_item_all
;
@BindView
(
R2
.
id
.
recycle_fine_item_kind_item
)
RecyclerView
recycle_fine_item_kind_item
;
//细项分类详细数据
RecyclerView
recycle_fine_item_kind_item
;
private
int
modCol
;
public
static
Fine
Item
AllFragment
newInstance
()
{
Fine
ItemAllFragment
fragment
=
new
FineItem
AllFragment
();
public
static
Fine
Child
AllFragment
newInstance
()
{
Fine
ChildAllFragment
fragment
=
new
FineChild
AllFragment
();
return
fragment
;
}
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/fragment/
FineItem
OneselfFragment.java
→
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/fragment/
mealstand/FineChild
OneselfFragment.java
View file @
6ec228e3
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
mvp
.
ui
.
fragment
;
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
mvp
.
ui
.
fragment
.
mealstand
;
import
android.app.Activity
;
import
android.content.Intent
;
...
...
@@ -11,13 +11,13 @@ import android.widget.LinearLayout;
import
com.gingersoft.gsa.cloud.table.R
;
import
com.gingersoft.gsa.cloud.table.R2
;
import
com.gingersoft.gsa.cloud.table.di.component.DaggerFineItemOneselfComponent
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.Fine
Item
OneselfContract
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.Fine
Child
OneselfContract
;
import
com.gingersoft.gsa.cloud.table.mvp.model.bean.SoldoutCtrFood
;
import
com.jess.arms.base.BaseFragment
;
import
com.jess.arms.base.DefaultAdapter
;
import
com.jess.arms.di.component.AppComponent
;
import
com.jess.arms.utils.ArmsUtils
;
import
com.gingersoft.gsa.cloud.table.mvp.presenter.
FineItem
OneselfPresenter
;
import
com.gingersoft.gsa.cloud.table.mvp.presenter.
mealstand.FineChild
OneselfPresenter
;
import
java.util.List
;
...
...
@@ -41,7 +41,7 @@ import static com.jess.arms.utils.Preconditions.checkNotNull;
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
public
class
Fine
ItemOneselfFragment
extends
BaseFragment
<
FineItemOneselfPresenter
>
implements
FineItem
OneselfContract
.
View
{
public
class
Fine
ChildOneselfFragment
extends
BaseFragment
<
FineChildOneselfPresenter
>
implements
FineChild
OneselfContract
.
View
{
@BindView
(
R2
.
id
.
rv_combo
)
RecyclerView
rv_combo
;
...
...
@@ -50,8 +50,8 @@ public class FineItemOneselfFragment extends BaseFragment<FineItemOneselfPresent
private
long
mFid
;
public
static
Fine
Item
OneselfFragment
newInstance
()
{
Fine
ItemOneselfFragment
fragment
=
new
FineItem
OneselfFragment
();
public
static
Fine
Child
OneselfFragment
newInstance
()
{
Fine
ChildOneselfFragment
fragment
=
new
FineChild
OneselfFragment
();
return
fragment
;
}
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/fragment/mealstand/FineFragment.java
0 → 100644
View file @
6ec228e3
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
mvp
.
ui
.
fragment
.
mealstand
;
import
android.content.Intent
;
import
android.os.Bundle
;
import
android.os.Message
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog
;
import
com.jess.arms.base.BaseFragment
;
import
com.jess.arms.di.component.AppComponent
;
import
com.jess.arms.utils.ArmsUtils
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.FineContract
;
import
com.gingersoft.gsa.cloud.table.mvp.presenter.mealstand.FinePresenter
;
import
com.gingersoft.gsa.cloud.table.R
;
import
static
com
.
jess
.
arms
.
utils
.
Preconditions
.
checkNotNull
;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 04/24/2021 18:33
* <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
FineFragment
extends
BaseFragment
<
FinePresenter
>
implements
FineContract
.
View
{
public
static
FineFragment
newInstance
()
{
FineFragment
fragment
=
new
FineFragment
();
return
fragment
;
}
@Override
public
void
setupFragmentComponent
(
@NonNull
AppComponent
appComponent
)
{
DaggerFineComponent
//如找不到该类,请编译一下项目
.
builder
()
.
appComponent
(
appComponent
)
.
view
(
this
)
.
build
()
.
inject
(
this
);
}
@Override
public
View
initView
(
@NonNull
LayoutInflater
inflater
,
@Nullable
ViewGroup
container
,
@Nullable
Bundle
savedInstanceState
)
{
return
inflater
.
inflate
(
R
.
layout
.
fragment_fine
,
container
,
false
);
}
@Override
public
void
initData
(
@Nullable
Bundle
savedInstanceState
)
{
}
@Override
public
void
setData
(
@Nullable
Object
data
)
{
}
@Override
public
void
showLoading
(
String
message
)
{
if
(
message
!=
null
)
LoadingDialog
.
showDialogForLoading
(
_mActivity
,
message
,
true
);
else
LoadingDialog
.
showDialogForLoading
(
_mActivity
);
}
@Override
public
void
hideLoading
()
{
LoadingDialog
.
cancelDialogForLoading
();
}
@Override
public
void
showMessage
(
@NonNull
String
message
)
{
checkNotNull
(
message
);
ArmsUtils
.
makeText
(
_mActivity
,
message
);
}
@Override
public
void
launchActivity
(
@NonNull
Intent
intent
)
{
checkNotNull
(
intent
);
ArmsUtils
.
startActivity
(
intent
);
}
@Override
public
void
killMyself
()
{
}
}
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/fragment/mealstand/MealDiscountFragment.java
View file @
6ec228e3
...
...
@@ -102,7 +102,7 @@ public class MealDiscountFragment extends BaseFragment<MealDiscountPresenter> im
List
<
Fragment
>
fragments
=
new
ArrayList
<>();
fragments
.
add
(
NomalDiscountFragment
.
newInstance
());
fragments
.
add
(
CouponFragment
.
newInstance
());
fragments
.
add
(
CouponFragment
.
newInstance
(
CouponFragment
.
FOOD_LIMIT_DISCOUNT
));
//实例化适配器
TabFragmentAdapter
mTabFragmentAdapter
=
new
TabFragmentAdapter
(
getParentFragmentManager
(),
1
);
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/fragment/mealstand/RiceponMemberDialogFragment.java
0 → 100644
View file @
6ec228e3
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
mvp
.
ui
.
fragment
.
mealstand
;
import
android.content.Intent
;
import
android.os.Bundle
;
import
android.os.Parcelable
;
import
android.text.TextUtils
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.widget.ImageView
;
import
android.widget.LinearLayout
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
androidx.core.content.ContextCompat
;
import
androidx.recyclerview.widget.RecyclerView
;
import
com.billy.cc.core.component.CC
;
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.utils.LanguageUtils
;
import
com.gingersoft.gsa.cloud.component.ComponentName
;
import
com.gingersoft.gsa.cloud.table.R
;
import
com.gingersoft.gsa.cloud.table.R2
;
import
com.gingersoft.gsa.cloud.table.di.component.DaggerRiceponMemberDialogComponent
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.RiceponMemberDialogContract
;
import
com.gingersoft.gsa.cloud.table.mvp.presenter.mealstand.RiceponMemberDialogPresenter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.activity.MealStandActivity
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.activity.OrderContentActivity
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.MemberInfoAdapter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.widget.UseMemberDialog
;
import
com.gingersoft.gsa.cloud.ui.bean.view.SectionTextItem
;
import
com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog
;
import
com.jess.arms.base.BaseDialogFragment
;
import
com.jess.arms.di.component.AppComponent
;
import
com.jess.arms.utils.ArmsUtils
;
import
com.jess.arms.utils.DeviceUtils
;
import
com.jess.arms.utils.PermissionUtil
;
import
com.qmuiteam.qmui.alpha.QMUIAlphaButton
;
import
com.qmuiteam.qmui.widget.QMUITopBar
;
import
com.rengwuxian.materialedittext.MaterialEditText
;
import
com.tbruyelle.rxpermissions2.RxPermissions
;
import
java.util.ArrayList
;
import
java.util.List
;
import
javax.inject.Inject
;
import
butterknife.BindView
;
import
butterknife.OnClick
;
import
me.jessyan.rxerrorhandler.core.RxErrorHandler
;
import
static
com
.
jess
.
arms
.
utils
.
Preconditions
.
checkNotNull
;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 04/24/2021 16:24
* <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
RiceponMemberDialogFragment
extends
BaseDialogFragment
<
RiceponMemberDialogPresenter
>
implements
RiceponMemberDialogContract
.
View
{
@Inject
RxErrorHandler
mErrorHandler
;
@BindView
(
R2
.
id
.
topbar
)
QMUITopBar
topbar
;
@BindView
(
R2
.
id
.
ed_phone
)
MaterialEditText
edPhone
;
@BindView
(
R2
.
id
.
btn_query_memeber
)
QMUIAlphaButton
btnQueryMemeber
;
@BindView
(
R2
.
id
.
ll_input_phone
)
LinearLayout
llInputPhone
;
@BindView
(
R2
.
id
.
recycler_memeber_info
)
RecyclerView
recyclerMemeberInfo
;
@BindView
(
R2
.
id
.
iv_no_data
)
ImageView
ivNoData
;
@BindView
(
R2
.
id
.
btn_scan
)
QMUIAlphaButton
btnScan
;
@BindView
(
R2
.
id
.
btn_use_member
)
QMUIAlphaButton
btnUseMember
;
@BindView
(
R2
.
id
.
btn_clear_member
)
QMUIAlphaButton
btnClearMember
;
@BindView
(
R2
.
id
.
ll_bottom
)
LinearLayout
llBottom
;
@Inject
MemberInfoAdapter
mMemberInfoAdapter
;
@Inject
List
<
SectionTextItem
>
mMemberInfoList
;
private
TableBean
.
DataBean
mCurrTableBean
;
private
MemberInfo
mMemberInfo
;
public
static
RiceponMemberDialogFragment
newInstance
(
TableBean
.
DataBean
currTableBean
)
{
RiceponMemberDialogFragment
fragment
=
new
RiceponMemberDialogFragment
();
Bundle
bundle
=
new
Bundle
();
bundle
.
putParcelable
(
"currTableBean"
,
currTableBean
);
fragment
.
setArguments
(
bundle
);
return
fragment
;
}
@Override
public
void
setupFragmentComponent
(
@NonNull
AppComponent
appComponent
)
{
DaggerRiceponMemberDialogComponent
//如找不到该类,请编译一下项目
.
builder
()
.
appComponent
(
appComponent
)
.
view
(
this
)
.
build
()
.
inject
(
this
);
}
@Override
public
View
initView
(
@NonNull
LayoutInflater
inflater
,
@Nullable
ViewGroup
container
,
@Nullable
Bundle
savedInstanceState
)
{
return
inflater
.
inflate
(
R
.
layout
.
fragment_ricepon_member_dialog
,
container
,
false
);
}
@Override
public
void
onCreate
(
@Nullable
Bundle
savedInstanceState
)
{
Bundle
arguments
=
getArguments
();
mCurrTableBean
=
arguments
.
getParcelable
(
"currTableBean"
);
super
.
onCreate
(
savedInstanceState
);
}
@Override
public
void
initData
(
@Nullable
Bundle
savedInstanceState
)
{
initTopbar
();
initAdapter
();
}
private
void
initAdapter
()
{
if
(
mMemberInfoAdapter
!=
null
)
{
recyclerMemeberInfo
.
setAdapter
(
mMemberInfoAdapter
);
}
}
private
void
initTopbar
()
{
topbar
.
setBackgroundColor
(
ContextCompat
.
getColor
(
mContext
,
R
.
color
.
theme_color
));
topbar
.
addLeftBackImageButton
().
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
killMyself
();
}
});
topbar
.
setTitle
(
"使用會員"
);
}
protected
void
toScanActivity
()
{
PermissionUtil
.
launchCamera
(
new
PermissionUtil
.
RequestPermission
()
{
@Override
public
void
onRequestPermissionSuccess
()
{
String
title
=
null
;
if
(
_mActivity
instanceof
MealStandActivity
)
{
title
=
"掃描會員碼"
;
}
else
if
(
_mActivity
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
(
mContext
);
showMessage
(
LanguageUtils
.
get_language_system
(
mContext
,
"please.open.camera.permissions"
,
"請前往設置開放照相機權限"
));
}
@Override
public
void
onRequestPermissionFailureWithAskNeverAgain
(
List
<
String
>
permissions
)
{
DeviceUtils
.
startSetting
(
mContext
);
showMessage
(
LanguageUtils
.
get_language_system
(
mContext
,
"please.open.camera.permissions"
,
"請前往設置開放照相機權限"
));
}
},
new
RxPermissions
(
_mActivity
),
mErrorHandler
);
}
@Override
public
void
setData
(
@Nullable
Object
data
)
{
}
@Override
public
void
showLoading
(
String
message
)
{
if
(
message
!=
null
)
LoadingDialog
.
showDialogForLoading
(
_mActivity
,
message
,
true
);
else
LoadingDialog
.
showDialogForLoading
(
_mActivity
);
}
@Override
public
void
hideLoading
()
{
LoadingDialog
.
cancelDialogForLoading
();
}
@Override
public
void
showMessage
(
@NonNull
String
message
)
{
checkNotNull
(
message
);
ArmsUtils
.
makeText
(
_mActivity
,
message
);
}
@Override
public
void
launchActivity
(
@NonNull
Intent
intent
)
{
checkNotNull
(
intent
);
ArmsUtils
.
startActivity
(
intent
);
}
@Override
public
void
killMyself
()
{
dismiss
();
}
@OnClick
({
R2
.
id
.
btn_query_memeber
,
R2
.
id
.
btn_scan
,
R2
.
id
.
btn_use_member
,
R2
.
id
.
btn_clear_member
})
public
void
onViewClicked
(
View
view
)
{
int
id
=
view
.
getId
();
if
(
id
==
R
.
id
.
btn_query_memeber
)
{
String
phone
=
getTvPhone
();
if
(
TextUtils
.
isEmpty
(
phone
))
{
edPhone
.
setError
(
"請輸入會員手機號"
);
return
;
}
mPresenter
.
queryMember
(
2
,
phone
,
RestaurantInfoManager
.
newInstance
().
getGsPosShopId
(),
mCurrTableBean
.
getId
(),
mCurrTableBean
.
getTableNumber
());
}
else
if
(
id
==
R
.
id
.
btn_scan
)
{
toScanActivity
();
}
else
if
(
id
==
R
.
id
.
btn_use_member
)
{
if
(
onUseMemberListener
!=
null
)
{
onUseMemberListener
.
onUseMember
(
mMemberInfo
);
}
}
else
if
(
id
==
R
.
id
.
btn_clear_member
)
{
clearMemberInfo
();
}
}
public
void
showBottomLayoutVisibility
(
boolean
show
)
{
llBottom
.
setVisibility
(
show
?
View
.
VISIBLE
:
View
.
GONE
);
btnScan
.
setVisibility
(!
show
?
View
.
VISIBLE
:
View
.
GONE
);
}
private
String
getTvPhone
()
{
return
edPhone
.
getText
().
toString
();
}
@Override
public
void
returnMemberInfo
(
MemberInfo
memberInfo
)
{
this
.
mMemberInfo
=
memberInfo
;
final
List
<
SectionTextItem
>
memberInfoItems
=
getMemberInfoItem
(
memberInfo
);
if
(
mMemberInfoList
.
size
()
>
0
)
{
mMemberInfoList
.
clear
();
}
mMemberInfoList
.
addAll
(
memberInfoItems
);
mMemberInfoAdapter
.
notifyDataSetChanged
();
showBottomLayoutVisibility
(
true
);
}
public
void
clearMemberInfo
()
{
this
.
mMemberInfo
=
null
;
if
(
onUseMemberListener
!=
null
)
{
onUseMemberListener
.
onUseMember
(
null
);
}
if
(
mMemberInfoList
.
size
()
>
0
)
{
mMemberInfoList
.
clear
();
}
mMemberInfoAdapter
.
notifyDataSetChanged
();
showBottomLayoutVisibility
(
false
);
}
private
List
<
SectionTextItem
>
getMemberInfoItem
(
MemberInfo
memberInfo
)
{
List
<
SectionTextItem
>
textItems
=
new
ArrayList
<>();
textItems
.
add
(
new
SectionTextItem
(
"會員號碼: "
+
memberInfo
.
getMemberNo
()));
textItems
.
add
(
new
SectionTextItem
(
"會員電話: "
+
memberInfo
.
getPhone
()));
textItems
.
add
(
new
SectionTextItem
(
"會員名稱: "
+
memberInfo
.
getMemberName
()));
textItems
.
add
(
new
SectionTextItem
(
"會員等級: "
+
memberInfo
.
getLevelName
()));
textItems
.
add
(
new
SectionTextItem
(
"積分: "
+
memberInfo
.
getMemberPoint
()));
return
textItems
;
}
private
OnUseMemberListener
onUseMemberListener
;
public
void
setOnUseMemberListener
(
OnUseMemberListener
onUseMemberListener
)
{
this
.
onUseMemberListener
=
onUseMemberListener
;
}
public
interface
OnUseMemberListener
{
void
onUseMember
(
MemberInfo
memberInfo
);
}
}
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/fragment/mealstand/SetMealFragment.java
View file @
6ec228e3
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
mvp
.
ui
.
fragment
.
mealstand
;
import
android.content.Intent
;
import
android.graphics.Color
;
import
android.os.Build
;
import
android.os.Bundle
;
import
android.text.TextUtils
;
...
...
@@ -8,9 +9,7 @@ import android.util.SparseArray;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.view.ViewStub
;
import
android.widget.Button
;
import
android.widget.FrameLayout
;
import
android.widget.ImageButton
;
import
android.widget.ImageView
;
import
android.widget.LinearLayout
;
...
...
@@ -18,6 +17,7 @@ import android.widget.TextView;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
androidx.core.widget.NestedScrollView
;
import
androidx.fragment.app.Fragment
;
import
androidx.recyclerview.widget.DefaultItemAnimator
;
import
androidx.recyclerview.widget.GridLayoutManager
;
...
...
@@ -25,21 +25,20 @@ 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.table.TableBean
;
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.component.ComponentName
;
import
com.gingersoft.gsa.cloud.database.bean.ComboItem
;
import
com.gingersoft.gsa.cloud.database.bean.Food
;
import
com.gingersoft.gsa.cloud.database.bean.Modifier
;
import
com.gingersoft.gsa.cloud.order.bean.response.OrderResponse
;
import
com.gingersoft.gsa.cloud.order.billItem.BillItem
;
import
com.gingersoft.gsa.cloud.order.cart.ShoppingCart
;
import
com.gingersoft.gsa.cloud.order.commodity.OrderDetail
;
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.table.BuildConfig
;
...
...
@@ -47,43 +46,42 @@ import com.gingersoft.gsa.cloud.table.R;
import
com.gingersoft.gsa.cloud.table.R2
;
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.model.bean.SoldoutCtrFood
;
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.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.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.fragment.FineItemAllFragment
;
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.widget.ChooseNumberDialog
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.widget.CustomFoodDialog
;
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.base.NoScrollRecyclerView
;
import
com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog
;
import
com.jess.arms.base.BaseFragment
;
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
org.simple.eventbus.Subscriber
;
import
org.simple.eventbus.ThreadMode
;
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.ButterKnife
;
import
butterknife.OnClick
;
import
butterknife.OnLongClick
;
import
dagger.Lazy
;
import
static
com
.
jess
.
arms
.
utils
.
Preconditions
.
checkNotNull
;
...
...
@@ -138,10 +136,6 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
LinearLayout
llKeys
;
@BindView
(
R2
.
id
.
ll_meals
)
LinearLayout
llMeals
;
// @BindView(R2.id.fl_container)
// FrameLayout flContainer;
@BindView
(
R2
.
id
.
rv_food_group
)
RecyclerView
rvFoodGroup
;
@BindView
(
R2
.
id
.
ll_food_group_point
)
...
...
@@ -150,50 +144,56 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
LinearLayout
llFoodGroup
;
@BindView
(
R2
.
id
.
rv_food
)
RecyclerView
rvFood
;
@BindView
(
R2
.
id
.
vb_combo_modifier
)
ViewStub
vbComboModifier
;
RecyclerView
rvCombo
;
RecyclerView
rvModifier
;
@BindView
(
R2
.
id
.
vb_fine
)
ViewStub
vbFine
;
MyTableView
tabLayoutFine
;
ViewPager
viewPagerFine
;
// @Inject
// @Named("foodGroupList")
// List<Food> mFoodGroupList;
// @Inject
// @Named("foodList")
// List<Food> mFoodList;
// @Inject
// Lazy<List<ComboItem>> mComboList; //套餐细项数据
// @Inject
// Lazy<List<Modifier>> mModifierList; //细项数据
@BindView
(
R2
.
id
.
ll_food_container
)
LinearLayout
llFoodContainer
;
@BindView
(
R2
.
id
.
rv_combo
)
NoScrollRecyclerView
rvCombo
;
@BindView
(
R2
.
id
.
rv_modifier
)
NoScrollRecyclerView
rvModifier
;
@BindView
(
R2
.
id
.
scroll_combo
)
NestedScrollView
scrollCombo
;
@BindView
(
R2
.
id
.
ll_fine
)
LinearLayout
llFine
;
@BindView
(
R2
.
id
.
tab_fine
)
MyTableView
tabFine
;
@BindView
(
R2
.
id
.
pager_fine
)
ViewPager
pagerFine
;
@BindView
(
R2
.
id
.
btn_select_all
)
QMUIAlphaTextView
btnSelectAll
;
@BindView
(
R2
.
id
.
btn_anti_selection
)
QMUIAlphaTextView
btnAntiSelection
;
@BindView
(
R2
.
id
.
btn_taste
)
QMUIAlphaTextView
btnTaste
;
@BindView
(
R2
.
id
.
btn_msg
)
QMUIAlphaTextView
btnMsg
;
@BindView
(
R2
.
id
.
btn_delete
)
QMUIAlphaTextView
btnDelete
;
@BindView
(
R2
.
id
.
btn_end
)
QMUIAlphaTextView
btnEnd
;
@BindView
(
R2
.
id
.
ll_modify
)
LinearLayout
llModify
;
@BindView
(
R2
.
id
.
fl_container
)
LinearLayout
flContainer
;
@Inject
FoodGroupAdapter
mFoodGroupAdapter
;
@Inject
FoodAdapter
mFoodAdapter
;
@Inject
Lazy
<
ComboAdapter
>
mComboAdapter
;
ComboAdapter
mComboAdapter
;
@Inject
Lazy
<
ModifierAdapter
>
mModifierAdapter
;
ModifierAdapter
mModifierAdapter
;
@Named
(
"foodGridLayoutManager"
)
@Inject
GridLayoutManager
mFoodRecycleLayoutManager
;
@Named
(
"comboGridLayoutManager"
)
@Inject
Lazy
<
GridLayoutManager
>
mComboRecycleLayoutManager
;
GridLayoutManager
mComboRecycleLayoutManager
;
@Named
(
"modifierGridLayoutManager"
)
@Inject
Lazy
<
GridLayoutManager
>
mModifierRecycleLayoutManager
;
GridLayoutManager
mModifierRecycleLayoutManager
;
@Inject
@Named
(
"fineTabTitles"
)
Lazy
<
List
<
String
>>
mFineTabTitles
;
private
SparseArray
<
View
>
map
=
new
SparseArray
<>(
10
);
...
...
@@ -208,14 +208,16 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
private
int
mCurrentViewMode
;
private
boolean
isPluMode
=
false
;
/**
* 是否已初始化 公共細項佈局
*/
private
boolean
initFineLayout
=
false
;
/**
* 是否已初始化 已送單的折扣
*/
private
boolean
initSentOrderDiscount
=
false
;
private
ImageView
[]
ivPoints
;
private
int
mPageIndex
;
private
int
totalPage
;
private
int
foodGroupRow
=
2
;
...
...
@@ -250,9 +252,10 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
initUIStyleConfiguration
();
initViewMap
();
initFoodAdapter
();
initFoodLayoutManager
();
initFoodItemClickListener
();
initAdapter
();
initLayoutManager
();
initItemClickListener
();
mPresenter
.
initMealData
();
}
@Override
...
...
@@ -264,6 +267,23 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
initTableInfo
();
}
@Override
@Subscriber
(
tag
=
SET_CURR_LAYOUT_EVENT
,
mode
=
ThreadMode
.
MAIN
)
public
void
setCurrLayout
(
byte
layout
)
{
mCurrLayout
=
layout
;
switch
(
layout
)
{
case
COMBO_LAYOUT:
showViewModeVisibility
(
MealConstant
.
combo_ViewMode
);
break
;
case
FINE_LAYOUT:
showViewModeVisibility
(
MealConstant
.
fine_ViewMode
);
break
;
default
:
showViewModeVisibility
(
MealConstant
.
food_group_ViewMode
,
MealConstant
.
food_ViewMode
);
break
;
}
}
private
void
initUIStyleConfiguration
()
{
foodGroupColumn
=
GsaCloudApplication
.
uiStyleConfiguration
.
getFoodGroupColumnValue
();
foodGroupRow
=
GsaCloudApplication
.
uiStyleConfiguration
.
getFoodGroupRowValue
();
...
...
@@ -275,8 +295,8 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
private
void
initViewMap
()
{
map
.
put
(
MealConstant
.
food_group_ViewMode
,
llFoodGroup
);
map
.
put
(
MealConstant
.
food_ViewMode
,
rvFood
);
map
.
put
(
MealConstant
.
combo_ViewMode
,
vbComboModifier
);
map
.
put
(
MealConstant
.
fine_ViewMode
,
vb
Fine
);
map
.
put
(
MealConstant
.
combo_ViewMode
,
scrollCombo
);
map
.
put
(
MealConstant
.
fine_ViewMode
,
ll
Fine
);
}
private
void
initTableInfo
()
{
...
...
@@ -291,70 +311,7 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
}
}
@Subscriber
(
tag
=
SET_CURR_LAYOUT_EVENT
,
mode
=
ThreadMode
.
MAIN
)
private
void
setCurrLayout
(
byte
layout
)
{
mCurrLayout
=
layout
;
switch
(
layout
)
{
case
COMBO_LAYOUT:
showComboModifierLayout
();
break
;
case
FINE_LAYOUT:
showFineLayout
();
break
;
default
:
showViewModeVisibility
(
MealConstant
.
food_group_ViewMode
,
MealConstant
.
food_ViewMode
);
break
;
}
}
private
void
showComboModifierLayout
()
{
try
{
View
vsContent
=
vbComboModifier
.
inflate
();
rvCombo
=
vsContent
.
findViewById
(
R
.
id
.
rv_combo
);
rvModifier
=
vsContent
.
findViewById
(
R
.
id
.
rv_modifier
);
initComboAdapter
();
initComboLayoutManager
();
initComboItemClickListener
();
}
catch
(
Exception
e
)
{
}
finally
{
showViewModeVisibility
(
MealConstant
.
combo_ViewMode
);
}
}
private
void
showFineLayout
()
{
try
{
View
vsContent
=
vbFine
.
inflate
();
tabLayoutFine
=
vsContent
.
findViewById
(
R
.
id
.
tab_fine
);
viewPagerFine
=
vsContent
.
findViewById
(
R
.
id
.
pager_fine
);
initFineViewPager
();
}
catch
(
Exception
e
)
{
}
finally
{
showViewModeVisibility
(
MealConstant
.
fine_ViewMode
);
}
}
private
void
initFineViewPager
()
{
List
<
String
>
tabTitles
=
mFineTabTitles
.
get
();
MemberInfo
memberInfo
=
DoshokuOrder
.
getInstance
().
getMemberInfo
();
if
(
memberInfo
!=
null
)
{
tabTitles
.
add
(
"優惠券"
);
}
tabLayoutFine
.
setTitles
(
tabTitles
);
List
<
Fragment
>
mFragments
=
new
ArrayList
<>();
mFragments
.
add
(
FineItemAllFragment
.
newInstance
());
mFragments
.
add
(
FineItemAllFragment
.
newInstance
());
//实例化适配器
TabFragmentAdapter
mTabFragmentAdapter
=
new
TabFragmentAdapter
(
getParentFragmentManager
(),
1
);
//设置加载的Fragment集合
mTabFragmentAdapter
.
setFragments
(
mFragments
);
//设置Viewpager的适配器
viewPagerFine
.
setAdapter
(
mTabFragmentAdapter
);
//TabLayout绑定ViewPager
tabLayoutFine
.
setTitles
(
tabTitles
).
setupWithViewPager
(
viewPagerFine
);
}
private
void
initFoodAdapter
()
{
private
void
initAdapter
()
{
mPresenter
.
initSelectMealAdapter
(
rvSelectMeal
);
if
(
mFoodGroupAdapter
!=
null
)
{
rvFoodGroup
.
setAdapter
(
mFoodGroupAdapter
);
...
...
@@ -362,16 +319,30 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
if
(
mFoodAdapter
!=
null
)
{
rvFood
.
setAdapter
(
mFoodAdapter
);
}
if
(
mComboAdapter
!=
null
)
{
rvCombo
.
setAdapter
(
mComboAdapter
);
}
if
(
mModifierAdapter
!=
null
)
{
rvModifier
.
setAdapter
(
mModifierAdapter
);
}
}
private
void
init
Food
LayoutManager
()
{
private
void
initLayoutManager
()
{
if
(
mFoodRecycleLayoutManager
!=
null
)
{
rvFood
.
setLayoutManager
(
mFoodRecycleLayoutManager
);
rvFood
.
setItemAnimator
(
new
DefaultItemAnimator
());
}
if
(
mComboRecycleLayoutManager
!=
null
)
{
rvCombo
.
setLayoutManager
(
mComboRecycleLayoutManager
);
rvCombo
.
setItemAnimator
(
new
DefaultItemAnimator
());
}
if
(
mModifierRecycleLayoutManager
!=
null
)
{
rvModifier
.
setLayoutManager
(
mModifierRecycleLayoutManager
);
rvModifier
.
setItemAnimator
(
new
DefaultItemAnimator
());
}
}
public
void
init
Food
ItemClickListener
()
{
public
void
initItemClickListener
()
{
mFoodAdapter
.
setOnItemClickListener
(
new
FoodAdapter
.
OnItemClickListener
()
{
@Override
...
...
@@ -381,10 +352,7 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
LoganManager
.
w_tableMode
(
TAG
,
LoganManager
.
EVENT_ADD
+
"食品【"
+
datasBean
.
getFoodName
()
+
"】"
);
}
});
}
private
void
initComboItemClickListener
()
{
mComboAdapter
.
get
().
setOnItemClickListener
(
new
ComboAdapter
.
OnItemClickListener
()
{
mComboAdapter
.
setOnItemClickListener
(
new
ComboAdapter
.
OnItemClickListener
()
{
@Override
public
void
onItemClick
(
ComboItem
datasBean
,
int
position
)
{
...
...
@@ -393,7 +361,7 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
LoganManager
.
w_tableMode
(
TAG
,
LoganManager
.
EVENT_ADD
+
"子食品【"
+
datasBean
.
getName
()
+
"】"
);
}
});
mModifierAdapter
.
get
().
setOnItemClickListener
(
new
ModifierAdapter
.
OnItemClickListener
()
{
mModifierAdapter
.
setOnItemClickListener
(
new
ModifierAdapter
.
OnItemClickListener
()
{
@Override
public
void
onItemClick
(
Modifier
datasBean
,
int
position
)
{
mActivity
.
recordOperat
(
true
);
...
...
@@ -403,23 +371,65 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
});
}
private
void
initComboAdapter
()
{
if
(
mComboAdapter
!=
null
)
{
rvCombo
.
setAdapter
(
mComboAdapter
.
get
());
/**
* 显示公共細項
*/
public
void
showFineLayout
(
int
currFinePage
)
{
//没有初始化细项布局则初始化
if
(!
initFineLayout
)
{
initFineLayout
=
true
;
initFineViewPager
();
}
else
{
pagerFine
.
setCurrentItem
(
currFinePage
);
}
if
(
mModifierAdapter
!=
null
)
{
rvModifier
.
setAdapter
(
mModifierAdapter
.
get
());
setCurrLayout
(
SetMealFragment
.
FINE_LAYOUT
);
}
private
void
initFineViewPager
()
{
String
[]
fineTitles
=
{
"口味"
,
"信息"
};
List
<
Fragment
>
mFragments
=
new
ArrayList
<>();
FineChildAllFragment
modSasteFineItemFragment
=
FineChildAllFragment
.
newInstance
();
FineChildAllFragment
modMsgFineItemFragment
=
FineChildAllFragment
.
newInstance
();
mFragments
.
add
(
modSasteFineItemFragment
);
mFragments
.
add
(
modMsgFineItemFragment
);
//实例化适配器
TabFragmentAdapter
mTabFragmentAdapter
=
new
TabFragmentAdapter
(
getChildFragmentManager
(),
1
);
//设置加载的Fragment集合
mTabFragmentAdapter
.
setFragments
(
mFragments
);
//设置Viewpager的适配器
pagerFine
.
setAdapter
(
mTabFragmentAdapter
);
//TabLayout绑定ViewPager
tabFine
.
setTitles
(
Arrays
.
asList
(
fineTitles
)).
setupWithViewPager
(
pagerFine
);
loadFineItemData
(
modSasteFineItemFragment
,
modMsgFineItemFragment
);
}
private
void
initComboLayoutManager
()
{
if
(
mComboRecycleLayoutManager
!=
null
)
{
rvCombo
.
setLayoutManager
(
mComboRecycleLayoutManager
.
get
());
rvCombo
.
setItemAnimator
(
new
DefaultItemAnimator
());
private
void
loadFineItemData
(
FineChildAllFragment
modMsgFineItemFragment
,
FineChildAllFragment
modSasteFineItemFragment
)
{
if
(
modMsgFineItemFragment
==
null
||
modSasteFineItemFragment
==
null
)
{
return
;
}
if
(
mModifierRecycleLayoutManager
!=
null
)
{
rvModifier
.
setLayoutManager
(
mModifierRecycleLayoutManager
.
get
());
rvModifier
.
setItemAnimator
(
new
DefaultItemAnimator
());
long
productId
=
0
;
if
(
mPresenter
.
getCurrentOrderDetailBean
()
!=
null
)
{
productId
=
mPresenter
.
getCurrentOrderDetailBean
().
getProductId
();
}
if
(
mPresenter
.
getSelectMealAdapter
().
getSelectedMode
()
==
SelectMealAdapter
.
SINGLE_SELECTED
)
{
modMsgFineItemFragment
.
loadModMsgData
(
productId
);
modSasteFineItemFragment
.
loadModSasteData
(
productId
);
}
else
{
modMsgFineItemFragment
.
loadModCommData
(
productId
);
modSasteFineItemFragment
.
loadModSasteData
(
productId
);
}
/**
* 設置沽清數據
*/
List
<
SoldoutCtrFood
>
slodoutListFull
=
mPresenter
.
getSoldoutCtrList
();
if
(
modMsgFineItemFragment
!=
null
)
{
modMsgFineItemFragment
.
setModifierSoldoutFoodList_Full
(
slodoutListFull
);
modMsgFineItemFragment
.
updateParentModifierSlodoutFoodList_Full
();
}
if
(
modSasteFineItemFragment
!=
null
)
{
modSasteFineItemFragment
.
setModifierSoldoutFoodList_Full
(
slodoutListFull
);
modSasteFineItemFragment
.
updateParentModifierSlodoutFoodList_Full
();
}
}
...
...
@@ -428,21 +438,23 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
}
@Override
public
void
showLoading
(
String
message
)
{
if
(
message
!=
null
)
LoadingDialog
.
showDialogForLoading
(
_mActivity
,
message
,
true
);
else
LoadingDialog
.
showDialogForLoading
(
_mActivity
);
}
@Override
public
void
hideLoading
()
{
LoadingDialog
.
cancelDialogForLoading
();
}
@Override
public
void
showMessage
(
@NonNull
String
message
)
{
checkNotNull
(
message
);
ArmsUtils
.
snackbarText
(
message
);
ArmsUtils
.
makeText
(
_mActivity
,
message
);
}
@Override
...
...
@@ -457,6 +469,24 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
}
@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
setFoodGroupRecycleSpanCount
(
int
size
)
{
notifyFoodGroupAdapter
();
}
...
...
@@ -464,39 +494,36 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
@Override
public
void
setFoodRecycleSpanCount
(
int
size
)
{
if
(
size
>
0
)
{
if
(
size
>
foodColumn
)
{
if
(
size
>
=
foodColumn
)
{
mFoodRecycleLayoutManager
.
setOrientation
(
LinearLayoutManager
.
VERTICAL
);
mFoodRecycleLayoutManager
.
setSpanCount
(
foodColumn
);
}
else
{
//只有一行就使用水平显示以免不能占满
mFoodRecycleLayoutManager
.
setOrientation
(
LinearLayoutManager
.
HORIZONTAL
);
}
notifyFoodAdapter
(
);
rvFood
.
setLayoutManager
(
mFoodRecycleLayoutManager
);
}
notifyFoodAdapter
();
}
@Override
public
void
setComboRecycleSpanCount
(
int
size
)
{
if
(
size
>
0
)
{
// if (size > comboRow) {
mComboRecycleLayoutManager
.
get
().
setOrientation
(
LinearLayoutManager
.
VERTICAL
);
mComboRecycleLayoutManager
.
get
().
setSpanCount
(
comboColumn
);
notifyComboAdapterAdapter
();
// } else if (size <= ComboColCount) {
// } else {
// //只有一行就使用水平显示以免不能占满
// setComboRecycleLayoutManager(LinearLayoutManager.HORIZONTAL);
// }
mComboRecycleLayoutManager
.
setOrientation
(
LinearLayoutManager
.
VERTICAL
);
mComboRecycleLayoutManager
.
setSpanCount
(
comboColumn
);
rvCombo
.
setLayoutManager
(
mComboRecycleLayoutManager
);
}
notifyComboAdapterAdapter
();
}
@Override
public
void
setModifierRecycleSpanCount
(
int
size
)
{
if
(
size
>
0
)
{
mModifierRecycleLayoutManager
.
get
().
setOrientation
(
LinearLayoutManager
.
VERTICAL
);
mModifierRecycleLayoutManager
.
get
().
setSpanCount
(
modColumn
);
notifyModifierAdapterAdapter
(
);
mModifierRecycleLayoutManager
.
setOrientation
(
LinearLayoutManager
.
VERTICAL
);
mModifierRecycleLayoutManager
.
setSpanCount
(
modColumn
);
rvModifier
.
setLayoutManager
(
mModifierRecycleLayoutManager
);
}
notifyModifierAdapterAdapter
();
}
@Override
...
...
@@ -537,7 +564,12 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
@Override
public
void
showModifyLayoutVisibility
(
boolean
show
)
{
if
(
show
)
{
llModify
.
setVisibility
(
View
.
VISIBLE
);
}
else
{
llModify
.
setVisibility
(
View
.
INVISIBLE
);
}
mActivity
.
showStandOperLayoutVisibility
(
show
);
}
@Override
...
...
@@ -643,26 +675,6 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
}
@Override
public
void
returnFoodGroupList
(
List
<
Food
>
foodGroupList
)
{
}
@Override
public
void
returnFoodList
(
List
<
Food
>
foodList
)
{
}
@Override
public
void
returnFoodComboList
(
List
<
ComboItem
>
comboList
)
{
}
@Override
public
void
returnModifierList
(
List
<
Modifier
>
modifierList
)
{
}
@Override
public
void
notifyFoodGroupAdapter
()
{
mFoodGroupAdapter
.
notifyDataSetChanged
();
}
...
...
@@ -674,12 +686,12 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
@Override
public
void
notifyComboAdapterAdapter
()
{
mComboAdapter
.
get
().
notifyDataSetChanged
();
mComboAdapter
.
notifyDataSetChanged
();
}
@Override
public
void
notifyModifierAdapterAdapter
()
{
mModifierAdapter
.
get
().
notifyDataSetChanged
();
mModifierAdapter
.
notifyDataSetChanged
();
}
@Override
...
...
@@ -711,7 +723,7 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
public
boolean
onLongClick1
(
View
view
)
{
//记录操作 并且震动
//
recordOperat(true);
recordOperat
(
true
);
//
// int id = view.getId();
// if (id == R.id.btn_meal_delete) {
...
...
@@ -768,7 +780,7 @@ 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
,
R2
.
id
.
btn_numberman
,
R2
.
id
.
btn_fid
,
R2
.
id
.
btn_meal_delete
,
R2
.
id
.
btn_meal_modify_restore
,
R2
.
id
.
btn_
table
,
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
})
public
void
onClick
(
View
v
)
{
...
...
@@ -788,7 +800,9 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
//防抖處理
int
id
=
v
.
getId
();
if
(
id
==
R
.
id
.
btn_numberman
)
{
if
(
id
==
R
.
id
.
btn_table
)
{
showRiceponMemberDialogFragment
();
}
else
if
(
id
==
R
.
id
.
btn_numberman
)
{
if
(!
BaseOrder
.
isTableToMeal
())
{
return
;
}
...
...
@@ -796,7 +810,7 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
}
else
if
(
id
==
R
.
id
.
btn_fid
)
{
//搜索
if
(
mCurrentViewMode
==
MealConstant
.
ViewMode_keys
)
{
s
howViewModeVisibility
(
MealConstant
.
food_group_ViewMode
,
MealConstant
.
food_ViewMode
);
s
etCurrLayout
(
SetMealFragment
.
FOOD_LAYOUT
);
SPUtils
.
put
(
MealConstant
.
EXIT_IS_PLU_MODE
,
false
);
}
else
{
showViewModeVisibility
(
MealConstant
.
ViewMode_keys
);
...
...
@@ -809,30 +823,28 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
// }
// mPresenter.deleteFoodItem(1);
s
howViewModeVisibility
(
MealConstant
.
food_group_ViewMode
,
MealConstant
.
food_ViewMode
);
s
etCurrLayout
(
SetMealFragment
.
FOOD_LAYOUT
);
SPUtils
.
put
(
MealConstant
.
EXIT_IS_PLU_MODE
,
false
);
setPluMode
();
}
else
if
(
id
==
R
.
id
.
btn_meal_modify_restore
)
{
// mPresenter.restoreDeleteFood();
showBtnMealModifyRestoreVisibility
(
false
);
}
else
if
(
id
==
R
.
id
.
btn_taste
)
{
// currentFinePage = 0;
// showRemarkLayout();
showFineLayout
(
0
);
}
else
if
(
id
==
R
.
id
.
btn_msg
)
{
// currentFinePage = 1;
// showRemarkLayout();
showFineLayout
(
1
);
}
else
if
(
id
==
R
.
id
.
btn_delete
)
{
// if (mPresenter.getSelectMealAdapter().getSelectedMode() == SelectMealAdapter.SINGLE_SELECTED) {
// //只有單選操作的時候可以刪除子項
// mPresenter.deleteChildItem();
// }
}
else
if
(
id
==
R
.
id
.
btn_end
)
{
//
mPresenter.getSelectMealAdapter().setSelectedMode(SelectMealAdapter.SINGLE_SELECTED);
// btn_d
elete.setVisibility(View.VISIBLE);
//
setSelectFunctionVisibility(View.GONE);
//
//從多選頁離開 重置選中
//
mPresenter.resetSelected();
// showViewModeVisibility(MealConstant.food_group_ViewMode, MealConstant.food_ViewMode
);
mPresenter
.
getSelectMealAdapter
().
setSelectedMode
(
SelectMealAdapter
.
SINGLE_SELECTED
);
btnD
elete
.
setVisibility
(
View
.
VISIBLE
);
setSelectFunctionVisibility
(
View
.
GONE
);
//從多選頁離開 重置選中
mPresenter
.
resetSelected
();
setCurrLayout
(
SetMealFragment
.
FOOD_LAYOUT
);
}
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
());
...
...
@@ -896,7 +908,6 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
@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
)
{
...
...
@@ -906,4 +917,31 @@ public class SetMealFragment extends BaseFragment<SetMealPresenter> implements S
}
}
}
private
void
setSelectFunctionVisibility
(
int
visibility
)
{
btnAntiSelection
.
setVisibility
(
visibility
);
btnSelectAll
.
setVisibility
(
visibility
);
}
private
void
showRiceponMemberDialogFragment
()
{
RiceponMemberDialogFragment
dialogFragment
=
RiceponMemberDialogFragment
.
newInstance
(
DoshokuOrder
.
getInstance
().
getOpenTableInfo
());
dialogFragment
.
setOnUseMemberListener
(
new
RiceponMemberDialogFragment
.
OnUseMemberListener
()
{
@Override
public
void
onUseMember
(
MemberInfo
memberInfo
)
{
if
(
memberInfo
==
null
)
{
btnTable
.
setBackgroundColor
(
Color
.
parseColor
(
"#336699"
));
}
else
{
btnTable
.
setBackgroundResource
(
R
.
color
.
pink_300
);
//添加会员折扣行
ShoppingCart
shoppingCart
=
mPresenter
.
getShoppingCart
();
MultyDiscount
multyDiscount
=
shoppingCart
.
createMemberDiscount
(
memberInfo
,
BillItem
.
BILL_ITEM_NO_ORDER_STATUS
);
shoppingCart
.
addMultyDiscount
(
multyDiscount
);
DoshokuOrder
.
getInstance
().
setBillItemStatus
(
DoshokuOrder
.
MEMBER_ITEM_TAG
);
mPresenter
.
updateBillInfo
();
}
DoshokuOrder
.
getInstance
().
setMemberInfo
(
memberInfo
);
}
});
dialogFragment
.
show
(
getChildFragmentManager
(),
dialogFragment
.
getClass
().
getSimpleName
());
}
}
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/widget/UseMemberDialog.java
View file @
6ec228e3
...
...
@@ -277,11 +277,6 @@ public class UseMemberDialog extends Dialog {
recycler_member_info
.
setLayoutManager
(
mLayoutManager
);
}
public
void
setAdapter
(
BaseQuickAdapter
adapter
)
{
recycler_member_info
.
setAdapter
(
adapter
);
adapter
.
notifyDataSetChanged
();
}
private
RecyclerView
.
LayoutManager
createLayoutManager
()
{
return
new
LinearLayoutManager
(
mContext
)
{
@Override
...
...
component-table/src/main/res/layout/fragment_fine.xml
0 → 100644
View file @
6ec228e3
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res/android"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:orientation=
"vertical"
>
<com.google.android.material.tabs.TabLayout
android:id=
"@+id/tabLayout"
android:layout_width=
"match_parent"
android:layout_height=
"@dimen/tabIndicator_height"
android:background=
"@color/white"
app:tabIndicator=
"@drawable/tablayout_indicator"
app:tabIndicatorColor=
"@color/theme_color"
app:tabIndicatorFullWidth=
"false"
/>
<androidx.viewpager2.widget.ViewPager2
android:id=
"@+id/viewPager"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
/>
</LinearLayout>
\ No newline at end of file
component-table/src/main/res/layout/fragment_ricepon_member_dialog.xml
0 → 100644
View file @
6ec228e3
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:background=
"@color/theme_background_color"
android:orientation=
"vertical"
>
<com.qmuiteam.qmui.widget.QMUITopBar
android:id=
"@+id/topbar"
android:layout_width=
"match_parent"
android:layout_height=
"@dimen/head_height"
app:qmui_topbar_title_color=
"@color/theme_white_color"
/>
<RelativeLayout
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
>
<LinearLayout
android:id=
"@+id/ll_input_phone"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_margin=
"@dimen/dp_20"
android:orientation=
"horizontal"
>
<com.rengwuxian.materialedittext.MaterialEditText
android:id=
"@+id/ed_phone"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:hint=
"請輸入手機號"
android:lines=
"1"
android:textSize=
"@dimen/sp_14"
android:inputType=
"number"
android:background=
"@drawable/table_shape_input_table_number_frame"
app:met_autoValidate=
"true"
app:met_baseColor=
"@color/theme_black"
app:met_clearButton=
"true"
app:met_floatingLabel=
"highlight"
app:met_iconPadding=
"2dp"
app:met_primaryColor=
"@color/theme_color"
app:met_singleLineEllipsis=
"false"
/>
<com.qmuiteam.qmui.alpha.QMUIAlphaButton
android:id=
"@+id/btn_query_memeber"
android:layout_width=
"wrap_content"
android:layout_height=
"@dimen/dp_40"
android:layout_marginLeft=
"@dimen/dp_10"
android:background=
"@color/theme_color"
android:text=
"查詢"
android:textColor=
"@color/theme_white_color"
/>
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/recycler_memeber_info"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_below=
"@+id/ll_input_phone"
android:layout_above=
"@+id/btn_scan"
/>
<ImageView
android:id=
"@+id/iv_no_data"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:src=
"@drawable/png_no_record"
android:layout_centerInParent=
"true"
android:visibility=
"invisible"
/>
<com.qmuiteam.qmui.alpha.QMUIAlphaButton
android:id=
"@+id/btn_scan"
android:layout_width=
"match_parent"
android:layout_height=
"@dimen/dp_40"
android:layout_margin=
"@dimen/dp_20"
android:layout_alignParentBottom=
"true"
android:background=
"@color/theme_color"
android:text=
"掃碼"
android:textColor=
"@color/theme_white_color"
android:textSize=
"@dimen/sp_14"
android:textStyle=
"bold"
/>
<LinearLayout
android:id=
"@+id/ll_bottom"
android:layout_width=
"match_parent"
android:layout_height=
"@dimen/dp_40"
android:layout_alignParentBottom=
"true"
android:orientation=
"horizontal"
android:visibility=
"invisible"
>
<com.qmuiteam.qmui.alpha.QMUIAlphaButton
android:id=
"@+id/btn_use_member"
android:layout_width=
"0dp"
android:layout_height=
"match_parent"
android:layout_gravity=
"bottom"
android:layout_weight=
"1"
android:background=
"@color/green_400"
android:clickable=
"true"
android:text=
"使用會員"
android:textColor=
"@color/theme_white_color"
android:textSize=
"@dimen/sp_14"
/>
<com.qmuiteam.qmui.alpha.QMUIAlphaButton
android:id=
"@+id/btn_clear_member"
android:layout_width=
"0dp"
android:layout_height=
"match_parent"
android:layout_gravity=
"bottom"
android:layout_weight=
"1"
android:background=
"@color/blue_400"
android:clickable=
"true"
android:visibility=
"visible"
android:text=
"清除"
android:textColor=
"@color/theme_white_color"
android:textSize=
"@dimen/sp_14"
/>
</LinearLayout>
</RelativeLayout>
</LinearLayout>
\ No newline at end of file
component-table/src/main/res/layout/meal_dialog_use_member.xml
View file @
6ec228e3
...
...
@@ -56,7 +56,8 @@
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_below=
"@+id/ll_input_phone"
android:layout_above=
"@+id/btn_scan"
/>
android:layout_above=
"@+id/btn_scan"
app:layoutManager=
"androidx.recyclerview.widget.LinearLayoutManager"
/>
<ImageView
android:id=
"@+id/iv_no_data"
...
...
component-table/src/main/res/layout/meal_layout_combo_modifier.xml
View file @
6ec228e3
...
...
@@ -3,7 +3,7 @@
xmlns:app=
"http://schemas.android.com/apk/res-auto"
android:id=
"@+id/scroll_combo"
android:layout_width=
"match_parent"
android:layout_height=
"
match_par
ent"
>
android:layout_height=
"
wrap_cont
ent"
>
<LinearLayout
android:layout_width=
"match_parent"
...
...
component-table/src/main/res/layout/meal_layout_food_menu.xml
View file @
6ec228e3
<?xml version="1.0" encoding="utf-8"?>
<
merge
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"match_parent"
<
RelativeLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
>
<LinearLayout
android:id=
"@+id/ll_food_container"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:orientation=
"vertical"
>
...
...
@@ -41,23 +42,29 @@
android:orientation=
"vertical"
/>
</LinearLayout>
<ViewStub
android:id=
"@+id/vb_combo_modifier"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout=
"@layout/meal_layout_combo_modifier"
/>
<include
layout=
"@layout/meal_layout_combo_modifier"
/>
<!-- <ViewStub-->
<!-- android:id="@+id/vb_combo_modifier"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_above="@+id/ll_modify"-->
<!-- android:layout_below="@+id/ll_food_container"-->
<!-- android:layout="@layout/meal_layout_combo_modifier" />-->
<ViewStub
android:id=
"@+id/vb_fine"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout=
"@layout/meal_layout_meal_fine"
/>
<include
layout=
"@layout/meal_layout_meal_fine"
/>
<!-- <ViewStub-->
<!-- android:id="@+id/vb_fine"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_above="@+id/ll_modify"-->
<!-- android:layout_below="@+id/ll_food_container"-->
<!-- 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:layout_
alignParentBottom=
"true
"
android:visibility=
"invisible"
>
<com.qmuiteam.qmui.alpha.QMUIAlphaTextView
...
...
@@ -135,4 +142,4 @@
android:textColor=
"@color/theme_white_color"
android:textSize=
"@dimen/sp_14"
/>
</LinearLayout>
</merge>
\ No newline at end of file
</RelativeLayout>
\ No newline at end of file
component-table/src/main/res/layout/meal_layout_food_plate.xml
View file @
6ec228e3
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
android:id=
"@+id/ll_meals"
android:layout_width=
"match_parent"
android:layout_height=
"@dimen/dp_260"
...
...
@@ -126,7 +127,8 @@
android:layout_height=
"match_parent"
android:divider=
"@null"
android:fadeScrollbars=
"false"
android:orientation=
"vertical"
/>
android:orientation=
"vertical"
app:layoutManager=
"com.gingersoft.gsa.cloud.ui.recylcler.RecyclerViewNoBugLinearLayoutManager"
/>
</LinearLayout>
<LinearLayout
...
...
component-table/src/main/res/layout/meal_layout_meal_fine.xml
View file @
6ec228e3
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
>
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:id=
"@+id/ll_fine"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
>
<com.gingersoft.gsa.cloud.ui.view.MyTableView
android:id=
"@+id/tab_fine"
...
...
component-table/src/main/res/layout/table_activity_meal_stand.xml
View file @
6ec228e3
...
...
@@ -335,16 +335,39 @@
</RelativeLayout>
</androidx.core.widget.NestedScrollView>
<!-- <LinearLayout-->
<!-- android:id="@+id/ll_discount"-->
<!-- 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">-->
<!-- -->
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/rv_discount"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_above=
"@+id/ll_stand_oper"
android:layout_below=
"@+id/ll_meals"
android:divider=
"@null"
android:fadeScrollbars=
"false"
android:orientation=
"vertical"
android:visibility=
"gone"
/>
android:visibility=
"gone"
/>
<!-- <androidx.recyclerview.widget.RecyclerView-->
<!-- android:id="@+id/rv_coupon"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:divider="@null"-->
<!-- android:fadeScrollbars="false"-->
<!-- android:orientation="vertical"-->
<!-- android:visibility="gone" />-->
<!-- </LinearLayout>-->
<FrameLayout
android:id=
"@+id/fl_discount"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_above=
"@+id/ll_stand_oper"
android:layout_below=
"@+id/ll_meals"
/>
<FrameLayout
android:id=
"@+id/fl_container"
...
...
component-table/src/main/res/layout/table_dialog_discout.xml
View file @
6ec228e3
...
...
@@ -6,12 +6,6 @@
android:layout_height=
"wrap_content"
android:orientation=
"vertical"
>
<!-- <com.qmuiteam.qmui.widget.QMUITopBar-->
<!-- android:id="@+id/topbar"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="@dimen/head_height"-->
<!-- app:qmui_topbar_title_color="@color/theme_white_color" />-->
<com.qmuiteam.qmui.widget.tab.QMUITabSegment
android:id=
"@+id/tabSegment"
android:layout_width=
"match_parent"
...
...
config.gradle
View file @
6ec228e3
...
...
@@ -7,8 +7,8 @@ ext {
targetSdkVersion
:
29
,
//正式版: 1.0.3 3
//內部測試版:1.2.0 20
versionCode
:
3
2
,
versionName
:
"1.3.
2
"
versionCode
:
3
3
,
versionName
:
"1.3.
3
"
]
version
=
[
...
...
library-common/src/main/java/com/gingersoft/gsa/cloud/app/GsaCloudApplication.java
View file @
6ec228e3
...
...
@@ -42,6 +42,7 @@ import com.gingersoft.gsa.cloud.common.utils.AppDevices;
import
com.gingersoft.gsa.cloud.common.utils.crash.AppCrashHandler
;
import
com.gingersoft.gsa.cloud.common.utils.log.LogUtil
;
import
com.gingersoft.gsa.cloud.common.utils.other.SPUtils
;
import
com.gingersoft.gsa.cloud.common.utils.threadPool.ThreadPoolManager
;
import
com.gingersoft.gsa.cloud.component.ComponentAction
;
import
com.gingersoft.gsa.cloud.component.ComponentName
;
import
com.gingersoft.gsa.cloud.database.DaoManager
;
...
...
@@ -54,6 +55,7 @@ import com.scwang.smartrefresh.layout.SmartRefreshLayout;
import
com.scwang.smartrefresh.layout.footer.ClassicsFooter
;
import
com.scwang.smartrefresh.layout.header.ClassicsHeader
;
import
com.xuexiang.rxutil2.rxjava.RxJavaUtils
;
import
com.xuexiang.rxutil2.rxjava.RxSchedulerUtils
;
import
com.xuexiang.rxutil2.rxjava.task.RxIOTask
;
import
java.io.File
;
...
...
@@ -123,6 +125,9 @@ public class GsaCloudApplication extends BaseApplication {
@Override
public
Void
doInIOThread
(
Object
o
)
{
LoganManager
.
w_action
(
TAG
,
"init start....."
);
//设置自定义RxJava的线程池
RxSchedulerUtils
.
setIOExecutor
(
ThreadPoolManager
.
getInstence
().
getExecutor
());
//初始化設備唯一ID
initDeviceId
();
//初始化Hyweb支付回調
...
...
library-common/src/main/java/com/gingersoft/gsa/cloud/common/core/discount/
Bil
lDiscount.java
→
library-common/src/main/java/com/gingersoft/gsa/cloud/common/core/discount/
Noma
lDiscount.java
View file @
6ec228e3
package
com
.
gingersoft
.
gsa
.
cloud
.
common
.
core
.
discount
;
import
com.gingersoft.gsa.cloud.database.bean.Discount
;
/**
* @作者: bin
* @創建時間: 2021-04-07 15:45
* @更新時間: 2021-04-07 15:45
* @描述:
*/
public
class
BillDiscount
extends
AbstractDiscount
{
public
class
NomalDiscount
extends
Discount
{
}
library-common/src/main/java/com/gingersoft/gsa/cloud/common/utils/threadPool/ThreadPoolManager.java
View file @
6ec228e3
...
...
@@ -112,5 +112,9 @@ public class ThreadPoolManager {
}
}
};
public
ThreadPoolExecutor
getExecutor
()
{
return
mThreadPoolExecutor
;
}
}
library-
common/src/main/java/com/gingersoft/gsa/cloud/common/core/discount
/AbstractDiscount.java
→
library-
database/src/main/java/com/gingersoft/gsa/cloud/database
/AbstractDiscount.java
View file @
6ec228e3
package
com
.
gingersoft
.
gsa
.
cloud
.
common
.
core
.
discount
;
package
com
.
gingersoft
.
gsa
.
cloud
.
database
;
import
org.greenrobot.greendao.annotation.Transient
;
import
lombok.Data
;
/**
* @作者: bin
...
...
@@ -6,7 +10,15 @@ package com.gingersoft.gsa.cloud.common.core.discount;
* @更新時間: 2021-04-07 15:44
* @描述:
*/
@Data
public
abstract
class
AbstractDiscount
{
/**
* 折扣類型
* 0#折扣
* 1#優惠券
*/
@Transient
protected
byte
abstractDiscountType
=
DiscountConstact
.
DISCOUNT_TYPE
;
}
library-database/src/main/java/com/gingersoft/gsa/cloud/database/DiscountConstact.java
0 → 100644
View file @
6ec228e3
package
com
.
gingersoft
.
gsa
.
cloud
.
database
;
/**
* @作者: bin
* @創建時間: 2021-04-24 9:54
* @更新時間: 2021-04-24 9:54
* @描述:
*/
public
interface
DiscountConstact
{
/**
* 折扣類型
*/
byte
DISCOUNT_TYPE
=
0
;
/**
* 會員優惠券類型
*/
byte
MEMBER_COUPON_TYPE
=
1
;
/**
* 會員錢包券類型
*/
byte
WALLET_COUPON_TYPE
=
2
;
}
library-database/src/main/java/com/gingersoft/gsa/cloud/database/bean/Discount.java
View file @
6ec228e3
...
...
@@ -2,6 +2,8 @@ package com.gingersoft.gsa.cloud.database.bean;
import
androidx.annotation.NonNull
;
import
com.gingersoft.gsa.cloud.database.AbstractDiscount
;
import
org.greenrobot.greendao.annotation.Entity
;
import
org.greenrobot.greendao.annotation.Generated
;
import
org.greenrobot.greendao.annotation.Id
;
...
...
@@ -22,8 +24,7 @@ import lombok.Data;
*/
@Data
@Entity
public
class
Discount
implements
Cloneable
{
public
class
Discount
extends
AbstractDiscount
implements
Cloneable
{
/**
* ID
...
...
@@ -423,7 +424,6 @@ public class Discount implements Cloneable {
return
this
.
pause
;
}
@NonNull
@Override
public
Discount
clone
()
{
...
...
library-order/src/main/java/com/gingersoft/gsa/cloud/order/bean/discount/CouponDiscountBean.java
View file @
6ec228e3
...
...
@@ -9,7 +9,7 @@ import lombok.Data;
* 版本:1.6.0
* 创建日期:2020-09-12
* 修订历史:2020-09-12
* 描述:优惠券折扣实体
* 描述:
會員
优惠券折扣实体
*/
@Data
public
class
CouponDiscountBean
{
...
...
library-
common/src/main/java/com/gingersoft/gsa/cloud/common/core/discount/Member
Coupon.java
→
library-
order/src/main/java/com/gingersoft/gsa/cloud/order/bean/discount/MemberWallet
Coupon.java
View file @
6ec228e3
package
com
.
gingersoft
.
gsa
.
cloud
.
common
.
core
.
discount
;
package
com
.
gingersoft
.
gsa
.
cloud
.
order
.
bean
.
discount
;
import
androidx.annotation.NonNull
;
import
com.gingersoft.gsa.cloud.database.AbstractDiscount
;
import
com.gingersoft.gsa.cloud.database.DiscountConstact
;
import
com.gingersoft.gsa.cloud.database.bean.Discount
;
import
lombok.Data
;
...
...
@@ -8,10 +12,10 @@ import lombok.Data;
* @作者: bin
* @創建時間: 2021-04-07 15:45
* @更新時間: 2021-04-07 15:45
* @描述:
* @描述:
會員錢包優惠券
*/
@Data
public
class
Member
Coupon
extends
AbstractDiscount
{
public
class
Member
WalletCoupon
extends
AbstractDiscount
implements
Cloneable
{
private
long
id
;
private
String
couponTypeName
;
...
...
@@ -26,16 +30,42 @@ public class MemberCoupon extends AbstractDiscount {
private
String
couponNo
;
private
int
useTimes
;
public
MemberWalletCoupon
(
MemberWalletCoupon
coupon
)
{
this
.
id
=
coupon
.
id
;
this
.
couponTypeName
=
coupon
.
couponTypeName
;
this
.
beginDate
=
coupon
.
beginDate
;
this
.
endDate
=
coupon
.
endDate
;
this
.
periodDays
=
coupon
.
periodDays
;
this
.
upperLimitTimes
=
coupon
.
upperLimitTimes
;
this
.
billMinAmount
=
coupon
.
billMinAmount
;
this
.
amount
=
coupon
.
amount
;
this
.
discount
=
coupon
.
discount
;
this
.
remark
=
coupon
.
remark
;
this
.
couponNo
=
coupon
.
couponNo
;
this
.
useTimes
=
coupon
.
useTimes
;
}
public
Discount
castDiscount
()
{
Discount
discountBean
=
new
Discount
();
discountBean
.
setId
(
id
);
discountBean
.
setAbstractDiscountType
(
DiscountConstact
.
WALLET_COUPON_TYPE
);
discountBean
.
setDiscountValue
(
discount
);
discountBean
.
setAmount
(
amount
);
discountBean
.
setMinBillAmount
(
billMinAmount
);
discountBean
.
setRemark
(
remark
);
discountBean
.
setRemark
(
couponTypeName
);
discountBean
.
setBeginTime
(
beginDate
);
discountBean
.
setEndTime
(
endDate
);
return
discountBean
;
}
@NonNull
@Override
public
MemberWalletCoupon
clone
()
{
try
{
return
(
MemberWalletCoupon
)
super
.
clone
();
}
catch
(
CloneNotSupportedException
e
)
{
e
.
printStackTrace
();
}
return
new
MemberWalletCoupon
(
this
);
}
}
\ No newline at end of file
library-order/src/main/java/com/gingersoft/gsa/cloud/order/bean/request/OrderDiscountRequest.java
View file @
6ec228e3
package
com
.
gingersoft
.
gsa
.
cloud
.
order
.
bean
.
request
;
import
com.gingersoft.gsa.cloud.order.billItem.DiscountItem
;
import
com.gingersoft.gsa.cloud.order.discount.MemberDiscount
;
import
com.gingersoft.gsa.cloud.order.discount.Member
Level
Discount
;
import
com.gingersoft.gsa.cloud.order.discount.NomalDiscount
;
import
lombok.Data
;
...
...
@@ -62,7 +62,7 @@ public class OrderDiscountRequest {
OrderDiscountRequest
request
=
new
OrderDiscountRequest
();
request
.
setType
(
MEMBER_DISCOUNT
);
if
(
discount
.
getDiscount
()
!=
null
)
{
Member
Discount
memberDiscount
=
(
Member
Discount
)
discount
.
getDiscount
();
Member
LevelDiscount
memberDiscount
=
(
MemberLevel
Discount
)
discount
.
getDiscount
();
request
.
setMemberId
(
memberDiscount
.
getMemberDiscount
().
getId
());
// request.setMemberDiscountRate((int) memberDiscount.getDiscount().getDiscount_value());
}
...
...
library-order/src/main/java/com/gingersoft/gsa/cloud/order/cart/ShoppingCart.java
View file @
6ec228e3
...
...
@@ -4,11 +4,13 @@ import com.gingersoft.gsa.cloud.common.core.member.MemberInfo;
import
com.gingersoft.gsa.cloud.common.core.delivery.OrderDetails
;
import
com.gingersoft.gsa.cloud.database.bean.Discount
;
import
com.gingersoft.gsa.cloud.order.bean.discount.CouponDiscountBean
;
import
com.gingersoft.gsa.cloud.order.bean.discount.MemberWalletCoupon
;
import
com.gingersoft.gsa.cloud.order.billItem.BillItem
;
import
com.gingersoft.gsa.cloud.order.billItem.DiscountItem
;
import
com.gingersoft.gsa.cloud.order.commodity.OrderDetail
;
import
com.gingersoft.gsa.cloud.order.discount.CouponDiscount
;
import
com.gingersoft.gsa.cloud.order.discount.MemberDiscount
;
import
com.gingersoft.gsa.cloud.order.discount.MemberCouponDiscount
;
import
com.gingersoft.gsa.cloud.order.discount.MemberLevelDiscount
;
import
com.gingersoft.gsa.cloud.order.discount.MemberWalletCouponDiscount
;
import
com.gingersoft.gsa.cloud.order.discount.MultyDiscount
;
import
com.gingersoft.gsa.cloud.order.discount.NomalDiscount
;
...
...
@@ -60,8 +62,8 @@ public class ShoppingCart {
* 折扣列表
*
* @see NomalDiscount
* @see MemberDiscount
* @see CouponDiscount
* @see Member
Level
Discount
* @see
Member
CouponDiscount
*/
protected
List
<
MultyDiscount
>
multyDiscountList
;
/**
...
...
@@ -226,22 +228,32 @@ public class ShoppingCart {
* @param discount
* @return
*/
public
MultyDiscount
addMemberDiscountToLinked
(
MultyDiscount
multyDiscounts
,
MemberInfo
discount
,
int
status
)
{
MultyDiscount
member
Discount
=
new
Member
Discount
(
discount
.
getMemberName
(),
status
,
multyDiscounts
,
discount
);
return
memberDiscount
;
public
MultyDiscount
addMember
Level
DiscountToLinked
(
MultyDiscount
multyDiscounts
,
MemberInfo
discount
,
int
status
)
{
MultyDiscount
member
LevelDiscount
=
new
MemberLevel
Discount
(
discount
.
getMemberName
(),
status
,
multyDiscounts
,
discount
);
return
member
Level
Discount
;
}
/**
* 將優惠券折扣添加到鏈條中
* 將
會員
優惠券折扣添加到鏈條中
*
* @param discount
* @return
*/
public
MultyDiscount
addCouponDiscountToLinked
(
MultyDiscount
multyDiscounts
,
CouponDiscountBean
discount
,
int
status
)
{
MultyDiscount
couponDiscount
=
new
CouponDiscount
(
discount
.
getName
(),
status
,
multyDiscounts
,
discount
);
public
MultyDiscount
add
Member
CouponDiscountToLinked
(
MultyDiscount
multyDiscounts
,
CouponDiscountBean
discount
,
int
status
)
{
MultyDiscount
couponDiscount
=
new
Member
CouponDiscount
(
discount
.
getName
(),
status
,
multyDiscounts
,
discount
);
return
couponDiscount
;
}
/**
* 將會員錢包折扣添加到鏈條中
*
* @param walletCoupon
* @return
*/
public
MultyDiscount
addMemberWalletCouponDiscountToLinked
(
MultyDiscount
multyDiscounts
,
MemberWalletCoupon
walletCoupon
,
int
status
)
{
MultyDiscount
couponDiscount
=
new
MemberWalletCouponDiscount
(
walletCoupon
.
getCouponTypeName
(),
status
,
multyDiscounts
,
walletCoupon
);
return
couponDiscount
;
}
public
MultyDiscount
createNomalDiscount
(
Discount
discount
,
int
status
)
{
MultyDiscount
nomalDiscount
=
new
NomalDiscount
(
discount
.
getRemark
(),
status
,
null
,
discount
);
...
...
@@ -249,15 +261,20 @@ public class ShoppingCart {
}
public
MultyDiscount
createMemberDiscount
(
MemberInfo
discount
,
int
status
)
{
MultyDiscount
member
Discount
=
new
Member
Discount
(
discount
.
getMemberName
(),
status
,
null
,
discount
);
return
memberDiscount
;
MultyDiscount
member
LevelDiscount
=
new
MemberLevel
Discount
(
discount
.
getMemberName
(),
status
,
null
,
discount
);
return
member
Level
Discount
;
}
public
MultyDiscount
createCouponDiscount
(
CouponDiscountBean
discount
,
int
status
)
{
MultyDiscount
couponDiscount
=
new
CouponDiscount
(
discount
.
getName
(),
status
,
null
,
discount
);
MultyDiscount
couponDiscount
=
new
Member
CouponDiscount
(
discount
.
getName
(),
status
,
null
,
discount
);
return
couponDiscount
;
}
public
MultyDiscount
createMemberWalletCoupon
(
MemberWalletCoupon
walletCoupon
,
int
status
)
{
MultyDiscount
walletCouponDiscount
=
new
MemberWalletCouponDiscount
(
walletCoupon
.
getCouponTypeName
(),
status
,
null
,
walletCoupon
);
return
walletCouponDiscount
;
}
/**
* 計算折扣鏈金額
*/
...
...
@@ -270,10 +287,12 @@ public class ShoppingCart {
MultyDiscount
discount
=
getMultyDiscountList
().
get
(
i
);
if
(
discount
instanceof
NomalDiscount
)
{
multyDiscounts
=
addNomalDiscountToLinked
(
multyDiscounts
,
((
NomalDiscount
)
discount
).
getDiscount
(),
discount
.
getStatus
());
}
else
if
(
discount
instanceof
MemberDiscount
)
{
multyDiscounts
=
addMemberDiscountToLinked
(
multyDiscounts
,
((
MemberDiscount
)
discount
).
getMemberDiscount
(),
discount
.
getStatus
());
}
else
if
(
discount
instanceof
CouponDiscount
)
{
multyDiscounts
=
addCouponDiscountToLinked
(
multyDiscounts
,
((
CouponDiscount
)
discount
).
getCouponDiscount
(),
discount
.
getStatus
());
}
else
if
(
discount
instanceof
MemberLevelDiscount
)
{
multyDiscounts
=
addMemberLevelDiscountToLinked
(
multyDiscounts
,
((
MemberLevelDiscount
)
discount
).
getMemberDiscount
(),
discount
.
getStatus
());
}
else
if
(
discount
instanceof
MemberCouponDiscount
)
{
multyDiscounts
=
addMemberCouponDiscountToLinked
(
multyDiscounts
,
((
MemberCouponDiscount
)
discount
).
getCouponDiscount
(),
discount
.
getStatus
());
}
else
if
(
discount
instanceof
MemberWalletCouponDiscount
)
{
multyDiscounts
=
addMemberWalletCouponDiscountToLinked
(
multyDiscounts
,
((
MemberWalletCouponDiscount
)
discount
).
getWalletCoupon
(),
discount
.
getStatus
());
}
multyDiscountArrays
.
add
(
multyDiscounts
);
}
...
...
@@ -293,10 +312,12 @@ public class ShoppingCart {
String
discountName
=
discount
.
getName
();
if
(
discount
instanceof
NomalDiscount
)
{
discountType
=
BillItem
.
NOMAL_DISCOUNT_TYPE
;
}
else
if
(
discount
instanceof
MemberDiscount
)
{
}
else
if
(
discount
instanceof
Member
Level
Discount
)
{
discountType
=
BillItem
.
MEMBER_DISCOUNT_TYPE
;
discountName
=
discount
.
getName
()
+
((
MemberDiscount
)
discount
).
getMemberDiscount
().
getMemberDiscount
()
+
"%"
;
}
else
if
(
discount
instanceof
CouponDiscount
)
{
discountName
=
discount
.
getName
()
+
((
MemberLevelDiscount
)
discount
).
getMemberDiscount
().
getMemberDiscount
()
+
"%"
;
}
else
if
(
discount
instanceof
MemberCouponDiscount
)
{
discountType
=
BillItem
.
COUPON_DISCOUNT_TYPE
;
}
else
if
(
discount
instanceof
MemberWalletCouponDiscount
)
{
discountType
=
BillItem
.
COUPON_DISCOUNT_TYPE
;
}
DiscountItem
discountItem
=
new
DiscountItem
(
discountName
,
discount
.
getDiscountMoney
(),
discount
.
getStatus
(),
discountType
);
...
...
@@ -343,13 +364,13 @@ public class ShoppingCart {
couponDiscountBean
.
setCouponTypeName1
(
"魚屋立減50元券"
);
couponDiscountBean
.
setAmount
(
50
);
couponDiscountBean
.
setCouponType
((
byte
)
2
);
multyDiscounts
=
shoppingCart
.
addCouponDiscountToLinked
(
multyDiscounts
,
couponDiscountBean
,
0
);
multyDiscounts
=
shoppingCart
.
add
Member
CouponDiscountToLinked
(
multyDiscounts
,
couponDiscountBean
,
0
);
shoppingCart
.
addMultyDiscount
(
multyDiscounts
);
MemberInfo
memberInfo2
=
new
MemberInfo
();
memberInfo2
.
setMemberName
(
"白金會員20%"
);
memberInfo2
.
setMemberDiscount
(
20
);
multyDiscounts
=
shoppingCart
.
addMemberDiscountToLinked
(
multyDiscounts
,
memberInfo2
,
0
);
multyDiscounts
=
shoppingCart
.
addMember
Level
DiscountToLinked
(
multyDiscounts
,
memberInfo2
,
0
);
shoppingCart
.
addMultyDiscount
(
multyDiscounts
);
double
discountAfterMoney
=
shoppingCart
.
calculateLinkedDiscounts
(
200
);
...
...
library-order/src/main/java/com/gingersoft/gsa/cloud/order/commodity/OrderDetail.java
View file @
6ec228e3
...
...
@@ -4,6 +4,8 @@ import androidx.annotation.NonNull;
import
com.gingersoft.gsa.cloud.common.core.delivery.OrderDetails
;
import
com.gingersoft.gsa.cloud.common.utils.MoneyUtil
;
import
com.gingersoft.gsa.cloud.database.AbstractDiscount
;
import
com.gingersoft.gsa.cloud.database.DiscountConstact
;
import
com.gingersoft.gsa.cloud.database.bean.ComboItem
;
import
com.gingersoft.gsa.cloud.database.bean.Discount
;
import
com.gingersoft.gsa.cloud.database.bean.Food
;
...
...
@@ -167,6 +169,10 @@ public class OrderDetail implements Commodity, Serializable, Cloneable {
* 类型#1:优惠卷;2:商品;3:菜品;4:细项;5:折扣;
*/
private
byte
type
;
public
static
final
byte
COUPON_TYPE
=
1
;
public
static
final
byte
FOOD_TYPE
=
3
;
public
static
final
byte
MODIFIER_TYPE
=
4
;
public
static
final
byte
DISCOUNT_TYPE
=
5
;
/**
*
*/
...
...
@@ -241,12 +247,6 @@ public class OrderDetail implements Commodity, Serializable, Cloneable {
/**
* type編號#3:菜品;4:細項;5:折扣
*/
public
static
final
byte
FOOD_TYPE
=
3
;
public
static
final
byte
MODIFIER_TYPE
=
4
;
public
static
final
byte
DISCOUNT_TYPE
=
5
;
/**
* 廚房單打印主項
*/
private
long
ktPrintMainItem
;
...
...
@@ -1254,7 +1254,7 @@ public class OrderDetail implements Commodity, Serializable, Cloneable {
}
/**
* 折扣轉換
* 折扣
,優惠券
轉換
*
* @param discount
* @return
...
...
@@ -1275,7 +1275,11 @@ public class OrderDetail implements Commodity, Serializable, Cloneable {
orderDetail
.
setOrderId
(
DoshokuOrder
.
getInstance
().
getOrderId
());
orderDetail
.
setIsfood
(
false
);
orderDetail
.
setNew
(
isNew
);
if
(
discount
.
getFreeServiceCharge
()
==
DiscountConstact
.
WALLET_COUPON_TYPE
)
{
orderDetail
.
setType
(
COUPON_TYPE
);
}
else
{
orderDetail
.
setType
(
DISCOUNT_TYPE
);
}
orderDetail
.
setProp
(
DISCOUNT_PROP
);
orderDetail
.
setSelected
(
2
);
orderDetail
.
setItemType
(
2
);
...
...
library-order/src/main/java/com/gingersoft/gsa/cloud/order/discount/CouponDiscount.java
→
library-order/src/main/java/com/gingersoft/gsa/cloud/order/discount/
Member
CouponDiscount.java
View file @
6ec228e3
...
...
@@ -10,14 +10,14 @@ import lombok.Getter;
* 版本:1.6.0
* 创建日期:2020-09-19
* 修订历史:2020-09-19
* 描述: 優惠券折扣{@link CouponDiscountBean}
* 描述:
會員
優惠券折扣{@link CouponDiscountBean}
*/
@Getter
public
class
CouponDiscount
extends
MultyDiscount
{
public
class
Member
CouponDiscount
extends
MultyDiscount
{
private
CouponDiscountBean
couponDiscount
;
public
CouponDiscount
(
String
name
,
int
status
,
MultyDiscount
nextMultyDiscount
,
CouponDiscountBean
couponDiscount
)
{
public
Member
CouponDiscount
(
String
name
,
int
status
,
MultyDiscount
nextMultyDiscount
,
CouponDiscountBean
couponDiscount
)
{
super
(
name
,
status
,
nextMultyDiscount
);
this
.
couponDiscount
=
couponDiscount
;
}
...
...
library-order/src/main/java/com/gingersoft/gsa/cloud/order/discount/MemberDiscount.java
→
library-order/src/main/java/com/gingersoft/gsa/cloud/order/discount/Member
Level
Discount.java
View file @
6ec228e3
...
...
@@ -10,14 +10,14 @@ import lombok.Getter;
* 版本:1.6.0
* 创建日期:2020-09-19
* 修订历史:2020-09-19
* 描述: 會員折扣{@link MemberInfo#memberDiscount}
* 描述: 會員
等級
折扣{@link MemberInfo#memberDiscount}
*/
@Getter
public
class
MemberDiscount
extends
MultyDiscount
{
public
class
Member
Level
Discount
extends
MultyDiscount
{
private
MemberInfo
memberDiscount
;
public
MemberDiscount
(
String
name
,
int
status
,
MultyDiscount
nextMultyDiscount
,
MemberInfo
memberDiscount
)
{
public
Member
Level
Discount
(
String
name
,
int
status
,
MultyDiscount
nextMultyDiscount
,
MemberInfo
memberDiscount
)
{
super
(
name
,
status
,
nextMultyDiscount
);
this
.
memberDiscount
=
memberDiscount
;
}
...
...
library-order/src/main/java/com/gingersoft/gsa/cloud/order/discount/MemberWalletCouponDiscount.java
0 → 100644
View file @
6ec228e3
package
com
.
gingersoft
.
gsa
.
cloud
.
order
.
discount
;
import
com.gingersoft.gsa.cloud.common.utils.MoneyUtil
;
import
com.gingersoft.gsa.cloud.order.bean.discount.CouponDiscountBean
;
import
com.gingersoft.gsa.cloud.order.bean.discount.MemberWalletCoupon
;
import
lombok.Getter
;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-09-19
* 修订历史:2020-09-19
* 描述: 會員錢包優惠券折扣{@link CouponDiscountBean}
*/
@Getter
public
class
MemberWalletCouponDiscount
extends
MultyDiscount
{
private
MemberWalletCoupon
walletCoupon
;
public
MemberWalletCouponDiscount
(
String
name
,
int
status
,
MultyDiscount
nextMultyDiscount
,
MemberWalletCoupon
walletCoupon
)
{
super
(
name
,
status
,
nextMultyDiscount
);
this
.
walletCoupon
=
walletCoupon
;
}
@Override
public
double
calculate
(
double
money
)
{
if
(
walletCoupon
!=
null
)
{
//配置了消費滿減
discountMoney
=
calculationCoupon
(
walletCoupon
,
money
);
money
=
MoneyUtil
.
sum
(
money
,
discountMoney
);
}
return
super
.
calculate
(
money
);
}
/**
* 計算優惠券金額
*
* @param walletCoupon
* @param sourceMoney
* @return
*/
public
static
double
calculationCoupon
(
MemberWalletCoupon
walletCoupon
,
double
sourceMoney
)
{
double
discountMoney
=
0
;
if
(
walletCoupon
.
getDiscount
()
!=
0
)
{
//百分比折扣
discountMoney
=
MoneyUtil
.
divide
(
MoneyUtil
.
multiply
(
sourceMoney
,
walletCoupon
.
getDiscount
()),
100
).
doubleValue
();
}
else
{
//金額折扣
discountMoney
=
walletCoupon
.
getAmount
();
}
if
(
sourceMoney
<
discountMoney
)
{
//折扣金額不能超出總額
discountMoney
=
sourceMoney
;
}
return
-
MoneyUtil
.
get_ItemDecimals_money
(
Math
.
abs
(
discountMoney
));
}
/**
* 獲取優惠券折扣ID
*
* @return
*/
public
Long
getCouponDiscountId
()
{
if
(
walletCoupon
!=
null
)
{
return
walletCoupon
.
getId
();
}
return
null
;
}
}
library-order/src/main/java/com/gingersoft/gsa/cloud/order/discount/MultyDiscount.java
View file @
6ec228e3
...
...
@@ -17,8 +17,8 @@ public abstract class MultyDiscount extends BillItem {
/**責任鏈中的下一個對象*/
protected
MultyDiscount
nextMultyDiscount
;
/**
* 本次折扣金额
*/
* 本次折扣金额
* */
protected
double
discountMoney
=
0.0
;
public
MultyDiscount
(
String
name
,
int
status
,
MultyDiscount
nextMultyDiscount
)
{
...
...
library-order/src/main/java/com/gingersoft/gsa/cloud/pay/device/pos/yedpay/YedpayCallbackImp.java
View file @
6ec228e3
...
...
@@ -5,6 +5,8 @@ import android.content.Context;
import
android.content.Intent
;
import
android.net.Uri
;
import
androidx.fragment.app.Fragment
;
import
com.gingersoft.gsa.cloud.pay.RequestParms
;
import
com.gingersoft.gsa.cloud.pay.device.pos.yedpay.constant.YedpayConstant
;
import
com.gingersoft.gsa.cloud.pay.lifecycle.presenter.PayFlowPresenter
;
...
...
@@ -19,12 +21,11 @@ import java.lang.ref.WeakReference;
*/
public
class
YedpayCallbackImp
implements
YedpayCallback
{
private
WeakReference
<
Activity
>
mContext
;
private
WeakReference
<
Fragment
>
mContext
;
private
WeakReference
<
PayFlowPresenter
>
mPayFlowPresenter
;
private
RequestParms
mRequestParms
;
public
YedpayCallbackImp
(
Activity
context
,
PayFlowPresenter
payFlowPresenter
,
RequestParms
requestParms
)
{
public
YedpayCallbackImp
(
Fragment
context
,
PayFlowPresenter
payFlowPresenter
,
RequestParms
requestParms
)
{
this
.
mContext
=
new
WeakReference
<>(
context
);
this
.
mPayFlowPresenter
=
new
WeakReference
<>(
payFlowPresenter
);
this
.
mRequestParms
=
requestParms
;
...
...
@@ -32,11 +33,11 @@ public class YedpayCallbackImp implements YedpayCallback {
@Override
public
void
callSaleUri
(
String
uri
)
{
Activity
activity
=
mContext
.
get
();
if
(
activity
!=
null
)
{
Fragment
fragment
=
mContext
.
get
();
if
(
fragment
!=
null
)
{
Uri
uri2
=
Uri
.
parse
(
uri
);
Intent
intent
=
new
Intent
(
Intent
.
ACTION_VIEW
,
uri2
);
activity
.
startActivityForResult
(
intent
,
YedpayConstant
.
CallRequestCode
.
SALE_REQUEST_CODE
);
fragment
.
getActivity
()
.
startActivityForResult
(
intent
,
YedpayConstant
.
CallRequestCode
.
SALE_REQUEST_CODE
);
}
}
...
...
library-order/src/main/java/com/gingersoft/gsa/cloud/pay/lifecycle/contract/PayFlowContract.java
View file @
6ec228e3
...
...
@@ -3,6 +3,8 @@ package com.gingersoft.gsa.cloud.pay.lifecycle.contract;
import
android.app.Activity
;
import
android.content.Intent
;
import
androidx.fragment.app.Fragment
;
import
com.gingersoft.gsa.cloud.common.bean.BaseResult
;
import
com.gingersoft.gsa.cloud.pay.PayStep
;
import
com.jess.arms.mvp.IView
;
...
...
@@ -32,7 +34,7 @@ public interface PayFlowContract {
void
startActivityForResult
(
Intent
intent
);
Activity
getActivity
();
Fragment
getFragment
();
}
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
...
...
library-order/src/main/java/com/gingersoft/gsa/cloud/pay/lifecycle/fragment/PayFlowFragment.java
View file @
6ec228e3
...
...
@@ -16,6 +16,7 @@ import android.widget.TextView;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
androidx.fragment.app.Fragment
;
import
com.gingersoft.gsa.cloud.common.logan.LoganManager
;
import
com.gingersoft.gsa.cloud.order.R
;
...
...
@@ -215,6 +216,11 @@ public class PayFlowFragment extends BaseDialogFragment<PayFlowPresenter> implem
@Override
public
void
startActivityForResult
(
Intent
intent
)
{
startActivityForResult
(
intent
,
555
);
startActivityForResult
(
intent
,
YedpayConstant
.
CallRequestCode
.
SALE_REQUEST_CODE
);
}
@Override
public
Fragment
getFragment
()
{
return
this
;
}
}
library-order/src/main/java/com/gingersoft/gsa/cloud/pay/lifecycle/presenter/PayFlowPresenter.java
View file @
6ec228e3
...
...
@@ -201,11 +201,10 @@ public class PayFlowPresenter extends BasePresenter<PayFlowContract.Model, PayFl
}
else
if
(
AppDevices
.
isBBPos
())
{
requestParms
.
setCallback
(
new
BBposCallbackImp
());
}
else
if
(
AppDevices
.
isYedpay
())
{
requestParms
.
setCallback
(
new
YedpayCallbackImp
(
mRootView
.
get
Activity
(),
this
,
mRequestParms
));
requestParms
.
setCallback
(
new
YedpayCallbackImp
(
mRootView
.
get
Fragment
(),
this
,
mRequestParms
));
}
else
{
requestParms
.
setCallback
(
new
YedpayCallbackImp
(
mRootView
.
get
Activity
(),
this
,
mRequestParms
));
requestParms
.
setCallback
(
new
YedpayCallbackImp
(
mRootView
.
get
Fragment
(),
this
,
mRequestParms
));
}
}
}
library-ui/src/main/java/com/gingersoft/gsa/cloud/ui/adapter/TagViewAdapter.java
View file @
6ec228e3
...
...
@@ -6,6 +6,7 @@ import androidx.annotation.Nullable;
import
com.chad.library.adapter.base.BaseQuickAdapter
;
import
com.chad.library.adapter.base.viewholder.BaseViewHolder
;
import
com.gingersoft.gsa.cloud.app.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.ui.R
;
import
com.gingersoft.gsa.cloud.ui.bean.TagViewItem
;
import
com.gingersoft.gsa.cloud.ui.bean.view.SectionTextItem
;
...
...
@@ -16,10 +17,16 @@ import java.util.List;
public
class
TagViewAdapter
extends
BaseQuickAdapter
<
TagViewItem
,
BaseViewHolder
>
{
private
int
height
=
ArmsUtils
.
dip2px
(
GsaCloudApplication
.
getAppContext
(),
R
.
dimen
.
dp_40
);
public
TagViewAdapter
(
@Nullable
List
<
TagViewItem
>
data
)
{
super
(
R
.
layout
.
item_tag_view
,
data
);
}
public
void
setHeight
(
int
height
)
{
this
.
height
=
height
;
}
@Override
protected
void
convert
(
BaseViewHolder
helper
,
TagViewItem
item
)
{
QMUIRoundButton
roundButton
=
helper
.
getView
(
R
.
id
.
btn_tag
);
...
...
@@ -34,6 +41,7 @@ public class TagViewAdapter extends BaseQuickAdapter<TagViewItem, BaseViewHolder
roundButton
.
setStrokeColors
(
ColorStateList
.
valueOf
(
item
.
getSidelineColor
()));
roundButton
.
setTextColor
(
item
.
getUnCheckedTextColor
());
}
roundButton
.
setHeight
(
height
);
}
}
library-ui/src/main/java/com/gingersoft/gsa/cloud/ui/view/MyTableView.java
View file @
6ec228e3
...
...
@@ -74,7 +74,6 @@ public class MyTableView extends TabLayout {
});
}
private
void
setSelectTab
(
TabLayout
.
Tab
tabAt
,
boolean
isSelected
)
{
if
(
tabAt
.
getCustomView
()
!=
null
)
{
TextView
tab
=
tabAt
.
getCustomView
().
findViewById
(
R
.
id
.
tv_tab
);
//第一个tab被选中
...
...
library-ui/src/main/res/layout/item_tag_view.xml
View file @
6ec228e3
...
...
@@ -3,13 +3,11 @@
xmlns:app=
"http://schemas.android.com/apk/res-auto"
android:id=
"@+id/btn_tag"
android:layout_width=
"match_parent"
android:layout_height=
"
wrap_content
"
android:layout_height=
"
@dimen/dp_40
"
android:layout_gravity=
"center_horizontal"
android:gravity=
"center_vertical"
android:layout_margin=
"@dimen/dp_6"
android:paddingLeft=
"@dimen/dp_10"
android:paddingTop=
"@dimen/dp_8"
android:paddingRight=
"@dimen/dp_10"
android:paddingBottom=
"@dimen/dp_8"
android:text=
"草莓派"
android:textColor=
"@color/theme_text_color"
android:textSize=
"@dimen/dp_16"
...
...
@@ -18,6 +16,7 @@
app:qmui_borderWidth=
"1px"
app:qmui_skin_background=
"?attr/app_skin_btn_test_bg"
app:qmui_skin_border=
"?attr/app_skin_btn_test_border"
app:qmui_skin_text_color=
"?attr/app_skin_btn_test_border"
>
app:qmui_skin_text_color=
"?attr/app_skin_btn_test_border"
app:qmui_radius=
"@dimen/dp_6"
>
</com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton>
\ No newline at end of file
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