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
f09f1d03
Commit
f09f1d03
authored
Jun 19, 2020
by
宁斌
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1、餐檯管理bug出來 , 餐檯服務費小數位問題
parent
b95e25c0
Show whitespace changes
Inline
Side-by-side
Showing
30 changed files
with
641 additions
and
740 deletions
+641
-740
arms/src/main/java/com/jess/arms/base/BaseFragment.java
+6
-0
arms/src/main/java/com/jess/arms/utils/KeyboardChangeHelper.java
+117
-0
base-module/src/main/java/com/gingersoft/gsa/cloud/base/utils/time/TimeUtils.java
+0
-19
config.gradle
+2
-2
main-module/src/main/AndroidManifest.xml
+0
-1
main-module/src/main/java/com/gingersoft/gsa/cloud/main/mvp/model/service/MainService.java
+5
-0
main-module/src/main/java/com/gingersoft/gsa/cloud/main/mvp/ui/activity/NewMainActivity.java
+0
-0
manager-module/src/main/AndroidManifest.xml
+4
-1
manager-module/src/main/java/com/gingersoft/gsa/cloud/manager/mvp/ui/activity/TableManageActivity.java
+12
-1
manager-module/src/main/java/com/gingersoft/gsa/cloud/manager/mvp/ui/fragment/AddAreaFragment.java
+1
-0
manager-module/src/main/java/com/gingersoft/gsa/cloud/manager/mvp/ui/fragment/AddTableFragment.java
+4
-4
manager-module/src/main/java/com/gingersoft/gsa/cloud/manager/mvp/ui/fragment/AreaListFragment.java
+41
-29
manager-module/src/main/java/com/gingersoft/gsa/cloud/manager/mvp/ui/fragment/TableListFragment.java
+13
-1
manager-module/src/main/res/layout/fragment_area_list.xml
+26
-11
other_order_mode/src/main/java/com/gingersoft/gsa/other_order_mode/data/WeatherRepository.kt
+0
-8
other_order_mode/src/main/java/com/gingersoft/gsa/other_order_mode/data/model/bean/CancelReason.kt
+3
-2
other_order_mode/src/main/java/com/gingersoft/gsa/other_order_mode/model/viewModel/PageViewModel.kt
+265
-167
other_order_mode/src/main/java/com/gingersoft/gsa/other_order_mode/ui/activity/OtherOrderActivity.kt
+16
-11
other_order_mode/src/main/java/com/gingersoft/gsa/other_order_mode/ui/fragment/DeliveryFragment.kt
+10
-4
other_order_mode/src/main/java/com/gingersoft/gsa/other_order_mode/ui/fragment/HistoryFragment.kt
+3
-1
other_order_mode/src/main/java/com/gingersoft/gsa/other_order_mode/ui/fragment/PlaceholderFragment.kt
+67
-68
other_order_mode/src/main/res/drawable/shape_black_border.xml
+0
-9
other_order_mode/src/main/res/layout/fragment_delivery_list.xml
+2
-8
other_order_mode/src/main/res/layout/item_delivery_layout.xml
+4
-4
other_order_mode/src/main/res/values/styles.xml
+10
-0
print-module/src/main/java/com/joe/print/mvp/print/IpPrintMaker.java
+0
-7
print-module/src/main/java/com/joe/print/mvp/print/PrinterRoot.java
+29
-27
print-module/src/main/java/com/joe/print/mvp/print/TestPrintDataMaker.java
+0
-112
print-module/src/main/java/com/joe/print/mvp/ui/activity/IpPrintActivity.java
+0
-242
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/BaseOrderPresenter.java
+1
-1
No files found.
arms/src/main/java/com/jess/arms/base/BaseFragment.java
View file @
f09f1d03
...
@@ -140,6 +140,12 @@ public abstract class BaseFragment<P extends IPresenter> extends Fragment implem
...
@@ -140,6 +140,12 @@ public abstract class BaseFragment<P extends IPresenter> extends Fragment implem
return
view
;
return
view
;
}
}
@Nullable
@Override
public
View
getView
()
{
return
view
;
}
/**
/**
* 是否使用eventBus,默认为使用(true),
* 是否使用eventBus,默认为使用(true),
*
*
...
...
arms/src/main/java/com/jess/arms/utils/KeyboardChangeHelper.java
0 → 100644
View file @
f09f1d03
package
com
.
jess
.
arms
.
utils
;
import
android.app.Activity
;
import
android.graphics.Rect
;
import
android.view.View
;
import
android.view.ViewTreeObserver
;
import
android.widget.EditText
;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-06-19
* 修订历史:2020-06-19
* 描述:
*/
public
class
KeyboardChangeHelper
implements
ViewTreeObserver
.
OnGlobalLayoutListener
{
private
View
contentView
;
private
EditText
targetView
;
private
int
rootViewVisibleHeight
=
0
;
private
int
offset
;
private
OnKeyboardShowListener
listener
;
public
KeyboardChangeHelper
(
View
contentView
)
{
this
.
contentView
=
contentView
;
setTranslationOffset
(
0
);
}
@Override
public
void
onGlobalLayout
()
{
if
(!
initTargetView
())
{
return
;
}
Rect
r
=
new
Rect
();
contentView
.
getWindowVisibleDisplayFrame
(
r
);
int
visibleHeight
=
r
.
height
();
if
(
rootViewVisibleHeight
==
0
)
{
rootViewVisibleHeight
=
visibleHeight
;
return
;
}
//根视图显示高度没有变化,可以看作软键盘显示/隐藏状态没有改变
if
(
rootViewVisibleHeight
==
visibleHeight
)
{
return
;
}
//根视图显示高度变小超过200,可以看作软键盘显示了
if
(
rootViewVisibleHeight
-
visibleHeight
>
200
)
{
rootViewVisibleHeight
=
visibleHeight
;
if
(
null
!=
listener
)
{
listener
.
onKeyboardShow
();
}
layoutResize
(
true
,
r
.
bottom
);
return
;
}
//根视图显示高度变大超过200,可以看作软键盘隐藏了
if
(
visibleHeight
-
rootViewVisibleHeight
>
200
)
{
rootViewVisibleHeight
=
visibleHeight
;
if
(
null
!=
listener
)
{
listener
.
onKeyboardHide
();
}
layoutResize
(
false
,
0
);
}
}
private
void
layoutResize
(
boolean
isKeyboardShow
,
int
currentBottom
)
{
int
resizeHeight
=
0
;
Rect
rect
=
new
Rect
();
if
(
null
!=
targetView
)
{
targetView
.
getGlobalVisibleRect
(
rect
);
// rect.bottom 获取到的时EditText的底部,加上offset是再往下offset距离的底部
resizeHeight
=
rect
.
bottom
+
offset
-
currentBottom
;
}
if
(
resizeHeight
<
0
)
{
return
;
}
if
(
isKeyboardShow
)
{
contentView
.
setTranslationY
(-
resizeHeight
);
}
else
{
contentView
.
setTranslationY
(
0
);
}
}
private
boolean
initTargetView
()
{
View
focusedView
;
Activity
activity
=
(
Activity
)
contentView
.
getContext
();
if
(
null
!=
activity
)
{
focusedView
=
activity
.
getCurrentFocus
();
}
else
{
return
false
;
}
if
(
focusedView
instanceof
EditText
)
{
targetView
=
(
EditText
)
focusedView
;
}
return
true
;
}
public
void
addListener
()
{
contentView
.
getViewTreeObserver
().
addOnGlobalLayoutListener
(
this
);
}
public
void
removeListener
()
{
// remember to remove if used
contentView
.
getViewTreeObserver
().
removeOnGlobalLayoutListener
(
this
);
}
public
void
setTranslationOffset
(
int
offset
)
{
this
.
offset
=
offset
;
}
public
void
addOnKeyboardShowListener
(
OnKeyboardShowListener
listener
)
{
this
.
listener
=
listener
;
}
public
interface
OnKeyboardShowListener
{
void
onKeyboardShow
();
void
onKeyboardHide
();
}
}
base-module/src/main/java/com/gingersoft/gsa/cloud/base/utils/time/TimeUtils.java
View file @
f09f1d03
...
@@ -160,25 +160,6 @@ public class TimeUtils {
...
@@ -160,25 +160,6 @@ public class TimeUtils {
/**
/**
* @param beginTime 開始時間
* @param distance 差距: 昨天天傳負一,今天傳零,明天傳一
* @param type 類型: 1、天 Calendar.DATE 2、年Calendar.YEAR 3、月Calendar.MONTH
* @param sf {@link #DEFAULT_DATE_MD}
* @return 獲得從開始時間+distance(偏移時間的年月日)
*/
public
static
String
getBeginDistanceDate
(
Calendar
beginTime
,
int
distance
,
int
type
,
SimpleDateFormat
sf
)
{
beginTime
.
set
(
type
,
beginTime
.
get
(
type
)
+
distance
);
Date
endDate
=
null
;
try
{
endDate
=
sf
.
parse
(
sf
.
format
(
beginTime
.
getTime
()));
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
return
sf
.
format
(
endDate
);
}
/**
* 获取前n天日期、后n天日期
* 获取前n天日期、后n天日期
*
*
* @param distanceDay 前几天 如获取前7天日期则传-7即可;如果后7天则传7
* @param distanceDay 前几天 如获取前7天日期则传-7即可;如果后7天则传7
...
...
config.gradle
View file @
f09f1d03
...
@@ -5,8 +5,8 @@ ext {
...
@@ -5,8 +5,8 @@ ext {
buildToolsVersion:
'28.0.3'
,
buildToolsVersion:
'28.0.3'
,
minSdkVersion
:
19
,
//N5收銀機應用安卓開發環境要求Android OS Version: 5.1Android SDK Min Version: 19
minSdkVersion
:
19
,
//N5收銀機應用安卓開發環境要求Android OS Version: 5.1Android SDK Min Version: 19
targetSdkVersion
:
28
,
targetSdkVersion
:
28
,
versionCode
:
2
,
versionCode
:
4
,
versionName
:
"1.0.
2
"
versionName
:
"1.0.
4
"
]
]
version
=
[
version
=
[
...
...
main-module/src/main/AndroidManifest.xml
View file @
f09f1d03
...
@@ -13,7 +13,6 @@
...
@@ -13,7 +13,6 @@
<meta-data
<meta-data
android:name=
"com.gingersoft.gsa.cloud.globalconfig.GlobalConfiguration"
android:name=
"com.gingersoft.gsa.cloud.globalconfig.GlobalConfiguration"
android:value=
"ConfigModule"
/>
android:value=
"ConfigModule"
/>
<meta-data
<meta-data
android:name=
"design_width_in_dp"
android:name=
"design_width_in_dp"
android:value=
"360"
/>
android:value=
"360"
/>
...
...
main-module/src/main/java/com/gingersoft/gsa/cloud/main/mvp/model/service/MainService.java
View file @
f09f1d03
...
@@ -20,4 +20,9 @@ public interface MainService {
...
@@ -20,4 +20,9 @@ public interface MainService {
@Headers
({
"Domain-Name: update_version"
})
@Headers
({
"Domain-Name: update_version"
})
@POST
(
"system/checkAppVersion"
+
RetrofitUrlManager
.
IDENTIFICATION_PATH_SIZE
+
2
)
@POST
(
"system/checkAppVersion"
+
RetrofitUrlManager
.
IDENTIFICATION_PATH_SIZE
+
2
)
Observable
<
CheckVersionRequest
>
checkAppVersion
(
@Body
RequestBody
requestBody
);
Observable
<
CheckVersionRequest
>
checkAppVersion
(
@Body
RequestBody
requestBody
);
@Headers
({
"Domain-Name: update_version"
})
@POST
(
"restaurant/clearHeartbeat"
+
RetrofitUrlManager
.
IDENTIFICATION_PATH_SIZE
+
2
)
Observable
<
Object
>
clearHeartbeat
(
@Body
RequestBody
requestBody
);
}
}
main-module/src/main/java/com/gingersoft/gsa/cloud/main/mvp/ui/activity/NewMainActivity.java
View file @
f09f1d03
manager-module/src/main/AndroidManifest.xml
View file @
f09f1d03
...
@@ -3,7 +3,10 @@
...
@@ -3,7 +3,10 @@
package=
"com.gingersoft.gsa.cloud.manager"
>
package=
"com.gingersoft.gsa.cloud.manager"
>
<application>
<application>
<activity
android:name=
".mvp.ui.activity.TableManageActivity"
/>
<activity
android:name=
".mvp.ui.activity.TableManageActivity"
android:screenOrientation=
"portrait"
android:windowSoftInputMode=
"adjustResize"
/>
<!-- arms配置 -->
<!-- arms配置 -->
<meta-data
<meta-data
android:name=
"com.gingersoft.gsa.cloud.globalconfig.GlobalConfiguration"
android:name=
"com.gingersoft.gsa.cloud.globalconfig.GlobalConfiguration"
...
...
manager-module/src/main/java/com/gingersoft/gsa/cloud/manager/mvp/ui/activity/TableManageActivity.java
View file @
f09f1d03
...
@@ -223,7 +223,9 @@ public class TableManageActivity extends BaseFragmentActivity<TableManagePresent
...
@@ -223,7 +223,9 @@ public class TableManageActivity extends BaseFragmentActivity<TableManagePresent
if
(
fragment
!=
null
)
{
if
(
fragment
!=
null
)
{
if
(
fragment
instanceof
AreaListFragment
)
{
if
(
fragment
instanceof
AreaListFragment
)
{
AreaListFragment
areaListFragment
=
(
AreaListFragment
)
fragment
;
AreaListFragment
areaListFragment
=
(
AreaListFragment
)
fragment
;
if
(!
areaListFragment
.
isRadioEdit
())
{
areaListFragment
.
updateAreaData
(
areas
);
areaListFragment
.
updateAreaData
(
areas
);
}
}
else
if
(
fragment
instanceof
TableListFragment
)
{
}
else
if
(
fragment
instanceof
TableListFragment
)
{
TableListFragment
tableListFragment
=
(
TableListFragment
)
fragment
;
TableListFragment
tableListFragment
=
(
TableListFragment
)
fragment
;
tableListFragment
.
updateAreaData
(
areas
);
tableListFragment
.
updateAreaData
(
areas
);
...
@@ -238,7 +240,7 @@ public class TableManageActivity extends BaseFragmentActivity<TableManagePresent
...
@@ -238,7 +240,7 @@ public class TableManageActivity extends BaseFragmentActivity<TableManagePresent
}
}
}
}
TableListFragment
tableListFragment
=
findFragment
(
TableListFragment
.
class
);
TableListFragment
tableListFragment
=
findFragment
(
TableListFragment
.
class
);
if
(
tableListFragment
!=
null
)
{
if
(
tableListFragment
!=
null
)
{
tableListFragment
.
updateTableData
(
mTableAreaList
,
mTableList
);
tableListFragment
.
updateTableData
(
mTableAreaList
,
mTableList
);
}
}
break
;
break
;
...
@@ -330,4 +332,13 @@ public class TableManageActivity extends BaseFragmentActivity<TableManagePresent
...
@@ -330,4 +332,13 @@ public class TableManageActivity extends BaseFragmentActivity<TableManagePresent
public
List
<
TableItem
>
getTableList
()
{
public
List
<
TableItem
>
getTableList
()
{
return
mTableList
;
return
mTableList
;
}
}
public
boolean
isRadioEdit
()
{
TableListFragment
tableListFragment
=
findFragment
(
TableListFragment
.
class
);
if
(
tableListFragment
!=
null
)
{
return
tableListFragment
.
isRadioEdit
();
}
else
{
return
false
;
}
}
}
}
manager-module/src/main/java/com/gingersoft/gsa/cloud/manager/mvp/ui/fragment/AddAreaFragment.java
View file @
f09f1d03
...
@@ -24,6 +24,7 @@ import com.gingersoft.gsa.cloud.manager.di.component.DaggerAddAreaComponent;
...
@@ -24,6 +24,7 @@ import com.gingersoft.gsa.cloud.manager.di.component.DaggerAddAreaComponent;
import
com.gingersoft.gsa.cloud.manager.mvp.contract.AddAreaContract
;
import
com.gingersoft.gsa.cloud.manager.mvp.contract.AddAreaContract
;
import
com.gingersoft.gsa.cloud.manager.mvp.presenter.AddAreaPresenter
;
import
com.gingersoft.gsa.cloud.manager.mvp.presenter.AddAreaPresenter
;
import
com.gingersoft.gsa.cloud.manager.R
;
import
com.gingersoft.gsa.cloud.manager.R
;
import
com.jess.arms.utils.DeviceUtils
;
import
com.qmuiteam.qmui.util.QMUIDisplayHelper
;
import
com.qmuiteam.qmui.util.QMUIDisplayHelper
;
import
com.qmuiteam.qmui.util.QMUIResHelper
;
import
com.qmuiteam.qmui.util.QMUIResHelper
;
import
com.qmuiteam.qmui.widget.QMUITopBarLayout
;
import
com.qmuiteam.qmui.widget.QMUITopBarLayout
;
...
...
manager-module/src/main/java/com/gingersoft/gsa/cloud/manager/mvp/ui/fragment/AddTableFragment.java
View file @
f09f1d03
...
@@ -209,19 +209,19 @@ public class AddTableFragment extends BaseFragment<AddTablePresenter> implements
...
@@ -209,19 +209,19 @@ public class AddTableFragment extends BaseFragment<AddTablePresenter> implements
FrameLayout
.
LayoutParams
params
=
new
FrameLayout
.
LayoutParams
(
FrameLayout
.
LayoutParams
.
WRAP_CONTENT
,
FrameLayout
.
LayoutParams
.
MATCH_PARENT
);
FrameLayout
.
LayoutParams
params
=
new
FrameLayout
.
LayoutParams
(
FrameLayout
.
LayoutParams
.
WRAP_CONTENT
,
FrameLayout
.
LayoutParams
.
MATCH_PARENT
);
params
.
gravity
=
Gravity
.
CENTER
|
Gravity
.
RIGHT
;
params
.
gravity
=
Gravity
.
CENTER
|
Gravity
.
RIGHT
;
params
.
width
=
1
3
0
;
params
.
width
=
1
5
0
;
peopleMixNumberEditText
.
setLayoutParams
(
params
);
peopleMixNumberEditText
.
setLayoutParams
(
params
);
FrameLayout
.
LayoutParams
params2
=
new
FrameLayout
.
LayoutParams
(
FrameLayout
.
LayoutParams
.
WRAP_CONTENT
,
FrameLayout
.
LayoutParams
.
MATCH_PARENT
);
FrameLayout
.
LayoutParams
params2
=
new
FrameLayout
.
LayoutParams
(
FrameLayout
.
LayoutParams
.
WRAP_CONTENT
,
FrameLayout
.
LayoutParams
.
MATCH_PARENT
);
params2
.
gravity
=
Gravity
.
CENTER
|
Gravity
.
RIGHT
;
params2
.
gravity
=
Gravity
.
CENTER
|
Gravity
.
RIGHT
;
params2
.
width
=
30
;
params2
.
width
=
30
;
params2
.
rightMargin
=
1
5
0
;
params2
.
rightMargin
=
1
7
0
;
tv_line
.
setLayoutParams
(
params2
);
tv_line
.
setLayoutParams
(
params2
);
FrameLayout
.
LayoutParams
params3
=
new
FrameLayout
.
LayoutParams
(
FrameLayout
.
LayoutParams
.
WRAP_CONTENT
,
FrameLayout
.
LayoutParams
.
MATCH_PARENT
);
FrameLayout
.
LayoutParams
params3
=
new
FrameLayout
.
LayoutParams
(
FrameLayout
.
LayoutParams
.
WRAP_CONTENT
,
FrameLayout
.
LayoutParams
.
MATCH_PARENT
);
params3
.
gravity
=
Gravity
.
CENTER
|
Gravity
.
RIGHT
;
params3
.
gravity
=
Gravity
.
CENTER
|
Gravity
.
RIGHT
;
params3
.
width
=
1
3
0
;
params3
.
width
=
1
5
0
;
params3
.
rightMargin
=
2
0
0
;
params3
.
rightMargin
=
2
2
0
;
peopleMaxNumberEditText
.
setLayoutParams
(
params3
);
peopleMaxNumberEditText
.
setLayoutParams
(
params3
);
...
...
manager-module/src/main/java/com/gingersoft/gsa/cloud/manager/mvp/ui/fragment/AreaListFragment.java
View file @
f09f1d03
...
@@ -36,6 +36,7 @@ import com.gingersoft.gsa.cloud.manager.mvp.contract.AreaListContract;
...
@@ -36,6 +36,7 @@ import com.gingersoft.gsa.cloud.manager.mvp.contract.AreaListContract;
import
com.gingersoft.gsa.cloud.manager.mvp.presenter.AreaListPresenter
;
import
com.gingersoft.gsa.cloud.manager.mvp.presenter.AreaListPresenter
;
import
com.gingersoft.gsa.cloud.manager.R
;
import
com.gingersoft.gsa.cloud.manager.R
;
import
com.jess.arms.utils.KeyboardChangeHelper
;
import
com.qmuiteam.qmui.alpha.QMUIAlphaFrameLayout
;
import
com.qmuiteam.qmui.alpha.QMUIAlphaFrameLayout
;
import
com.qmuiteam.qmui.widget.QMUIEmptyView
;
import
com.qmuiteam.qmui.widget.QMUIEmptyView
;
import
com.qmuiteam.qmui.widget.QMUITopBarLayout
;
import
com.qmuiteam.qmui.widget.QMUITopBarLayout
;
...
@@ -120,6 +121,12 @@ public class AreaListFragment extends BaseFragment<AreaListPresenter> implements
...
@@ -120,6 +121,12 @@ public class AreaListFragment extends BaseFragment<AreaListPresenter> implements
.
inject
(
this
);
.
inject
(
this
);
}
}
@Nullable
@Override
public
View
onCreateView
(
@NonNull
LayoutInflater
inflater
,
@Nullable
ViewGroup
container
,
@Nullable
Bundle
savedInstanceState
)
{
return
super
.
onCreateView
(
inflater
,
container
,
savedInstanceState
);
}
@Override
@Override
public
View
initView
(
@NonNull
LayoutInflater
inflater
,
@Nullable
ViewGroup
container
,
@Nullable
Bundle
savedInstanceState
)
{
public
View
initView
(
@NonNull
LayoutInflater
inflater
,
@Nullable
ViewGroup
container
,
@Nullable
Bundle
savedInstanceState
)
{
return
inflater
.
inflate
(
R
.
layout
.
fragment_area_list
,
container
,
false
);
return
inflater
.
inflate
(
R
.
layout
.
fragment_area_list
,
container
,
false
);
...
@@ -143,12 +150,26 @@ public class AreaListFragment extends BaseFragment<AreaListPresenter> implements
...
@@ -143,12 +150,26 @@ public class AreaListFragment extends BaseFragment<AreaListPresenter> implements
mAreaManageAdapter
.
notifyDataSetChanged
();
mAreaManageAdapter
.
notifyDataSetChanged
();
}
}
});
});
setKeyboardChange
();
}
private
void
setKeyboardChange
()
{
View
view
=
getView
();
if
(
view
!=
null
)
{
KeyboardChangeHelper
changeHelper
=
new
KeyboardChangeHelper
(
view
);
changeHelper
.
addListener
();
changeHelper
.
addOnKeyboardShowListener
(
new
KeyboardChangeHelper
.
OnKeyboardShowListener
()
{
@Override
public
void
onKeyboardShow
()
{
fl_add_area
.
setVisibility
(
View
.
INVISIBLE
);
}
}
@Override
@Override
public
void
onResume
()
{
public
void
onKeyboardHide
()
{
super
.
onResume
();
fl_add_area
.
setVisibility
(
View
.
VISIBLE
);
hideSoftInput
();
}
});
}
}
}
private
void
initTopbar
()
{
private
void
initTopbar
()
{
...
@@ -158,17 +179,23 @@ public class AreaListFragment extends BaseFragment<AreaListPresenter> implements
...
@@ -158,17 +179,23 @@ public class AreaListFragment extends BaseFragment<AreaListPresenter> implements
Button
rightButton
=
mTopBar
.
addRightTextButton
(
"編輯"
,
R
.
id
.
qmui_dialog_edit_right_icon
);
Button
rightButton
=
mTopBar
.
addRightTextButton
(
"編輯"
,
R
.
id
.
qmui_dialog_edit_right_icon
);
rightButton
.
setTextColor
(
ContextCompat
.
getColor
(
mContext
,
R
.
color
.
theme_white_color
));
rightButton
.
setTextColor
(
ContextCompat
.
getColor
(
mContext
,
R
.
color
.
theme_white_color
));
rightButton
.
setOnClickListener
(
v
->
{
rightButton
.
setOnClickListener
(
v
->
{
clickEdit
(
rightButton
);
});
}
private
void
clickEdit
(
Button
rightButton
)
{
isRadioEdit
=
!
isRadioEdit
;
isRadioEdit
=
!
isRadioEdit
;
if
(
isRadioEdit
)
{
if
(
isRadioEdit
)
{
fl_add_area
.
setVisibility
(
View
.
INVISIBLE
);
initCheckedStatus
();
initCheckedStatus
();
rightButton
.
setText
(
"取消"
);
rightButton
.
setText
(
"取消"
);
}
else
{
}
else
{
fl_add_area
.
setVisibility
(
View
.
VISIBLE
);
rightButton
.
setText
(
"編輯"
);
rightButton
.
setText
(
"編輯"
);
}
}
showRadioEdit
();
showRadioEdit
();
mAreaManageAdapter
.
setRadioEdit
(
isRadioEdit
);
mAreaManageAdapter
.
setRadioEdit
(
isRadioEdit
);
mAreaManageAdapter
.
notifyDataSetChanged
();
mAreaManageAdapter
.
notifyDataSetChanged
();
});
}
}
private
void
initRefreshLayout
()
{
private
void
initRefreshLayout
()
{
...
@@ -220,13 +247,6 @@ public class AreaListFragment extends BaseFragment<AreaListPresenter> implements
...
@@ -220,13 +247,6 @@ public class AreaListFragment extends BaseFragment<AreaListPresenter> implements
mAreaManageAdapter
.
setOnItemClickListener
(
new
DefaultAdapter
.
OnRecyclerViewItemClickListener
()
{
mAreaManageAdapter
.
setOnItemClickListener
(
new
DefaultAdapter
.
OnRecyclerViewItemClickListener
()
{
@Override
@Override
public
void
onItemClick
(
View
view
,
int
viewType
,
Object
data
,
int
position
)
{
public
void
onItemClick
(
View
view
,
int
viewType
,
Object
data
,
int
position
)
{
// if (isRadioEdit) {
// TableArea tableArea = (TableArea) data;
// tableArea.setChecked(!tableArea.isChecked());
// mAreaManageAdapter.notifyDataSetChanged();
// } else {
// start(AddAreaFragment.newInstance((TableArea) data));
// }
}
}
});
});
mAreaManageAdapter
.
addTextChangedListener
(
new
AreaManageAdapter
.
OnTextChangedListener
()
{
mAreaManageAdapter
.
addTextChangedListener
(
new
AreaManageAdapter
.
OnTextChangedListener
()
{
...
@@ -249,7 +269,7 @@ public class AreaListFragment extends BaseFragment<AreaListPresenter> implements
...
@@ -249,7 +269,7 @@ public class AreaListFragment extends BaseFragment<AreaListPresenter> implements
recycler_area
.
setVisibility
(
View
.
VISIBLE
);
recycler_area
.
setVisibility
(
View
.
VISIBLE
);
}
}
public
void
addSuccess
(){
public
void
addSuccess
()
{
ed_area_name
.
setText
(
""
);
ed_area_name
.
setText
(
""
);
}
}
...
@@ -266,9 +286,9 @@ public class AreaListFragment extends BaseFragment<AreaListPresenter> implements
...
@@ -266,9 +286,9 @@ public class AreaListFragment extends BaseFragment<AreaListPresenter> implements
@OnClick
(
R2
.
id
.
fl_add_area
)
@OnClick
(
R2
.
id
.
fl_add_area
)
void
onClickAddArea
()
{
void
onClickAddArea
()
{
if
(
ll_add_area_layout
.
getVisibility
()
==
View
.
GONE
)
{
if
(
ll_add_area_layout
.
getVisibility
()
==
View
.
GONE
)
{
ll_add_area_layout
.
setVisibility
(
View
.
VISIBLE
);
ll_add_area_layout
.
setVisibility
(
View
.
VISIBLE
);
}
else
{
}
else
{
ll_add_area_layout
.
setVisibility
(
View
.
GONE
);
ll_add_area_layout
.
setVisibility
(
View
.
GONE
);
}
}
}
}
...
@@ -280,21 +300,9 @@ public class AreaListFragment extends BaseFragment<AreaListPresenter> implements
...
@@ -280,21 +300,9 @@ public class AreaListFragment extends BaseFragment<AreaListPresenter> implements
}
}
}
}
// @OnClick(R2.id.cb_all_select)
// @OnClick(R2.id.btn_save)
// void onClickAddSelect() {
// void onClickSaveModify() {
// for (int i = 0; i < mTableAreaList.size(); i++) {
// mActivity.updateArea(createUpateAreaRequest(datasBean.getId(), name));
// mTableAreaList.get(i).setChecked(true);
// }
// mAreaManageAdapter.notifyDataSetChanged();
// }
// @OnClick(R2.id.btn_anti_select)
// void onClickAntiSelect() {
// for (int i = 0; i < mTableAreaList.size(); i++) {
// TableArea tableArea = mTableAreaList.get(i);
// tableArea.setChecked(!tableArea.isChecked());
// }
// mAreaManageAdapter.notifyDataSetChanged();
// }
// }
@OnClick
(
R2
.
id
.
btn_sure
)
@OnClick
(
R2
.
id
.
btn_sure
)
...
@@ -435,4 +443,8 @@ public class AreaListFragment extends BaseFragment<AreaListPresenter> implements
...
@@ -435,4 +443,8 @@ public class AreaListFragment extends BaseFragment<AreaListPresenter> implements
ll_bottom_operat
.
setVisibility
(
View
.
GONE
);
ll_bottom_operat
.
setVisibility
(
View
.
GONE
);
}
}
}
}
public
boolean
isRadioEdit
()
{
return
isRadioEdit
;
}
}
}
manager-module/src/main/java/com/gingersoft/gsa/cloud/manager/mvp/ui/fragment/TableListFragment.java
View file @
f09f1d03
...
@@ -552,9 +552,13 @@ public class TableListFragment extends BaseFragment<TableListPresenter> implemen
...
@@ -552,9 +552,13 @@ public class TableListFragment extends BaseFragment<TableListPresenter> implemen
@Override
@Override
public
void
onScrollStateChanged
(
RecyclerView
recyclerView
,
int
newState
)
{
public
void
onScrollStateChanged
(
RecyclerView
recyclerView
,
int
newState
)
{
if
(
isRadioEdit
){
mActivity
.
onPauseRefreshTableData
();
return
;
}
switch
(
newState
)
{
switch
(
newState
)
{
case
SCROLL_STATE_IDLE:
//停止滚动
case
SCROLL_STATE_IDLE:
//停止滚动
if
(
mActivity
!=
null
)
{
if
(
mActivity
!=
null
)
{
mActivity
.
onStartRefreshTableData
();
mActivity
.
onStartRefreshTableData
();
}
}
break
;
break
;
...
@@ -571,6 +575,10 @@ public class TableListFragment extends BaseFragment<TableListPresenter> implemen
...
@@ -571,6 +575,10 @@ public class TableListFragment extends BaseFragment<TableListPresenter> implemen
@Override
@Override
public
boolean
onTouch
(
View
v
,
MotionEvent
event
)
{
public
boolean
onTouch
(
View
v
,
MotionEvent
event
)
{
if
(
isRadioEdit
){
mActivity
.
onPauseRefreshTableData
();
return
false
;
}
int
action
=
event
.
getAction
();
int
action
=
event
.
getAction
();
switch
(
action
)
{
switch
(
action
)
{
case
MotionEvent
.
ACTION_DOWN
:
case
MotionEvent
.
ACTION_DOWN
:
...
@@ -602,6 +610,10 @@ public class TableListFragment extends BaseFragment<TableListPresenter> implemen
...
@@ -602,6 +610,10 @@ public class TableListFragment extends BaseFragment<TableListPresenter> implemen
}
}
}
}
public
boolean
isRadioEdit
()
{
return
isRadioEdit
;
}
@Override
@Override
public
List
<
TableItem
>
getTableList
()
{
public
List
<
TableItem
>
getTableList
()
{
return
mTableList
;
return
mTableList
;
...
...
manager-module/src/main/res/layout/fragment_area_list.xml
View file @
f09f1d03
...
@@ -22,13 +22,18 @@
...
@@ -22,13 +22,18 @@
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
app:srlEnableLoadMore=
"false"
>
app:srlEnableLoadMore=
"false"
>
<ScrollView
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:fillViewport=
"true"
>
<LinearLayout
<LinearLayout
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_cont
ent"
android:layout_height=
"match_par
ent"
android:orientation=
"vertical
"
android:background=
"@color/theme_white_color
"
android:background=
"@color/theme_white_color
"
>
android:orientation=
"vertical
"
>
<androidx.recyclerview.widget.
RecyclerView
<com.gingersoft.gsa.cloud.base.widget.NoScroll
RecyclerView
android:id=
"@+id/recycler_area"
android:id=
"@+id/recycler_area"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
...
@@ -56,15 +61,15 @@
...
@@ -56,15 +61,15 @@
android:textColor=
"@color/normal_color"
android:textColor=
"@color/normal_color"
android:textColorHint=
"@color/hint_color"
android:textColorHint=
"@color/hint_color"
android:textSize=
"@dimen/sp_16"
android:textSize=
"@dimen/sp_16"
android:visibility=
"visible"
/>
android:visibility=
"visible"
/>
<com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
<com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
android:id=
"@+id/btn_save_area"
android:id=
"@+id/btn_save_area"
android:layout_width=
"@dimen/dp_60"
android:layout_width=
"@dimen/dp_60"
android:layout_height=
"@dimen/dp_38"
android:layout_height=
"@dimen/dp_38"
android:layout_marginRight=
"@dimen/dp_10"
android:layout_marginLeft=
"@dimen/dp_10"
android:layout_gravity=
"right|center_vertical"
android:layout_gravity=
"right|center_vertical"
android:layout_marginLeft=
"@dimen/dp_10"
android:layout_marginRight=
"@dimen/dp_10"
android:background=
"@color/theme_red_color"
android:background=
"@color/theme_red_color"
android:text=
"保存"
android:text=
"保存"
android:textColor=
"@color/theme_white_color"
android:textColor=
"@color/theme_white_color"
...
@@ -73,6 +78,7 @@
...
@@ -73,6 +78,7 @@
app:qmui_radius=
"@dimen/dp_5"
/>
app:qmui_radius=
"@dimen/dp_5"
/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</ScrollView>
</com.scwang.smartrefresh.layout.SmartRefreshLayout>
</com.scwang.smartrefresh.layout.SmartRefreshLayout>
</FrameLayout>
</FrameLayout>
...
@@ -85,7 +91,7 @@
...
@@ -85,7 +91,7 @@
android:orientation=
"horizontal"
android:orientation=
"horizontal"
android:paddingLeft=
"@dimen/dp_15"
android:paddingLeft=
"@dimen/dp_15"
android:paddingRight=
"@dimen/dp_15"
android:paddingRight=
"@dimen/dp_15"
android:visibility=
"
gon
e"
>
android:visibility=
"
visibl
e"
>
<CheckBox
<CheckBox
android:id=
"@+id/cb_all_select"
android:id=
"@+id/cb_all_select"
...
@@ -101,12 +107,22 @@
...
@@ -101,12 +107,22 @@
android:layout_width=
"@dimen/dp_60"
android:layout_width=
"@dimen/dp_60"
android:layout_height=
"@dimen/dp_38"
android:layout_height=
"@dimen/dp_38"
android:layout_gravity=
"right|center_vertical"
android:layout_gravity=
"right|center_vertical"
android:background=
"@color/theme_red_color"
android:text=
"刪除"
android:text=
"刪除"
android:textColor=
"@color/theme_white_color"
android:textColor=
"@color/theme_white_color"
android:textSize=
"@dimen/sp_14"
android:textSize=
"@dimen/sp_14"
app:qmui_backgroundColor=
"@color/theme_color"
app:qmui_backgroundColor=
"@color/theme_color"
app:qmui_radius=
"@dimen/dp_5"
/>
app:qmui_radius=
"@dimen/dp_5"
/>
<!-- <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton-->
<!-- android:id="@+id/btn_save"-->
<!-- android:layout_width="@dimen/dp_60"-->
<!-- android:layout_height="@dimen/dp_38"-->
<!-- android:layout_gravity="right|center_vertical"-->
<!-- android:text="保存"-->
<!-- android:textColor="@color/theme_white_color"-->
<!-- android:textSize="@dimen/sp_14"-->
<!-- app:qmui_backgroundColor="@color/theme_color"-->
<!-- app:qmui_radius="@dimen/dp_5" />-->
</LinearLayout>
</LinearLayout>
<!-- <com.qmuiteam.qmui.alpha.QMUIAlphaTextView-->
<!-- <com.qmuiteam.qmui.alpha.QMUIAlphaTextView-->
...
@@ -127,7 +143,7 @@
...
@@ -127,7 +143,7 @@
android:layout_width=
"@dimen/dp_65"
android:layout_width=
"@dimen/dp_65"
android:layout_height=
"@dimen/dp_65"
android:layout_height=
"@dimen/dp_65"
android:layout_gravity=
"bottom|right"
android:layout_gravity=
"bottom|right"
android:layout_marginBottom=
"@dimen/dp_
4
5"
android:layout_marginBottom=
"@dimen/dp_
1
5"
android:layout_marginRight=
"@dimen/dp_20"
android:layout_marginRight=
"@dimen/dp_20"
android:background=
"@drawable/manage_shape_add_btn_oval"
>
android:background=
"@drawable/manage_shape_add_btn_oval"
>
...
@@ -138,7 +154,6 @@
...
@@ -138,7 +154,6 @@
android:src=
"@drawable/add_white"
/>
android:src=
"@drawable/add_white"
/>
</com.qmuiteam.qmui.alpha.QMUIAlphaFrameLayout>
</com.qmuiteam.qmui.alpha.QMUIAlphaFrameLayout>
<com.qmuiteam.qmui.widget.QMUITopBarLayout
<com.qmuiteam.qmui.widget.QMUITopBarLayout
android:id=
"@+id/topbar"
android:id=
"@+id/topbar"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
...
...
other_order_mode/src/main/java/com/gingersoft/gsa/other_order_mode/data/WeatherRepository.kt
View file @
f09f1d03
...
@@ -145,14 +145,6 @@ class WeatherRepository private constructor(private val network: CoolWeatherNetw
...
@@ -145,14 +145,6 @@ class WeatherRepository private constructor(private val network: CoolWeatherNetw
network
.
getCancelReason
(
requestBody
)
network
.
getCancelReason
(
requestBody
)
}
}
suspend
fun
getCancelReason
(
restaurantId
:
String
,
type
:
String
)
=
withContext
(
Dispatchers
.
IO
)
{
val
requestBody
=
FormBody
.
Builder
()
.
add
(
"restaurantId"
,
restaurantId
)
.
add
(
"type"
,
type
)
//取消原因類型,1食品取消,2,物流取消,3,訂單取消
.
build
()
network
.
getCancelReason
(
requestBody
)
}
fun
getBody
(
vararg
pair
:
Pair1
<
String
,
String
>):
RequestBody
{
fun
getBody
(
vararg
pair
:
Pair1
<
String
,
String
>):
RequestBody
{
val
requestBody
=
FormBody
.
Builder
()
val
requestBody
=
FormBody
.
Builder
()
...
...
other_order_mode/src/main/java/com/gingersoft/gsa/other_order_mode/data/model/bean/CancelReason.kt
View file @
f09f1d03
...
@@ -10,12 +10,12 @@ data class CancelReason(
...
@@ -10,12 +10,12 @@ data class CancelReason(
val
content
:
String
,
val
content
:
String
,
val
content2
:
String
,
val
content2
:
String
,
val
content3
:
String
,
val
content3
:
String
,
val
createTime
:
Int
,
val
createTime
:
Long
,
val
id
:
Int
,
val
id
:
Int
,
val
restaurantId
:
Int
,
val
restaurantId
:
Int
,
val
sort
:
Int
,
val
sort
:
Int
,
val
type
:
Int
,
val
type
:
Int
,
val
uid
:
Int
,
val
uid
:
Int
,
val
updateTime
:
Int
val
updateTime
:
Long
)
)
}
}
\ No newline at end of file
other_order_mode/src/main/java/com/gingersoft/gsa/other_order_mode/model/viewModel/PageViewModel.kt
View file @
f09f1d03
...
@@ -18,6 +18,7 @@ import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils
...
@@ -18,6 +18,7 @@ import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils
import
com.gingersoft.gsa.cloud.base.widget.DialogUtils
import
com.gingersoft.gsa.cloud.base.widget.DialogUtils
import
com.gingersoft.gsa.cloud.constans.PrintConstans
import
com.gingersoft.gsa.cloud.constans.PrintConstans
import
com.gingersoft.gsa.cloud.print.bean.OrderDetails
import
com.gingersoft.gsa.cloud.print.bean.OrderDetails
import
com.gingersoft.gsa.cloud.ui.utils.AppDialog
import
com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog
import
com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog
import
com.gingersoft.gsa.other_order_mode.R
import
com.gingersoft.gsa.other_order_mode.R
import
com.gingersoft.gsa.other_order_mode.data.WeatherRepository
import
com.gingersoft.gsa.other_order_mode.data.WeatherRepository
...
@@ -31,21 +32,16 @@ import kotlinx.coroutines.withContext
...
@@ -31,21 +32,16 @@ import kotlinx.coroutines.withContext
class
PageViewModel
(
private
val
repository
:
WeatherRepository
)
:
ViewModel
()
{
class
PageViewModel
(
private
val
repository
:
WeatherRepository
)
:
ViewModel
()
{
private
fun
showLoading
(
context
:
Context
,
message
:
String
?
=
null
)
{
if
(
message
!=
null
)
LoadingDialog
.
showDialogForLoading
(
context
,
message
,
true
)
else
LoadingDialog
.
showDialogForLoading
(
context
)
}
fun
cancelDialogForLoading
()
{
LoadingDialog
.
cancelDialogForLoading
()
}
companion
object
{
companion
object
{
var
fragmentStatus
=
arrayOf
(
"0,1,2,3"
,
"0,1"
,
"2"
,
"3"
,
"3"
)
var
fragmentStatus
=
arrayOf
(
"0,1,2,3"
,
"0,1"
,
"2"
,
"3"
,
"3"
)
var
fragmentType
=
arrayOf
(
"0"
,
"0"
,
"0"
,
"2"
,
"7"
)
var
fragmentType
=
arrayOf
(
"0"
,
"0"
,
"0"
,
"2"
,
"7"
)
val
PrintCode
=
1001
//打印
val
SendCode
=
1002
//指派送貨
val
OrderDelivery
=
1003
//訂單配送
val
Closing
=
1004
//結賬
val
CancelOrder
=
1005
//取消訂單
val
CancelLogistics
=
1006
//取消物流
val
ProductionComplete
=
1007
//製作完成
}
}
var
mOrderNum
=
arrayListOf
<
MutableLiveData
<
Int
>>()
var
mOrderNum
=
arrayListOf
<
MutableLiveData
<
Int
>>()
...
@@ -64,8 +60,6 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
...
@@ -64,8 +60,6 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
//派送員信息
//派送員信息
var
deliveryBean
:
DeliveryBean
?
=
null
var
deliveryBean
:
DeliveryBean
?
=
null
var
deliveryConfig
:
DeliveryConfig
?
=
null
/**
/**
* 獲取訂單數量
* 獲取訂單數量
* status
* status
...
@@ -249,16 +243,23 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
...
@@ -249,16 +243,23 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
// }
// }
fun
getShipanyAndOrderInfo
(
curStat
:
Int
,
restaurantId
:
String
,
orderId
:
String
,
listener
:
(
OrderDetails
?)
->
Unit
)
{
fun
getShipanyAndOrderInfo
(
restaurantId
:
String
,
orderId
:
String
,
listener
:
(
OrderDetails
?)
->
Unit
)
{
launch
({
launch
({
withContext
(
Dispatchers
.
IO
)
{
withContext
(
Dispatchers
.
IO
)
{
val
orderDetail
=
withContext
(
Dispatchers
.
Default
)
{
repository
.
getOrderInfo
(
orderId
)
}
val
orderDetail
=
withContext
(
Dispatchers
.
Default
)
{
repository
.
getOrderInfo
(
orderId
)
}
if
(
orderDetail
.
data
!=
null
&&
orderDetail
.
data
!!
.
isNotEmpty
())
{
if
(
orderDetail
.
data
!=
null
&&
orderDetail
.
data
!!
.
isNotEmpty
())
{
if
(
curStat
!=
0
)
{
//訂單詳情不為空
if
(
orderDetail
.
data
!!
[
0
].
isDelete
!=
0
)
{
//如果不是第三方物流單
withContext
(
Dispatchers
.
Main
)
{
listener
.
invoke
(
orderDetail
)
}
}
else
{
if
(
orderDetail
.
data
!!
[
0
].
curStat
!=
0
)
{
val
data
=
orderDetail
.
data
!!
[
0
]
val
data
=
orderDetail
.
data
!!
[
0
]
val
type
:
Int
val
type
:
Int
val
estimatedTime
:
String
val
estimatedTime
:
String
when
(
curStat
)
{
when
(
orderDetail
.
data
!!
[
0
].
curStat
)
{
1
->
{
1
->
{
type
=
2
type
=
2
estimatedTime
=
"預計配送員接單時間:"
estimatedTime
=
"預計配送員接單時間:"
...
@@ -277,7 +278,7 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
...
@@ -277,7 +278,7 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
}
}
}
}
val
estimatedBean
=
withContext
(
Dispatchers
.
Default
)
{
repository
.
getShipanyOrderTime
(
restaurantId
,
orderId
,
type
)
}
//1、预计整张订单完成时间2、預計配送員接單時間3、預計配送員到店時間4、配送員預計送達時間
val
estimatedBean
=
withContext
(
Dispatchers
.
Default
)
{
repository
.
getShipanyOrderTime
(
restaurantId
,
orderId
,
type
)
}
//1、预计整张订单完成时间2、預計配送員接單時間3、預計配送員到店時間4、配送員預計送達時間
if
(
estimatedBean
.
data
.
estimated_time
>
0
)
{
if
(
estimatedBean
?.
data
!=
null
&&
estimatedBean
.
data
.
estimated_time
>
0
)
{
data
.
estimatedTime
=
estimatedTime
+
(
"${estimatedBean.data.estimated_time}分鐘後"
)
data
.
estimatedTime
=
estimatedTime
+
(
"${estimatedBean.data.estimated_time}分鐘後"
)
}
else
{
}
else
{
data
.
estimatedTime
=
""
data
.
estimatedTime
=
""
...
@@ -286,6 +287,7 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
...
@@ -286,6 +287,7 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
withContext
(
Dispatchers
.
Main
)
{
withContext
(
Dispatchers
.
Main
)
{
listener
.
invoke
(
orderDetail
)
listener
.
invoke
(
orderDetail
)
}
}
}
}
else
{
}
else
{
withContext
(
Dispatchers
.
Main
)
{
withContext
(
Dispatchers
.
Main
)
{
listener
.
invoke
(
null
)
listener
.
invoke
(
null
)
...
@@ -299,168 +301,220 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
...
@@ -299,168 +301,220 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
})
})
}
}
/**
* 待確認 --- 確認之後狀態變為 製作中,按鈕顯示:自取:製作完成,外賣:指派送貨----自取的狀態為待取餐,按鈕為結賬,外賣的狀態為派送中,按鈕顯示結賬
fun
updateOrderStatusByBtn
(
btnId
:
Int
,
dataBean
:
OrderDetails
.
DataBean
,
restaurantId
:
String
,
listener
:
(
Int
,
Boolean
)
->
Unit
)
{
* 更新訂單信息,自取或是外賣
* status 0,1待確認
* 2 已確認,外賣是指派送單,自取是製作完成
*/
fun
updateOrderStatus
(
context
:
Context
,
data
:
OrderList
.
DataBeanX
.
DataBean
,
orderDetails
:
OrderDetails
,
listener
:
(
Boolean
)
->
Unit
)
{
launch
({
launch
({
val
status
=
when
(
data
.
STATUS
)
{
//如果以前的狀態是0,則修改為2。。。。
when
(
btnId
)
{
0
->
2
BtnBuilder
.
sureBtn
->
{
1
->
2
// 確認訂單
2
->
3
// 1、如果是外賣,指派到第三方物流
3
->
4
// 2、如果是自取,狀態改為製作中
else
->
0
repository
.
getDeliveryConfigDTO
(
restaurantId
).
apply
{
}
var
third
=
false
val
isPush
=
when
(
status
)
{
//獲取配送設置,查看當前單是否是第三方物流
2
->
2
for
(
i
in
0
until
data
.
list
.
size
)
{
3
->
1
if
(
data
.
list
[
i
].
distributionType
==
dataBean
.
deliveryMode
)
{
4
->
0
third
=
data
.
list
[
i
].
type
==
1
else
->
2
break
}
// if (data.order_type == 2) {
// 是外賣
if
(
status
==
3
)
{
//指派送貨,自取是製作完成
if
(
data
.
order_type
==
2
)
{
if
(
orderDetails
.
data
!!
[
0
].
isDelete
!=
0
)
{
if
(
deliveryBean
!=
null
&&
deliveryBean
!!
.
data
.
isNotEmpty
())
{
selectorDelivery
(
listener
,
context
,
data
,
status
,
isPush
)
}
else
{
ToastUtils
.
show
(
context
,
"沒有送貨員信息"
)
}
}
}
else
{
//第三方的單,執行重印功能
printOrder
(
orderDetails
,
data
,
context
,
listener
)
}
}
if
(
third
)
{
// 如果是第三方物流,調用第三方接口
thirdSend
(
dataBean
,
2
,
listener
)
}
else
{
}
else
{
//自取
updateOrderAndPrint
(
dataBean
,
2
,
listener
)
repository
.
gsUpdateOrderStatus
(
data
.
Id
.
toString
(),
status
,
data
.
order_type
,
1
,
""
,
""
,
""
,
"0"
,
""
,
1
,
0
).
apply
{
listener
.
invoke
(
code
==
"1"
)
}
}
}
}
}
else
if
(
status
==
4
)
{
//結賬,彈窗確認是否結賬
if
(
orderDetails
.
data
!!
[
0
].
isDelete
==
0
)
{
//第三方物流單,沒有結賬,重印
printOrder
(
orderDetails
,
data
,
context
,
listener
)
}
else
{
object
:
DialogUtils
(
context
,
R
.
layout
.
other_order_pause_orders
)
{
override
fun
initLayout
(
hepler
:
ViewHepler
,
dialog
:
Dialog
)
{
hepler
.
setText
(
R
.
id
.
tv_warning_title
,
"是否確認結賬?"
)
hepler
.
getView
<
TextView
>(
R
.
id
.
tv_dialog_confirm
).
setOnClickListener
{
dialog
.
dismiss
()
launch
({
// updateOrderStatus(data.Id.toString(), "", status, "", "", isPush, data.order_type).apply {
// listener.invoke(success)
// }
repository
.
gsUpdateOrderStatus
(
data
.
Id
.
toString
(),
status
,
data
.
order_type
,
3
,
""
,
""
,
""
,
"0"
,
""
,
1
,
0
).
apply
{
listener
.
invoke
(
code
==
"1"
)
}
},
{
})
}
}
hepler
.
getView
<
TextView
>(
R
.
id
.
tv_dialog_cancel
).
setOnClickListener
{
BtnBuilder
.
printBtn
->
{
dialog
.
dismiss
()
//打印
listener
.
invoke
(
false
)
printOrder
(
dataBean
,
listener
)
}
}
BtnBuilder
.
ProductionCompletedBtn
->
{
//製作完成
repository
.
gsUpdateOrderStatus
(
dataBean
.
ID
.
toString
(),
3
,
dataBean
.
order_type
,
1
,
""
,
""
,
""
,
"0"
,
""
,
1
,
0
).
apply
{
listener
.
invoke
(
ProductionComplete
,
code
==
"1"
)
}
}
}.
createDialogView
().
show
()
}
}
else
{
showLoading
(
context
)
// 確認訂單
var
third
=
false
if
(
deliveryConfig
!=
null
)
{
for
(
i
in
0
until
deliveryConfig
!!
.
data
.
list
.
size
)
{
if
(
deliveryConfig
!!
.
data
.
list
[
i
].
distributionType
==
data
.
deliveryMode
)
{
third
=
deliveryConfig
!!
.
data
.
list
[
i
].
type
==
1
break
}
}
}
}
},
{
})
}
}
if
(
third
)
{
// 如果是第三方物流,調用第三方接口
fun
gsUpdateOrderStatus
(
orderId
:
String
,
orderType
:
Int
,
listener
:
(
Int
,
Boolean
)
->
Unit
)
{
thirdSend
(
data
,
orderDetails
,
status
,
context
,
listener
)
launch
({
}
else
{
repository
.
gsUpdateOrderStatus
(
orderId
,
4
,
orderType
,
3
,
""
,
""
,
""
,
"0"
,
""
,
1
,
0
).
apply
{
updateOrderAndPrint
(
data
,
status
,
context
,
listener
)
listener
.
invoke
(
OrderDelivery
,
code
==
"1"
)
}
}
},
{
listener
.
invoke
(
OrderDelivery
,
false
)
})
}
}
/**
* 待確認 --- 確認之後狀態變為 製作中,按鈕顯示:自取:製作完成,外賣:指派送貨----自取的狀態為待取餐,按鈕為結賬,外賣的狀態為派送中,按鈕顯示結賬
* 更新訂單信息,自取或是外賣
* status 0,1待確認
* 2 已確認,外賣是指派送單,自取是製作完成
*/
fun
updateOrderStatus
(
context
:
Context
,
data
:
OrderList
.
DataBeanX
.
DataBean
,
orderDetails
:
OrderDetails
,
listener
:
(
Boolean
)
->
Unit
)
{
// launch({
// val status = when (data.STATUS) {//如果以前的狀態是0,則修改為2。。。。
// 0 -> 2
// 1 -> 2
// 2 -> 3
// 3 -> 4
// else -> 0
// }
// val isPush = when (status) {
// 2 -> 2
// 3 -> 1
// 4 -> 0
// else -> 2
// }
//// if (data.order_type == 2) {
// // 是外賣
// if (status == 3) {
// //指派送貨,自取是製作完成
// if (data.order_type == 2) {
// if (orderDetails.data!![0].isDelete != 0) {
// if (deliveryBean != null && deliveryBean!!.data.isNotEmpty()) {
// selectorDelivery(listener, context, data, status, isPush)
// } else {
// } else {
// // 自取的確認訂單
// ToastUtils.show(context, "沒有送貨員信息")
// repository.updateSelfOrderStatus(data.Id.toString(), status.toString(), GsaCloudApplication.getRestaurantId(context).toString()).apply {
// listener.invoke(success)
// }
// }
// } else {
// //第三方的單,執行重印功能
// printOrder(orderDetails, data, context, listener)
// }
// }
},
{
// } else {
// //自取
})
// repository.gsUpdateOrderStatus(data.Id.toString(), status, data.order_type, 1, "", "", "", "0", "", 1, 0).apply {
// listener.invoke(code == "1")
// }
// }
// } else if (status == 4) {
// //結賬,彈窗確認是否結賬
// if (orderDetails.data!![0].isDelete == 0) {
// //第三方物流單,沒有結賬,重印
// printOrder(orderDetails, data, context, listener)
// } else {
// object : DialogUtils(context, R.layout.other_order_pause_orders) {
// override fun initLayout(hepler: ViewHepler, dialog: Dialog) {
// hepler.setText(R.id.tv_warning_title, "是否確認結賬?")
// hepler.getView<TextView>(R.id.tv_dialog_confirm).setOnClickListener {
// dialog.dismiss()
// launch({
// // updateOrderStatus(data.Id.toString(), "", status, "", "", isPush, data.order_type).apply {
//// listener.invoke(success)
//// }
// repository.gsUpdateOrderStatus(data.Id.toString(), status, data.order_type, 3, "", "", "", "0", "", 1, 0).apply {
// listener.invoke(code == "1")
// }
// }, {
//
// })
// }
// hepler.getView<TextView>(R.id.tv_dialog_cancel).setOnClickListener {
// dialog.dismiss()
// listener.invoke(false)
// }
// }
// }.createDialogView().show()
// }
// } else {
// showLoading(context)
// // 確認訂單
// var third = false
// if (deliveryConfig != null) {
// for (i in 0 until deliveryConfig!!.data.list.size) {
// if (deliveryConfig!!.data.list[i].distributionType == data.deliveryMode) {
// third = deliveryConfig!!.data.list[i].type == 1
// break
// }
// }
// }
// if (third) {
// // 如果是第三方物流,調用第三方接口
// thirdSend(data, orderDetails, status, context, listener)
// } else {
// updateOrderAndPrint(data, status, context, listener)
// }
// }
//// } else {
//// // 自取的確認訂單
//// repository.updateSelfOrderStatus(data.Id.toString(), status.toString(), GsaCloudApplication.getRestaurantId(context).toString()).apply {
//// listener.invoke(success)
//// }
//// }
// }, {
//
// })
}
}
/**
/**
* 修改訂單狀態並打印
* 修改訂單狀態並打印
*/
*/
private
suspend
fun
updateOrderAndPrint
(
data
:
OrderList
.
DataBeanX
.
DataBean
,
status
:
Int
,
context
:
Context
,
listener
:
(
Boolean
)
->
Unit
)
{
private
suspend
fun
updateOrderAndPrint
(
dataBean
:
OrderDetails
.
DataBean
,
status
:
Int
,
listener
:
(
Int
,
Boolean
)
->
Unit
)
{
// updateOrderStatus(data.Id.toString(), "", status, "", "", isPush, data.order_type).apply {
repository
.
gsUpdateOrderStatus
(
dataBean
.
ID
.
toString
(),
status
,
dataBean
.
order_type
,
1
,
""
,
""
,
""
,
"0"
,
""
,
1
,
0
).
apply
{
//
// }
repository
.
gsUpdateOrderStatus
(
data
.
Id
.
toString
(),
status
,
data
.
order_type
,
1
,
""
,
""
,
""
,
"0"
,
""
,
1
,
0
).
apply
{
if
(
status
==
0
||
status
==
1
||
status
==
2
)
{
if
(
status
==
0
||
status
==
1
||
status
==
2
)
{
//確認送單
//確認送單
if
(
this
.
code
==
"1"
)
{
if
(
this
.
code
==
"1"
)
{
listener
.
invoke
(
OrderDelivery
,
true
)
// 打印
// 打印
// 初始化用於打印的view
// 初始化用於打印的view
// 送單成功後,再調用接口獲取取餐碼
// 送單成功後,再調用接口獲取取餐碼
showLoading
(
context
)
getOrderInfo
(
dataBean
.
ID
.
toString
())
{
getOrderInfo
(
data
.
Id
.
toString
())
{
if
(
it
!=
null
)
{
if
(
it
!=
null
)
{
printOrder
(
it
,
data
,
context
,
listener
)
printOrder
(
dataBean
,
listener
)
}
}
cancelDialogForLoading
()
}
}
}
else
{
}
else
{
ToastUtils
.
show
(
context
,
"送單失敗"
)
listener
.
invoke
(
OrderDelivery
,
false
)
}
}
}
}
cancelDialogForLoading
()
}
}
}
}
/**
/**
* 打印訂單
* 打印訂單
*/
*/
private
fun
printOrder
(
orderDetails
:
OrderDetails
,
data
:
OrderList
.
DataBeanX
.
DataBean
,
context
:
Context
,
listener
:
(
Boolean
)
->
Unit
)
{
private
fun
printOrder
(
dataBean
:
OrderDetails
.
DataBean
,
listener
:
(
Int
,
Boolean
)
->
Unit
)
{
if
(
orderDetails
.
data
!=
null
)
{
//訂單信息和廚房單
//訂單信息和廚房單
orderDetails
.
data
!!
[
0
].
order_type
=
data
.
order_type
MyOrderManage
.
setDataBean
(
dataBean
)
orderDetails
.
data
!!
[
0
].
orderPayType
=
data
.
orderPayType
MyOrderManage
.
setDataBean
(
orderDetails
.
data
!!
[
0
])
CC
.
obtainBuilder
(
"Component.Print"
)
CC
.
obtainBuilder
(
"Component.Print"
)
.
addParam
(
PrintConstans
.
PRINT_TYPE
,
5
)
.
addParam
(
PrintConstans
.
PRINT_TYPE
,
5
)
.
setActionName
(
"printActivity"
)
.
setActionName
(
"printActivity"
)
.
build
()
.
build
()
.
callAsyncCallbackOnMainThread
{
_
,
result
->
.
callAsyncCallbackOnMainThread
{
_
,
result
->
Log
.
e
(
"error"
,
"是否成功打印:"
+
result
.
isSuccess
)
if
(!
result
.
isSuccess
)
{
ToastUtils
.
show
(
context
,
"打印失敗"
)
}
MyOrderManage
.
setDataBean
(
null
)
MyOrderManage
.
setDataBean
(
null
)
listener
.
invoke
(
PrintCode
,
result
.
isSuccess
)
}
}
}
else
{
ToastUtils
.
show
(
context
,
"沒有訂單內容,打印失敗"
)
}
}
listener
.
invoke
(
true
)
/**
* 打開錢箱
*/
fun
openCashBox
()
{
CC
.
obtainBuilder
(
"Component.Print"
)
.
addParam
(
PrintConstans
.
PRINT_TYPE
,
6
)
.
addParam
(
PrintConstans
.
PRINT_LOADING
,
false
)
.
setActionName
(
"printActivity"
)
.
build
()
.
callAsyncCallbackOnMainThread
{
_
,
result
->
}
}
}
/**
/**
* 第三方派送
* 第三方派送
*/
*/
private
suspend
fun
thirdSend
(
data
:
OrderList
.
DataBeanX
.
DataBean
,
orderDetails
:
OrderDetails
,
status
:
Int
,
context
:
Context
,
listener
:
(
Boolean
)
->
Unit
)
{
private
suspend
fun
thirdSend
(
data
Bean
:
OrderDetails
.
DataBean
,
status
:
Int
,
listener
:
(
Int
,
Boolean
)
->
Unit
)
{
val
third
=
ThirdItem
()
val
third
=
ThirdItem
()
orderDetails
.
data
?.
get
(
0
)
?.
PRODUCT_NAME
?.
let
{
//將食品數據轉為第三方需要的數據
dataBean
.
PRODUCT_NAME
?.
let
{
for
(
i
in
it
)
{
for
(
i
in
it
)
{
val
price
=
ThirdItem
.
ThirdItemItem
.
UntPrice
(
`val`
=
i
.
PRICE
!!
.
toDouble
())
val
price
=
ThirdItem
.
ThirdItemItem
.
UntPrice
(
`val`
=
i
.
PRICE
!!
.
toDouble
())
val
thirdItem
=
if
(
i
.
PRODUCT_NAME
!=
null
)
{
val
thirdItem
=
if
(
i
.
PRODUCT_NAME
!=
null
)
{
...
@@ -471,27 +525,29 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
...
@@ -471,27 +525,29 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
third
.
add
(
thirdItem
)
third
.
add
(
thirdItem
)
}
}
}
}
repository
.
thirdDelivery
(
data
.
Id
.
toString
(),
third
).
apply
{
//調用第三方物流接口
cancelDialogForLoading
()
repository
.
thirdDelivery
(
dataBean
.
ID
.
toString
(),
third
).
apply
{
if
(
success
)
{
if
(
success
)
{
ToastUtils
.
show
(
context
,
"訂單派送成功"
)
listener
.
invoke
(
OrderDelivery
,
true
)
updateOrderAndPrint
(
data
,
status
,
context
,
listener
)
updateOrderAndPrint
(
data
Bean
,
status
,
listener
)
}
else
{
}
else
{
ToastUtils
.
show
(
context
,
"訂單派送失敗"
)
listener
.
invoke
(
OrderDelivery
,
false
)
}
}
}
}
}
}
// suspend fun updateOrderStatus(orderId: String, selfOrderId: String?, status: Int, mobile: String?, sender: String?, isPush: Int, orderType: Int): UpdateOrderBean {
// return repository.updateOrderStatus(orderId, selfOrderId, status, mobile, sender, isPush, orderType)
// }
/**
/**
* 選擇派送員
* 選擇派送員
*/
*/
private
fun
selectorDelivery
(
listener
:
(
Boolean
)
->
Unit
,
context
:
Context
,
data
:
OrderList
.
DataBeanX
.
DataBean
,
status
:
Int
,
isPush
:
Int
)
{
fun
selectorDelivery
(
context
:
Context
,
dataBean
:
OrderDetails
.
DataBean
,
status
:
Int
,
listener
:
(
Int
,
Boolean
)
->
Unit
)
{
launch
({
repository
.
getDeliveryInfo
(
GsaCloudApplication
.
getRestaurantId
(
context
).
toString
(),
GsaCloudApplication
.
getMemberId
(
context
).
toString
()).
apply
{
deliveryBean
=
this
if
(
this
.
data
.
isEmpty
())
{
ToastUtils
.
show
(
context
,
"沒有配置配送員信息"
)
return
@apply
}
//顯示選擇派送員
//顯示選擇派送員
listener
.
invoke
(
false
)
//關閉彈窗。但是不刷新頁面
object
:
DialogUtils
(
context
,
R
.
layout
.
other_order_layout_assign_deliveryman
)
{
object
:
DialogUtils
(
context
,
R
.
layout
.
other_order_layout_assign_deliveryman
)
{
override
fun
initLayout
(
hepler
:
ViewHepler
?,
dialog
:
Dialog
?)
{
override
fun
initLayout
(
hepler
:
ViewHepler
?,
dialog
:
Dialog
?)
{
hepler
!!
.
getView
<
TextView
>(
R
.
id
.
tv_delivery_cancel
).
setOnClickListener
{
hepler
!!
.
getView
<
TextView
>(
R
.
id
.
tv_delivery_cancel
).
setOnClickListener
{
...
@@ -516,21 +572,11 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
...
@@ -516,21 +572,11 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
confirmBtn
.
setOnClickListener
{
confirmBtn
.
setOnClickListener
{
if
(
selectIndex
!=
-
1
)
{
if
(
selectIndex
!=
-
1
)
{
launch
({
launch
({
// updateOrderStatus(data.Id.toString(), "", status, deliveryBean!!.data[deliveryAdapter.selectIndex].mobile, deliveryBean!!.data[deliveryAdapter.selectIndex].userName, isPush, data.order_type).apply {
repository
.
gsUpdateOrderStatus
(
dataBean
.
ID
.
toString
(),
status
,
dataBean
.
order_type
,
1
,
""
,
deliveryBean
!!
.
data
[
deliveryAdapter
.
selectIndex
].
userName
,
deliveryBean
!!
.
data
[
deliveryAdapter
.
selectIndex
].
mobile
,
"0"
,
""
,
1
,
0
).
apply
{
// if (this.success) {
// dialog?.dismiss()
// //回調
// listener.invoke(success)//刷新頁面
// ToastUtils.show(context, "訂單開始派送")
// } else {
// ToastUtils.show(context, "訂單派送失敗")
// }
// }
repository
.
gsUpdateOrderStatus
(
data
.
Id
.
toString
(),
status
,
data
.
order_type
,
1
,
""
,
deliveryBean
!!
.
data
[
deliveryAdapter
.
selectIndex
].
userName
,
deliveryBean
!!
.
data
[
deliveryAdapter
.
selectIndex
].
mobile
,
"0"
,
""
,
1
,
0
).
apply
{
if
(
code
==
"1"
)
{
if
(
code
==
"1"
)
{
dialog
?.
dismiss
()
dialog
?.
dismiss
()
//回調
//回調
listener
.
invoke
(
code
==
"1"
)
//刷新頁面
listener
.
invoke
(
OrderDelivery
,
code
==
"1"
)
//刷新頁面
ToastUtils
.
show
(
context
,
"訂單開始派送"
)
ToastUtils
.
show
(
context
,
"訂單開始派送"
)
}
else
{
}
else
{
ToastUtils
.
show
(
context
,
"訂單派送失敗"
)
ToastUtils
.
show
(
context
,
"訂單派送失敗"
)
...
@@ -550,6 +596,63 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
...
@@ -550,6 +596,63 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
.
setGravity
(
Gravity
.
BOTTOM
)
.
setGravity
(
Gravity
.
BOTTOM
)
.
show
()
.
show
()
}
}
},
{
})
}
/**
* 選擇取消原因
*/
fun
selectorCancelReason
(
context
:
Context
,
cancelReason
:
CancelReason
,
title
:
String
,
listener
:
(
Int
)
->
Unit
)
{
object
:
DialogUtils
(
context
,
R
.
layout
.
other_order_layout_assign_deliveryman
)
{
override
fun
initLayout
(
hepler
:
ViewHepler
?,
dialog
:
Dialog
?)
{
hepler
!!
.
getView
<
TextView
>(
R
.
id
.
tv_delivery_cancel
).
setOnClickListener
{
dialog
!!
.
dismiss
()
}
hepler
.
getView
<
TextView
>(
R
.
id
.
tv_title
).
text
=
title
val
confirmBtn
:
TextView
=
hepler
.
getView
(
R
.
id
.
tv_delivery_confirm
)
var
selectIndex
=
-
1
val
recycler
=
hepler
.
getView
<
RecyclerView
>(
R
.
id
.
rv_delivery
)
if
(
cancelReason
.
data
.
isNotEmpty
()
&&
cancelReason
.
data
.
size
<
3
)
{
recycler
.
layoutManager
=
GridLayoutManager
(
context
,
cancelReason
.
data
.
size
)
}
else
{
recycler
.
layoutManager
=
GridLayoutManager
(
context
,
3
)
}
val
cancelReasons
=
ArrayList
<
DeliveryBean
.
Data
>()
for
(
bean
in
cancelReason
.
data
)
{
val
data
=
DeliveryBean
.
Data
(
bean
.
id
,
""
,
bean
.
content
)
cancelReasons
.
add
(
data
)
}
val
deliveryAdapter
=
DeliveryAdapter
(
context
,
cancelReasons
)
recycler
.
adapter
=
deliveryAdapter
deliveryAdapter
.
setOnItemClickListener
{
adapter
,
view
,
position
->
selectIndex
=
position
deliveryAdapter
.
selectIndex
=
position
adapter
.
notifyDataSetChanged
()
confirmBtn
.
background
=
context
.
resources
.
getDrawable
(
R
.
drawable
.
shape_green_btn
)
}
confirmBtn
.
setOnClickListener
{
if
(
selectIndex
!=
-
1
)
{
listener
.
invoke
(
selectIndex
)
}
else
{
ToastUtils
.
show
(
context
,
"請選擇一個取消原因"
)
}
}
}
}.
setWidth
(
WindowManager
.
LayoutParams
.
MATCH_PARENT
)
.
setHeight
((
ArmsUtils
.
getScreenHeidth
(
context
)
*
0.5
).
toInt
())
.
createDialogView
()
.
setGravity
(
Gravity
.
BOTTOM
)
.
show
()
}
/**
/**
* 獲取配送員信息
* 獲取配送員信息
...
@@ -567,10 +670,10 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
...
@@ -567,10 +670,10 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
/**
/**
* 獲取餐廳第三方物流信息
* 獲取餐廳第三方物流信息
*/
*/
fun
getDeliveryConfigDTO
(
context
:
Contex
t
)
{
fun
getDeliveryConfigDTO
(
restaurantId
:
String
,
listener
:
(
DeliveryConfig
?)
->
Uni
t
)
{
launch
({
launch
({
repository
.
getDeliveryConfigDTO
(
GsaCloudApplication
.
getRestaurantId
(
context
).
toString
()
).
apply
{
repository
.
getDeliveryConfigDTO
(
restaurantId
).
apply
{
deliveryConfig
=
this
listener
.
invoke
(
this
)
}
}
},
{
},
{
...
@@ -580,9 +683,9 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
...
@@ -580,9 +683,9 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
/**
/**
* 取消物流
* 取消物流
*/
*/
fun
cancelLogistics
(
shopId
:
String
,
orderId
:
String
,
listener
:
(
String
)
->
Unit
)
{
fun
cancelLogistics
(
shopId
:
String
,
orderId
:
String
,
reasonId
:
String
,
reasonDesc
:
String
,
listener
:
(
String
)
->
Unit
)
{
launch
({
launch
({
repository
.
cancelLogistics
(
shopId
,
orderId
).
apply
{
repository
.
cancelLogistics
(
shopId
,
orderId
,
reasonId
,
reasonDesc
).
apply
{
if
(
success
)
{
if
(
success
)
{
listener
.
invoke
(
"已取消物流"
)
listener
.
invoke
(
"已取消物流"
)
}
else
{
}
else
{
...
@@ -595,12 +698,11 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
...
@@ -595,12 +698,11 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
}
}
/**
/**
* 取消訂單
,如果有物流需要先提示取消物流
* 取消訂單
*/
*/
fun
cancelOrder
(
context
:
Context
,
orderId
:
String
,
listener
:
(
Boolean
)
->
Unit
)
{
fun
cancelOrder
(
context
:
Context
,
orderId
:
String
,
reasonId
:
String
,
reasonDesc
:
String
,
listener
:
(
Boolean
)
->
Unit
)
{
launch
({
launch
({
showLoading
(
context
)
repository
.
updateOrderStates
(
GsaCloudApplication
.
getMemberId
(
context
).
toString
(),
orderId
,
"6"
,
GsaCloudApplication
.
getMemberName
(
context
),
reasonId
,
reasonDesc
).
apply
{
repository
.
updateOrderStates
(
GsaCloudApplication
.
getMemberId
(
context
).
toString
(),
orderId
,
"6"
,
GsaCloudApplication
.
getMemberName
(
context
)).
apply
{
listener
.
invoke
(
code
==
"1"
)
listener
.
invoke
(
code
==
"1"
)
}
}
},
{
},
{
...
@@ -608,13 +710,16 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
...
@@ -608,13 +710,16 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
})
})
}
}
fun
getCancelReason
(
restaurantId
:
String
,
type
:
String
)
{
/**
* 獲取餐廳配置的取消原因
*/
fun
getCancelReason
(
restaurantId
:
String
,
type
:
String
,
listener
:
(
CancelReason
?)
->
Unit
)
{
launch
({
launch
({
repository
.
getCancelReason
(
restaurantId
,
type
).
apply
{
repository
.
getCancelReason
(
restaurantId
,
type
).
apply
{
listener
.
invoke
(
this
)
}
}
},
{
},
{
listener
.
invoke
(
null
)
})
})
}
}
...
@@ -628,10 +733,4 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
...
@@ -628,10 +733,4 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
}
}
}
}
override
fun
onCleared
()
{
super
.
onCleared
()
cancelDialogForLoading
()
}
}
}
\ No newline at end of file
other_order_mode/src/main/java/com/gingersoft/gsa/other_order_mode/ui/activity/OtherOrderActivity.kt
View file @
f09f1d03
...
@@ -102,7 +102,6 @@ class OtherOrderActivity : BaseActivity() {
...
@@ -102,7 +102,6 @@ class OtherOrderActivity : BaseActivity() {
btnHeight
=
btn_open_or_close_info
.
height
.
toFloat
()
btnHeight
=
btn_open_or_close_info
.
height
.
toFloat
()
}
}
pageViewModel
.
getDeliveryInfo
(
this
)
pageViewModel
.
getDeliveryInfo
(
this
)
pageViewModel
.
getDeliveryConfigDTO
(
this
)
}
}
/**
/**
...
@@ -257,13 +256,14 @@ class OtherOrderActivity : BaseActivity() {
...
@@ -257,13 +256,14 @@ class OtherOrderActivity : BaseActivity() {
private
fun
initWebsocket
()
{
private
fun
initWebsocket
()
{
//開啟websocket
//開啟websocket
val
intent
=
Intent
(
this
,
GetInfoUpdateService
::
class
.
java
)
val
intent
=
Intent
(
this
,
GetInfoUpdateService
::
class
.
java
)
startService
(
intent
)
bindService
(
intent
,
serviceConnection
,
Context
.
BIND_AUTO_CREATE
)
bindService
(
intent
,
serviceConnection
,
Context
.
BIND_AUTO_CREATE
)
}
}
override
fun
onDestroy
()
{
//
override fun onDestroy() {
super
.
onDestroy
()
//
super.onDestroy()
unbindService
(
serviceConnection
)
//
unbindService(serviceConnection)
}
//
}
private
var
serviceConnection
=
object
:
ServiceConnection
{
private
var
serviceConnection
=
object
:
ServiceConnection
{
override
fun
onServiceConnected
(
name
:
ComponentName
,
service
:
IBinder
)
{
override
fun
onServiceConnected
(
name
:
ComponentName
,
service
:
IBinder
)
{
...
@@ -274,12 +274,12 @@ class OtherOrderActivity : BaseActivity() {
...
@@ -274,12 +274,12 @@ class OtherOrderActivity : BaseActivity() {
Log
.
e
(
"message"
,
"消息類型$type"
)
Log
.
e
(
"message"
,
"消息類型$type"
)
if
(
type
==
3
||
type
==
4
||
type
==
5
if
(
type
==
3
||
type
==
4
||
type
==
5
||
type
==
6
||
type
==
7
)
{
||
type
==
6
||
type
==
7
)
{
if
(
type
==
6
||
type
==
7
)
{
//
if (type == 6 || type == 7) {
//
}
else
{
//
} else {
//播放提示音
//
//播放提示音
initSoundPool
()
//
initSoundPool()
}
//
}
pageViewModel
.
refreshState
.
postValue
(
selectPosition
)
pageViewModel
.
refreshState
.
postValue
(
selectPosition
)
}
}
}
}
...
@@ -420,6 +420,11 @@ class OtherOrderActivity : BaseActivity() {
...
@@ -420,6 +420,11 @@ class OtherOrderActivity : BaseActivity() {
startActivity
(
Intent
(
this
,
HistoryOrderActivity
::
class
.
java
))
startActivity
(
Intent
(
this
,
HistoryOrderActivity
::
class
.
java
))
pop
!!
.
dismiss
()
pop
!!
.
dismiss
()
}
}
view
.
findViewById
<
QMUIAlphaTextView
>(
R
.
id
.
tv_open_cash_box
).
setOnClickListener
{
//開錢箱
pageViewModel
.
openCashBox
()
pop
!!
.
dismiss
()
}
}
else
{
}
else
{
pop
!!
.
show
(
it
)
pop
!!
.
show
(
it
)
}
}
...
...
other_order_mode/src/main/java/com/gingersoft/gsa/other_order_mode/ui/fragment/DeliveryFragment.kt
View file @
f09f1d03
...
@@ -5,6 +5,7 @@ import android.util.Log
...
@@ -5,6 +5,7 @@ import android.util.Log
import
android.view.LayoutInflater
import
android.view.LayoutInflater
import
android.view.View
import
android.view.View
import
android.view.ViewGroup
import
android.view.ViewGroup
import
android.widget.Button
import
androidx.fragment.app.Fragment
import
androidx.fragment.app.Fragment
import
androidx.lifecycle.Observer
import
androidx.lifecycle.Observer
import
androidx.lifecycle.ViewModelProvider
import
androidx.lifecycle.ViewModelProvider
...
@@ -18,7 +19,6 @@ import com.gingersoft.gsa.other_order_mode.ui.adapter.DeliveryListAdapter
...
@@ -18,7 +19,6 @@ import com.gingersoft.gsa.other_order_mode.ui.adapter.DeliveryListAdapter
import
com.gingersoft.gsa.other_order_mode.ui.base.BaseFragment
import
com.gingersoft.gsa.other_order_mode.ui.base.BaseFragment
import
com.gingersoft.gsa.other_order_mode.util.InjectorUtil
import
com.gingersoft.gsa.other_order_mode.util.InjectorUtil
import
kotlinx.android.synthetic.main.fragment_delivery_list.*
import
kotlinx.android.synthetic.main.fragment_delivery_list.*
import
kotlin.math.max
class
DeliveryFragment
:
BaseFragment
()
{
class
DeliveryFragment
:
BaseFragment
()
{
...
@@ -30,15 +30,21 @@ class DeliveryFragment : BaseFragment() {
...
@@ -30,15 +30,21 @@ class DeliveryFragment : BaseFragment() {
private
lateinit
var
viewModel
:
DeliveryViewModel
private
lateinit
var
viewModel
:
DeliveryViewModel
private
lateinit
var
contentView
:
View
private
lateinit
var
addBtn
:
Button
override
fun
onCreateView
(
inflater
:
LayoutInflater
,
container
:
ViewGroup
?,
override
fun
onCreateView
(
inflater
:
LayoutInflater
,
container
:
ViewGroup
?,
savedInstanceState
:
Bundle
?):
View
?
{
savedInstanceState
:
Bundle
?):
View
?
{
return
inflater
.
inflate
(
R
.
layout
.
fragment_delivery_list
,
container
,
false
)
contentView
=
inflater
.
inflate
(
R
.
layout
.
fragment_delivery_list
,
container
,
false
)
addBtn
=
contentView
.
findViewById
(
R
.
id
.
btn_default
)
return
contentView
}
}
override
fun
onActivityCreated
(
savedInstanceState
:
Bundle
?)
{
override
fun
onActivityCreated
(
savedInstanceState
:
Bundle
?)
{
super
.
onActivityCreated
(
savedInstanceState
)
super
.
onActivityCreated
(
savedInstanceState
)
viewModel
=
ViewModelProvider
(
activity
?.
viewModelStore
!!
,
InjectorUtil
.
getDeliveryFactory
())[
DeliveryViewModel
::
class
.
java
]
viewModel
=
ViewModelProvider
(
activity
?.
viewModelStore
!!
,
InjectorUtil
.
getDeliveryFactory
())[
DeliveryViewModel
::
class
.
java
]
tv_add_delivery
.
setOnClickListener
{
addBtn
.
text
=
"+添加配送方式"
addBtn
.
setOnClickListener
{
(
activity
as
DeliverySettingActivity
).
editDelivery
(
null
)
(
activity
as
DeliverySettingActivity
).
editDelivery
(
null
)
}
}
viewModel
.
otherInfo
.
observe
(
viewLifecycleOwner
,
Observer
{
it
->
viewModel
.
otherInfo
.
observe
(
viewLifecycleOwner
,
Observer
{
it
->
...
@@ -53,7 +59,7 @@ class DeliveryFragment : BaseFragment() {
...
@@ -53,7 +59,7 @@ class DeliveryFragment : BaseFragment() {
deliveryListAdapter
!!
.
setOnItemChildClickListener
{
adapter
,
view
,
position
->
deliveryListAdapter
!!
.
setOnItemChildClickListener
{
adapter
,
view
,
position
->
when
(
view
.
id
)
{
when
(
view
.
id
)
{
R
.
id
.
iv_delete
->
{
R
.
id
.
iv_delete
->
{
AppDialog
.
showWaringDialog
(
context
,
"是否確認刪除"
)
{
_
,
dialog
->
AppDialog
()
.
showWaringDialog
(
context
,
"是否確認刪除"
)
{
_
,
dialog
->
showLoading
()
showLoading
()
it
.
data
.
list
[
position
].
apply
{
it
.
data
.
list
[
position
].
apply
{
viewModel
.
updateDeliveryConfig
(
distributionFeeMin
.
toString
(),
distributionFeeMax
.
toString
(),
distributionFee
.
toString
(),
deliveryCost
.
toString
(),
distributionType
,
type
,
desc
,
id
,
GsaCloudApplication
.
getRestaurantId
(
context
),
GsaCloudApplication
.
getMemberId
(
context
),
lackPrice
.
toString
(),
1
)
{
viewModel
.
updateDeliveryConfig
(
distributionFeeMin
.
toString
(),
distributionFeeMax
.
toString
(),
distributionFee
.
toString
(),
deliveryCost
.
toString
(),
distributionType
,
type
,
desc
,
id
,
GsaCloudApplication
.
getRestaurantId
(
context
),
GsaCloudApplication
.
getMemberId
(
context
),
lackPrice
.
toString
(),
1
)
{
...
...
other_order_mode/src/main/java/com/gingersoft/gsa/other_order_mode/ui/fragment/HistoryFragment.kt
View file @
f09f1d03
...
@@ -39,6 +39,7 @@ class HistoryFragment : BaseFragment() {
...
@@ -39,6 +39,7 @@ class HistoryFragment : BaseFragment() {
override
fun
onActivityCreated
(
savedInstanceState
:
Bundle
?)
{
override
fun
onActivityCreated
(
savedInstanceState
:
Bundle
?)
{
super
.
onActivityCreated
(
savedInstanceState
)
super
.
onActivityCreated
(
savedInstanceState
)
viewModel
=
ViewModelProvider
(
activity
!!
.
viewModelStore
,
InjectorUtil
.
getHistoryModelFactory
())[
HistoryOrderViewModel
::
class
.
java
].
apply
{
viewModel
=
ViewModelProvider
(
activity
!!
.
viewModelStore
,
InjectorUtil
.
getHistoryModelFactory
())[
HistoryOrderViewModel
::
class
.
java
].
apply
{
historyData
.
observe
(
viewLifecycleOwner
,
Observer
{
it
->
historyData
.
observe
(
viewLifecycleOwner
,
Observer
{
it
->
cancelDialogForLoading
()
cancelDialogForLoading
()
refresh_layout
.
finishRefresh
()
refresh_layout
.
finishRefresh
()
...
@@ -47,7 +48,7 @@ class HistoryFragment : BaseFragment() {
...
@@ -47,7 +48,7 @@ class HistoryFragment : BaseFragment() {
it
?.
let
{
_
->
it
?.
let
{
_
->
refresh_layout
.
setEnableLoadMore
((
it
.
data
!=
null
&&
it
.
data
!!
.
size
>
0
))
refresh_layout
.
setEnableLoadMore
((
it
.
data
!=
null
&&
it
.
data
!!
.
size
>
0
))
if
(
mHistoryOrderAdapter
==
null
)
{
if
(
mHistoryOrderAdapter
==
null
)
{
mHistoryOrderAdapter
=
it
.
data
.
let
{
it1
->
context
?.
let
{
it2
->
HistoryOrderAdapter
(
it2
,
it1
)
}
}
mHistoryOrderAdapter
=
it
.
data
.
let
{
it1
->
context
?.
let
{
it2
->
HistoryOrderAdapter
(
status
.
value
,
it2
,
it1
)
}
}
rv_other_order
.
layoutManager
=
LinearLayoutManager
(
context
)
rv_other_order
.
layoutManager
=
LinearLayoutManager
(
context
)
rv_other_order
.
adapter
=
mHistoryOrderAdapter
rv_other_order
.
adapter
=
mHistoryOrderAdapter
mHistoryOrderAdapter
!!
.
setOnItemClickListenter
{
it
->
mHistoryOrderAdapter
!!
.
setOnItemClickListenter
{
it
->
...
@@ -77,6 +78,7 @@ class HistoryFragment : BaseFragment() {
...
@@ -77,6 +78,7 @@ class HistoryFragment : BaseFragment() {
}
}
}
else
{
}
else
{
mHistoryOrderAdapter
!!
.
data
=
it
.
data
mHistoryOrderAdapter
!!
.
data
=
it
.
data
mHistoryOrderAdapter
!!
.
stauts
=
status
.
value
mHistoryOrderAdapter
!!
.
notifyDataSetChanged
()
mHistoryOrderAdapter
!!
.
notifyDataSetChanged
()
}
}
}
}
...
...
other_order_mode/src/main/java/com/gingersoft/gsa/other_order_mode/ui/fragment/PlaceholderFragment.kt
View file @
f09f1d03
package
com.gingersoft.gsa.other_order_mode.ui.fragment
package
com.gingersoft.gsa.other_order_mode.ui.fragment
import
android.content.Intent
import
android.os.Bundle
import
android.os.Bundle
import
android.util.Log
import
android.util.Log
import
android.view.LayoutInflater
import
android.view.LayoutInflater
...
@@ -14,6 +15,7 @@ import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils
...
@@ -14,6 +15,7 @@ import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils
import
com.gingersoft.gsa.cloud.ui.utils.AppDialog
import
com.gingersoft.gsa.cloud.ui.utils.AppDialog
import
com.gingersoft.gsa.other_order_mode.R
import
com.gingersoft.gsa.other_order_mode.R
import
com.gingersoft.gsa.other_order_mode.model.viewModel.PageViewModel
import
com.gingersoft.gsa.other_order_mode.model.viewModel.PageViewModel
import
com.gingersoft.gsa.other_order_mode.ui.activity.OrderDetailsActivity
import
com.gingersoft.gsa.other_order_mode.ui.adapter.OtherOrdersAdapter
import
com.gingersoft.gsa.other_order_mode.ui.adapter.OtherOrdersAdapter
import
com.gingersoft.gsa.other_order_mode.ui.base.BaseFragment
import
com.gingersoft.gsa.other_order_mode.ui.base.BaseFragment
import
com.gingersoft.gsa.other_order_mode.util.InjectorUtil
import
com.gingersoft.gsa.other_order_mode.util.InjectorUtil
...
@@ -35,18 +37,8 @@ class PlaceholderFragment : BaseFragment() {
...
@@ -35,18 +37,8 @@ class PlaceholderFragment : BaseFragment() {
override
fun
onActivityCreated
(
savedInstanceState
:
Bundle
?)
{
override
fun
onActivityCreated
(
savedInstanceState
:
Bundle
?)
{
super
.
onActivityCreated
(
savedInstanceState
)
super
.
onActivityCreated
(
savedInstanceState
)
pageViewModel
=
ViewModelProvider
(
activity
?.
viewModelStore
!!
,
InjectorUtil
.
getWeatherModelFactory
())[
PageViewModel
::
class
.
java
].
apply
{
pageViewModel
=
ViewModelProvider
(
activity
?.
viewModelStore
!!
,
InjectorUtil
.
getWeatherModelFactory
())[
PageViewModel
::
class
.
java
].
apply
{
// 第一次進入獲取數據
// getOrderList(this, false)
// 綁定狀態,如果這個值發生變化
// 綁定狀態,如果這個值發生變化
refreshState
.
observe
(
viewLifecycleOwner
,
Observer
{
refreshState
.
observe
(
viewLifecycleOwner
,
Observer
{
// 觸發刷新,判斷是否更新
// 並且type一致
//如果當前fragment的狀態中包含需要刷新的狀態,獲取數據
// if (PageViewModel.fragmentStatus[arguments?.getInt(INDEX)!!].contains(it.toString())) {
// page = 1
// getOrderList(this, false)
// }
Log
.
e
(
"eee"
,
"$it 當前:"
+
arguments
?.
getInt
(
INDEX
))
if
(
arguments
?.
getInt
(
INDEX
)
==
it
)
{
if
(
arguments
?.
getInt
(
INDEX
)
==
it
)
{
page
=
1
page
=
1
getOrderList
(
this
,
false
)
getOrderList
(
this
,
false
)
...
@@ -60,63 +52,71 @@ class PlaceholderFragment : BaseFragment() {
...
@@ -60,63 +52,71 @@ class PlaceholderFragment : BaseFragment() {
adapter
.
setOnItemClickListenter
{
data
->
adapter
.
setOnItemClickListenter
{
data
->
// 點擊查詢食品詳情
// 點擊查詢食品詳情
showLoading
()
val
intent
=
Intent
(
activity
,
OrderDetailsActivity
::
class
.
java
)
pageViewModel
.
getShipanyAndOrderInfo
(
data
.
curStat
,
GsaCloudApplication
.
getRestaurantId
(
context
).
toString
(),
data
.
Id
.
toString
())
{
it1
->
intent
.
putExtra
(
"orderId"
,
data
.
Id
.
toString
())
cancelDialogForLoading
()
intent
.
putExtra
(
"orderType"
,
data
.
order_type
)
//顯示彈窗
intent
.
putExtra
(
"orderStatus"
,
data
.
STATUS
)
if
(
this
@PlaceholderFragment
.
context
!=
null
&&
it1
!=
null
)
{
intent
.
putExtra
(
"orderPayType"
,
data
.
orderPayType
)
OtherOrderUtils
.
showOrderDetailsDialog
(
this
@PlaceholderFragment
.
context
!!
,
it1
,
data
.
STATUS
,
data
.
order_type
)
{
view
,
_
,
dialog
->
startActivity
(
intent
)
when
(
view
.
id
)
{
R
.
id
.
btn_assign_shipping
->
{
//修改訂單狀態
// showLoading()
pageViewModel
.
updateOrderStatus
(
this
@PlaceholderFragment
.
context
!!
,
data
,
it1
)
{
// pageViewModel.getShipanyAndOrderInfo(data.curStat, GsaCloudApplication.getRestaurantId(context).toString(), data.Id.toString()) { it1 ->
dialog
.
dismiss
()
// cancelDialogForLoading()
if
(
it
)
{
// //顯示彈窗
// 關閉彈窗,並刷新當前頁面
// if (this@PlaceholderFragment.context != null && it1 != null) {
refresh
()
// OtherOrderUtils.showOrderDetailsDialog(this@PlaceholderFragment.context!!, it1, data.STATUS, data.order_type) { view, _, dialog ->
}
// when (view.id) {
}
// R.id.btn_assign_shipping -> {
}
// //修改訂單狀態
R
.
id
.
btn_cancel_order
->
{
// pageViewModel.updateOrderStatus(this@PlaceholderFragment.context!!, data, it1) {
//取消訂單,先判斷有沒有物流
// dialog.dismiss()
if
(
it1
.
data
!!
[
0
].
isDelete
==
0
)
{
// if (it) {
//第三方物流單
// // 關閉彈窗,並刷新當前頁面
//彈出彈窗詢問是否確認取消
// refresh()
AppDialog
.
showWaringDialog
(
context
,
"是否確認取消第三方派送?"
)
{
v
,
dialog
->
// }
when
(
v
.
id
)
{
// }
R
.
id
.
tv_dialog_confirm
->
{
// }
//取消物流
// R.id.btn_cancel_order -> {
showLoading
()
// //取消訂單,先判斷有沒有物流
pageViewModel
.
cancelLogistics
(
GsaCloudApplication
.
getRestaurantId
(
context
).
toString
(),
data
.
Id
.
toString
())
{
// if (it1.data!![0].isDelete == 0) {
ToastUtils
.
show
(
context
,
it
)
// //第三方物流單
cancelDialogForLoading
()
// //彈出彈窗詢問是否確認取消
refresh
()
//刷新當前頁面
// AppDialog.showWaringDialog(context, "是否確認取消第三方派送?") { v, dialog ->
}
// when (v.id) {
dialog
.
dismiss
()
// R.id.tv_dialog_confirm -> {
}
// //取消物流
R
.
id
.
tv_dialog_cancel
->
dialog
.
dismiss
()
// showLoading()
}
// pageViewModel.cancelLogistics(GsaCloudApplication.getRestaurantId(context).toString(), data.Id.toString()) {
}
// ToastUtils.show(context, it)
}
else
{
// cancelDialogForLoading()
//本店配送的單
// refresh()//刷新當前頁面
pageViewModel
.
cancelOrder
(
context
!!
,
data
.
Id
.
toString
())
{
// }
ToastUtils
.
show
(
context
,
if
(
it
)
{
// dialog.dismiss()
"取消訂單成功"
// }
}
else
{
// R.id.tv_dialog_cancel -> dialog.dismiss()
"取消訂單失敗"
// }
})
// }
cancelDialogForLoading
()
// } else {
refresh
()
//刷新當前頁面
// //本店配送的單
}
// pageViewModel.cancelOrder(context!!, data.Id.toString()) {
}
// ToastUtils.show(context, if (it) {
dialog
.
dismiss
()
// "取消訂單成功"
}
// } else {
}
// "取消訂單失敗"
}
// })
}
else
{
// cancelDialogForLoading()
ToastUtils
.
show
(
context
,
"獲取訂單詳情失敗"
)
// refresh()//刷新當前頁面
}
// }
}
// }
// dialog.dismiss()
// }
// }
// }
// } else {
// ToastUtils.show(context, "獲取訂單詳情失敗")
// }
// }
}
}
rv_other_order
.
adapter
=
adapter
rv_other_order
.
adapter
=
adapter
...
@@ -136,7 +136,6 @@ class PlaceholderFragment : BaseFragment() {
...
@@ -136,7 +136,6 @@ class PlaceholderFragment : BaseFragment() {
refresh
()
refresh
()
//重新拉取一遍送貨員和第三方派送信息
//重新拉取一遍送貨員和第三方派送信息
pageViewModel
.
getDeliveryInfo
(
context
!!
)
pageViewModel
.
getDeliveryInfo
(
context
!!
)
pageViewModel
.
getDeliveryConfigDTO
(
context
!!
)
}
}
refresh_layout
.
setOnLoadMoreListener
{
refresh_layout
.
setOnLoadMoreListener
{
page
++
page
++
...
...
other_order_mode/src/main/res/drawable/shape_black_border.xml
deleted
100644 → 0
View file @
b95e25c0
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<stroke
android:width=
"@dimen/dp_1"
android:color=
"@color/black"
/>
</shape>
\ No newline at end of file
other_order_mode/src/main/res/layout/fragment_delivery_list.xml
View file @
f09f1d03
...
@@ -10,12 +10,5 @@
...
@@ -10,12 +10,5 @@
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
/>
android:layout_height=
"match_parent"
/>
<com.qmuiteam.qmui.layout.QMUIButton
<include
layout=
"@layout/layout_default"
/>
android:id=
"@+id/tv_add_delivery"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:background=
"@drawable/shape_border_bg"
android:text=
"添加配送方式"
android:padding=
"@dimen/dp_10"
android:textColor=
"@color/theme_color"
/>
</LinearLayout>
</LinearLayout>
\ No newline at end of file
other_order_mode/src/main/res/layout/item_delivery_layout.xml
View file @
f09f1d03
...
@@ -155,7 +155,7 @@
...
@@ -155,7 +155,7 @@
<ImageView
<ImageView
android:id=
"@+id/iv_edit"
android:id=
"@+id/iv_edit"
android:layout_width=
"
wrap_content
"
android:layout_width=
"
@dimen/dp_30
"
android:layout_height=
"0dp"
android:layout_height=
"0dp"
android:layout_marginRight=
"@dimen/dp_10"
android:layout_marginRight=
"@dimen/dp_10"
android:gravity=
"center"
android:gravity=
"center"
...
@@ -169,15 +169,15 @@
...
@@ -169,15 +169,15 @@
app:layout_constraintRight_toLeftOf=
"@id/iv_delete"
app:layout_constraintRight_toLeftOf=
"@id/iv_delete"
app:layout_constraintTop_toTopOf=
"parent"
/>
app:layout_constraintTop_toTopOf=
"parent"
/>
<
ImageView
<
com.qmuiteam.qmui.alpha.QMUIAlphaImageButton
android:id=
"@+id/iv_delete"
android:id=
"@+id/iv_delete"
android:layout_width=
"
wrap_content
"
android:layout_width=
"
@dimen/dp_30
"
android:layout_height=
"0dp"
android:layout_height=
"0dp"
android:layout_marginRight=
"@dimen/dp_10"
android:layout_marginRight=
"@dimen/dp_10"
android:gravity=
"center"
android:gravity=
"center"
android:paddingLeft=
"@dimen/dp_5"
android:paddingLeft=
"@dimen/dp_5"
android:paddingRight=
"@dimen/dp_5"
android:paddingRight=
"@dimen/dp_5"
android:src=
"@drawable/ic_delete
_bill_method
"
android:src=
"@drawable/ic_delete"
android:text=
"刪除"
android:text=
"刪除"
android:textColor=
"@color/theme_333_color"
android:textColor=
"@color/theme_333_color"
android:textSize=
"@dimen/dp_12"
android:textSize=
"@dimen/dp_12"
...
...
other_order_mode/src/main/res/values/styles.xml
View file @
f09f1d03
...
@@ -95,4 +95,14 @@
...
@@ -95,4 +95,14 @@
<style
name=
"otherOrder_delivery_setting_layout_style"
>
<style
name=
"otherOrder_delivery_setting_layout_style"
>
<item
name=
"android:paddingRight"
>
@dimen/dp_20
</item>
<item
name=
"android:paddingRight"
>
@dimen/dp_20
</item>
</style>
</style>
<style
name=
"otherOrder_details_sixteen_text_Style"
>
<item
name=
"android:textSize"
>
@dimen/dp_16
</item>
<item
name=
"android:textColor"
>
@color/theme_333_color
</item>
<item
name=
"android:textStyle"
>
bold
</item>
</style>
<style
name=
"otherOrder_details_twelve_text_Style"
>
<item
name=
"android:textSize"
>
@dimen/dp_12
</item>
<item
name=
"android:textColor"
>
@color/color_3c
</item>
</style>
</resources>
</resources>
print-module/src/main/java/com/joe/print/mvp/print/IpPrintMaker.java
View file @
f09f1d03
...
@@ -31,13 +31,6 @@ public class IpPrintMaker implements PrintDataMaker {
...
@@ -31,13 +31,6 @@ public class IpPrintMaker implements PrintDataMaker {
this
.
bitmaps
=
new
ArrayList
<>();
this
.
bitmaps
=
new
ArrayList
<>();
this
.
bitmaps
.
add
(
bitmap
);
this
.
bitmaps
.
add
(
bitmap
);
}
}
public
IpPrintMaker
(
Context
context
,
int
width
,
Bitmap
bitmap
)
{
this
.
mContext
=
context
;
this
.
width
=
width
;
this
.
bitmaps
=
new
ArrayList
<>();
this
.
bitmaps
.
add
(
bitmap
);
}
@Override
@Override
public
List
<
byte
[]>
getPrintData
()
{
public
List
<
byte
[]>
getPrintData
()
{
...
...
print-module/src/main/java/com/joe/print/mvp/print/PrinterRoot.java
View file @
f09f1d03
...
@@ -59,6 +59,7 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
...
@@ -59,6 +59,7 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
public
final
static
int
PRINT_KITCHEN
=
3
;
//送單,廚房單
public
final
static
int
PRINT_KITCHEN
=
3
;
//送單,廚房單
public
final
static
int
PRINT_CLEAN_MACHINE
=
4
;
//清機報表
public
final
static
int
PRINT_CLEAN_MACHINE
=
4
;
//清機報表
public
final
static
int
PRINT_OTHER_ORDER
=
5
;
//接單內容打印
public
final
static
int
PRINT_OTHER_ORDER
=
5
;
//接單內容打印
public
final
static
int
PRINT_INSTRUCTION
=
6
;
//開錢箱
private
final
static
int
SUNMI_PAPER_WIDTH
=
360
;
//商米打印機紙張寬度
private
final
static
int
SUNMI_PAPER_WIDTH
=
360
;
//商米打印機紙張寬度
private
final
static
int
N5_PAPER_WIDTH
=
500
;
//N5打印機紙張寬度
private
final
static
int
N5_PAPER_WIDTH
=
500
;
//N5打印機紙張寬度
...
@@ -86,6 +87,8 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
...
@@ -86,6 +87,8 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
return
new
PrintCleanMachine
();
return
new
PrintCleanMachine
();
}
else
if
(
type
==
PRINT_OTHER_ORDER
)
{
}
else
if
(
type
==
PRINT_OTHER_ORDER
)
{
return
new
PrintOtherOrder
();
return
new
PrintOtherOrder
();
}
else
if
(
type
==
PRINT_INSTRUCTION
)
{
return
new
PrintInstruction
();
}
}
return
null
;
return
null
;
}
}
...
@@ -134,6 +137,11 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
...
@@ -134,6 +137,11 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
public
abstract
int
getPrintCount
(
Context
context
);
public
abstract
int
getPrintCount
(
Context
context
);
public
void
print
(
List
<
PrinterDeviceBean
>
deviceBeans
)
{
public
void
print
(
List
<
PrinterDeviceBean
>
deviceBeans
)
{
if
(
this
instanceof
PrintInstruction
)
{
//開錢箱
PrintExecutor
executor
=
new
PrintExecutor
(
getDefaultPrintInList
(
deviceBeans
));
executor
.
doPrinterRequestAsync
(
new
OpenCashBoxMaker
());
}
else
{
listMap
=
getPrintBitmap
(
mContext
);
listMap
=
getPrintBitmap
(
mContext
);
printSize
=
listMap
.
size
();
printSize
=
listMap
.
size
();
printCount
=
getPrintCount
(
mContext
);
printCount
=
getPrintCount
(
mContext
);
...
@@ -141,13 +149,6 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
...
@@ -141,13 +149,6 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
printListener
.
printFile
();
printListener
.
printFile
();
return
;
return
;
}
}
//當配置打印多張時執行
// int x = 2;
// for (int i = 0; i < x; i++) {
// for (Map.Entry<String, List<Bitmap>> entry : listMap.entrySet()) {
// merge2ResultMap(listMap, entry.getKey(), entry.getValue());
// }
// }
// 先不管有沒有默認打印位置
// 先不管有沒有默認打印位置
// 第一步先查看map中的key是不是空的"",有key就要獲取打印機列表,找到對應打印機打印。如果沒有找到打印機再去找默認打印機
// 第一步先查看map中的key是不是空的"",有key就要獲取打印機列表,找到對應打印機打印。如果沒有找到打印機再去找默認打印機
// 如果沒有key,則是走默認打印機流程
// 如果沒有key,則是走默認打印機流程
...
@@ -161,6 +162,7 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
...
@@ -161,6 +162,7 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
}
}
}
}
}
}
}
/**
/**
...
@@ -343,6 +345,7 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
...
@@ -343,6 +345,7 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
}
}
private
void
defaultPrint
(
List
<
PrinterDeviceBean
>
printerDeviceBeans
,
List
<
Bitmap
>
bitmaps
)
{
private
void
defaultPrint
(
List
<
PrinterDeviceBean
>
printerDeviceBeans
,
List
<
Bitmap
>
bitmaps
)
{
//獲取默認打印方式,本機、IP
String
deftultPrint
=
(
String
)
SPUtils
.
get
(
mContext
,
PrintConstans
.
DEFAULT_PRINT_METHOD
,
""
);
String
deftultPrint
=
(
String
)
SPUtils
.
get
(
mContext
,
PrintConstans
.
DEFAULT_PRINT_METHOD
,
""
);
if
(
deftultPrint
.
equals
(
""
))
{
if
(
deftultPrint
.
equals
(
""
))
{
// 如果沒有默認打印位置,彈出彈窗讓用戶選擇是本機打印還是ip打印
// 如果沒有默認打印位置,彈出彈窗讓用戶選擇是本機打印還是ip打印
...
@@ -401,25 +404,30 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
...
@@ -401,25 +404,30 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
});
});
}
else
if
(
deftultPrint
.
equals
(
PrintConstans
.
IP_PRINT
))
{
}
else
if
(
deftultPrint
.
equals
(
PrintConstans
.
IP_PRINT
))
{
// 默認打印方式為ip打印,調用ip打印方法
// 默認打印方式為ip打印,調用ip打印方法
// 獲取默認ip打印機
,
// 獲取默認ip打印機
if
(
printerDeviceBeans
!=
null
&&
printerDeviceBeans
.
size
()
>
0
)
{
if
(
printerDeviceBeans
!=
null
&&
printerDeviceBeans
.
size
()
>
0
)
{
//有默認打印機
ipDevicePrint
(
getDefaultPrintInList
(
printerDeviceBeans
),
bitmaps
);
for
(
PrinterDeviceBean
printerDeviceBean
:
printerDeviceBeans
)
{
}
else
{
if
(
printerDeviceBean
.
getStatus
()
==
2
)
{
//默認打印機
ipDevicePrint
(
printerDeviceBeans
.
get
(
0
),
bitmaps
);
return
;
}
}
//沒有默認打印機,彈出彈窗,讓用戶選擇ip打印機
//沒有默認打印機,彈出彈窗,讓用戶選擇ip打印機
showIpPrintDeviceList
(
printerDeviceBeans
,
bitmaps
);
showIpPrintDeviceList
(
printerDeviceBeans
,
bitmaps
);
}
}
else
{
}
else
{
//沒有打印機,讓用戶去添加
//沒有打印機,讓用戶去添加
setPrintState
(
PrintActivity
.
ADD_PRINT_DEVICE
);
setPrintState
(
PrintActivity
.
ADD_PRINT_DEVICE
);
}
}
}
}
private
PrinterDeviceBean
getDefaultPrintInList
(
List
<
PrinterDeviceBean
>
printerDeviceBeans
)
{
for
(
PrinterDeviceBean
printerDeviceBean
:
printerDeviceBeans
)
{
if
(
printerDeviceBean
.
getStatus
()
==
2
)
{
//默認打印機
return
printerDeviceBean
;
}
}
return
null
;
}
}
private
void
showIpPrintDeviceList
private
void
showIpPrintDeviceList
(
List
<
PrinterDeviceBean
>
printerDeviceBeans
,
List
<
Bitmap
>
bitmaps
)
{
(
List
<
PrinterDeviceBean
>
printerDeviceBeans
,
List
<
Bitmap
>
bitmaps
)
{
if
(
printerDeviceBeans
!=
null
&&
printerDeviceBeans
.
size
()
>
0
)
{
if
(
printerDeviceBeans
!=
null
&&
printerDeviceBeans
.
size
()
>
0
)
{
...
@@ -465,32 +473,26 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
...
@@ -465,32 +473,26 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
public
void
ipDevicePrint
(
PrinterDeviceBean
public
void
ipDevicePrint
(
PrinterDeviceBean
printerDeviceBean
,
List
<
Bitmap
>
bitmaps
,
PrintSocketHolder
.
OnStateChangedListener
printerDeviceBean
,
List
<
Bitmap
>
bitmaps
,
PrintSocketHolder
.
OnStateChangedListener
stateChangedListener
,
PrintExecutor
.
OnPrintResultListener
resultListener
)
{
stateChangedListener
,
PrintExecutor
.
OnPrintResultListener
resultListener
)
{
int
paperType
=
printerDeviceBean
.
getType
();
//打印紙類型 1:58mm,2::80mm
int
printWidth
;
//打印出來的內容寬度
int
printWidth
;
//打印出來的內容寬度
if
(
paperType
==
1
)
{
if
(
printerDeviceBean
.
getPaperSpecification
()
!=
null
)
{
paperType
=
PrinterWriter58mm
.
TYPE_58
;
printWidth
=
Double
.
valueOf
(
printerDeviceBean
.
getPaperSpecification
()).
intValue
();
printWidth
=
580
-
20
;
//兩邊留20的空隙
}
else
{
}
else
{
paperType
=
PrinterWriter80mm
.
TYPE_80
;
printWidth
=
540
;
printWidth
=
800
-
20
;
//兩邊留20的空隙
}
}
PrintExecutor
executor
=
new
PrintExecutor
(
printerDeviceBean
,
paperType
);
PrintExecutor
executor
=
new
PrintExecutor
(
printerDeviceBean
);
executor
.
setOnStateChangedListener
(
stateChangedListener
);
executor
.
setOnStateChangedListener
(
stateChangedListener
);
executor
.
setOnPrintResultListener
(
resultListener
);
executor
.
setOnPrintResultListener
(
resultListener
);
// List<Bitmap> zoomBitmaps = new ArrayList<>();
if
(
bitmaps
!=
null
)
{
if
(
bitmaps
!=
null
)
{
for
(
int
j
=
0
;
j
<
printCount
;
j
++)
{
for
(
int
j
=
0
;
j
<
printCount
;
j
++)
{
for
(
int
i
=
0
;
i
<
bitmaps
.
size
();
i
++)
{
for
(
int
i
=
0
;
i
<
bitmaps
.
size
();
i
++)
{
// zoomBitmaps.add(ImageUtils.zoomDrawable(bitmaps.get(i), printWidth));
IpPrintMaker
maker
=
new
IpPrintMaker
(
mContext
,
printWidth
,
ImageUtils
.
zoomDrawable
(
bitmaps
.
get
(
i
),
printWidth
));
IpPrintMaker
maker
=
new
IpPrintMaker
(
mContext
,
printWidth
,
ImageUtils
.
zoomDrawable
(
bitmaps
.
get
(
i
),
printWidth
));
executor
.
doPrinterRequestAsync
(
maker
);
executor
.
doPrinterRequestAsync
(
maker
);
}
}
}
}
}
}
// IpPrintMaker maker = new IpPrintMaker(mContext, printWidth, zoomBitmaps);
// executor.doPrinterRequestAsync(maker);
}
}
/**
/**
* view轉bitmap
* view轉bitmap
*
*
...
...
print-module/src/main/java/com/joe/print/mvp/print/TestPrintDataMaker.java
deleted
100644 → 0
View file @
b95e25c0
package
com
.
joe
.
print
.
mvp
.
print
;
import
android.content.Context
;
import
android.graphics.Bitmap
;
import
com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils
;
import
com.gingersoft.gsa.cloud.print.PrintDataMaker
;
import
com.gingersoft.gsa.cloud.print.PrinterWriter
;
import
com.gingersoft.gsa.cloud.print.PrinterWriter58mm
;
import
com.gingersoft.gsa.cloud.print.PrinterWriter80mm
;
import
com.joe.print.R
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* 打印測試
* 測試數據生成
*/
public
class
TestPrintDataMaker
implements
PrintDataMaker
{
private
Context
context
;
// private String qr;
private
int
width
;
private
int
height
;
public
TestPrintDataMaker
(
Context
context
,
int
width
,
int
height
)
{
this
.
context
=
context
;
// this.qr = qr;
this
.
width
=
width
;
this
.
height
=
height
;
}
@Override
public
List
<
byte
[]>
getPrintData
(
int
type
)
{
ArrayList
<
byte
[]>
data
=
new
ArrayList
<>();
try
{
PrinterWriter
printer
;
printer
=
type
==
PrinterWriter58mm
.
TYPE_58
?
new
PrinterWriter58mm
(
height
,
width
)
:
new
PrinterWriter80mm
(
height
,
width
);
printer
.
setAlignCenter
();
data
.
add
(
printer
.
getDataAndReset
());
ArrayList
<
byte
[]>
image
=
printer
.
getImageByte
(
context
.
getResources
(),
R
.
mipmap
.
ic_launcher
);
data
.
addAll
(
image
);
List
<
Bitmap
>
bitmaps
=
PrintUtils
.
getPrintBitmap
(
context
,
-
1
,
width
);
//根據打印類型獲得不同的bitmap
if
(
bitmaps
.
size
()
<=
0
)
{
ToastUtils
.
show
(
context
,
"打印失敗"
);
return
null
;
}
for
(
int
i
=
0
;
i
<
bitmaps
.
size
();
i
++)
{
ArrayList
<
byte
[]>
image1
=
printer
.
getImageByte
(
bitmaps
.
get
(
i
));
data
.
addAll
(
image1
);
//draw2PxPoint2(bitmaps.get(i)
printer
.
printLineFeed
();
printer
.
printLineFeed
();
printer
.
printLineFeed
();
printer
.
printLineFeed
();
printer
.
printLineFeed
();
printer
.
feedPaperCutPartial
();
}
data
.
add
(
printer
.
getDataAndReset
());
// printer.setAlignLeft();
// printer.printLine();
// printer.printLineFeed();
//
// printer.printLineFeed();
// printer.setAlignCenter();
// printer.setEmphasizedOn();
// printer.setFontSize(1);
// printer.print("Selftest");
// printer.printLineFeed();
// printer.setFontSize(0);
// printer.setEmphasizedOff();
// printer.printLineFeed();
//
// printer.print("Gingersoft");
// printer.printLineFeed();
// printer.print("客服电话:××××××××");
// printer.printLineFeed();
//
// printer.setAlignLeft();
// printer.printLineFeed();
//
// printer.print("订单号:88888888888888888");
// printer.printLineFeed();
//
// printer.print("预计送达:" +
// new SimpleDateFormat("yyyy/MM/dd HH:mm", Locale.getDefault())
// .format(new Date(System.currentTimeMillis())));
// printer.printLineFeed();
//
// printer.setEmphasizedOn();
// printer.print("#8(已付款)");
// printer.printLineFeed();
// printer.print("××区××路×××大厦××楼×××室");
// printer.printLineFeed();
// printer.setEmphasizedOff();
// printer.printLineFeed();
// printer.print("备注:多加点辣椒,多加点香菜,多加点酸萝卜,多送点一次性手套");
// printer.printLineFeed();
//
// printer.printLine();
// printer.printLineFeed();
// printer.printLineFeed();
// printer.printLineFeed();
data
.
add
(
printer
.
getDataAndClose
());
return
data
;
}
catch
(
Exception
e
)
{
return
new
ArrayList
<>();
}
}
}
print-module/src/main/java/com/joe/print/mvp/ui/activity/IpPrintActivity.java
deleted
100644 → 0
View file @
b95e25c0
package
com
.
joe
.
print
.
mvp
.
ui
.
activity
;
import
android.app.Activity
;
import
android.app.Dialog
;
import
android.content.Context
;
import
android.content.DialogInterface
;
import
android.content.Intent
;
import
android.graphics.Color
;
import
android.graphics.drawable.ColorDrawable
;
import
android.os.Bundle
;
import
android.os.Handler
;
import
android.util.Log
;
import
android.view.LayoutInflater
;
import
android.view.MotionEvent
;
import
android.view.View
;
import
android.view.Window
;
import
android.view.WindowManager
;
import
android.widget.LinearLayout
;
import
android.widget.TextView
;
import
androidx.annotation.Nullable
;
import
com.billy.cc.core.component.CC
;
import
com.billy.cc.core.component.CCResult
;
import
com.gingersoft.gsa.cloud.constans.PrintConstans
;
import
com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean
;
import
com.gingersoft.gsa.cloud.print.PrintExecutor
;
import
com.gingersoft.gsa.cloud.print.PrintSocketHolder
;
import
com.gingersoft.gsa.cloud.print.PrinterWriter58mm
;
import
com.gingersoft.gsa.cloud.print.PrinterWriter80mm
;
import
com.joe.print.R
;
import
com.joe.print.mvp.print.SendPrint
;
import
com.joe.print.mvp.print.TestPrintDataMaker
;
import
static
com
.
billy
.
cc
.
core
.
component
.
CCUtil
.
EXTRA_KEY_CALL_ID
;
/**
* Created by Wyh on 2020/1/7.
*/
public
class
IpPrintActivity
extends
Activity
implements
PrintSocketHolder
.
OnStateChangedListener
,
PrintExecutor
.
OnPrintResultListener
,
DialogInterface
.
OnDismissListener
{
private
Context
mContext
;
private
PrintExecutor
executor
;
private
SendPrint
maker
;
private
String
callId
;
/**
* -
* 是否打印成功 true:成功
*/
private
boolean
printStatus
=
false
;
private
String
ip
;
private
Integer
port
;
private
int
paperType
=
1
;
//打印紙類型 1:58mm,2::80mm
private
int
printWidth
=
560
;
//打印出來的內容寬度
/**
* -1:打印測試
* 0:上菜紙
* 1:印單
* 2:結賬單
* 3:廚房單
*/
private
int
type
=
-
1
;
private
TextView
mTvLoadingTip
;
private
Dialog
mLoadingDialog
;
@Override
protected
void
onCreate
(
@Nullable
Bundle
savedInstanceState
)
{
getWindow
().
addFlags
(
WindowManager
.
LayoutParams
.
FLAG_NOT_TOUCHABLE
|
WindowManager
.
LayoutParams
.
FLAG_WATCH_OUTSIDE_TOUCH
);
super
.
onCreate
(
savedInstanceState
);
mContext
=
this
;
getWindow
().
setBackgroundDrawable
(
null
);
getWindow
().
addFlags
(
WindowManager
.
LayoutParams
.
FLAG_TRANSLUCENT_STATUS
);
initDialog
();
initIntent
();
callId
=
getIntent
().
getStringExtra
(
EXTRA_KEY_CALL_ID
);
printOrder
(
this
);
}
private
void
initDialog
()
{
try
{
View
view
=
LayoutInflater
.
from
(
mContext
).
inflate
(
R
.
layout
.
ui_dialog_loading
,
null
);
mTvLoadingTip
=
view
.
findViewById
(
R
.
id
.
tv_loading_dialog_text
);
mLoadingDialog
=
new
Dialog
(
mContext
,
R
.
style
.
ui_loading_dialog
);
mLoadingDialog
.
setCancelable
(
true
);
mLoadingDialog
.
setCanceledOnTouchOutside
(
false
);
Window
window
=
mLoadingDialog
.
getWindow
();
window
.
setBackgroundDrawable
(
new
ColorDrawable
(
Color
.
TRANSPARENT
));
// window.getDecorView().setBackgroundResource(android.R.color.transparent);
mLoadingDialog
.
setContentView
(
view
,
new
LinearLayout
.
LayoutParams
(
LinearLayout
.
LayoutParams
.
MATCH_PARENT
,
LinearLayout
.
LayoutParams
.
MATCH_PARENT
));
mLoadingDialog
.
show
();
mLoadingDialog
.
setOnDismissListener
(
dialog
->
dismiss
());
setLoadingText
(
"加載中..."
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
private
void
setLoadingText
(
String
tip
)
{
if
(
mLoadingDialog
!=
null
&&
mLoadingDialog
.
isShowing
())
{
mTvLoadingTip
.
setText
(
tip
);
}
}
@Override
public
boolean
dispatchTouchEvent
(
MotionEvent
ev
)
{
//點擊當前頁面任意地方自動關閉
finish
();
return
true
;
}
private
void
initIntent
()
{
Intent
intent
=
getIntent
();
ip
=
intent
.
getStringExtra
(
"ip"
);
port
=
intent
.
getIntExtra
(
"port"
,
0
);
paperType
=
intent
.
getIntExtra
(
"paperType"
,
1
);
type
=
intent
.
getIntExtra
(
PrintConstans
.
PRINT_TYPE
,
-
1
);
if
(
ip
==
null
||
ip
.
equals
(
""
))
{
ip
=
"192.168.1.217"
;
}
if
(
paperType
==
1
)
{
paperType
=
PrinterWriter58mm
.
TYPE_58
;
printWidth
=
580
-
20
;
//兩邊留20的空隙
}
else
{
paperType
=
PrinterWriter80mm
.
TYPE_80
;
printWidth
=
800
-
20
;
//兩邊留20的空隙
}
}
public
void
printOrder
(
Context
context
)
{
PrinterDeviceBean
printerDeviceBean
=
new
PrinterDeviceBean
(
""
,
null
,
ip
,
port
,
type
);
if
(
executor
==
null
)
{
executor
=
new
PrintExecutor
(
printerDeviceBean
,
paperType
);
executor
.
setOnStateChangedListener
(
this
);
executor
.
setOnPrintResultListener
(
this
);
}
if
(
maker
==
null
)
{
maker
=
new
SendPrint
(
context
,
255
,
printWidth
,
type
);
}
executor
.
setIp
(
printerDeviceBean
);
if
(
type
==
-
1
)
{
executor
.
doPrinterRequestAsync
(
new
TestPrintDataMaker
(
context
,
380
,
255
));
}
else
{
executor
.
doPrinterRequestAsync
(
maker
);
}
}
@Override
public
void
onResult
(
int
errorCode
,
PrinterDeviceBean
printerDeviceBean
)
{
String
tip
;
switch
(
errorCode
)
{
case
PrintSocketHolder
.
ERROR_0
:
tip
=
"打印成功"
;
printStatus
=
true
;
setLoadingText
(
tip
);
dismiss
();
break
;
case
PrintSocketHolder
.
ERROR_1
:
tip
=
"生成打印數據失敗"
;
printStatus
=
false
;
setLoadingText
(
tip
);
dismiss
();
break
;
case
PrintSocketHolder
.
ERROR_2
:
case
PrintSocketHolder
.
ERROR_3
:
tip
=
"連接打印機失敗"
;
printStatus
=
false
;
setLoadingText
(
tip
);
dismiss
();
break
;
case
PrintSocketHolder
.
ERROR_4
:
tip
=
"寫入測試頁面數據失敗"
;
setLoadingText
(
tip
);
break
;
case
PrintSocketHolder
.
ERROR_5
:
tip
=
"必要的參數不能為空"
;
setLoadingText
(
tip
);
break
;
}
}
@Override
public
void
onStateChanged
(
int
state
,
PrinterDeviceBean
printerDeviceBean
)
{
String
tip
=
"打印中..."
;
switch
(
state
)
{
case
PrintSocketHolder
.
STATE_0
:
case
PrintSocketHolder
.
STATE_1
:
tip
=
"開始創建連接"
;
break
;
case
PrintSocketHolder
.
STATE_2
:
tip
=
"創建連接成功,開始發送數據"
;
break
;
case
PrintSocketHolder
.
STATE_3
:
tip
=
"開始寫入數據"
;
break
;
case
PrintSocketHolder
.
STATE_4
:
tip
=
"關閉中"
;
break
;
}
setLoadingText
(
tip
);
}
private
void
dismiss
()
{
//延遲一秒
new
Handler
().
postDelayed
(()
->
{
if
(
mLoadingDialog
!=
null
)
{
mLoadingDialog
.
dismiss
();
//判断是否为CC调用打开本页面
if
(
callId
!=
null
)
{
CCResult
result
;
if
(
printStatus
)
{
result
=
CCResult
.
success
();
}
else
{
result
=
CCResult
.
error
(
"print error"
);
}
//为确保不管登录成功与否都会调用CC.sendCCResult,在onDestroy方法中调用
CC
.
sendCCResult
(
callId
,
result
);
}
}
finish
();
},
1500
);
}
@Override
public
void
onDismiss
(
DialogInterface
dialog
)
{
finish
();
}
@Override
protected
void
onDestroy
()
{
super
.
onDestroy
();
if
(
executor
!=
null
)
executor
.
closeSocket
();
}
}
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/BaseOrderPresenter.java
View file @
f09f1d03
...
@@ -327,7 +327,7 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
...
@@ -327,7 +327,7 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
double
serviceAmount
=
getTotalAmountFilterByType
(
BillOrderMoney
.
SERVERCHARGE_TYPE
,
BillOrderMoney
.
DISCOUNT_TYPE
,
BillOrderMoney
.
ROUNDING_TYPE
)
*
dataBean
.
getServiceCharge
()
/
100
;
double
serviceAmount
=
getTotalAmountFilterByType
(
BillOrderMoney
.
SERVERCHARGE_TYPE
,
BillOrderMoney
.
DISCOUNT_TYPE
,
BillOrderMoney
.
ROUNDING_TYPE
)
*
dataBean
.
getServiceCharge
()
/
100
;
if
(
serviceAmount
>
0
)
{
if
(
serviceAmount
>
0
)
{
BillOrderMoney
orderMoney
=
new
BillOrderMoney
();
BillOrderMoney
orderMoney
=
new
BillOrderMoney
();
orderMoney
.
setMoney
(
serviceAmount
);
orderMoney
.
setMoney
(
MoneyUtil
.
get_ItemDecimals_money
(
serviceAmount
)
);
orderMoney
.
setTitle
(
dataBean
.
getServiceCharge
()
+
"%"
+
serviceChargeStr
);
orderMoney
.
setTitle
(
dataBean
.
getServiceCharge
()
+
"%"
+
serviceChargeStr
);
orderMoney
.
setStatus
(
1
);
orderMoney
.
setStatus
(
1
);
orderMoney
.
setType
(
BillOrderMoney
.
SERVERCHARGE_TYPE
);
orderMoney
.
setType
(
BillOrderMoney
.
SERVERCHARGE_TYPE
);
...
...
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