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
d088025b
Commit
d088025b
authored
Mar 17, 2021
by
Wyh
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/dev' into dev
parents
e860097a
029dc97d
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
41 changed files
with
743 additions
and
146 deletions
+743
-146
component-login/src/main/java/com/gingersoft/gsa/cloud/login/mvp/ui/activity/mvp/ui/activity/WelcomeActivity.java
+3
-0
component-manager/src/main/java/com/gingersoft/gsa/cloud/manager/di/module/AddAreaModule.java
+1
-0
component-manager/src/main/java/com/gingersoft/gsa/cloud/manager/mvp/ui/activity/TableManageActivity.java
+1
-0
component-manager/src/main/java/com/gingersoft/gsa/cloud/manager/mvp/ui/fragment/AreaListFragment.java
+4
-10
component-manager/src/main/java/com/gingersoft/gsa/cloud/manager/mvp/ui/fragment/TableListFragment.java
+4
-7
component-print/src/main/java/com/joe/print/mvp/print/PrintSlip.java
+1
-0
component-print/src/main/java/com/joe/print/mvp/ui/activity/PrintActivity.java
+39
-37
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/contract/MealStandContract.java
+2
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/model/MealStandModel.java
+8
-1
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/model/bean/request/AddOrderRequest.java
+1
-10
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/model/utils/MealConditionFilterUtils.java
+20
-16
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/BaseOrderPresenter.java
+5
-1
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/MealStandPresenter.java
+46
-20
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/OrderContentPresenter.java
+24
-4
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/OrderPayPresenter.java
+2
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/activity/MealStandActivity.java
+24
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/adapter/meal/FineItemOneAdapter.java
+0
-2
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/widget/CustomFoodDialog.java
+216
-0
component-table/src/main/res/layout/meal_dialog_custom_food.xml
+66
-0
component-table/src/main/res/layout/meal_layout_custom_food_money.xml
+43
-0
component-table/src/main/res/layout/meal_layout_custom_food_name.xml
+40
-0
config.gradle
+2
-2
library-base/src/main/java/com/jess/arms/base/delegate/AppDelegate.java
+11
-0
library-base/src/main/java/com/jess/arms/di/module/GlobalConfigModule.java
+15
-0
library-base/src/main/java/com/jess/arms/integration/IRepositoryManager.java
+9
-0
library-base/src/main/java/com/jess/arms/integration/RepositoryManager.java
+18
-2
library-base/src/main/java/com/jess/arms/integration/RetrofitServiceProxyHandler.java
+53
-0
library-common/src/main/java/com/gingersoft/gsa/cloud/app/GsaCloudApplication.java
+3
-1
library-common/src/main/java/com/gingersoft/gsa/cloud/common/core/restaurant/RestaurantInfoManager.java
+1
-1
library-common/src/main/java/com/gingersoft/gsa/cloud/common/core/user/UserContext.java
+1
-1
library-common/src/main/res/values-v21/styles.xml
+1
-0
library-database/build.gradle
+6
-1
library-database/src/main/java/com/gingersoft/gsa/cloud/database/bean/Food.java
+0
-0
library-database/src/main/java/com/gingersoft/gsa/cloud/database/greendao/DaoMaster.java
+2
-2
library-database/src/main/java/com/gingersoft/gsa/cloud/database/greendao/FoodDao.java
+0
-0
library-database/src/main/java/com/gingersoft/gsa/cloud/database/utils/FoodDaoUtils.java
+2
-1
library-order/src/main/java/com/gingersoft/gsa/cloud/order/bean/discount/CouponDiscountBean.java
+2
-0
library-order/src/main/java/com/gingersoft/gsa/cloud/order/bean/request/MealOrderPayRequest.java
+5
-10
library-order/src/main/java/com/gingersoft/gsa/cloud/order/bean/response/OrderDiscountResponse.java
+4
-0
library-order/src/main/java/com/gingersoft/gsa/cloud/order/order/DoshokuOrder.java
+19
-1
library-ui/src/main/java/com/gingersoft/gsa/cloud/ui/recylcler/event/RecyItemTouchHelperCallback.java
+39
-16
No files found.
component-login/src/main/java/com/gingersoft/gsa/cloud/login/mvp/ui/activity/mvp/ui/activity/WelcomeActivity.java
View file @
d088025b
...
...
@@ -16,6 +16,9 @@ import androidx.annotation.NonNull;
import
androidx.annotation.Nullable
;
import
androidx.constraintlayout.widget.ConstraintLayout
;
import
androidx.viewpager2.widget.ViewPager2
;
import
com.gingersoft.gsa.cloud.common.bean.BaseResult
;
import
com.gingersoft.gsa.cloud.common.bean.BaseResultOld
;
import
com.gingersoft.gsa.cloud.common.core.login.LoginBean
;
import
com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager
;
import
com.gingersoft.gsa.cloud.common.core.user.UserConstans
;
...
...
component-manager/src/main/java/com/gingersoft/gsa/cloud/manager/di/module/AddAreaModule.java
View file @
d088025b
...
...
@@ -5,6 +5,7 @@ import com.jess.arms.di.scope.FragmentScope;
import
dagger.Binds
;
import
dagger.Module
;
import
dagger.Provides
;
import
dagger.Subcomponent
;
import
com.gingersoft.gsa.cloud.manager.mvp.contract.AddAreaContract
;
import
com.gingersoft.gsa.cloud.manager.mvp.model.AddAreaModel
;
...
...
component-manager/src/main/java/com/gingersoft/gsa/cloud/manager/mvp/ui/activity/TableManageActivity.java
View file @
d088025b
...
...
@@ -25,6 +25,7 @@ import com.scwang.smartrefresh.layout.api.RefreshLayout;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.stream.Stream
;
import
me.yokeyword.fragmentation.ISupportFragment
;
import
me.yokeyword.fragmentation.anim.DefaultHorizontalAnimator
;
...
...
component-manager/src/main/java/com/gingersoft/gsa/cloud/manager/mvp/ui/fragment/AreaListFragment.java
View file @
d088025b
...
...
@@ -12,14 +12,12 @@ import android.widget.CheckBox;
import
android.widget.CompoundButton
;
import
android.widget.EditText
;
import
android.widget.LinearLayout
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
androidx.core.content.ContextCompat
;
import
androidx.recyclerview.widget.ItemTouchHelper
;
import
androidx.recyclerview.widget.LinearLayoutManager
;
import
androidx.recyclerview.widget.RecyclerView
;
import
com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager
;
import
com.gingersoft.gsa.cloud.common.core.table.TableArea
;
import
com.gingersoft.gsa.cloud.manager.R
;
...
...
@@ -234,14 +232,10 @@ public class AreaListFragment extends BaseFragment<AreaListPresenter> implements
itemTouchHelperCallback
.
setOnMoveListener
(
new
RecyItemTouchHelperCallback
.
onMoveListener
()
{
@Override
public
void
onMoveFinish
(
RecyclerView
.
Adapter
adapter
)
{
if
(
adapter
instanceof
DefaultAdapter
)
{
DefaultAdapter
defaultAdapter
=
(
DefaultAdapter
)
adapter
;
if
(
defaultAdapter
.
getInfos
()
!=
null
)
{
String
ids
=
getTableAreaIds
(
defaultAdapter
.
getInfos
());
if
(!
TextUtils
.
isEmpty
(
ids
))
{
mActivity
.
changeAreaSort
(
ids
);
}
public
void
onMoveFinish
(
RecyclerView
.
Adapter
adapter
,
String
ids
)
{
if
(!
TextUtils
.
isEmpty
(
ids
))
{
if
(!
TextUtils
.
isEmpty
(
ids
))
{
mActivity
.
changeAreaSort
(
ids
);
}
}
}
...
...
component-manager/src/main/java/com/gingersoft/gsa/cloud/manager/mvp/ui/fragment/TableListFragment.java
View file @
d088025b
...
...
@@ -29,6 +29,7 @@ import androidx.recyclerview.widget.RecyclerView;
import
com.gingersoft.gsa.cloud.common.core.table.TableArea
;
import
com.gingersoft.gsa.cloud.common.core.table.TableManagerItem
;
import
com.gingersoft.gsa.cloud.common.logan.LoganManager
;
import
com.gingersoft.gsa.cloud.manager.R
;
import
com.gingersoft.gsa.cloud.manager.R2
;
import
com.gingersoft.gsa.cloud.manager.di.component.DaggerTableListComponent
;
...
...
@@ -318,14 +319,10 @@ public class TableListFragment extends BaseFragment<TableListPresenter> implemen
itemTouchHelperCallback
.
setOnMoveListener
(
new
RecyItemTouchHelperCallback
.
onMoveListener
()
{
@Override
public
void
onMoveFinish
(
RecyclerView
.
Adapter
adapter
)
{
if
(
mAdapter
instanceof
QMUIStickySectionAdapter
)
{
QMUIStickySectionAdapter
qmuiStickySectionAdapter
=
(
QMUIStickySectionAdapter
)
mAdapter
;
List
<
QMUISection
<
SectionHeader
,
TableManagerItem
>>
qmuiSectionList
=
qmuiStickySectionAdapter
.
getCurrentData
();
String
ids
=
getTableIds
(
qmuiSectionList
);
public
void
onMoveFinish
(
RecyclerView
.
Adapter
adapter
,
String
ids
)
{
if
(!
TextUtils
.
isEmpty
(
ids
))
{
if
(!
TextUtils
.
isEmpty
(
ids
))
{
mActivity
.
changeTableSort
(
getTableIds
(
qmuiSectionList
)
);
mActivity
.
changeTableSort
(
ids
);
}
}
}
...
...
component-print/src/main/java/com/joe/print/mvp/print/PrintSlip.java
View file @
d088025b
...
...
@@ -203,6 +203,7 @@ public class PrintSlip extends PrinterRoot<PrintSlipContent> {
layout
.
addView
(
getDiningFoodList
(
mContext
,
foodList
,
printerDeviceBean
,
0
,
true
));
layout
.
addView
(
getHalfLine
(
mContext
));
List
<
BillingBean
>
billingBeans
=
new
ArrayList
<>();
//添加合計項
billingBeans
.
add
(
new
BillingBean
(
"合計"
,
mPrintSlipContent
.
getWholeAmount
()));
//添加其他金額項
...
...
component-print/src/main/java/com/joe/print/mvp/ui/activity/PrintActivity.java
View file @
d088025b
...
...
@@ -114,52 +114,53 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
@Override
public
void
initData
(
@Nullable
Bundle
savedInstanceState
)
{
PrinterFlowProxy
.
newInstance
().
registerPrinterFlowListener
(
new
PrinterFlowListener
()
{
PrinterFlowProxy
.
newInstance
().
registerPrinterFlowListener
(
printerFlowListener
);
}
@Override
public
void
connectionBefore
(
String
deviceName
,
String
IP
,
int
port
,
long
ioTimeout
,
long
printTimeout
)
{
private
PrinterFlowListener
printerFlowListener
=
new
PrinterFlowListener
()
{
@Override
public
void
connectionBefore
(
String
deviceName
,
String
IP
,
int
port
,
long
ioTimeout
,
long
printTimeout
)
{
}
}
@Override
public
void
connectionSuccess
()
{
printerLoadingDialog
.
setStep
(
PrinterLoadingDialog
.
PROGRESS_PRINTING
,
PrinterLoadingDialog
.
STATUS_SUCCESS
,
null
);
}
@Override
public
void
connectionSuccess
()
{
printerLoadingDialog
.
setStep
(
PrinterLoadingDialog
.
PROGRESS_PRINTING
,
PrinterLoadingDialog
.
STATUS_SUCCESS
,
null
);
}
@Override
public
void
connectionError
(
Exception
e
)
{
printerLoadingDialog
.
setStep
(
PrinterLoadingDialog
.
PROGRESS_PRINTING
,
PrinterLoadingDialog
.
STATUS_ERROR
,
e
.
getMessage
());
printFail
();
}
@Override
public
void
connectionError
(
Exception
e
)
{
printerLoadingDialog
.
setStep
(
PrinterLoadingDialog
.
PROGRESS_PRINTING
,
PrinterLoadingDialog
.
STATUS_ERROR
,
e
.
getMessage
());
printFail
();
}
@Override
public
void
disconnect
(
Exception
e
)
{
}
@Override
public
void
disconnect
(
Exception
e
)
{
}
@Override
public
void
onPrinterDataBefore
(
int
orderType
,
int
printType
,
String
printerData
,
String
printerDeviceInfo
)
{
printerLoadingDialog
.
setStep
(
PrinterLoadingDialog
.
PROGRESS_CONNECTING
,
PrinterLoadingDialog
.
STATUS_SUCCESS
,
null
);
}
@Override
public
void
onPrinterDataBefore
(
int
orderType
,
int
printType
,
String
printerData
,
String
printerDeviceInfo
)
{
printerLoadingDialog
.
setStep
(
PrinterLoadingDialog
.
PROGRESS_CONNECTING
,
PrinterLoadingDialog
.
STATUS_SUCCESS
,
null
);
}
@Override
public
void
onPrinterBitmapBefore
(
int
orderType
,
int
printType
,
String
directoryName
,
List
<
Bitmap
>
bitmaps
)
{
printerLoadingDialog
.
setStep
(
PrinterLoadingDialog
.
PROGRESS_CONNECTING
,
PrinterLoadingDialog
.
STATUS_SUCCESS
,
null
);
}
@Override
public
void
onPrinterBitmapBefore
(
int
orderType
,
int
printType
,
String
directoryName
,
List
<
Bitmap
>
bitmaps
)
{
printerLoadingDialog
.
setStep
(
PrinterLoadingDialog
.
PROGRESS_CONNECTING
,
PrinterLoadingDialog
.
STATUS_SUCCESS
,
null
);
}
@Override
public
void
onPrintSuccess
()
{
printerResult
=
true
;
printerLoadingDialog
.
setStep
(
PrinterLoadingDialog
.
PROGRESS_RESULT
,
PrinterLoadingDialog
.
STATUS_SUCCESS
,
null
);
printSuccess
();
}
@Override
public
void
onPrintSuccess
()
{
printerResult
=
true
;
printerLoadingDialog
.
setStep
(
PrinterLoadingDialog
.
PROGRESS_RESULT
,
PrinterLoadingDialog
.
STATUS_SUCCESS
,
null
);
printSuccess
();
}
@Override
public
void
onPrintError
(
Exception
e
,
int
errorCode
)
{
printerLoadingDialog
.
setStep
(
PrinterLoadingDialog
.
PROGRESS_RESULT
,
PrinterLoadingDialog
.
STATUS_ERROR
,
e
.
getMessage
());
printFail
();
}
});
}
@Override
public
void
onPrintError
(
Exception
e
,
int
errorCode
)
{
printerLoadingDialog
.
setStep
(
PrinterLoadingDialog
.
PROGRESS_RESULT
,
PrinterLoadingDialog
.
STATUS_ERROR
,
e
.
getMessage
());
printFail
();
}
};
private
void
printFail
()
{
printerResult
=
false
;
...
...
@@ -544,6 +545,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
printerInIt
.
disconnectEpson
();
}
printerLoadingDialog
.
dismiss
();
PrinterFlowProxy
.
newInstance
().
unregisterPrinterFlowListener
(
printerFlowListener
);
}
@Override
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/contract/MealStandContract.java
View file @
d088025b
...
...
@@ -11,6 +11,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.model.bean.response.BaseOrderResponse
;
import
com.jess.arms.base.DefaultAdapter
;
...
...
@@ -108,6 +109,7 @@ public interface MealStandContract {
void
setModifierTop
(
int
Margins
);
void
setCustomFoodDialog
(
int
customType
,
OrderDetail
foodItem
);
}
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/model/MealStandModel.java
View file @
d088025b
...
...
@@ -3,6 +3,7 @@ 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.logan.LoganManager
;
import
com.gingersoft.gsa.cloud.database.bean.ComboItem
;
import
com.gingersoft.gsa.cloud.database.bean.Discount
;
import
com.gingersoft.gsa.cloud.database.bean.Food
;
...
...
@@ -27,13 +28,19 @@ import com.jess.arms.di.scope.ActivityScope;
import
com.jess.arms.integration.IRepositoryManager
;
import
com.jess.arms.mvp.BaseModel
;
import
java.util.ArrayList
;
import
java.util.List
;
import
javax.inject.Inject
;
import
io.reactivex.Observable
;
import
io.reactivex.Observer
;
import
io.reactivex.disposables.Disposable
;
import
io.reactivex.functions.Action
;
import
io.reactivex.functions.Consumer
;
import
io.reactivex.functions.Function
;
import
okhttp3.RequestBody
;
import
retrofit2.Retrofit
;
/**
...
...
@@ -91,7 +98,7 @@ public class MealStandModel extends BaseModel implements MealStandContract.Model
@Override
public
List
<
Modifier
>
queryDB_ModifierList
(
long
fid
,
int
mode
)
{
ModifierDaoUtils
daoUtils
=
new
ModifierDaoUtils
(
mApplication
);
return
MealStyleUtils
.
assemblyModifiersColor
(
daoUtils
.
queryModifiersByFid
(
fid
,
mode
))
;
return
MealStyleUtils
.
assemblyModifiersColor
(
daoUtils
.
queryModifiersByFid
(
fid
,
mode
));
}
@Override
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/model/bean/request/AddOrderRequest.java
View file @
d088025b
...
...
@@ -27,19 +27,10 @@ public class AddOrderRequest {
private
long
tableId
;
private
String
tableNumber
;
/**
* 合計金額
*/
/**
* 服務費
*/
/**
* 賬單小數
*/
private
Double
rounding
;
/**
* 總金額
*/
private
List
<
Long
>
deleteDiscountIds
;
private
List
<
OrderDiscountRequest
>
discountDetails
;
private
Map
<
String
,
List
<
OrderResponse
.
OrderDetailsBean
>>
maps
;
private
List
<
DeleteOrderRequest
>
deleteOrders
;
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/model/utils/MealConditionFilterUtils.java
View file @
d088025b
...
...
@@ -27,15 +27,17 @@ public class MealConditionFilterUtils {
* @return
*/
public
static
List
<
Food
>
foodConditionFilter
(
List
<
Food
>
foodList
,
int
summary
)
{
String
strSummary
=
String
.
valueOf
(
summary
);
List
<
Food
>
newFoodList
=
new
ArrayList
<>();
for
(
Food
food
:
foodList
)
{
String
foodSummary
=
food
.
getFoodSummary
();
if
(!
TextUtils
.
isEmpty
(
foodSummary
))
{
String
[]
summarys
=
foodSummary
.
split
(
","
);
for
(
String
item
:
summarys
)
{
if
(
item
.
equals
(
strSummary
))
{
newFoodList
.
add
(
food
);
if
(
foodList
==
null
||
foodList
.
size
()
>
0
)
{
String
strSummary
=
String
.
valueOf
(
summary
);
for
(
Food
food
:
foodList
)
{
String
foodSummary
=
food
.
getFoodSummary
();
if
(!
TextUtils
.
isEmpty
(
foodSummary
))
{
String
[]
summarys
=
foodSummary
.
split
(
","
);
for
(
String
item
:
summarys
)
{
if
(
item
.
equals
(
strSummary
))
{
newFoodList
.
add
(
food
);
}
}
}
}
...
...
@@ -51,15 +53,17 @@ public class MealConditionFilterUtils {
* @return
*/
public
static
List
<
ComboItem
>
comboConditionFilter
(
List
<
ComboItem
>
comboItemList
,
int
summary
)
{
String
strSummary
=
String
.
valueOf
(
summary
);
List
<
ComboItem
>
newComboItemList
=
new
ArrayList
<>();
for
(
ComboItem
comboItem
:
comboItemList
)
{
String
foodSummary
=
comboItem
.
getFoodSummary
();
if
(!
TextUtils
.
isEmpty
(
foodSummary
))
{
String
[]
summarys
=
foodSummary
.
split
(
","
);
for
(
String
item
:
summarys
)
{
if
(
item
.
equals
(
strSummary
))
{
newComboItemList
.
add
(
comboItem
);
if
(
newComboItemList
==
null
||
newComboItemList
.
size
()
>
0
)
{
String
strSummary
=
String
.
valueOf
(
summary
);
for
(
ComboItem
comboItem
:
comboItemList
)
{
String
foodSummary
=
comboItem
.
getFoodSummary
();
if
(!
TextUtils
.
isEmpty
(
foodSummary
))
{
String
[]
summarys
=
foodSummary
.
split
(
","
);
for
(
String
item
:
summarys
)
{
if
(
item
.
equals
(
strSummary
))
{
newComboItemList
.
add
(
comboItem
);
}
}
}
}
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/BaseOrderPresenter.java
View file @
d088025b
...
...
@@ -320,6 +320,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
//整單折扣
Discount
discount
=
new
Discount
();
discount
.
setId
(
orderDiscount
.
getDiscountId
());
discount
.
setDiscountRecordId
(
orderDiscount
.
getId
());
discount
.
setType
(
orderDiscount
.
getDiscountType
());
discount
.
setRemark
(
orderDiscount
.
getRemark
());
discount
.
setDiscountValue
(
orderDiscount
.
getDiscountValue
());
...
...
@@ -336,6 +337,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
LoganManager
.
w_tableMode
(
TAG
,
"已下單優惠券折扣金額="
+
orderDiscount
.
getDiscountAmount
());
//優惠券折扣
CouponDiscountBean
couponDiscount
=
new
CouponDiscountBean
();
couponDiscount
.
setDiscountRecordId
(
orderDiscount
.
getId
());
couponDiscount
.
setCouponTypeName1
(
orderDiscount
.
getRemark
());
couponDiscount
.
setCouponTypeName2
(
orderDiscount
.
getRemark2
());
couponDiscount
.
setCouponTypeName3
(
orderDiscount
.
getRemark3
());
...
...
@@ -1013,7 +1015,9 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
if
(
mDoshokuOrder
.
getDeleteMealOrders
()
!=
null
)
{
request
.
setDeleteOrders
(
mDoshokuOrder
.
getDeleteMealOrders
());
}
if
(
mDoshokuOrder
.
getDeleteDiscountIds
()
!=
null
)
{
request
.
setDeleteDiscountIds
(
mDoshokuOrder
.
getDeleteDiscountIds
());
}
Double
rounding
=
getRounding
();
request
.
setRounding
(
rounding
!=
null
?
rounding
:
0
);
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/MealStandPresenter.java
View file @
d088025b
...
...
@@ -212,13 +212,16 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
public
void
initMealData
()
{
long
startTime
=
System
.
currentTimeMillis
();
List
<
Food
>
foodGroupList
=
mModel
.
queryDB_FoodGroupList
(
BaseOrder
.
orderType
);
long
endTime
=
System
.
currentTimeMillis
();
LoganManager
.
w_tableMode
(
TAG
,
"queryDB_FoodGroupList執行時間-》"
+
(
endTime
-
startTime
));
if
(
foodGroupList
!=
null
&&
foodGroupList
.
size
()
>
0
)
{
// for (Food foodGroup: foodGroupList) {
// foodGroup.setColorBean(foodGroup.getColorBean());
// }
mFoodGroupList
.
addAll
(
foodGroupList
);
Food
defalutFoodGroup
=
getDefalutFoodGroup
(
mFoodGroupList
);
...
...
@@ -327,8 +330,13 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
changedMealByParentId
(
datasBean
.
getId
());
}
else
{
mCurrentOrderDetailBean
=
OrderDetail
.
foodTransOrderDetails
(
datasBean
,
1
);
//加載套餐食品
loadComboData
(
mCurrentOrderDetailBean
,
false
);
if
(
datasBean
.
getCustomType
()
==
null
)
{
//自定義食品
mRootView
.
setCustomFoodDialog
(
Food
.
CUSTOM_TYPE_100
,
mCurrentOrderDetailBean
);
}
else
{
//加載套餐食品
loadComboData
(
mCurrentOrderDetailBean
,
false
);
}
}
}
});
...
...
@@ -418,7 +426,6 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
});
}
private
void
addFoodItemBefore
(
OrderDetail
datasBean
)
{
int
addPosition
=
addFoodItem
(
datasBean
);
//这里主食品作为选中主体
...
...
@@ -561,7 +568,6 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
}
}
@Override
public
void
onError
(
Throwable
e
)
{
}
...
...
@@ -584,19 +590,22 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
if
(
IActivity
.
getCurrentViewMode
()
!=
MealConstant
.
fine_ViewMode
&&
isSelectedMeal
||
autoMod
)
{
mRootView
.
showViewModeVisibility
(
MealConstant
.
combo_ViewMode
);
}
if
(!
RvMealClicked
)
{
//新增食品
addFoodItemBefore
(
mCurrentOrderDetailBean
);
//更新沽清食品數量
updateFoodSoldoutCtrData
();
//更新賬單金額
updateBillInfo
();
}
updateOrderFoodNumber
();
toAddFoodItem
(
mCurrentOrderDetailBean
);
}
});
}
public
void
toAddFoodItem
(
OrderDetail
foodItem
)
{
if
(!
RvMealClicked
)
{
//新增食品
addFoodItemBefore
(
foodItem
);
//更新沽清食品數量
updateFoodSoldoutCtrData
();
//更新賬單金額
updateBillInfo
();
}
updateOrderFoodNumber
();
}
/**
* 裁減掉已超出的細項
...
...
@@ -1185,12 +1194,33 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
}
public
void
changedMealByParentId
(
long
parentId
)
{
long
startTime
=
System
.
currentTimeMillis
();
List
<
Food
>
foodList
=
mModel
.
queryDB_FoodList
(
parentId
,
BaseOrder
.
orderType
);
long
endTime
=
System
.
currentTimeMillis
();
LoganManager
.
w_tableMode
(
TAG
,
"queryDB_FoodList執行時間-》"
+
(
endTime
-
startTime
));
mFoodAdapter
.
resetSelect
(-
1
,
null
);
if
(
foodList
!=
null
)
{
updateFoodData
(
foodList
,
parentId
);
}
mRootView
.
showViewModeVisibility
(
MealConstant
.
food_ViewMode
,
MealConstant
.
food_group_ViewMode
);
// .subscribeOn(Schedulers.io())
// .subscribeOn(AndroidSchedulers.mainThread())
// .observeOn(AndroidSchedulers.mainThread())
// .compose(RxLifecycleUtils.bindToLifecycle(mRootView))
// .subscribe(new ErrorHandleSubscriber<List<Food>>(mErrorHandler) {
//
// @Override
// public void onNext(@NonNull List<Food> foodList) {
// mFoodAdapter.resetSelect(-1, null);
// if (foodList != null) {
// updateFoodData(foodList, parentId);
// }
// mRootView.showViewModeVisibility(MealConstant.food_ViewMode, MealConstant.food_group_ViewMode);
// }
// });
}
/**
...
...
@@ -1821,10 +1851,6 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
* @param parentId
*/
private
void
updateFoodData
(
List
<
Food
>
foodList
,
long
parentId
)
{
for
(
Food
food
:
foodList
)
{
ColorBean
colorBean
=
food
.
getColorBean
();
int
i
=
0
;
}
setTopId
(
foodList
,
parentId
);
setFoodComboListStatus
(
foodList
);
mFoodList
.
clear
();
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/OrderContentPresenter.java
View file @
d088025b
...
...
@@ -29,6 +29,8 @@ 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.NomalDiscount
;
import
com.gingersoft.gsa.cloud.order.order.BaseOrder
;
import
com.gingersoft.gsa.cloud.order.order.DoshokuOrder
;
...
...
@@ -175,7 +177,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
@Override
public
void
onItemClick
(
View
v
,
Function
function
)
{
LoganManager
.
w_tableMode
(
TAG
,
LoganManager
.
EVENT_CLICK
,
function
.
getResName
());
LoganManager
.
w_tableMode
(
TAG
,
LoganManager
.
EVENT_CLICK
,
function
.
getResName
());
mRootView
.
recordOperat
(
true
);
...
...
@@ -237,7 +239,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
@Override
public
boolean
onItemLongClick
(
View
v
,
Function
datasBean
)
{
LoganManager
.
w_tableMode
(
TAG
,
LoganManager
.
EVENT_LONG_CLICK
,
datasBean
.
getResName
());
LoganManager
.
w_tableMode
(
TAG
,
LoganManager
.
EVENT_LONG_CLICK
,
datasBean
.
getResName
());
if
(
datasBean
.
getResName
().
equals
(
"印單"
)
||
datasBean
.
getResName
().
equals
(
"送單"
))
{
PrinterUtils
.
switchPrintMethod
(
IActivity
,
datasBean
,
mOrderTopFunctionAdapter
);
}
...
...
@@ -253,11 +255,29 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
@Override
public
void
onItemDeleteClick
(
BillItem
datasBean
,
int
position
)
{
addDeleteDiscountIdByType
(
datasBean
);
removeBillItemByPosition
(
position
);
}
});
}
/**
* 跟进折扣类型将Id加入到删除列表,注:会员折扣不可删除
*
* @param item
*/
private
void
addDeleteDiscountIdByType
(
BillItem
item
)
{
if
(
item
instanceof
DiscountItem
)
{
if
(
item
.
getType
()
==
BillItem
.
NOMAL_DISCOUNT_TYPE
)
{
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
();
mDoshokuOrder
.
addDeleteDiscountId
(
couponDiscount
.
getCouponDiscountId
());
}
}
}
public
void
initTopFunctionData
()
{
if
(
mFunctionList
.
size
()
>
0
)
{
mFunctionList
.
clear
();
...
...
@@ -404,7 +424,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
.
setActionName
(
"printActivity"
)
.
addParam
(
PrintConstans
.
PRINT_TYPE
,
PrintConstans
.
PRINT_SERVE
)
.
addParam
(
PrintConstans
.
PRINT_CONTENT
,
printContent
)
.
addParam
(
PrintConstans
.
PRINT_ORDER_NO
,
DoshokuOrder
.
getInstance
().
getOrderNo
())
.
addParam
(
PrintConstans
.
PRINT_ORDER_NO
,
DoshokuOrder
.
getInstance
().
getOrderNo
())
.
build
()
.
callAsyncCallbackOnMainThread
((
cc
,
result
)
->
{
if
(
result
.
isSuccess
())
{
...
...
@@ -451,7 +471,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
CC
.
obtainBuilder
(
ComponentName
.
COMPONENT_PRINT
)
.
addParam
(
PrintConstans
.
PRINT_TYPE
,
PrintConstans
.
PRINT_SLIP
)
//印單
.
addParam
(
PrintConstans
.
PRINT_CONTENT
,
printContent
)
.
addParam
(
PrintConstans
.
PRINT_ORDER_NO
,
DoshokuOrder
.
getInstance
().
getOrderNo
())
.
addParam
(
PrintConstans
.
PRINT_ORDER_NO
,
DoshokuOrder
.
getInstance
().
getOrderNo
())
.
setActionName
(
"printActivity"
)
.
build
()
.
callAsyncCallbackOnMainThread
((
cc
,
result
)
->
{
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/OrderPayPresenter.java
View file @
d088025b
...
...
@@ -239,6 +239,8 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
}
whetherFreeService
=
payMethod
.
getWhetherFreeService
();
orderPay
.
setAmount
(
payMethod
.
getPayMoney
());
orderPay
.
setWhetherReportCount
(
payMethod
.
getWhetherReportCount
());
orderPay
.
setPayName
(
payMethod
.
getPayName
());
payRequest
.
getOrderPays
().
add
(
orderPay
);
}
payRequest
.
setWhetherFreeService
(
whetherFreeService
);
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/activity/MealStandActivity.java
View file @
d088025b
...
...
@@ -6,15 +6,19 @@ import android.graphics.Color;
import
android.os.Build
;
import
android.os.Bundle
;
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
;
...
...
@@ -65,12 +69,14 @@ 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.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.FineItemAllFragment
;
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
;
...
...
@@ -86,8 +92,12 @@ 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
;
...
...
@@ -1401,6 +1411,20 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
}
@Override
public
void
setCustomFoodDialog
(
int
customType
,
OrderDetail
foodItem
)
{
new
CustomFoodDialog
(
mContext
,
customType
)
.
create
(
R
.
style
.
MyEditDialogTheme
)
.
setOnEditListener
((
dialog
,
name
,
money
)
->
{
dialog
.
dismiss
();
foodItem
.
setProductName
(
name
);
foodItem
.
setUnit_price
(
Double
.
parseDouble
(
money
));
foodItem
.
setPrice
(
foodItem
.
getUnit_price
());
mPresenter
.
toAddFoodItem
(
foodItem
);
})
.
show
();
}
@Override
public
void
showBtnMealModifyRestoreVisibility
(
boolean
show
)
{
btn_meal_modify_restore
.
setVisibility
(
show
?
View
.
VISIBLE
:
View
.
GONE
);
}
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/adapter/meal/FineItemOneAdapter.java
View file @
d088025b
...
...
@@ -9,9 +9,7 @@ import android.view.ViewGroup;
import
android.widget.ImageView
;
import
android.widget.RelativeLayout
;
import
android.widget.TextView
;
import
androidx.recyclerview.widget.GridLayoutManager
;
import
com.gingersoft.gsa.cloud.app.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.database.bean.ColorBean
;
import
com.gingersoft.gsa.cloud.database.bean.Modifier
;
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/widget/CustomFoodDialog.java
0 → 100644
View file @
d088025b
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
mvp
.
ui
.
widget
;
import
android.app.Dialog
;
import
android.content.Context
;
import
android.content.DialogInterface
;
import
android.os.MessageQueue
;
import
android.text.Editable
;
import
android.text.TextWatcher
;
import
android.view.ViewGroup
;
import
android.view.ViewStub
;
import
android.widget.Button
;
import
android.widget.EditText
;
import
android.widget.FrameLayout
;
import
android.widget.LinearLayout
;
import
android.widget.TextView
;
import
androidx.constraintlayout.widget.ConstraintLayout
;
import
com.gingersoft.gsa.cloud.app.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.common.utils.LanguageUtils
;
import
com.gingersoft.gsa.cloud.database.bean.Food
;
import
com.gingersoft.gsa.cloud.table.R
;
import
com.jess.arms.utils.ArmsUtils
;
import
com.lxj.xpopup.util.KeyboardUtils
;
import
com.qmuiteam.qmui.layout.QMUILinearLayout
;
import
com.qmuiteam.qmui.util.QMUIDisplayHelper
;
import
com.qmuiteam.qmui.widget.dialog.QMUIDialog
;
import
com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
;
/**
* @作者: bin
* @創建時間: 2021-03-11 17:38
* @更新時間: 2021-03-11 17:38
* @描述:
*/
public
class
CustomFoodDialog
{
private
Context
mContext
;
private
QMUIDialog
customDialog
;
private
EditText
ed_name
,
ed_money
;
private
int
mRadius
;
//0:value焦点、1:money焦点
private
int
currFocus
=
0
;
//0:清除、1:返回
private
int
clearOrReturn
=
1
;
private
int
mCustomType
;
public
CustomFoodDialog
(
Context
context
,
int
customType
)
{
this
.
mContext
=
context
;
this
.
mCustomType
=
customType
;
mRadius
=
QMUIDisplayHelper
.
dp2px
(
mContext
,
8
);
}
public
CustomFoodDialog
create
(
int
style
)
{
customDialog
=
new
QMUIDialog
.
CustomDialogBuilder
(
mContext
)
.
setLayout
(
R
.
layout
.
meal_dialog_custom_food
)
.
create
(
style
);
buildViews
();
return
this
;
}
public
void
show
()
{
if
(
customDialog
!=
null
)
{
customDialog
.
show
();
}
}
private
void
buildViews
()
{
QMUILinearLayout
llContainer
=
customDialog
.
findViewById
(
R
.
id
.
lLayout_bg
);
ViewStub
vs_name
=
customDialog
.
findViewById
(
R
.
id
.
vs_name
);
ViewStub
vs_money
=
customDialog
.
findViewById
(
R
.
id
.
vs_money
);
QMUIRoundButton
btn_ok
=
customDialog
.
findViewById
(
R
.
id
.
btn_ok
);
QMUIRoundButton
btn_clear_or_return
=
customDialog
.
findViewById
(
R
.
id
.
btn_clear_or_return
);
float
mShadowAlpha
=
0.25f
;
int
mShadowElevationDp
=
14
;
llContainer
.
setRadiusAndShadow
(
mRadius
,
QMUIDisplayHelper
.
dp2px
(
mContext
,
mShadowElevationDp
),
mShadowAlpha
);
llContainer
.
setLayoutParams
(
new
ConstraintLayout
.
LayoutParams
(
ViewGroup
.
LayoutParams
.
MATCH_PARENT
,
ViewGroup
.
LayoutParams
.
WRAP_CONTENT
));
if
(
mCustomType
==
Food
.
CUSTOM_TYPE_101
)
{
vs_name
.
inflate
();
TextView
tv_name
=
customDialog
.
findViewById
(
R
.
id
.
tv_name
);
ed_name
=
customDialog
.
findViewById
(
R
.
id
.
ed_name
);
tv_name
.
setText
(
"名稱"
);
setOnFocusChangeListener
(
ed_name
);
addTextChangedListener
(
ed_name
,
btn_clear_or_return
);
}
else
if
(
mCustomType
==
Food
.
CUSTOM_TYPE_102
)
{
vs_money
.
inflate
();
TextView
tv_money
=
customDialog
.
findViewById
(
R
.
id
.
tv_money
);
ed_money
=
customDialog
.
findViewById
(
R
.
id
.
et_money
);
tv_money
.
setText
(
"金額"
);
setOnFocusChangeListener
(
ed_money
);
addTextChangedListener
(
ed_money
,
btn_clear_or_return
);
}
else
{
vs_name
.
inflate
();
vs_money
.
inflate
();
TextView
tv_name
=
customDialog
.
findViewById
(
R
.
id
.
tv_name
);
TextView
tv_money
=
customDialog
.
findViewById
(
R
.
id
.
tv_money
);
ed_name
=
customDialog
.
findViewById
(
R
.
id
.
ed_name
);
ed_money
=
customDialog
.
findViewById
(
R
.
id
.
et_money
);
tv_name
.
setText
(
"名稱"
);
tv_money
.
setText
(
"金額"
);
setOnFocusChangeListener
(
ed_name
);
setOnFocusChangeListener
(
ed_money
);
addTextChangedListener
(
ed_name
,
btn_clear_or_return
);
addTextChangedListener
(
ed_money
,
btn_clear_or_return
);
}
btn_ok
.
setOnClickListener
((
view
)
->
{
if
(
ed_name
!=
null
)
{
KeyboardUtils
.
hideSoftInput
(
ed_name
);
}
if
(
ed_money
!=
null
)
{
KeyboardUtils
.
hideSoftInput
(
ed_money
);
}
String
name
=
getTvNameText
();
String
money
=
getTvMoneyText
();
if
(
onEditListener
!=
null
)
{
onEditListener
.
onInput
(
customDialog
,
name
,
money
);
}
});
btn_clear_or_return
.
setOnClickListener
((
view
)
->
{
if
(
clearOrReturn
==
1
)
{
customDialog
.
cancel
();
}
else
{
//检查焦点
String
s
;
switch
(
currFocus
)
{
case
0
:
s
=
ed_name
.
getText
().
toString
();
if
(
s
.
length
()
>
0
)
{
s
=
s
.
substring
(
0
,
s
.
length
()
-
1
);
ed_name
.
setText
(
s
);
ed_name
.
setSelection
(
s
.
length
());
}
break
;
case
1
:
s
=
ed_money
.
getText
().
toString
();
if
(
s
.
length
()
>
0
)
{
s
=
s
.
substring
(
0
,
s
.
length
()
-
1
);
ed_money
.
setText
(
s
);
ed_money
.
setSelection
(
s
.
length
());
}
break
;
}
}
});
}
private
void
setOnFocusChangeListener
(
EditText
editText
)
{
editText
.
setOnFocusChangeListener
((
v
,
hasFocus
)
->
{
if
(
hasFocus
)
{
if
(
editText
.
getId
()
==
R
.
id
.
ed_name
)
{
currFocus
=
0
;
}
else
{
currFocus
=
1
;
}
}
});
}
private
void
addTextChangedListener
(
EditText
editText
,
Button
btn_clear_or_return
)
{
editText
.
addTextChangedListener
(
new
TextWatcher
()
{
@Override
public
void
beforeTextChanged
(
CharSequence
s
,
int
start
,
int
count
,
int
after
)
{
}
@Override
public
void
onTextChanged
(
CharSequence
s
,
int
start
,
int
before
,
int
count
)
{
if
(
s
.
length
()
>
0
)
{
clearOrReturn
=
0
;
}
else
{
clearOrReturn
=
1
;
}
}
@Override
public
void
afterTextChanged
(
Editable
s
)
{
if
(
clearOrReturn
==
0
)
{
btn_clear_or_return
.
setText
(
LanguageUtils
.
get_language_system
(
GsaCloudApplication
.
getAppContext
(),
"Meal.funcMoney.clear"
,
"clear"
));
}
else
{
btn_clear_or_return
.
setText
(
LanguageUtils
.
get_language_system
(
GsaCloudApplication
.
getAppContext
(),
"Return"
,
"return"
));
}
}
});
}
private
String
getTvNameText
()
{
return
ed_name
!=
null
?
ed_name
.
getText
().
toString
()
:
null
;
}
private
String
getTvMoneyText
()
{
return
ed_money
!=
null
?
ed_money
.
getText
().
toString
()
:
null
;
}
private
OnEditListener
onEditListener
;
public
CustomFoodDialog
setOnEditListener
(
OnEditListener
onEditListener
)
{
this
.
onEditListener
=
onEditListener
;
return
this
;
}
public
interface
OnEditListener
{
void
onInput
(
Dialog
dialog
,
String
name
,
String
money
);
}
}
component-table/src/main/res/layout/meal_dialog_custom_food.xml
0 → 100644
View file @
d088025b
<?xml version="1.0" encoding="utf-8"?>
<com.qmuiteam.qmui.layout.QMUILinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
android:id=
"@+id/lLayout_bg"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:background=
"@color/theme_white_color"
android:orientation=
"vertical"
android:padding=
"@dimen/normal_space"
>
<TextView
android:layout_width=
"match_parent"
android:layout_height=
"@dimen/head_height"
android:gravity=
"center"
android:text=
"自定義食品"
android:textColor=
"@color/theme_text_color"
android:textSize=
"@dimen/sp_18"
/>
<ViewStub
android:id=
"@+id/vs_name"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout=
"@layout/meal_layout_custom_food_name"
/>
<ViewStub
android:id=
"@+id/vs_money"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout=
"@layout/meal_layout_custom_food_money"
/>
<LinearLayout
android:id=
"@+id/btns"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/normal_space"
>
<com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
android:id=
"@+id/btn_ok"
android:layout_width=
"0dp"
android:layout_height=
"@dimen/button_height"
android:layout_marginRight=
"@dimen/normal_space5"
android:layout_weight=
"1"
android:gravity=
"center"
android:text=
"確認"
android:textColor=
"@color/theme_white_color"
android:textSize=
"@dimen/text_size_default"
app:qmui_backgroundColor=
"@color/theme_color"
app:qmui_radius=
"@dimen/dp_5"
/>
<com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
android:id=
"@+id/btn_clear_or_return"
android:layout_width=
"0dp"
android:layout_height=
"@dimen/button_height"
android:layout_marginRight=
"@dimen/normal_space5"
android:layout_weight=
"1"
android:gravity=
"center"
android:text=
"返回"
android:textColor=
"@color/theme_black"
android:textSize=
"@dimen/text_size_default"
app:qmui_backgroundColor=
"@color/theme_hint_color"
app:qmui_borderColor=
"@color/theme_hint_color"
app:qmui_radius=
"@dimen/dp_5"
/>
</LinearLayout>
</com.qmuiteam.qmui.layout.QMUILinearLayout>
\ No newline at end of file
component-table/src/main/res/layout/meal_layout_custom_food_money.xml
0 → 100644
View file @
d088025b
<?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_money"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:gravity=
"center_vertical"
android:orientation=
"horizontal"
>
<TextView
android:id=
"@+id/tv_money"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"TextView"
android:textColor=
"@color/black"
android:textSize=
"@dimen/sp_16"
/>
<com.rengwuxian.materialedittext.MaterialEditText
android:id=
"@+id/et_money"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_margin=
"@dimen/normal_space"
android:layout_weight=
"1"
android:background=
"@null"
android:hint=
"請輸入金額"
android:inputType=
"numberDecimal"
android:paddingLeft=
"@dimen/dp_10"
android:paddingRight=
"@dimen/dp_10"
android:singleLine=
"true"
android:textColor=
"@color/normal_color"
android:textColorHint=
"@color/hint_color"
android:textSize=
"@dimen/sp_16"
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"
/>
</LinearLayout>
\ No newline at end of file
component-table/src/main/res/layout/meal_layout_custom_food_name.xml
0 → 100644
View file @
d088025b
<?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_name"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:gravity=
"center_vertical"
android:orientation=
"horizontal"
>
<TextView
android:id=
"@+id/tv_name"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"TextView"
android:textColor=
"@color/black"
android:textSize=
"@dimen/sp_16"
/>
<com.rengwuxian.materialedittext.MaterialEditText
android:id=
"@+id/ed_name"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:background=
"@null"
android:hint=
"請輸入名稱"
android:layout_margin=
"@dimen/normal_space"
android:paddingLeft=
"@dimen/dp_10"
android:paddingRight=
"@dimen/dp_10"
android:singleLine=
"true"
android:textColor=
"@color/normal_color"
android:textColorHint=
"@color/hint_color"
android:textSize=
"@dimen/sp_16"
app:met_autoValidate=
"true"
app:met_clearButton=
"true"
app:met_floatingLabel=
"highlight"
app:met_iconPadding=
"2dp"
app:met_baseColor=
"@color/theme_black"
app:met_primaryColor=
"@color/theme_color"
app:met_singleLineEllipsis=
"false"
/>
</LinearLayout>
\ No newline at end of file
config.gradle
View file @
d088025b
...
...
@@ -21,7 +21,7 @@ ext {
rxlifecycle2SdkVersion
:
"2.2.1"
,
espressoSdkVersion
:
"3.0.1"
,
fragmentationVersion
:
"1.3.8"
,
canarySdkVersion
:
"
1.5.4
"
,
canarySdkVersion
:
"
2.2
"
,
]
buildType
=
[
...
...
@@ -126,7 +126,7 @@ ext {
"timber"
:
"com.jakewharton.timber:timber:4.6.0"
,
"logger"
:
"com.orhanobut:logger:2.1.1"
,
"canary-debug"
:
"com.squareup.leakcanary:leakcanary-android:${version["
canarySdkVersion
"]}"
,
"canary-release"
:
"com.squareup.leakcanary:leakcanary-android-no-op:
${version["
canarySdkVersion
"]}
"
,
"canary-release"
:
"com.squareup.leakcanary:leakcanary-android-no-op:
1.6.3
"
,
"umeng-analytics"
:
"com.umeng.analytics:analytics:6.0.1"
,
// QMUI
"qmui"
:
"com.qmuiteam:qmui:2.0.0-alpha03"
,
...
...
library-base/src/main/java/com/jess/arms/base/delegate/AppDelegate.java
View file @
d088025b
...
...
@@ -27,6 +27,8 @@ import com.jess.arms.base.BaseApplication;
import
com.jess.arms.di.component.AppComponent
;
import
com.jess.arms.di.component.DaggerAppComponent
;
import
com.jess.arms.di.module.GlobalConfigModule
;
import
com.jess.arms.http.imageloader.glide.GlideArms
;
import
com.jess.arms.http.imageloader.glide.ImageConfigImpl
;
import
com.jess.arms.integration.ConfigModule
;
import
com.jess.arms.integration.ManifestParser
;
import
com.jess.arms.utils.ArmsUtils
;
...
...
@@ -258,6 +260,13 @@ public class AppDelegate implements App, AppLifecycles {
//系统正运行与低内存的状态并且你的进程正处于 LRU 列表中最容易被杀掉的位置, 你应该释放任何不影响你的 App 恢复状态的资源
//低于 API 14 的 App 可以使用 onLowMemory 回调
// case TRIM_MEMORY_COMPLETE:
//在 App 被置换到后台的时候,清理图片请求框架的内存缓存
if
(
level
==
TRIM_MEMORY_UI_HIDDEN
)
{
mAppComponent
.
imageLoader
().
clear
(
mApplication
,
ImageConfigImpl
.
builder
().
isClearMemory
(
true
).
build
());
}
//交给 Glide 处理内存情况
GlideArms
.
get
(
mApplication
).
trimMemory
(
level
);
}
@Override
...
...
@@ -274,6 +283,8 @@ public class AppDelegate implements App, AppLifecycles {
@Override
public
void
onLowMemory
()
{
//系统正运行与低内存的状态并且你的进程正处于 LRU 列表中最容易被杀掉的位置, 你应该释放任何不影响你的 App 恢复状态的资源
mAppComponent
.
imageLoader
().
clear
(
mApplication
,
ImageConfigImpl
.
builder
().
isClearMemory
(
true
).
build
());
}
}
...
...
library-base/src/main/java/com/jess/arms/di/module/GlobalConfigModule.java
View file @
d088025b
...
...
@@ -26,6 +26,7 @@ import com.jess.arms.http.log.FormatPrinter;
import
com.jess.arms.http.log.RequestInterceptor
;
import
com.jess.arms.http.imageloader.BaseImageLoaderStrategy
;
import
com.jess.arms.http.imageloader.glide.GlideImageLoaderStrategy
;
import
com.jess.arms.integration.IRepositoryManager
;
import
com.jess.arms.integration.cache.Cache
;
import
com.jess.arms.integration.cache.CacheType
;
import
com.jess.arms.integration.cache.LruCache
;
...
...
@@ -72,6 +73,7 @@ public class GlobalConfigModule {
private
RequestInterceptor
.
Level
mPrintHttpLogLevel
;
private
FormatPrinter
mFormatPrinter
;
private
Cache
.
Factory
mCacheFactory
;
private
IRepositoryManager
.
ObtainServiceDelegate
mObtainServiceDelegate
;
private
GlobalConfigModule
(
Builder
builder
)
{
this
.
mApiUrl
=
builder
.
apiUrl
;
...
...
@@ -88,6 +90,7 @@ public class GlobalConfigModule {
this
.
mPrintHttpLogLevel
=
builder
.
printHttpLogLevel
;
this
.
mFormatPrinter
=
builder
.
formatPrinter
;
this
.
mCacheFactory
=
builder
.
cacheFactory
;
this
.
mObtainServiceDelegate
=
builder
.
obtainServiceDelegate
;
}
public
static
Builder
builder
()
{
...
...
@@ -222,6 +225,12 @@ public class GlobalConfigModule {
}
:
mCacheFactory
;
}
@Singleton
@Provides
@Nullable
IRepositoryManager
.
ObtainServiceDelegate
provideObtainServiceDelegate
()
{
return
mObtainServiceDelegate
;
}
public
static
final
class
Builder
{
private
HttpUrl
apiUrl
;
...
...
@@ -238,6 +247,7 @@ public class GlobalConfigModule {
private
RequestInterceptor
.
Level
printHttpLogLevel
;
private
FormatPrinter
formatPrinter
;
private
Cache
.
Factory
cacheFactory
;
private
IRepositoryManager
.
ObtainServiceDelegate
obtainServiceDelegate
;
private
Builder
()
{
}
...
...
@@ -319,6 +329,11 @@ public class GlobalConfigModule {
return
this
;
}
public
Builder
obtainServiceDelegate
(
IRepositoryManager
.
ObtainServiceDelegate
obtainServiceDelegate
)
{
this
.
obtainServiceDelegate
=
obtainServiceDelegate
;
return
this
;
}
public
GlobalConfigModule
build
()
{
return
new
GlobalConfigModule
(
this
);
}
...
...
library-base/src/main/java/com/jess/arms/integration/IRepositoryManager.java
View file @
d088025b
...
...
@@ -17,8 +17,12 @@ package com.jess.arms.integration;
import
android.content.Context
;
import
androidx.annotation.Nullable
;
import
com.jess.arms.mvp.IModel
;
import
retrofit2.Retrofit
;
/**
* ================================================
* 用来管理网络请求层,以及数据缓存层,以后可能添加数据库请求层
...
...
@@ -57,4 +61,9 @@ public interface IRepositoryManager {
Context
getContext
();
interface
ObtainServiceDelegate
{
@Nullable
<
T
>
T
createRetrofitService
(
Retrofit
retrofit
,
Class
<
T
>
serviceClass
);
}
}
library-base/src/main/java/com/jess/arms/integration/RepositoryManager.java
View file @
d088025b
...
...
@@ -18,11 +18,15 @@ package com.jess.arms.integration;
import
android.app.Application
;
import
android.content.Context
;
import
androidx.annotation.Nullable
;
import
com.jess.arms.integration.cache.Cache
;
import
com.jess.arms.integration.cache.CacheType
;
import
com.jess.arms.mvp.IModel
;
import
com.jess.arms.utils.Preconditions
;
import
java.lang.reflect.Proxy
;
import
javax.inject.Inject
;
import
javax.inject.Singleton
;
...
...
@@ -51,6 +55,9 @@ public class RepositoryManager implements IRepositoryManager {
Application
mApplication
;
@Inject
Cache
.
Factory
mCachefactory
;
@Inject
@Nullable
ObtainServiceDelegate
mObtainServiceDelegate
;
private
Cache
<
String
,
Object
>
mRetrofitServiceCache
;
private
Cache
<
String
,
Object
>
mCacheServiceCache
;
...
...
@@ -67,12 +74,21 @@ public class RepositoryManager implements IRepositoryManager {
*/
@Override
public
synchronized
<
T
>
T
obtainRetrofitService
(
Class
<
T
>
service
)
{
if
(
mRetrofitServiceCache
==
null
)
if
(
mRetrofitServiceCache
==
null
)
{
mRetrofitServiceCache
=
mCachefactory
.
build
(
CacheType
.
RETROFIT_SERVICE_CACHE
);
}
Preconditions
.
checkNotNull
(
mRetrofitServiceCache
,
"Cannot return null from a Cache.Factory#build(int) method"
);
T
retrofitService
=
(
T
)
mRetrofitServiceCache
.
get
(
service
.
getCanonicalName
());
if
(
retrofitService
==
null
)
{
retrofitService
=
mRetrofit
.
get
().
create
(
service
);
if
(
mObtainServiceDelegate
!=
null
)
{
retrofitService
=
mObtainServiceDelegate
.
createRetrofitService
(
mRetrofit
.
get
(),
service
);
}
if
(
retrofitService
==
null
)
{
retrofitService
=
(
T
)
Proxy
.
newProxyInstance
(
service
.
getClassLoader
(),
new
Class
[]{
service
},
new
RetrofitServiceProxyHandler
(
mRetrofit
.
get
(),
service
));
}
mRetrofitServiceCache
.
put
(
service
.
getCanonicalName
(),
retrofitService
);
}
return
retrofitService
;
...
...
library-base/src/main/java/com/jess/arms/integration/RetrofitServiceProxyHandler.java
0 → 100644
View file @
d088025b
package
com
.
jess
.
arms
.
integration
;
import
androidx.annotation.Nullable
;
import
java.lang.reflect.InvocationHandler
;
import
java.lang.reflect.Method
;
import
io.reactivex.Observable
;
import
io.reactivex.Single
;
import
retrofit2.Retrofit
;
public
class
RetrofitServiceProxyHandler
implements
InvocationHandler
{
private
Retrofit
mRetrofit
;
private
Class
<?>
mServiceClass
;
private
Object
mRetrofitService
;
public
RetrofitServiceProxyHandler
(
Retrofit
retrofit
,
Class
<?>
serviceClass
)
{
mRetrofit
=
retrofit
;
mServiceClass
=
serviceClass
;
}
@Override
public
Object
invoke
(
Object
proxy
,
Method
method
,
@Nullable
Object
[]
args
)
throws
Throwable
{
// 根据 https://zhuanlan.zhihu.com/p/40097338 对 Retrofit 进行的优化
if
(
method
.
getReturnType
()
==
Observable
.
class
)
{
// 如果方法返回值是 Observable 的话,则包一层再返回,
// 只包一层 defer 由外部去控制耗时方法以及网络请求所处线程,
// 如此对原项目的影响为 0,且更可控。
return
Observable
.
defer
(()
->
{
// 执行真正的 Retrofit 动态代理的方法
return
(
Observable
)
method
.
invoke
(
getRetrofitService
(),
args
);
});
}
else
if
(
method
.
getReturnType
()
==
Single
.
class
)
{
// 如果方法返回值是 Single 的话,则包一层再返回。
return
Single
.
defer
(()
->
{
// 执行真正的 Retrofit 动态代理的方法
return
(
Single
)
method
.
invoke
(
getRetrofitService
(),
args
);
});
}
// 返回值不是 Observable 或 Single 的话不处理。
return
method
.
invoke
(
getRetrofitService
(),
args
);
}
private
Object
getRetrofitService
()
{
if
(
mRetrofitService
==
null
)
{
mRetrofitService
=
mRetrofit
.
create
(
mServiceClass
);
}
return
mRetrofitService
;
}
}
library-common/src/main/java/com/gingersoft/gsa/cloud/app/GsaCloudApplication.java
View file @
d088025b
...
...
@@ -12,8 +12,10 @@ import androidx.annotation.NonNull;
import
com.billy.cc.core.component.CC
;
import
com.dianping.logan.Logan
;
import
com.dianping.logan.OnLoganProtocolStatus
;
import
com.didichuxing.doraemonkit.DoraemonKit
;
import
com.gingersoft.gsa.cloud.common.BuildConfig
;
import
com.gingersoft.gsa.cloud.common.R
;
import
com.gingersoft.gsa.cloud.common.config.DoraemonKitConfig
;
import
com.gingersoft.gsa.cloud.common.config.LoganConfig
;
import
com.gingersoft.gsa.cloud.common.config.expandconfig.ExpandInfoSetting
;
import
com.gingersoft.gsa.cloud.common.config.expandconfig.FunctionExtendedConfiguration
;
...
...
@@ -185,7 +187,7 @@ public class GsaCloudApplication extends BaseApplication {
* 初始化滴滴開發,測試輔助工具哆啦A夢
*/
private
void
initDoraemonKit
()
{
//
DoraemonKit.install(getAppContext(), DoraemonKitConfig.PRODUCE_ID);
DoraemonKit
.
install
(
getAppContext
(),
DoraemonKitConfig
.
PRODUCE_ID
);
}
/**
...
...
library-common/src/main/java/com/gingersoft/gsa/cloud/common/core/restaurant/RestaurantInfoManager.java
View file @
d088025b
...
...
@@ -13,7 +13,7 @@ import com.gingersoft.gsa.cloud.common.utils.other.SPUtils;
*/
public
class
RestaurantInfoManager
{
private
static
RestaurantInfoManager
sRestaurantInfoManager
=
null
;
private
static
volatile
RestaurantInfoManager
sRestaurantInfoManager
=
null
;
/**
* 品牌信息
...
...
library-common/src/main/java/com/gingersoft/gsa/cloud/common/core/user/UserContext.java
View file @
d088025b
...
...
@@ -20,7 +20,7 @@ import lombok.Setter;
@Setter
public
class
UserContext
{
private
static
UserContext
sUserContextManger
=
null
;
private
static
volatile
UserContext
sUserContextManger
=
null
;
/**
* 用戶狀態
...
...
library-common/src/main/res/values-v21/styles.xml
View file @
d088025b
...
...
@@ -6,6 +6,7 @@
<item
name=
"QMUITopBarStyle"
>
@style/QDTopBar
</item>
<!-- TabItem theme -->
<item
name=
"QMUITabSegmentStyle"
>
@style/QMUITabSegmentStyle
</item>
</style>
<style
name=
"MyCheckbox_style"
>
...
...
library-database/build.gradle
View file @
d088025b
...
...
@@ -51,7 +51,7 @@ android {
/**
* 版本号
*/
schemaVersion
2
3
schemaVersion
2
4
/**
* greendao输出dao的数据库操作实体类文件夹(相对路径 包名+自定义路径名称,包将创建于包名的直接路径下)
*/
...
...
@@ -82,4 +82,9 @@ dependencies {
// 數據庫
implementation
'org.greenrobot:greendao:3.2.2'
implementation
'org.greenrobot:greendao-generator:3.2.2'
//rx
api
rootProject
.
ext
.
dependencies
[
"rxjava2"
]
api
(
rootProject
.
ext
.
dependencies
[
"rxandroid2"
])
{
exclude
module:
'rxjava'
}
}
library-database/src/main/java/com/gingersoft/gsa/cloud/database/bean/Food.java
View file @
d088025b
This diff is collapsed.
Click to expand it.
library-database/src/main/java/com/gingersoft/gsa/cloud/database/greendao/DaoMaster.java
View file @
d088025b
...
...
@@ -14,10 +14,10 @@ import org.greenrobot.greendao.identityscope.IdentityScopeType;
// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
/**
* Master of DAO (schema version 2
3
): knows all DAOs.
* Master of DAO (schema version 2
4
): knows all DAOs.
*/
public
class
DaoMaster
extends
AbstractDaoMaster
{
public
static
final
int
SCHEMA_VERSION
=
2
3
;
public
static
final
int
SCHEMA_VERSION
=
2
4
;
/** Creates underlying database table using DAOs. */
public
static
void
createAllTables
(
Database
db
,
boolean
ifNotExists
)
{
...
...
library-database/src/main/java/com/gingersoft/gsa/cloud/database/greendao/FoodDao.java
View file @
d088025b
This diff is collapsed.
Click to expand it.
library-database/src/main/java/com/gingersoft/gsa/cloud/database/utils/FoodDaoUtils.java
View file @
d088025b
...
...
@@ -13,6 +13,8 @@ import org.greenrobot.greendao.query.QueryBuilder;
import
java.util.List
;
import
io.reactivex.Observable
;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
...
...
@@ -206,7 +208,6 @@ public class FoodDaoUtils {
public
List
<
Food
>
queryFoodByQueryBuilder
(
long
parentId
,
int
foodSummary
)
{
QueryBuilder
<
Food
>
queryBuilder
=
mManager
.
getDaoSession
().
queryBuilder
(
Food
.
class
);
long
currentTime
=
System
.
currentTimeMillis
();
// queryBuilder.join(ColorBeanDao.Properties.AndroidColor, Food.class, FoodDao.Properties.ColorId);
queryBuilder
.
where
(
queryBuilder
.
and
(
FoodDao
.
Properties
.
ParentId
.
eq
(
parentId
),
...
...
library-order/src/main/java/com/gingersoft/gsa/cloud/order/bean/discount/CouponDiscountBean.java
View file @
d088025b
...
...
@@ -15,6 +15,8 @@ import lombok.Data;
public
class
CouponDiscountBean
{
private
Long
id
;
// 记录ID
private
Long
discountRecordId
;
// 店鋪ID
private
Long
restaurantId
;
// 品牌ID
...
...
library-order/src/main/java/com/gingersoft/gsa/cloud/order/bean/request/MealOrderPayRequest.java
View file @
d088025b
...
...
@@ -72,18 +72,13 @@ public class MealOrderPayRequest implements Parcelable{
private
double
tipsPrice
;
/**積分支付 所消費的積分*/
private
Double
consumptionPoints
;
/**報表是否計算人數*/
private
Integer
whetherReportCount
;
/**支付名稱*/
private
String
payName
;
public
OrderPay
()
{
}
@Override
public
String
toString
()
{
return
"OrderPay{"
+
"payType="
+
payType
+
", amount="
+
amount
+
", tipsPrice="
+
tipsPrice
+
", consumptionPoints="
+
consumptionPoints
+
'}'
;
public
OrderPay
()
{
}
@Override
...
...
library-order/src/main/java/com/gingersoft/gsa/cloud/order/bean/response/OrderDiscountResponse.java
View file @
d088025b
...
...
@@ -14,6 +14,10 @@ import lombok.Data;
public
class
OrderDiscountResponse
implements
Serializable
{
/**
* 折扣记录ID
*/
private
Long
id
;
/**
* 餐廳折扣ID
*/
private
Long
discountId
;
...
...
library-order/src/main/java/com/gingersoft/gsa/cloud/order/order/DoshokuOrder.java
View file @
d088025b
...
...
@@ -26,7 +26,7 @@ import lombok.Setter;
@Setter
public
class
DoshokuOrder
extends
BaseOrder
{
private
static
DoshokuOrder
doshokuOrder
;
private
volatile
static
DoshokuOrder
doshokuOrder
;
public
static
DoshokuOrder
getInstance
()
{
if
(
doshokuOrder
==
null
)
{
...
...
@@ -60,6 +60,10 @@ public class DoshokuOrder extends BaseOrder {
*/
private
List
<
DeleteOrderRequest
>
deleteMealOrders
;
/**
* 記錄刪除的折扣Id
*/
private
List
<
Long
>
deleteDiscountIds
;
/**
* 本次送單食品,用於打印
*/
private
List
<
OrderDetail
>
newFoodList
=
new
ArrayList
<>();
...
...
@@ -118,6 +122,10 @@ public class DoshokuOrder extends BaseOrder {
this
.
deleteMealOrders
=
deleteMealOrders
;
}
public
void
addDeleteDiscountId
(
Long
id
)
{
getDeleteDiscountIds
().
add
(
id
);
}
public
Date
getOpenTableTime
()
{
if
(
orderPlaced
!=
null
&&
orderPlaced
.
getCreateTime
()
!=
null
)
{
return
new
Date
(
orderPlaced
.
getCreateTime
());
...
...
@@ -132,6 +140,13 @@ public class DoshokuOrder extends BaseOrder {
return
deleteMealOrders
;
}
public
List
<
Long
>
getDeleteDiscountIds
()
{
if
(
deleteDiscountIds
==
null
)
{
deleteDiscountIds
=
new
ArrayList
<>();
}
return
deleteDiscountIds
;
}
public
boolean
needUpdateMemberInfo
()
{
if
(
TextUtils
.
isEmpty
(
memberUpdateStatus
))
{
return
false
;
...
...
@@ -153,6 +168,9 @@ public class DoshokuOrder extends BaseOrder {
if
(
deleteMealOrders
!=
null
)
{
deleteMealOrders
.
clear
();
}
if
(
deleteDiscountIds
!=
null
)
{
deleteDiscountIds
.
clear
();
}
if
(
newFoodList
!=
null
)
{
newFoodList
.
clear
();
}
...
...
library-ui/src/main/java/com/gingersoft/gsa/cloud/ui/recylcler/event/RecyItemTouchHelperCallback.java
View file @
d088025b
package
com
.
gingersoft
.
gsa
.
cloud
.
ui
.
recylcler
.
event
;
import
android.graphics.Color
;
import
androidx.recyclerview.widget.GridLayoutManager
;
import
androidx.recyclerview.widget.ItemTouchHelper
;
import
androidx.recyclerview.widget.RecyclerView
;
import
com.gingersoft.gsa.cloud.common.core.table.TableBean
;
import
com.gingersoft.gsa.cloud.common.core.table.TableManagerItem
;
import
com.gingersoft.gsa.cloud.common.logan.LoganManager
;
import
com.gingersoft.gsa.cloud.ui.bean.view.SectionHeader
;
import
com.jess.arms.base.DefaultAdapter
;
import
com.qmuiteam.qmui.widget.section.QMUIDefaultStickySectionAdapter
;
import
com.qmuiteam.qmui.widget.section.QMUISection
;
...
...
@@ -11,6 +17,9 @@ import com.qmuiteam.qmui.widget.section.QMUIStickySectionAdapter;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.concurrent.TimeUnit
;
import
lombok.SneakyThrows
;
/**
* 作者:ELEGANT_BIN
...
...
@@ -25,6 +34,7 @@ public class RecyItemTouchHelperCallback<H extends QMUISection.Model<H>, T exten
private
RecyclerView
.
Adapter
mAdapter
;
boolean
isSwipeEnable
;
boolean
isFirstDragUnable
;
private
String
ids
;
public
RecyItemTouchHelperCallback
(
RecyclerView
.
Adapter
adapter
)
{
mAdapter
=
adapter
;
...
...
@@ -74,14 +84,12 @@ public class RecyItemTouchHelperCallback<H extends QMUISection.Model<H>, T exten
if
((
fromIndex
+
1
)
==
list
.
size
())
{
return
false
;
}
for
(
int
i
=
fromIndex
;
i
<
toIndex
;
i
++)
{
Collections
.
swap
(
list
,
i
,
i
+
1
);
}
LoganManager
.
w_tableMode
(
TAG
,
LoganManager
.
EVENT_SCOLL
+
"調整餐檯排序fromIndex="
+
fromIndex
+
" toIndex="
+
toIndex
);
Collections
.
swap
(
list
,
fromIndex
,
toIndex
);
ids
=
getTableIds
((
List
<
TableManagerItem
>)
list
);
}
else
{
for
(
int
i
=
fromPosition
;
i
<
toPosition
;
i
++)
{
Collections
.
swap
(((
DefaultAdapter
)
mAdapter
).
getInfos
(),
i
,
i
+
1
);
}
Collections
.
swap
(((
DefaultAdapter
)
mAdapter
).
getInfos
(),
fromPosition
,
toPosition
);
ids
=
null
;
}
}
else
{
if
(
mAdapter
instanceof
QMUIStickySectionAdapter
)
{
...
...
@@ -99,20 +107,34 @@ public class RecyItemTouchHelperCallback<H extends QMUISection.Model<H>, T exten
if
((
fromIndex
+
1
)
==
list
.
size
())
{
return
false
;
}
for
(
int
i
=
fromIndex
;
i
>
toIndex
;
i
--)
{
Collections
.
swap
(
list
,
i
,
i
-
1
);
}
LoganManager
.
w_tableMode
(
TAG
,
LoganManager
.
EVENT_SCOLL
+
"調整餐檯排序fromIndex="
+
fromIndex
+
" toIndex="
+
toIndex
);
Collections
.
swap
(
list
,
fromIndex
,
toIndex
);
ids
=
getTableIds
((
List
<
TableManagerItem
>)
list
);
}
else
{
for
(
int
i
=
fromPosition
;
i
>
toPosition
;
i
--)
{
Collections
.
swap
(((
DefaultAdapter
)
mAdapter
).
getInfos
(),
i
,
i
-
1
);
}
Collections
.
swap
(((
DefaultAdapter
)
mAdapter
).
getInfos
(),
fromPosition
,
toPosition
);
ids
=
null
;
}
}
mAdapter
.
notifyItemMoved
(
fromPosition
,
toPosition
);
return
true
;
}
private
String
getTableIds
(
List
<
TableManagerItem
>
qmuiSectionList
)
{
StringBuilder
builder
=
new
StringBuilder
();
for
(
TableManagerItem
tableItem
:
qmuiSectionList
)
{
if
(
tableItem
.
getLayoutType
()
==
0
)
{
builder
.
append
(
tableItem
.
getId
());
builder
.
append
(
","
);
}
}
String
str
=
builder
.
toString
();
if
(
str
.
endsWith
(
","
))
{
str
=
str
.
substring
(
0
,
str
.
length
()
-
1
);
}
return
str
;
}
@Override
public
void
onSwiped
(
RecyclerView
.
ViewHolder
viewHolder
,
int
direction
)
{
int
adapterPosition
=
viewHolder
.
getAdapterPosition
();
...
...
@@ -138,7 +160,7 @@ public class RecyItemTouchHelperCallback<H extends QMUISection.Model<H>, T exten
viewHolder
.
itemView
.
setBackgroundColor
(
Color
.
WHITE
);
// mAdapter.notifyDataSetChanged();
if
(
onMoveListener
!=
null
)
{
onMoveListener
.
onMoveFinish
(
mAdapter
);
onMoveListener
.
onMoveFinish
(
mAdapter
,
ids
);
}
}
...
...
@@ -159,6 +181,6 @@ public class RecyItemTouchHelperCallback<H extends QMUISection.Model<H>, T exten
}
public
interface
onMoveListener
{
void
onMoveFinish
(
RecyclerView
.
Adapter
adapter
);
void
onMoveFinish
(
RecyclerView
.
Adapter
adapter
,
String
ids
);
}
}
\ 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