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
10655e8b
Commit
10655e8b
authored
Jul 04, 2020
by
Wyh
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
7.04 登陸登出接口邏輯修改
parent
5e9da1c9
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
333 additions
and
231 deletions
+333
-231
base-module/src/main/java/com/gingersoft/gsa/cloud/base/application/GsaCloudApplication.java
+2
-0
base-module/src/main/java/com/gingersoft/gsa/cloud/base/utils/RestaurantInfoUtils.java
+11
-8
base-module/src/main/java/com/gingersoft/gsa/cloud/constans/HttpsConstans.java
+11
-0
base-module/src/main/java/com/gingersoft/gsa/cloud/ui/bean/mode/LoginBean.java
+79
-74
base-module/src/main/java/com/gingersoft/gsa/cloud/ui/widget/dialog/ChooseRestaurantDialog.java
+7
-7
config.gradle
+2
-2
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/contract/BaseLoginContract.java
+6
-1
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/contract/LoginInterfaceImpl.java
+43
-42
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/model/LoginModel.java
+8
-0
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/model/WelcomeModel.java
+8
-0
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/presenter/BaseLoginPresenter.java
+32
-1
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/server/LoginService.java
+16
-2
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/ui/activity/mvp/ui/activity/LoginActivity.java
+2
-1
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/ui/activity/mvp/ui/activity/WelcomeActivity.java
+6
-7
main-module/src/main/java/com/gingersoft/gsa/cloud/main/mvp/presenter/NewMainPresenter.java
+1
-0
main-module/src/main/java/com/gingersoft/gsa/cloud/main/mvp/ui/activity/NewMainActivity.java
+3
-3
other_order_mode/src/main/AndroidManifest.xml
+1
-0
other_order_mode/src/main/debug/AndroidManifest.xml
+1
-0
other_order_mode/src/main/java/com/gingersoft/gsa/other_order_mode/service/GetInfoUpdateService.kt
+1
-0
print-module/src/main/java/com/joe/print/mvp/print/PrintOtherOrder.java
+83
-83
print-module/src/main/java/com/joe/print/mvp/ui/activity/PrintActivity.java
+10
-0
No files found.
base-module/src/main/java/com/gingersoft/gsa/cloud/base/application/GsaCloudApplication.java
View file @
10655e8b
...
...
@@ -164,6 +164,8 @@ public class GsaCloudApplication extends BaseApplication {
RetrofitUrlManager
.
getInstance
().
putDomain
(
"update_version"
,
HttpsConstans
.
ROOT_URL
+
"/member-web/api/"
);
//友常本地請求地址
RetrofitUrlManager
.
getInstance
().
putDomain
(
"yc_location"
,
HttpsConstans
.
ROOT_SERVER_YOU_CHANG_HK
);
//System請求地址
RetrofitUrlManager
.
getInstance
().
putDomain
(
"system_url"
,
HttpsConstans
.
SYSTEM_URL
);
}
private
void
initPrint
()
{
...
...
base-module/src/main/java/com/gingersoft/gsa/cloud/base/utils/RestaurantInfoUtils.java
View file @
10655e8b
...
...
@@ -4,7 +4,7 @@ import android.content.Context;
import
android.text.TextUtils
;
import
com.gingersoft.gsa.cloud.base.application.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.
Login
Bean
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.
Brands
Bean
;
import
java.util.ArrayList
;
import
java.util.List
;
...
...
@@ -18,10 +18,10 @@ import java.util.List;
*/
public
class
RestaurantInfoUtils
{
public
static
List
<
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
>
getBrandList
(
Context
context
)
{
public
static
List
<
BrandsBean
.
BrandsData
>
getBrandList
(
Context
context
)
{
String
brandRestaurantInfos
=
GsaCloudApplication
.
getBrandRestaurantInfos
(
context
);
if
(!
TextUtils
.
isEmpty
(
brandRestaurantInfos
))
{
List
<
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
>
brandsBeans
=
JsonUtils
.
parseArray
(
brandRestaurantInfos
,
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
.
class
);
List
<
BrandsBean
.
BrandsData
>
brandsBeans
=
JsonUtils
.
parseArray
(
brandRestaurantInfos
,
BrandsBean
.
BrandsData
.
class
);
return
brandsBeans
;
}
return
new
ArrayList
<>();
...
...
@@ -29,15 +29,18 @@ public class RestaurantInfoUtils {
public
static
int
getRestaurantSize
(
Context
context
)
{
int
size
=
0
;
List
<
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
>
brandsBeans
=
getBrandList
(
context
);
for
(
int
i
=
0
;
i
<
getBrandList
(
context
).
size
();
i
++)
{
List
<
BrandsBean
.
BrandsData
>
brandsBeans
=
getBrandList
(
context
);
if
(
brandsBeans
==
null
){
return
0
;
}
for
(
int
i
=
0
;
i
<
brandsBeans
.
size
();
i
++)
{
if
(
brandsBeans
.
get
(
i
).
getRestaurants
()
!=
null
)
size
+=
brandsBeans
.
get
(
i
).
getRestaurants
().
size
();
}
return
size
;
}
public
static
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
getOnlyBrand
(
List
<
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
>
brands
)
{
public
static
BrandsBean
.
BrandsData
getOnlyBrand
(
List
<
BrandsBean
.
BrandsData
>
brands
)
{
for
(
int
i
=
0
;
i
<
brands
.
size
();
i
++)
{
if
(
brands
.
get
(
i
).
getRestaurants
()
!=
null
)
{
for
(
int
j
=
0
;
j
<
brands
.
get
(
i
).
getRestaurants
().
size
();
j
++)
{
...
...
@@ -48,7 +51,7 @@ public class RestaurantInfoUtils {
return
null
;
}
public
static
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
.
RestaurantsBean
getOnlyRestaurant
(
List
<
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
>
brands
)
{
public
static
BrandsBean
.
BrandsData
.
RestaurantsBean
getOnlyRestaurant
(
List
<
BrandsBean
.
BrandsData
>
brands
)
{
for
(
int
i
=
0
;
i
<
brands
.
size
();
i
++)
{
if
(
brands
.
get
(
i
).
getRestaurants
()
!=
null
)
{
for
(
int
j
=
0
;
j
<
brands
.
get
(
i
).
getRestaurants
().
size
();
j
++)
{
...
...
@@ -59,7 +62,7 @@ public class RestaurantInfoUtils {
return
null
;
}
public
static
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
getBrandByRestaurantId
(
List
<
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
>
brands
,
int
restaurantId
)
{
public
static
BrandsBean
.
BrandsData
getBrandByRestaurantId
(
List
<
BrandsBean
.
BrandsData
>
brands
,
int
restaurantId
)
{
for
(
int
i
=
0
;
i
<
brands
.
size
();
i
++)
{
if
(
brands
.
get
(
i
).
getRestaurants
()
!=
null
)
{
for
(
int
j
=
0
;
j
<
brands
.
get
(
i
).
getRestaurants
().
size
();
j
++)
{
...
...
base-module/src/main/java/com/gingersoft/gsa/cloud/constans/HttpsConstans.java
View file @
10655e8b
...
...
@@ -61,6 +61,10 @@ public class HttpsConstans {
private
static
String
WECHAR_REPORT_FORMAL_ADDRESS
=
HTTP_ADDRESS_URL_FORMAL
;
//微信公眾號報表正式地址
private
static
String
WECHAR_REPORT_PATH
=
"/member-web/api/"
;
//微信公眾號報表路徑
//---------------------------------------System請求地址----------------------------------------------------------------------------------
private
static
String
SYSTEM_PATH
=
"/ricepon-system/api/"
;
//--------------------------------------配置-----------------------------------------------------------------------------------
/**
...
...
@@ -92,6 +96,8 @@ public class HttpsConstans {
//修改這個值,修改微信公眾號報表地址:首頁曲線圖數據,支付分析報表數據
public
static
String
WECHAR_REPORT_SERVER_ADDRESS
;
// = (isFormal ? WECHAR_REPORT_FORMAL_ADDRESS : WECHAR_REPORT_TEST_ADDRESS) + WECHAR_REPORT_PATH;//正式:WECHAR_REPORT_FORMAL_ADDRESS 測試:WECHAR_REPORT_TEST_ADDRESS
public
static
String
SYSTEM_URL
;
public
static
void
init
(
Context
context
)
{
isFormal
=
(
int
)
SPUtils
.
get
(
context
,
"isFormal"
,
-
1
);
if
(
isFormal
==
-
1
&&
BuildConfig
.
DEBUG
)
{
...
...
@@ -108,6 +114,7 @@ public class HttpsConstans {
ROOT_URL
=
ROOT_FORMAL_URL
;
REPORT_SERVER_ADDRESS
=
REPORT_FORMAL_ADDRESS
+
REPORT_PATH
;
WECHAR_REPORT_SERVER_ADDRESS
=
WECHAR_REPORT_FORMAL_ADDRESS
+
WECHAR_REPORT_PATH
;
//正式:WECHAR_REPORT_FORMAL_ADDRESS 測試:WECHAR_REPORT_TEST_ADDRESS
SYSTEM_URL
=
HTTP_ADDRESS_URL_FORMAL
+
SYSTEM_PATH
;
break
;
case
1
:
_SERVER_ADDRESS
=
"http://a.ricepon.com:61177"
+
"/member-web/api/"
;
...
...
@@ -116,6 +123,7 @@ public class HttpsConstans {
ROOT_URL
=
ROOT_HK_TEST_URL
;
REPORT_SERVER_ADDRESS
=
REPORT_TEST_ADDRESS
+
REPORT_PATH
;
WECHAR_REPORT_SERVER_ADDRESS
=
WECHAR_REPORT_TEST_ADDRESS
+
WECHAR_REPORT_PATH
;
//正式:WECHAR_REPORT_FORMAL_ADDRESS 測試:WECHAR_REPORT_TEST_ADDRESS
SYSTEM_URL
=
ROOT_HK_TEST_URL
+
SYSTEM_PATH
;
break
;
case
2
:
_SERVER_ADDRESS
=
ROOT_SERVER_YOU_CHANG_HK
+
"/member-web/api/"
;
...
...
@@ -124,6 +132,7 @@ public class HttpsConstans {
ROOT_URL
=
ROOT_SZ_URL
;
REPORT_SERVER_ADDRESS
=
REPORT_TEST_ADDRESS
+
REPORT_PATH
;
WECHAR_REPORT_SERVER_ADDRESS
=
WECHAR_REPORT_TEST_ADDRESS
+
WECHAR_REPORT_PATH
;
//正式:WECHAR_REPORT_FORMAL_ADDRESS 測試:WECHAR_REPORT_TEST_ADDRESS
SYSTEM_URL
=
ROOT_SERVER_YOU_CHANG_HK
+
SYSTEM_PATH
;
break
;
case
3
:
_SERVER_ADDRESS
=
ROOT_SERVER_SHI_WEI_HK
+
"/member-web/api/"
;
...
...
@@ -132,6 +141,7 @@ public class HttpsConstans {
ROOT_URL
=
ROOT_SZ_URL
;
REPORT_SERVER_ADDRESS
=
REPORT_TEST_ADDRESS
+
REPORT_PATH
;
WECHAR_REPORT_SERVER_ADDRESS
=
WECHAR_REPORT_TEST_ADDRESS
+
WECHAR_REPORT_PATH
;
//正式:WECHAR_REPORT_FORMAL_ADDRESS 測試:WECHAR_REPORT_TEST_ADDRESS
SYSTEM_URL
=
ROOT_SERVER_SHI_WEI_HK
+
SYSTEM_PATH
;
break
;
case
4
:
_SERVER_ADDRESS
=
ROOT_SERVER_SHI_SHU_HK
+
"/member-web/api/"
;
...
...
@@ -140,6 +150,7 @@ public class HttpsConstans {
ROOT_URL
=
ROOT_SZ_URL
;
REPORT_SERVER_ADDRESS
=
REPORT_TEST_ADDRESS
+
REPORT_PATH
;
WECHAR_REPORT_SERVER_ADDRESS
=
WECHAR_REPORT_TEST_ADDRESS
+
WECHAR_REPORT_PATH
;
//正式:WECHAR_REPORT_FORMAL_ADDRESS 測試:WECHAR_REPORT_TEST_ADDRESS
SYSTEM_URL
=
ROOT_SERVER_SHI_SHU_HK
+
SYSTEM_PATH
;
break
;
}
...
...
base-module/src/main/java/com/gingersoft/gsa/cloud/ui/bean/mode/LoginBean.java
View file @
10655e8b
package
com
.
gingersoft
.
gsa
.
cloud
.
ui
.
bean
.
mode
;
import
java.util.
List
;
import
java.util.
Date
;
/**
* 作者:ELEGANT_BIN
...
...
@@ -86,18 +86,18 @@ public class LoginBean {
* userName : admin
* brands : [{"brandId":242,"brandName":"莫拉塔","restaurants":[]},{"brandId":243,"brandName":"蕭蕭","restaurants":[{"restaurantId":337,"restaurantName":"小張"}]}]
*/
private
int
userId
;
private
Integer
id
;
private
Integer
groupId
;
private
Integer
parentId
;
private
Integer
merchantsId
;
private
String
mobile
;
private
String
email
;
private
int
status
;
private
Date
createTime
;
private
String
createBy
;
private
Date
updateTime
;
private
String
updateBy
;
private
String
userName
;
private
List
<
BrandsBean
>
brands
;
public
int
getUserId
()
{
return
userId
;
}
public
void
setUserId
(
int
userId
)
{
this
.
userId
=
userId
;
}
public
String
getUserName
()
{
return
userName
;
...
...
@@ -107,87 +107,92 @@ public class LoginBean {
this
.
userName
=
userName
;
}
public
List
<
BrandsBean
>
getBrands
()
{
return
brands
;
public
Integer
getId
()
{
return
id
;
}
public
void
setId
(
Integer
id
)
{
this
.
id
=
id
;
}
public
void
setBrands
(
List
<
BrandsBean
>
brands
)
{
this
.
brands
=
brands
;
public
Integer
getGroupId
(
)
{
return
groupId
;
}
public
static
class
BrandsBean
{
/**
* brandId : 242
* brandName : 莫拉塔
* restaurants : []
*/
public
void
setGroupId
(
Integer
groupId
)
{
this
.
groupId
=
groupId
;
}
public
Integer
getParentId
()
{
return
parentId
;
}
public
void
setParentId
(
Integer
parentId
)
{
this
.
parentId
=
parentId
;
}
public
Integer
getMerchantsId
()
{
return
merchantsId
;
}
private
int
brandId
;
private
String
brandName
;
private
List
<
RestaurantsBean
>
restaurants
;
public
void
setMerchantsId
(
Integer
merchantsId
)
{
this
.
merchantsId
=
merchantsId
;
}
public
int
getBrandId
()
{
return
brandId
;
}
public
String
getMobile
()
{
return
mobile
;
}
public
void
setBrandId
(
int
brandId
)
{
this
.
brandId
=
brandId
;
}
public
void
setMobile
(
String
mobile
)
{
this
.
mobile
=
mobile
;
}
public
String
getBrandName
()
{
return
brandName
;
}
public
String
getEmail
()
{
return
email
;
}
public
void
setBrandName
(
String
brandName
)
{
this
.
brandName
=
brandName
;
}
public
void
setEmail
(
String
email
)
{
this
.
email
=
email
;
}
public
List
<
RestaurantsBean
>
getRestaurant
s
()
{
return
restaurant
s
;
}
public
int
getStatu
s
()
{
return
statu
s
;
}
public
void
setRestaurants
(
List
<
RestaurantsBean
>
restaurant
s
)
{
this
.
restaurants
=
restaurant
s
;
}
public
void
setStatus
(
int
statu
s
)
{
this
.
status
=
statu
s
;
}
public
static
class
RestaurantsBean
{
public
Date
getCreateTime
()
{
return
createTime
;
}
private
int
restaurantId
;
private
String
restaurantName
;
public
void
setCreateTime
(
Date
createTime
)
{
this
.
createTime
=
createTime
;
}
public
int
getRestaurantId
()
{
return
restaurantId
;
}
public
String
getCreateBy
()
{
return
createBy
;
}
public
void
setRestaurantId
(
int
restaurantId
)
{
this
.
restaurantId
=
restaurantId
;
}
public
void
setCreateBy
(
String
createBy
)
{
this
.
createBy
=
createBy
;
}
public
String
getRestaurantNa
me
()
{
return
restaurantNa
me
;
}
public
Date
getUpdateTi
me
()
{
return
updateTi
me
;
}
public
void
setRestaurantName
(
String
restaurantNa
me
)
{
this
.
restaurantName
=
restaurantNa
me
;
}
public
void
setUpdateTime
(
Date
updateTi
me
)
{
this
.
updateTime
=
updateTi
me
;
}
@Override
public
String
toString
()
{
return
"RestaurantsBean{"
+
"restaurantId="
+
restaurantId
+
", restaurantName='"
+
restaurantName
+
'\''
+
'}'
;
}
}
public
String
getUpdateBy
()
{
return
updateBy
;
}
@Override
public
String
toString
()
{
return
"BrandsBean{"
+
"brandId="
+
brandId
+
", brandName='"
+
brandName
+
'\''
+
", restaurants="
+
restaurants
+
'}'
;
}
public
void
setUpdateBy
(
String
updateBy
)
{
this
.
updateBy
=
updateBy
;
}
}
}
...
...
base-module/src/main/java/com/gingersoft/gsa/cloud/ui/widget/dialog/ChooseRestaurantDialog.java
View file @
10655e8b
...
...
@@ -24,7 +24,7 @@ import androidx.recyclerview.widget.RecyclerView;
import
com.gingersoft.gsa.cloud.base.R
;
import
com.gingersoft.gsa.cloud.ui.adapter.BasTextSectiontAdapter
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.
Login
Bean
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.
Brands
Bean
;
import
com.gingersoft.gsa.cloud.ui.bean.view.SectionHeader
;
import
com.gingersoft.gsa.cloud.ui.bean.view.SectionTextItem
;
import
com.jess.arms.utils.AndroidWorkaround
;
...
...
@@ -209,7 +209,7 @@ public class ChooseRestaurantDialog extends Dialog {
private
Context
mContext
;
private
ChooseRestaurantDialog
mDialog
;
private
List
<
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
>
mItems
;
private
List
<
BrandsBean
.
BrandsData
>
mItems
;
private
List
<
QMUISection
<
SectionHeader
,
SectionTextItem
>>
mQmuiSections
;
private
BasTextSectiontAdapter
mAdapter
;
...
...
@@ -222,12 +222,12 @@ public class ChooseRestaurantDialog extends Dialog {
mItems
=
new
ArrayList
<>();
}
public
BottomListSheetBuilder
addBrandItem
(
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
brandBean
)
{
public
BottomListSheetBuilder
addBrandItem
(
BrandsBean
.
BrandsData
brandBean
)
{
mItems
.
add
(
brandBean
);
return
this
;
}
public
BottomListSheetBuilder
addBrandItems
(
List
<
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
>
brandsBean
)
{
public
BottomListSheetBuilder
addBrandItems
(
List
<
BrandsBean
.
BrandsData
>
brandsBean
)
{
mItems
.
addAll
(
brandsBean
);
return
this
;
}
...
...
@@ -316,16 +316,16 @@ public class ChooseRestaurantDialog extends Dialog {
mAdapter
.
setData
(
mQmuiSections
);
}
private
List
<
QMUISection
<
SectionHeader
,
SectionTextItem
>>
restaurantsTransformToSection
(
List
<
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
>
mItems
)
{
private
List
<
QMUISection
<
SectionHeader
,
SectionTextItem
>>
restaurantsTransformToSection
(
List
<
BrandsBean
.
BrandsData
>
mItems
)
{
List
<
QMUISection
<
SectionHeader
,
SectionTextItem
>>
qmuiSections
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
mItems
.
size
();
i
++)
{
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
brandsBean
=
mItems
.
get
(
i
);
BrandsBean
.
BrandsData
brandsBean
=
mItems
.
get
(
i
);
qmuiSections
.
add
(
createSection
(
brandsBean
));
}
return
qmuiSections
;
}
private
QMUISection
<
SectionHeader
,
SectionTextItem
>
createSection
(
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
brandsBean
)
{
private
QMUISection
<
SectionHeader
,
SectionTextItem
>
createSection
(
BrandsBean
.
BrandsData
brandsBean
)
{
SectionHeader
header
=
new
SectionHeader
(
brandsBean
.
getBrandName
());
ArrayList
<
SectionTextItem
>
contents
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
Objects
.
requireNonNull
(
brandsBean
.
getRestaurants
().
size
());
i
++)
{
...
...
config.gradle
View file @
10655e8b
...
...
@@ -7,8 +7,8 @@ ext {
targetSdkVersion
:
28
,
//正式版: 1.0.1 1
//內部測試版:1.1.1 11
versionCode
:
1
1
,
versionName
:
"1.1.
1
"
versionCode
:
1
2
,
versionName
:
"1.1.
2
"
]
version
=
[
...
...
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/contract/BaseLoginContract.java
View file @
10655e8b
package
com
.
gingersoft
.
gsa
.
cloud
.
login
.
mvp
.
contract
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.BrandsBean
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean
;
import
com.jess.arms.mvp.IModel
;
import
com.jess.arms.mvp.IView
;
...
...
@@ -29,11 +30,15 @@ public interface BaseLoginContract {
void
startToSwitchServer
();
void
showChooseRestaurantDialog
(
List
<
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
>
brandsBean
,
List
<
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
>
brands
);
void
saveRestaurantListInfo
(
List
<
BrandsBean
.
BrandsData
>
brands
);
void
showChooseRestaurantDialog
(
List
<
BrandsBean
.
BrandsData
>
brandsBean
,
List
<
BrandsBean
.
BrandsData
>
brands
);
}
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface
Model
extends
IModel
{
Observable
<
LoginBean
>
login
(
RequestBody
requestBody
);
Observable
<
BrandsBean
>
getRestaurantList
();
}
}
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/contract/LoginInterfaceImpl.java
View file @
10655e8b
...
...
@@ -7,6 +7,7 @@ import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import
com.gingersoft.gsa.cloud.base.utils.JsonUtils
;
import
com.gingersoft.gsa.cloud.constans.UserConstans
;
import
com.gingersoft.gsa.cloud.base.utils.other.SPUtils
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.BrandsBean
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean
;
import
com.gingersoft.gsa.cloud.ui.bean.view.SectionTextItem
;
import
com.gingersoft.gsa.cloud.ui.widget.dialog.ChooseRestaurantDialog
;
...
...
@@ -24,6 +25,38 @@ public abstract class LoginInterfaceImpl<P extends BaseLoginPresenter> extends B
saveLoginInfo
(
info
);
}
public
void
saveRestaurantListInfo
(
List
<
BrandsBean
.
BrandsData
>
brands
)
{
int
restaurantSize
=
0
;
List
<
BrandsBean
.
BrandsData
>
brandsBeans
=
new
ArrayList
<>();
if
(
brands
!=
null
)
{
String
brandRestaurantInfos
=
JsonUtils
.
toJson
(
brands
);
GsaCloudApplication
.
setBrandRestaurantInfos
(
mContext
,
brandRestaurantInfos
);
restaurantSize
=
getRestaurantSize
(
brands
);
brandsBeans
.
addAll
(
brands
);
}
boolean
autoLogin
=
(
boolean
)
SPUtils
.
get
(
mContext
,
UserConstans
.
AUTO_LOGIN
,
false
);
if
(
autoLogin
)
{
int
restaurantId
=
GsaCloudApplication
.
getRestaurantId
(
this
);
if
(
restaurantId
!=
0
)
{
//有選擇餐廳,直接跳轉首頁
jumpMainActivity
();
return
;
}
}
if
(
restaurantSize
==
1
)
{
//只有一個品牌是直接進下載頁面
BrandsBean
.
BrandsData
brandsBean
=
getOnlyBrand
(
brands
);
BrandsBean
.
BrandsData
.
RestaurantsBean
restaurantsBean
=
getOnlyRestaurant
(
brands
);
if
(
brandsBean
!=
null
)
{
saveBrandAndRestaurantInfo
(
brandsBean
.
getBrandId
(),
brandsBean
.
getBrandName
(),
restaurantsBean
.
getRestaurantId
(),
restaurantsBean
.
getRestaurantName
());
}
jumpDownloadActivity
();
}
else
{
showChooseRestaurantDialog
(
brandsBeans
,
brands
);
}
}
@Override
public
void
startToSwitchServer
()
{
startActivity
(
new
Intent
(
mContext
,
SwitchServerActivity
.
class
));
...
...
@@ -34,48 +67,16 @@ public abstract class LoginInterfaceImpl<P extends BaseLoginPresenter> extends B
if
(
loginBean
.
getData
()
!=
null
)
{
GsaCloudApplication
.
setLoginToken
(
mContext
,
loginBean
.
getData
().
getToken
());
if
(
loginBean
.
getData
().
getUser
()
!=
null
)
{
GsaCloudApplication
.
setMemberId
(
mContext
,
loginBean
.
getData
().
getUser
().
get
User
Id
());
GsaCloudApplication
.
setMemberId
(
mContext
,
loginBean
.
getData
().
getUser
().
getId
());
GsaCloudApplication
.
setMemberName
(
mContext
,
loginBean
.
getData
().
getUser
().
getUserName
());
List
<
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
>
brands
=
loginBean
.
getData
().
getUser
().
getBrands
();
if
(
brands
!=
null
)
{
String
brandRestaurantInfos
=
JsonUtils
.
toJson
(
brands
);
GsaCloudApplication
.
setBrandRestaurantInfos
(
mContext
,
brandRestaurantInfos
);
}
int
restaurantSize
=
0
;
List
<
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
>
brandsBeans
=
new
ArrayList
<>();
if
(
loginBean
.
getData
().
getUser
().
getBrands
()
!=
null
)
{
restaurantSize
=
getRestaurantSize
(
loginBean
.
getData
().
getUser
().
getBrands
());
brandsBeans
.
addAll
(
loginBean
.
getData
().
getUser
().
getBrands
());
}
boolean
autoLogin
=
(
boolean
)
SPUtils
.
get
(
mContext
,
UserConstans
.
AUTO_LOGIN
,
false
);
if
(
autoLogin
)
{
int
restaurantId
=
GsaCloudApplication
.
getRestaurantId
(
this
);
if
(
restaurantId
!=
0
)
{
//有選擇餐廳,直接跳轉首頁
jumpMainActivity
();
return
;
}
}
if
(
restaurantSize
==
1
)
{
//只有一個品牌是直接進下載頁面
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
brandsBean
=
getOnlyBrand
(
loginBean
.
getData
().
getUser
().
getBrands
());
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
.
RestaurantsBean
restaurantsBean
=
getOnlyRestaurant
(
loginBean
.
getData
().
getUser
().
getBrands
());
if
(
brandsBean
!=
null
)
{
saveBrandAndRestaurantInfo
(
brandsBean
.
getBrandId
(),
brandsBean
.
getBrandName
(),
restaurantsBean
.
getRestaurantId
(),
restaurantsBean
.
getRestaurantName
());
}
jumpDownloadActivity
();
}
else
{
showChooseRestaurantDialog
(
brandsBeans
,
brands
);
}
//獲取餐廳
mPresenter
.
getRestaurantList
();
}
}
}
protected
void
ChooseRestaurantItemClick
(
List
<
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
>
brands
,
ChooseRestaurantDialog
dialog
,
SectionTextItem
item
)
{
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
brandsBean
=
getBrandByRestaurantId
(
brands
,
item
.
getId
());
protected
void
ChooseRestaurantItemClick
(
List
<
BrandsBean
.
BrandsData
>
brands
,
ChooseRestaurantDialog
dialog
,
SectionTextItem
item
)
{
BrandsBean
.
BrandsData
brandsBean
=
getBrandByRestaurantId
(
brands
,
item
.
getId
());
if
(
brandsBean
!=
null
)
{
saveBrandAndRestaurantInfo
(
brandsBean
.
getBrandId
(),
brandsBean
.
getBrandName
(),
item
.
getId
(),
item
.
getText
());
}
...
...
@@ -90,7 +91,7 @@ public abstract class LoginInterfaceImpl<P extends BaseLoginPresenter> extends B
GsaCloudApplication
.
setRestaurantName
(
mContext
,
restaurantName
);
}
private
int
getRestaurantSize
(
List
<
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
>
brands
)
{
private
int
getRestaurantSize
(
List
<
BrandsBean
.
BrandsData
>
brands
)
{
int
size
=
0
;
for
(
int
i
=
0
;
i
<
brands
.
size
();
i
++)
{
if
(
brands
.
get
(
i
).
getRestaurants
()
!=
null
)
...
...
@@ -99,7 +100,7 @@ public abstract class LoginInterfaceImpl<P extends BaseLoginPresenter> extends B
return
size
;
}
private
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
getOnlyBrand
(
List
<
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
>
brands
)
{
private
BrandsBean
.
BrandsData
getOnlyBrand
(
List
<
BrandsBean
.
BrandsData
>
brands
)
{
for
(
int
i
=
0
;
i
<
brands
.
size
();
i
++)
{
if
(
brands
.
get
(
i
).
getRestaurants
()
!=
null
)
{
for
(
int
j
=
0
;
j
<
brands
.
get
(
i
).
getRestaurants
().
size
();
j
++)
{
...
...
@@ -110,7 +111,7 @@ public abstract class LoginInterfaceImpl<P extends BaseLoginPresenter> extends B
return
null
;
}
private
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
.
RestaurantsBean
getOnlyRestaurant
(
List
<
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
>
brands
)
{
private
BrandsBean
.
BrandsData
.
RestaurantsBean
getOnlyRestaurant
(
List
<
BrandsBean
.
BrandsData
>
brands
)
{
for
(
int
i
=
0
;
i
<
brands
.
size
();
i
++)
{
if
(
brands
.
get
(
i
).
getRestaurants
()
!=
null
)
{
for
(
int
j
=
0
;
j
<
brands
.
get
(
i
).
getRestaurants
().
size
();
j
++)
{
...
...
@@ -121,7 +122,7 @@ public abstract class LoginInterfaceImpl<P extends BaseLoginPresenter> extends B
return
null
;
}
private
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
getBrandByRestaurantId
(
List
<
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
>
brands
,
int
restaurantId
)
{
private
BrandsBean
.
BrandsData
getBrandByRestaurantId
(
List
<
BrandsBean
.
BrandsData
>
brands
,
int
restaurantId
)
{
for
(
int
i
=
0
;
i
<
brands
.
size
();
i
++)
{
if
(
brands
.
get
(
i
).
getRestaurants
()
!=
null
)
{
for
(
int
j
=
0
;
j
<
brands
.
get
(
i
).
getRestaurants
().
size
();
j
++)
{
...
...
@@ -137,7 +138,7 @@ public abstract class LoginInterfaceImpl<P extends BaseLoginPresenter> extends B
private
void
jumpDownloadActivity
()
{
CC
.
obtainBuilder
(
"Component.Download"
)
.
setActionName
(
"showDownloadActivity"
)
.
addParam
(
"fromPage"
,
1
)
.
addParam
(
"fromPage"
,
1
)
.
build
()
.
call
();
killMyself
();
...
...
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/model/LoginModel.java
View file @
10655e8b
...
...
@@ -2,6 +2,7 @@ package com.gingersoft.gsa.cloud.login.mvp.model;
import
android.app.Application
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.BrandsBean
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean
;
import
com.gingersoft.gsa.cloud.login.mvp.contract.LoginContract
;
import
com.gingersoft.gsa.cloud.login.mvp.server.LoginService
;
...
...
@@ -53,4 +54,10 @@ public class LoginModel extends BaseModel implements LoginContract.Model{
return
mRepositoryManager
.
obtainRetrofitService
(
LoginService
.
class
)
.
login
(
requestBody
);
}
@Override
public
Observable
<
BrandsBean
>
getRestaurantList
()
{
return
mRepositoryManager
.
obtainRetrofitService
(
LoginService
.
class
)
.
getRestaurantList
();
}
}
\ No newline at end of file
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/model/WelcomeModel.java
View file @
10655e8b
...
...
@@ -2,6 +2,7 @@ package com.gingersoft.gsa.cloud.login.mvp.model;
import
android.app.Application
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.BrandsBean
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean
;
import
com.gingersoft.gsa.cloud.login.mvp.contract.WelcomeContract
;
import
com.gingersoft.gsa.cloud.login.mvp.server.LoginService
;
...
...
@@ -40,4 +41,10 @@ public class WelcomeModel extends BaseModel implements WelcomeContract.Model {
return
mRepositoryManager
.
obtainRetrofitService
(
LoginService
.
class
)
.
login
(
requestBody
);
}
@Override
public
Observable
<
BrandsBean
>
getRestaurantList
()
{
return
mRepositoryManager
.
obtainRetrofitService
(
LoginService
.
class
)
.
getRestaurantList
();
}
}
\ No newline at end of file
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/presenter/BaseLoginPresenter.java
View file @
10655e8b
...
...
@@ -6,9 +6,10 @@ import android.content.Intent;
import
com.billy.cc.core.component.CC
;
import
com.gingersoft.gsa.cloud.base.application.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean
;
import
com.gingersoft.gsa.cloud.login.mvp.contract.BaseLoginContract
;
import
com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.ui.activity.LoginActivity
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.BrandsBean
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean
;
import
com.jess.arms.di.scope.ActivityScope
;
import
com.jess.arms.http.imageloader.ImageLoader
;
import
com.jess.arms.integration.AppManager
;
...
...
@@ -106,4 +107,34 @@ public class BaseLoginPresenter<M extends BaseLoginContract.Model, V extends Bas
}
});
}
public
void
getRestaurantList
(){
mModel
.
getRestaurantList
()
.
subscribeOn
(
Schedulers
.
io
())
.
subscribeOn
(
AndroidSchedulers
.
mainThread
())
.
doOnSubscribe
(
disposable
->
mRootView
.
showLoading
(
"獲取餐廳信息中..."
))
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
doAfterTerminate
(()
->
mRootView
.
hideLoading
())
.
compose
(
RxLifecycleUtils
.
bindToLifecycle
(
mRootView
))
.
subscribe
(
new
ErrorHandleSubscriber
<
BrandsBean
>(
mErrorHandler
)
{
@Override
public
void
onNext
(
@NonNull
BrandsBean
info
)
{
if
(
info
!=
null
){
mRootView
.
saveRestaurantListInfo
(
info
.
getData
());
}
else
{
mRootView
.
saveRestaurantListInfo
(
null
);
}
}
@Override
public
void
onError
(
Throwable
t
)
{
super
.
onError
(
t
);
}
});
}
}
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/server/LoginService.java
View file @
10655e8b
package
com
.
gingersoft
.
gsa
.
cloud
.
login
.
mvp
.
server
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.BrandsBean
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean
;
import
io.reactivex.Observable
;
import
me.jessyan.retrofiturlmanager.RetrofitUrlManager
;
import
okhttp3.RequestBody
;
import
retrofit2.http.Body
;
import
retrofit2.http.GET
;
import
retrofit2.http.Headers
;
import
retrofit2.http.POST
;
/**
...
...
@@ -14,9 +17,20 @@ import retrofit2.http.POST;
*/
public
interface
LoginService
{
@POST
(
"gsa/login"
+
RetrofitUrlManager
.
IDENTIFICATION_PATH_SIZE
+
2
)
// @POST("gsa/login" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
// Observable<LoginBean> login(@Body RequestBody requestBody);
@Headers
({
"Domain-Name: system_url"
})
@POST
(
"public/user/login"
+
RetrofitUrlManager
.
IDENTIFICATION_PATH_SIZE
+
2
)
Observable
<
LoginBean
>
login
(
@Body
RequestBody
requestBody
);
@POST
(
"gsa/logout"
+
RetrofitUrlManager
.
IDENTIFICATION_PATH_SIZE
+
2
)
@Headers
({
"Domain-Name: system_url"
})
@POST
(
"user/logout"
+
RetrofitUrlManager
.
IDENTIFICATION_PATH_SIZE
+
2
)
Observable
<
Object
>
loginOut
(
@Body
RequestBody
requestBody
);
@GET
(
"user/brand/get"
+
RetrofitUrlManager
.
IDENTIFICATION_PATH_SIZE
+
2
)
Observable
<
BrandsBean
>
getRestaurantList
();
}
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/ui/activity/mvp/ui/activity/LoginActivity.java
View file @
10655e8b
...
...
@@ -20,6 +20,7 @@ import com.gingersoft.gsa.cloud.base.utils.encryption.Aes;
import
com.gingersoft.gsa.cloud.base.utils.log.LogUtil
;
import
com.gingersoft.gsa.cloud.base.utils.other.SPUtils
;
import
com.gingersoft.gsa.cloud.base.utils.other.TextUtil
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.BrandsBean
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean
;
import
com.gingersoft.gsa.cloud.ui.widget.dialog.ChooseRestaurantDialog
;
import
com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog
;
...
...
@@ -312,7 +313,7 @@ public class LoginActivity extends LoginInterfaceImpl<LoginPresenter> implements
}
//158 - 189
@Override
public
void
showChooseRestaurantDialog
(
List
<
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
>
brandsBeans
,
List
<
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
>
brands
)
{
public
void
showChooseRestaurantDialog
(
List
<
BrandsBean
.
BrandsData
>
brandsBeans
,
List
<
BrandsBean
.
BrandsData
>
brands
)
{
new
ChooseRestaurantDialog
.
BottomListSheetBuilder
(
mContext
)
.
addBrandItems
(
brandsBeans
)
.
setOnItemClickListener
((
dialog
,
item
,
position
)
->
ChooseRestaurantItemClick
(
brands
,
dialog
,
item
))
...
...
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/ui/activity/mvp/ui/activity/WelcomeActivity.java
View file @
10655e8b
...
...
@@ -4,7 +4,6 @@ import android.animation.AnimatorSet;
import
android.animation.ObjectAnimator
;
import
android.content.Intent
;
import
android.os.Bundle
;
import
android.util.Log
;
import
android.view.View
;
import
android.view.animation.Animation
;
import
android.view.animation.AnimationUtils
;
...
...
@@ -18,13 +17,9 @@ import androidx.annotation.Nullable;
import
androidx.constraintlayout.widget.ConstraintLayout
;
import
androidx.viewpager2.widget.ViewPager2
;
import
com.billy.cc.core.component.CC
;
import
com.gingersoft.gsa.cloud.constans.UserConstans
;
import
com.gingersoft.gsa.cloud.base.utils.encryption.Aes
;
import
com.gingersoft.gsa.cloud.base.utils.other.SPUtils
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean
;
import
com.gingersoft.gsa.cloud.ui.widget.Indicator.UIndicator
;
import
com.gingersoft.gsa.cloud.ui.widget.dialog.ChooseRestaurantDialog
;
import
com.gingersoft.gsa.cloud.constans.UserConstans
;
import
com.gingersoft.gsa.cloud.login.R
;
import
com.gingersoft.gsa.cloud.login.R2
;
import
com.gingersoft.gsa.cloud.login.di.component.DaggerWelcomeComponent
;
...
...
@@ -34,6 +29,10 @@ import com.gingersoft.gsa.cloud.login.mvp.contract.LoginInterfaceImpl;
import
com.gingersoft.gsa.cloud.login.mvp.contract.WelcomeContract
;
import
com.gingersoft.gsa.cloud.login.mvp.presenter.WelcomePresenter
;
import
com.gingersoft.gsa.cloud.login.mvp.ui.adapter.GuideAdapter
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.BrandsBean
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean
;
import
com.gingersoft.gsa.cloud.ui.widget.Indicator.UIndicator
;
import
com.gingersoft.gsa.cloud.ui.widget.dialog.ChooseRestaurantDialog
;
import
com.jess.arms.di.component.AppComponent
;
import
com.jess.arms.utils.ArmsUtils
;
...
...
@@ -271,7 +270,7 @@ public class WelcomeActivity extends LoginInterfaceImpl<WelcomePresenter> implem
private
boolean
isChooseRestaurant
=
false
;
@Override
public
void
showChooseRestaurantDialog
(
List
<
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
>
brandsBeans
,
List
<
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
>
brands
)
{
public
void
showChooseRestaurantDialog
(
List
<
BrandsBean
.
BrandsData
>
brandsBeans
,
List
<
BrandsBean
.
BrandsData
>
brands
)
{
new
ChooseRestaurantDialog
.
BottomListSheetBuilder
(
mContext
)
.
addBrandItems
(
brandsBeans
)
.
setOnItemClickListener
((
dialog
,
item
,
position
)
->
{
...
...
main-module/src/main/java/com/gingersoft/gsa/cloud/main/mvp/presenter/NewMainPresenter.java
View file @
10655e8b
...
...
@@ -115,6 +115,7 @@ public class NewMainPresenter extends BasePresenter<NewMainContract.Model, NewMa
public
void
loginOut
()
{
RequestBody
requestBody
=
new
FormBody
.
Builder
()
.
add
(
"restaurantId"
,
GsaCloudApplication
.
getRestaurantId
(
mApplication
)
+
""
)
.
add
(
"type"
,
"2"
)
.
build
();
clearHeartbeat
();
mModel
.
loginOut
(
requestBody
)
...
...
main-module/src/main/java/com/gingersoft/gsa/cloud/main/mvp/ui/activity/NewMainActivity.java
View file @
10655e8b
...
...
@@ -41,7 +41,7 @@ import com.gingersoft.gsa.cloud.main.mvp.ui.adapter.MainOrderingAdapter;
import
com.gingersoft.gsa.cloud.main.mvp.ui.adapter.MainSideMenuAdapter
;
import
com.gingersoft.gsa.cloud.main.mvp.ui.fragment.MainTopFragment
;
import
com.gingersoft.gsa.cloud.main.mvp.ui.view.SlidingMenu
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.
Login
Bean
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.
Brands
Bean
;
import
com.gingersoft.gsa.cloud.ui.widget.dialog.ChooseRestaurantDialog
;
import
com.gingersoft.gsa.cloud.ui.widget.dialog.CommonTipDialog
;
import
com.jess.arms.base.BaseFragmentActivity
;
...
...
@@ -368,7 +368,7 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl
private
void
showChooseRestaurantDialog
()
{
String
brandRestaurantInfos
=
GsaCloudApplication
.
getBrandRestaurantInfos
(
this
);
if
(!
TextUtils
.
isEmpty
(
brandRestaurantInfos
))
{
List
<
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
>
brandsBeans
=
JsonUtils
.
parseArray
(
brandRestaurantInfos
,
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
.
class
);
List
<
BrandsBean
.
BrandsData
>
brandsBeans
=
JsonUtils
.
parseArray
(
brandRestaurantInfos
,
BrandsBean
.
BrandsData
.
class
);
if
(
brandsBeans
!=
null
&&
brandsBeans
.
size
()
>
0
)
{
new
ChooseRestaurantDialog
.
BottomListSheetBuilder
(
this
)
.
addBrandItems
(
brandsBeans
)
...
...
@@ -376,7 +376,7 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl
//切換餐廳,發送關閉接單的廣播,並清除心跳
sendBroadcast
(
new
Intent
(
AppConstans
.
CLEAR_ORDER_RECEIVING_HEART
));
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
brandsBean
=
RestaurantInfoUtils
.
getBrandByRestaurantId
(
brandsBeans
,
item
.
getId
());
BrandsBean
.
BrandsData
brandsBean
=
RestaurantInfoUtils
.
getBrandByRestaurantId
(
brandsBeans
,
item
.
getId
());
if
(
brandsBean
!=
null
)
{
saveBrandAndRestaurantInfo
(
brandsBean
.
getBrandId
(),
brandsBean
.
getBrandName
(),
item
.
getId
(),
item
.
getText
());
...
...
other_order_mode/src/main/AndroidManifest.xml
View file @
10655e8b
...
...
@@ -4,6 +4,7 @@
<uses-permission
android:name=
"android.permission.INTERNET"
/>
<uses-permission
android:name=
"android.permission.FOREGROUND_SERVICE"
/>
<uses-permission
android:name=
"android.permission.WAKE_LOCK"
/>
<application>
<activity
android:name=
".ui.activity.OtherOrderActivity"
...
...
other_order_mode/src/main/debug/AndroidManifest.xml
View file @
10655e8b
...
...
@@ -3,6 +3,7 @@
package=
"com.gingersoft.gsa.other_order_mode"
>
<uses-permission
android:name=
"android.permission.INTERNET"
/>
<uses-permission
android:name=
"android.permission.WAKE_LOCK"
/>
<application
android:name=
"com.gingersoft.gsa.cloud.base.application.GsaCloudApplication"
...
...
other_order_mode/src/main/java/com/gingersoft/gsa/other_order_mode/service/GetInfoUpdateService.kt
View file @
10655e8b
...
...
@@ -56,6 +56,7 @@ class GetInfoUpdateService : Service() {
val
restaurantId
by
lazy
{
GsaCloudApplication
.
getRestaurantId
(
this
)
// 26
}
override
fun
onBind
(
intent
:
Intent
?):
IBinder
?
{
...
...
print-module/src/main/java/com/joe/print/mvp/print/PrintOtherOrder.java
View file @
10655e8b
...
...
@@ -44,89 +44,89 @@ public class PrintOtherOrder extends PrinterRoot {
//再將食品數據根據打印位置分組。
//打印一組之後,關閉連接,切換第二台打印機ip,如此循環
//打印完成之後,返回所有打印結果。
//
Map<String, List<OrderDetails.DataBean.PRODUCTNAMEBean>> foodMaps = new HashMap<>();
//
String emptyPrintLocation = "";//部分食品沒有打印位置時設置為此key,比如這是第一個食品,沒有打印位置時
//
int lastEmptyPrintLocationIndex = 0;//上一次遍歷到第一個食品時都沒有打印位置時,開始的食品位置
//
//獲取這個訂單的一級食品
//
if (dataBean.getPRODUCT_NAME() != null) {
//
for (int i = 0; i < dataBean.getPRODUCT_NAME().size(); i++) {
//
OrderDetails.DataBean.PRODUCTNAMEBean food = dataBean.getPRODUCT_NAME().get(i);
//
if (TextUtil.isEmptyOrNullOrUndefined(food.getPrintseting())) {
//
//如果沒有打印位置,向上尋找
//
if (i == 0) {
//
food.setPrintseting(emptyPrintLocation);
//
addToMap(foodMaps, food);
//
} else {
//
for (int j = i - 1; j >= lastEmptyPrintLocationIndex; j--) {
//
//一直遍歷,直到找到有打印位置的食品
//
// 如果所有食品都沒有打印位置的情況,為了避免多次遍歷
//
// 如果本次遍歷到第一個食品,都沒有打印位置,記錄下這一次開始遍歷的下標,下一次遍歷到這個位置就停止
//
if (!TextUtil.isEmptyOrNullOrUndefined(dataBean.getPRODUCT_NAME().get(j).getPrintseting())) {
//
//一直遍歷,直到找到有打印位置的食品
//
//判斷是否帶*號
//
if (Objects.requireNonNull(dataBean.getPRODUCT_NAME().get(j).getPrintseting()).contains("*")) {
//
//帶*號,則需要取得通過下標加去掉*號的標識來取得map中的集合,將i食品裝進去,這樣就能打印在一張紙上
//
//如果沒取得集合,則通過打印位置去map取得集合,將j食品從map中移除,將這個j食品的和i食品裝一起
//
// 生成新的key。為當前下標+"標識符"+去掉*的打印位置,不帶*的key取得的食品集合才能打印在一張紙上。
//
String newKey = j + DELIMITER + dataBean.getPRODUCT_NAME().get(j).getPrintseting().replaceAll("\\*", "");
//
//通過newKey取得map中的集合
//
List<OrderDetails.DataBean.PRODUCTNAMEBean> newKeyfoods = foodMaps.get(newKey);
//
if (newKeyfoods != null) {
//
newKeyfoods.add(food);
//
} else {
//
List<OrderDetails.DataBean.PRODUCTNAMEBean> printsetingFoods = foodMaps.get(dataBean.getPRODUCT_NAME().get(j).getPrintseting());
//
if (printsetingFoods != null) {//理論上不會為空
//
printsetingFoods.remove(printsetingFoods.lastIndexOf(dataBean.getPRODUCT_NAME().get(j)));
//
//移除掉之後,put到newkey中
//
List<OrderDetails.DataBean.PRODUCTNAMEBean> newFoods = new ArrayList<>();
//
newFoods.add(dataBean.getPRODUCT_NAME().get(j));
//
newFoods.add(food);
//
foodMaps.put(newKey, newFoods);
//
}
//
}
//
break;
//
} else {
//
//沒有*號,不需要做多餘的操作
//
food.setPrintseting(dataBean.getPRODUCT_NAME().get(j).getPrintseting());
//
addToMap(foodMaps, food);
//
}
//
} else if (j == lastEmptyPrintLocationIndex) {
//
//從i到0的打印位置都沒有,記錄下i,下次只遍歷到i就停下來
//
lastEmptyPrintLocationIndex = i;
//
//如果找到最初的那個食品,也沒有打印位置,設置打印位置為"null"
//
food.setPrintseting(emptyPrintLocation);
//
addToMap(foodMaps, food);
//
}
//
}
//
}
//
} else {
//
//有打印位置,
//
//已經保存過這個位置的,
//
addToMap(foodMaps, food);
//
}
//
}
//
}
//
//通過打印位置生成多張用於打印的bitmap
//
for (Map.Entry<String, List<OrderDetails.DataBean.PRODUCTNAMEBean>> entry : foodMaps.entrySet()) {
//
String key = entry.getKey();
//
List<Bitmap> bitmaps = new ArrayList<>();
//
if (key.contains("*")) {
//
//如果帶*號,這個集合就需要切紙,每個食品都需要單獨在一張廚房單上
//
for (OrderDetails.DataBean.PRODUCTNAMEBean orderDetail : entry.getValue()) {
//
List<OrderDetails.DataBean.PRODUCTNAMEBean> orders = new ArrayList<>();//這裡new集合是因為下面的方法需要的參數是list集合
//
orders.add(orderDetail);
//
//獲取廚房單圖片
//
Bitmap bitmap = getOrderKitchenBitmap(mContext, orders, dataBean);
//
bitmaps.add(bitmap);
//
}
//
} else {
//
//獲取廚房單圖片
//
Bitmap bitmap = getOrderKitchenBitmap(mContext, entry.getValue(), dataBean);
//
//不帶*號,所有同樣廚房位置的食品都在一張紙上
//
bitmaps.add(bitmap);
//
}
//
bitmapMaps.put(key, bitmaps);
//
}
Map
<
String
,
List
<
OrderDetails
.
DataBean
.
PRODUCTNAMEBean
>>
foodMaps
=
new
HashMap
<>();
String
emptyPrintLocation
=
""
;
//部分食品沒有打印位置時設置為此key,比如這是第一個食品,沒有打印位置時
int
lastEmptyPrintLocationIndex
=
0
;
//上一次遍歷到第一個食品時都沒有打印位置時,開始的食品位置
//獲取這個訂單的一級食品
if
(
dataBean
.
getPRODUCT_NAME
()
!=
null
)
{
for
(
int
i
=
0
;
i
<
dataBean
.
getPRODUCT_NAME
().
size
();
i
++)
{
OrderDetails
.
DataBean
.
PRODUCTNAMEBean
food
=
dataBean
.
getPRODUCT_NAME
().
get
(
i
);
if
(
TextUtil
.
isEmptyOrNullOrUndefined
(
food
.
getPrintseting
()))
{
//如果沒有打印位置,向上尋找
if
(
i
==
0
)
{
food
.
setPrintseting
(
emptyPrintLocation
);
addToMap
(
foodMaps
,
food
);
}
else
{
for
(
int
j
=
i
-
1
;
j
>=
lastEmptyPrintLocationIndex
;
j
--)
{
//一直遍歷,直到找到有打印位置的食品
// 如果所有食品都沒有打印位置的情況,為了避免多次遍歷
// 如果本次遍歷到第一個食品,都沒有打印位置,記錄下這一次開始遍歷的下標,下一次遍歷到這個位置就停止
if
(!
TextUtil
.
isEmptyOrNullOrUndefined
(
dataBean
.
getPRODUCT_NAME
().
get
(
j
).
getPrintseting
()))
{
//一直遍歷,直到找到有打印位置的食品
//判斷是否帶*號
if
(
Objects
.
requireNonNull
(
dataBean
.
getPRODUCT_NAME
().
get
(
j
).
getPrintseting
()).
contains
(
"*"
))
{
//帶*號,則需要取得通過下標加去掉*號的標識來取得map中的集合,將i食品裝進去,這樣就能打印在一張紙上
//如果沒取得集合,則通過打印位置去map取得集合,將j食品從map中移除,將這個j食品的和i食品裝一起
// 生成新的key。為當前下標+"標識符"+去掉*的打印位置,不帶*的key取得的食品集合才能打印在一張紙上。
String
newKey
=
j
+
DELIMITER
+
dataBean
.
getPRODUCT_NAME
().
get
(
j
).
getPrintseting
().
replaceAll
(
"\\*"
,
""
);
//通過newKey取得map中的集合
List
<
OrderDetails
.
DataBean
.
PRODUCTNAMEBean
>
newKeyfoods
=
foodMaps
.
get
(
newKey
);
if
(
newKeyfoods
!=
null
)
{
newKeyfoods
.
add
(
food
);
}
else
{
List
<
OrderDetails
.
DataBean
.
PRODUCTNAMEBean
>
printsetingFoods
=
foodMaps
.
get
(
dataBean
.
getPRODUCT_NAME
().
get
(
j
).
getPrintseting
());
if
(
printsetingFoods
!=
null
)
{
//理論上不會為空
printsetingFoods
.
remove
(
printsetingFoods
.
lastIndexOf
(
dataBean
.
getPRODUCT_NAME
().
get
(
j
)));
//移除掉之後,put到newkey中
List
<
OrderDetails
.
DataBean
.
PRODUCTNAMEBean
>
newFoods
=
new
ArrayList
<>();
newFoods
.
add
(
dataBean
.
getPRODUCT_NAME
().
get
(
j
));
newFoods
.
add
(
food
);
foodMaps
.
put
(
newKey
,
newFoods
);
}
}
break
;
}
else
{
//沒有*號,不需要做多餘的操作
food
.
setPrintseting
(
dataBean
.
getPRODUCT_NAME
().
get
(
j
).
getPrintseting
());
addToMap
(
foodMaps
,
food
);
}
}
else
if
(
j
==
lastEmptyPrintLocationIndex
)
{
//從i到0的打印位置都沒有,記錄下i,下次只遍歷到i就停下來
lastEmptyPrintLocationIndex
=
i
;
//如果找到最初的那個食品,也沒有打印位置,設置打印位置為"null"
food
.
setPrintseting
(
emptyPrintLocation
);
addToMap
(
foodMaps
,
food
);
}
}
}
}
else
{
//有打印位置,
//已經保存過這個位置的,
addToMap
(
foodMaps
,
food
);
}
}
}
//通過打印位置生成多張用於打印的bitmap
for
(
Map
.
Entry
<
String
,
List
<
OrderDetails
.
DataBean
.
PRODUCTNAMEBean
>>
entry
:
foodMaps
.
entrySet
())
{
String
key
=
entry
.
getKey
();
List
<
Bitmap
>
bitmaps
=
new
ArrayList
<>();
if
(
key
.
contains
(
"*"
))
{
//如果帶*號,這個集合就需要切紙,每個食品都需要單獨在一張廚房單上
for
(
OrderDetails
.
DataBean
.
PRODUCTNAMEBean
orderDetail
:
entry
.
getValue
())
{
List
<
OrderDetails
.
DataBean
.
PRODUCTNAMEBean
>
orders
=
new
ArrayList
<>();
//這裡new集合是因為下面的方法需要的參數是list集合
orders
.
add
(
orderDetail
);
//獲取廚房單圖片
Bitmap
bitmap
=
getOrderKitchenBitmap
(
mContext
,
orders
,
dataBean
);
bitmaps
.
add
(
bitmap
);
}
}
else
{
//獲取廚房單圖片
Bitmap
bitmap
=
getOrderKitchenBitmap
(
mContext
,
entry
.
getValue
(),
dataBean
);
//不帶*號,所有同樣廚房位置的食品都在一張紙上
bitmaps
.
add
(
bitmap
);
}
bitmapMaps
.
put
(
key
,
bitmaps
);
}
//如果需要打印印單,加上
List
<
Bitmap
>
bitmaps
=
new
ArrayList
<>();
Bitmap
bitmap
=
initPrintView
(
mContext
,
dataBean
);
...
...
print-module/src/main/java/com/joe/print/mvp/ui/activity/PrintActivity.java
View file @
10655e8b
...
...
@@ -132,6 +132,16 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
finish
();
}
}
else
{
// printerDeviceBeans = new ArrayList<>();
// PrinterDeviceBean printerDeviceBean = new PrinterDeviceBean();
// printerDeviceBean.setName("EPSON");
// printerDeviceBean.setIp("192.168.1.203");
// printerDeviceBean.setPort(9100);
// printerDeviceBean.setStatus(2);
// printerDeviceBean.setPaperSpecification("200");
// printerDeviceBean.setPrinterName("EPSON");
// printerDeviceBean.setModel("EPSON");
// printerDeviceBeans.add(printerDeviceBean);
if
(
printerDeviceBeans
==
null
||
printerDeviceBeans
.
size
()
<=
0
)
{
mPresenter
.
getPrinterList
(
GsaCloudApplication
.
getRestaurantId
(
mContext
));
}
else
{
...
...
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